Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
e5bfe28
copilot: remove InlineDocIntent and /doc command
jrieken Apr 23, 2026
dcd26d5
markdown scrolling preview no longer jumpy
austinngan Apr 23, 2026
8a3c469
Clean up old snapshots
mjbvz Apr 23, 2026
c5f5a2a
Merge branch 'main' into md-changes
austinngan Apr 23, 2026
169b0f0
Initial plan
Copilot Apr 23, 2026
c8d941d
Suppress rate-limit/quota-exceeded errors from chatAgentError telemetry
Copilot Apr 23, 2026
1a54933
Revert "Use main eslint config for copilot extension too"
mjbvz Apr 23, 2026
61b5eb2
fix: use GenAI semconv explicit bucket boundaries for OTEL histograms
zhichli Apr 23, 2026
cae446d
Merge branch 'main' into copilot/suppress-rate-limits-error
bryanchen-d Apr 23, 2026
f81f651
SSH: fall back to default identity files when agent lacks the key (#3…
roblourens Apr 23, 2026
f158e93
agentHost: resolve user shell environment for agent host process (#31…
roblourens Apr 23, 2026
9c2b70d
fix session types when switching workspaces (#312227)
sandy081 Apr 23, 2026
e538664
Merge pull request #312239 from microsoft/copilot/suppress-rate-limit…
bryanchen-d Apr 23, 2026
d839048
Improve workspace picker UX (#312245)
sandy081 Apr 23, 2026
48c11b5
sessions: add tip banner for sub-session creation (#312203)
hawkticehurst Apr 23, 2026
0689763
sessions: enable Claude agent sessions by default and rename setting …
TylerLeonhardt Apr 23, 2026
63bd5cb
Merge pull request #312235 from mjbvz/dev/mjbvz/anxious-lark
mjbvz Apr 23, 2026
1c0b3b8
Merge pull request #312243 from microsoft/revert-311606-dev/mjbvz/adv…
mjbvz Apr 23, 2026
2b9d7f7
Use stable group key for workspace picker SubmenuAction id (#312251)
sandy081 Apr 23, 2026
891a3e6
Merge pull request #312237 from austinngan/md-changes
mjbvz Apr 23, 2026
908ea9e
terminal tools: detect prompts on the last output line (#311765)
mossgowild Apr 23, 2026
03beef5
Merge pull request #312244 from microsoft/zhichli/otelfix1
zhichli Apr 23, 2026
5daa981
agents: add "Debug Local Agent Host Process In Dev Tools" command (#3…
roblourens Apr 23, 2026
0496ea6
Fix cglicenses.json (#312255)
benvillalobos Apr 23, 2026
1cfc083
fix: exclude synthetic user messages from chat history processing (#3…
DonJayamanne Apr 23, 2026
e85baae
agentHost: fix duplicate edits being shown in chat (#312252)
connor4312 Apr 23, 2026
f32a933
Browser: prepare for background tabs (#312258)
kycutler Apr 24, 2026
7776b19
Skill for launching and testing vscode-dev browser/mobile.
rebornix Apr 24, 2026
9c60f95
Apply suggestion from @Copilot
rebornix Apr 24, 2026
b4d2f1d
Switch to esbuild's native watcher for building extensions
mjbvz Apr 24, 2026
0e2788c
Merge pull request #312277 from microsoft/rebornix/safe-locust
rebornix Apr 24, 2026
392ff04
Refactor CopilotCLISessionService by removing unused logic (#312265)
DonJayamanne Apr 24, 2026
59be36b
agentHost: fix PostToolUse hook additionalContext not injected into s…
digitarald Apr 24, 2026
e2796aa
Fix Copilot CLI mission control remote flows (#312240)
pierceboggan Apr 24, 2026
f0666b8
Update extensions/esbuild-webview-common.mts
mjbvz Apr 24, 2026
12ce175
Update extensions/esbuild-extension-common.mts
mjbvz Apr 24, 2026
2471611
Cleanup
mjbvz Apr 24, 2026
8d10ed4
Don't emit extensionsApiProposals if it has not changed
mjbvz Apr 24, 2026
d90a8a7
Move files into Copilot CLI specific folders (#312266)
DonJayamanne Apr 24, 2026
dd1eb81
Load deferred repo hooks after session creation (#312036)
DonJayamanne Apr 24, 2026
3146146
Merge pull request #312287 from microsoft/dev/mjbvz/little-prawn
mjbvz Apr 24, 2026
452b59f
Merge pull request #312283 from mjbvz/dev/mjbvz/vague-dormouse
mjbvz Apr 24, 2026
cdfcb38
fix: handle heredoc/multiline commands in terminal tool execution (#3…
maruthang Apr 24, 2026
f5d02ff
Add event emitters for workspace folder and worktree changes (#312288)
DonJayamanne Apr 24, 2026
91a8eba
copilot: emit router decision to restricted telemetry with full scores
Apr 23, 2026
a85cc16
Merge pull request #312230 from microsoft/aashnagarg/router-restricte…
aashna Apr 24, 2026
13bad5b
fix: expand Chronicle session_files/refs tracking to match VS Code to…
digitarald Apr 24, 2026
0c13e3e
address disposable for permission picker (#312307)
justschen Apr 24, 2026
e9c39a6
Engineering - fix product build condition (#312311)
lszomoru Apr 24, 2026
b824dc9
[Unhandled Error] command 'github.copilot.signIn' not found (fix #301…
bpasero Apr 24, 2026
fb03ca9
Update distro commit (main) (#312269)
vs-code-engineering[bot] Apr 24, 2026
d314fbc
stests
jrieken Apr 24, 2026
7f677cd
fix: open in vscode action for agents app (#312215)
deepak1556 Apr 24, 2026
f3cd27d
cli plan widget improvements (#312101)
justschen Apr 24, 2026
8c833a0
border animation in line with input box (#312222)
justschen Apr 24, 2026
2993fbd
fix: insert separator between Responses API phase commentary and fina…
ulugbekna Apr 24, 2026
e337ed5
Merge pull request #312156 from microsoft/joh/remove-doc-intent
jrieken Apr 24, 2026
deb443d
responseApi: allow dumping stream to a file
ulugbekna Apr 22, 2026
873affe
reused parsing and don't allocate Date unnecessarily
ulugbekna Apr 22, 2026
d1ffb7c
write to repo root easier way
ulugbekna Apr 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
21 changes: 2 additions & 19 deletions .eslint-ignore
Original file line number Diff line number Diff line change
@@ -1,25 +1,9 @@
**/build/*/**/*.js
**/dist/**/*
**/dist/**/*.js
**/extensions/**/*.d.ts
**/extensions/**/build/**
**/extensions/**/colorize-fixtures/**
**/extensions/copilot/coverage/**
**/extensions/copilot/.esbuild/**
**/extensions/copilot/.simulation/**
**/extensions/copilot/.eslintplugin/**
**/extensions/copilot/chat-lib/**
**/extensions/copilot/test/simulation/fixtures/**
**/extensions/copilot/test/scenarios/**
**/extensions/copilot/test/aml/out/**
**/extensions/copilot/src/util/vs/**
**/extensions/copilot/src/platform/parser/test/node/fixtures/**
**/extensions/copilot/src/extension/test/node/fixtures/**
**/extensions/copilot/src/extension/prompts/node/test/fixtures/**
**/extensions/copilot/src/extension/typescriptContext/serverPlugin/fixtures/**
**/extensions/copilot/src/extension/typescriptContext/serverPlugin/lib/**
**/extensions/copilot/src/extension/typescriptContext/serverPlugin/dist/**
**/extensions/copilot/src/extension/completions-core/**/testdata/*
**/extensions/copilot/.vscode/extensions/test-extension/dist/**
**/extensions/copilot/**
**/extensions/css-language-features/server/test/pathCompletionFixtures/**
**/extensions/html-language-features/server/lib/jquery.d.ts
**/extensions/html-language-features/server/src/test/pathCompletionFixtures/**
Expand Down Expand Up @@ -52,5 +36,4 @@
**/test/automation/out/**
**/typings/**
**/.build/**
**/.vscode-test/**
!.vscode
125 changes: 125 additions & 0 deletions .github/skills/vscode-dev-workbench/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
---
name: vscode-dev-workbench
description: Use when the user wants to run the vscode.dev server locally and exercise the VS Code workbench or Agents window in the integrated browser against the local `microsoft/vscode` sources. Covers starting the dev server, the `vscode-quality=dev` URL, browser-driven interaction patterns, and optionally wiring up a local mock agent host for the Agents window.
---

# Running vscode.dev Against Local VS Code Sources

The `vscode-dev` repo is the `vscode.dev` server. When run locally with `?vscode-quality=dev`, it serves the VS Code web workbench (or Agents window at `/agents`) from the **sibling** `microsoft/vscode` checkout. This is the fastest way to validate web-only changes to the workbench without shipping an Insiders build.

## Layout assumption

`vscode-dev` and `vscode` must be sibling folders:

```
<workRoot>/
vscode/ # microsoft/vscode checkout
vscode-dev/ # microsoft/vscode-dev checkout
```

If your paths differ, check `server/` in `vscode-dev` for the source root resolution — the `/vscode-sources/*` route maps to `../vscode`.

## Start the dev server

```bash
cd vscode-dev
npm run dev # runs watch + nodemon; serves https://127.0.0.1:3000
```

On first start you may see one crash like `Cannot find module './indexes'` — it's the watcher racing the first build. nodemon restarts automatically once `out/` finishes compiling.

## URLs

- `https://127.0.0.1:3000/?vscode-quality=dev` — main workbench, local dev sources
- `https://127.0.0.1:3000/agents?vscode-quality=dev` — Agents window, local dev sources
- `https://127.0.0.1:3000/?vscode-version=<commit>` — pinned production commit
- Add `&vscode-log=trace` for verbose client logging

## Interacting via the integrated browser

Use `open_browser_page` and the standard browser tools.

### Enter inserts a newline in the chat input

The chat input is a Monaco editor — `page.keyboard.press('Enter')` inserts a newline. To send, click the **Send** button (`a[aria-label^="Send"]`) or use the send keybinding.

### Hard-reloading after a rebuild

The service worker caches client assets aggressively. A plain reload can still serve stale modules:

```js
await page.evaluate(async () => {
const regs = await navigator.serviceWorker?.getRegistrations() ?? [];
await Promise.all(regs.map(r => r.unregister()));
const keys = await caches?.keys() ?? [];
await Promise.all(keys.map(k => caches.delete(k)));
});
await page.reload({ waitUntil: 'domcontentloaded' });
```

### Simulating mobile (only when explicitly requested)

The integrated browser panel clamps width, so `page.setViewportSize()` and CDP `setDeviceMetricsOverride` narrow the viewport only as far as the panel allows. User-Agent override and touch emulation work fine:

```js
const client = await page.context().newCDPSession(page);
await client.send('Emulation.setUserAgentOverride', {
userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1',
platform: 'iPhone'
});
await client.send('Emulation.setTouchEmulationEnabled', { enabled: true, maxTouchPoints: 5 });
await client.send('Emulation.setDeviceMetricsOverride', {
width: 393, height: 852, deviceScaleFactor: 3, mobile: true,
screenOrientation: { type: 'portraitPrimary', angle: 0 }
});
await page.reload();
```

For a true mobile viewport, drive a standalone Playwright script with `devices['iPhone 14 Pro']` instead of the integrated browser. If a mobile-responsive overlay intercepts pointer events during automation, fall back to `{ force: true }` on `click()`.

## Known-noise console messages (ignore)

- `Canceled: Canceled` at `clipboardService.js` — cancelled permission probes on hover.
- `NotAllowedError: Failed to execute 'write' on 'Clipboard'` — web clipboard requires a user gesture.
- `[WebTunnelAgentHost] Failed to list tunnels` — only fires when not signed in.
- `The web worker extension host is started in a same-origin iframe!` — expected in dev.
- `Unrecognized feature: 'local-network-access'` — dev manifest warning.
- `[LEAKED DISPOSABLE]` stacks — GC-based tracker; only real if reproducible across reloads.

## Troubleshooting

| Symptom | Cause | Fix |
| --------------------------------------------------------- | ------------------------------------------ | ---------------------------------------------------------- |
| `Cannot find module './indexes'` on first run | nodemon started before TS compile finished | Wait; it auto-restarts |
| `Session not found: <uuid>` when sending chat | Reopened a cloud/tunnel-backed session | Start a fresh session (⌘N) in the Agents window |
| Workspace picker opens native dialog and hangs automation | `Select Folder…` needs a real file dialog | Pick a workspace URL scheme instead, or skip in automation |
| Stale UI after editing `vscode/` sources | Service worker cache | Unregister SWs + clear caches (snippet above) |

## Testing the Agents window against a local mock agent host

`vscode-dev` supports a `?mock-agent-host=ws://…` URL parameter that short-circuits tunnel discovery and wires the Agents window to a raw WebSocket. Pair it with the mock agent host binary from `microsoft/vscode`:

```bash
cd vscode
node out/vs/platform/agentHost/node/agentHostServerMain.js \
--enable-mock-agent --quiet --without-connection-token --port 8765
# Listens on ws://localhost:8765
```

`--enable-mock-agent` registers the `ScriptedMockAgent` from `src/vs/platform/agentHost/test/node/mockAgent.ts` with one pre-existing session. Seed additional sessions via the `VSCODE_AGENT_HOST_MOCK_SEED_SESSIONS` env var, using a comma-separated list of session URIs (for example, `VSCODE_AGENT_HOST_MOCK_SEED_SESSIONS=mock://pre-1,mock://pre-2`). Scripted prompts include `hello`, `use-tool`, `error`, `permission`, `write-file`, `run-safe-command`, `slow`, `client-tool`, `subagent`, etc. (see `mockAgent.ts` for the full list).

Then open:

```
https://127.0.0.1:3000/agents?vscode-quality=dev&mock-agent-host=ws://localhost:8765&vscode-log=trace
```

Expect these logs in order:

- `[MockAgentHost] Using local mock agent host at ws://localhost:8765/`
- `[WebTunnelAgentHost] Found 1 tunnel(s) with agent host support`
- `[WebTunnelAgentHost] Connecting to tunnel 'mock-agent-host' (mock)`
- `[WebTunnelAgentHost] Protocol handshake completed with tunnel:mock`
- `[RemoteAgentHost] Registered agent mock from tunnel:mock as remote-tunnel__mock-mock`

This bypasses GitHub auth and the `/agents/api/hosts` endpoint entirely, so it works offline. The fake tunnel on the `vscode-dev` side must advertise a `protocolvN` tag ≥ `TUNNEL_MIN_PROTOCOL_VERSION` in `src/vs/platform/agentHost/common/tunnelAgentHost.ts` (currently 5); otherwise `WebTunnelAgentHostService` filters it out and you'll see `Found 0 tunnel(s) with agent host support`.
8 changes: 8 additions & 0 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -288,6 +288,10 @@ jobs:
working-directory: extensions/copilot
run: npm run typecheck

- name: Lint
working-directory: extensions/copilot
run: npm run lint

- name: Compile
working-directory: extensions/copilot
run: npm run compile
Expand Down Expand Up @@ -383,6 +387,10 @@ jobs:
working-directory: extensions/copilot
run: npm run typecheck

- name: Lint
working-directory: extensions/copilot
run: npm run lint

- name: Compile
working-directory: extensions/copilot
run: npm run compile
Expand Down
4 changes: 3 additions & 1 deletion build/azure-pipelines/product-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ jobs:
variables:
- name: BUILDS_API_URL
value: $(System.CollectionUri)$(System.TeamProject)/_apis/build/builds/$(Build.BuildId)/
- name: VSCODE_BUILD_HOUR
value: $[format('{0:HH}', pipeline.startTime)]
templateContext:
outputs:
- output: pipelineArtifact
Expand Down Expand Up @@ -117,7 +119,7 @@ jobs:
- ${{ if and(in(parameters.VSCODE_QUALITY, 'insider', 'exploration'), eq(parameters.VSCODE_SCHEDULEDBUILD, true)) }}:
- script: node build/azure-pipelines/common/releaseBuild.ts
# Only release on the 05:00 and 17:00 UTC schedules (skip the 11:00 and 23:00 UTC schedules)
condition: and(succeeded(), or(eq(format('{0:HH}', pipeline.startTime), '05'), eq(format('{0:HH}', pipeline.startTime), '17')))
condition: and(succeeded(), or(eq(variables['VSCODE_BUILD_HOUR'], '05'), eq(variables['VSCODE_BUILD_HOUR'], '17')))
env:
PUBLISH_AUTH_TOKENS: "$(PUBLISH_AUTH_TOKENS)"
displayName: Release build
6 changes: 4 additions & 2 deletions build/filters.ts
Original file line number Diff line number Diff line change
Expand Up @@ -233,8 +233,10 @@ export const tsFormattingFilter = Object.freeze<string[]>([
]);

export const eslintFilter = Object.freeze<string[]>([
'**/*.{js,cjs,mjs}',
'**/*.{ts,tsx,mts,cts}',
'**/*.js',
'**/*.cjs',
'**/*.mjs',
'**/*.ts',
'.eslint-plugin-local/**/*.ts',
...readFileSync(join(import.meta.dirname, '..', '.eslint-ignore'))
.toString()
Expand Down
14 changes: 14 additions & 0 deletions build/hygiene.ts
Original file line number Diff line number Diff line change
Expand Up @@ -314,6 +314,20 @@ if (import.meta.main) {
}
}

// Run copilot pre-commit checks if copilot files are staged
if (some.some(f => f.startsWith('extensions/copilot/'))) {
console.log('Running copilot pre-commit checks...');
const result = cp.spawnSync('npx', ['lint-staged'], {
cwd: path.join(process.cwd(), 'extensions', 'copilot'),
stdio: 'inherit',
shell: true,
});
if (result.status !== 0) {
console.error('Copilot pre-commit checks failed.');
process.exit(1);
}
}

console.log('Reading git index versions...');

createGitIndexVinyls(some)
Expand Down
12 changes: 11 additions & 1 deletion build/lib/compilation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -339,8 +339,18 @@ function generateApiProposalNames() {
'',
].join(eol);

const filePath = 'vs/platform/extensions/common/extensionsApiProposals.ts';
try {
const existing = fs.readFileSync(path.join('src', filePath), 'utf-8');
if (existing === contents) {
this.emit('end');
return;
}
} catch {
// File doesn't exist yet, emit it
}
this.emit('data', new File({
path: 'vs/platform/extensions/common/extensionsApiProposals.ts',
path: filePath,
contents: Buffer.from(contents)
}));
this.emit('end');
Expand Down
57 changes: 51 additions & 6 deletions cglicenses.json
Original file line number Diff line number Diff line change
Expand Up @@ -840,25 +840,57 @@
{
"name": "@github/blackbird-external-ingest-utils",
"licenseDetail": [
"MIT License"
"MIT License",
"",
"Copyright (c) GitHub, Inc.",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
"name": "@microsoft/dev-tunnels-connections",
"licenseDetail": [
"MIT License"
"MIT License",
"",
"Copyright (c) Microsoft Corporation.",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
"name": "@microsoft/dev-tunnels-contracts",
"licenseDetail": [
"MIT License"
"MIT License",
"",
"Copyright (c) Microsoft Corporation.",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
"name": "@microsoft/dev-tunnels-management",
"licenseDetail": [
"MIT License"
"MIT License",
"",
"Copyright (c) Microsoft Corporation.",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
Expand All @@ -876,9 +908,22 @@
]
},
{
// Reason: Repository lacks a LICENSE file. package.json declares BSD-2-Clause.
// Author: Forrest L Norvell <ogd@aoaioxxysz.net>
"name": "emitter-listener",
"licenseDetail": [
"BSD-2-Clause"
"BSD 2-Clause License",
"",
"Copyright (c) 2013, Forrest L Norvell <ogd@aoaioxxysz.net>",
"All rights reserved.",
"",
"Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:",
"",
"1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.",
"",
"2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.",
"",
"THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
]
},
{
Expand Down Expand Up @@ -909,7 +954,7 @@
},
{
"name": "gcp-metadata",
"fullLicenseTextUri": "https://github.com/googleapis/google-cloud-node-core/blob/76ba85a7f55c6e82943008b4eceb07a0f58b39e1/LICENSE"
"fullLicenseTextUri": "https://raw.githubusercontent.com/googleapis/google-cloud-node-core/76ba85a7f55c6e82943008b4eceb07a0f58b39e1/LICENSE"
},
{
"name": "randombytes",
Expand Down
Loading
Loading