@skillcdn/console 0.4.0 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -2
- package/SKILLCDN.md +7 -5
- package/dist/api.d.ts +5 -4
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +5 -4
- package/dist/api.js.map +1 -1
- package/dist/cli/cli.d.ts.map +1 -1
- package/dist/cli/cli.js +579 -45
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/format.d.ts +34 -3
- package/dist/cli/format.d.ts.map +1 -1
- package/dist/cli/format.js +277 -6
- package/dist/cli/format.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +60 -7
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/plugin-check.d.ts +21 -0
- package/dist/cli/plugin-check.d.ts.map +1 -0
- package/dist/cli/plugin-check.js +374 -0
- package/dist/cli/plugin-check.js.map +1 -0
- package/dist/cli/plugin-cli.d.ts +20 -0
- package/dist/cli/plugin-cli.d.ts.map +1 -0
- package/dist/cli/plugin-cli.js +123 -0
- package/dist/cli/plugin-cli.js.map +1 -0
- package/dist/cli/plugin-init.d.ts +20 -0
- package/dist/cli/plugin-init.d.ts.map +1 -0
- package/dist/cli/plugin-init.js +74 -0
- package/dist/cli/plugin-init.js.map +1 -0
- package/dist/cli/plugin-main.d.ts +3 -0
- package/dist/cli/plugin-main.d.ts.map +1 -0
- package/dist/cli/plugin-main.js +28 -0
- package/dist/cli/plugin-main.js.map +1 -0
- package/dist/client.d.ts +109 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +67 -2
- package/dist/client.js.map +1 -1
- package/dist/compat.d.ts +1 -1
- package/dist/compat.js +2 -2
- package/dist/components/board.d.ts +8 -0
- package/dist/components/board.d.ts.map +1 -1
- package/dist/components/board.js +59 -15
- package/dist/components/board.js.map +1 -1
- package/dist/components/event-feed.d.ts +1 -1
- package/dist/components/event-feed.d.ts.map +1 -1
- package/dist/components/event-feed.js +33 -1
- package/dist/components/event-feed.js.map +1 -1
- package/dist/components/markdown.d.ts.map +1 -1
- package/dist/components/markdown.js +6 -3
- package/dist/components/markdown.js.map +1 -1
- package/dist/components/pack-connect.d.ts +3 -1
- package/dist/components/pack-connect.d.ts.map +1 -1
- package/dist/components/pack-connect.js +4 -4
- package/dist/components/pack-connect.js.map +1 -1
- package/dist/components/pack-token.d.ts +3 -1
- package/dist/components/pack-token.d.ts.map +1 -1
- package/dist/components/pack-token.js +1 -1
- package/dist/components/pack-token.js.map +1 -1
- package/dist/components/people.d.ts.map +1 -1
- package/dist/components/people.js +14 -3
- package/dist/components/people.js.map +1 -1
- package/dist/components/plugin-frame.d.ts +52 -0
- package/dist/components/plugin-frame.d.ts.map +1 -0
- package/dist/components/plugin-frame.js +314 -0
- package/dist/components/plugin-frame.js.map +1 -0
- package/dist/components/plugin-settings.d.ts +38 -0
- package/dist/components/plugin-settings.d.ts.map +1 -0
- package/dist/components/plugin-settings.js +348 -0
- package/dist/components/plugin-settings.js.map +1 -0
- package/dist/components/remote-pictures.d.ts +6 -0
- package/dist/components/remote-pictures.d.ts.map +1 -0
- package/dist/components/remote-pictures.js +8 -0
- package/dist/components/remote-pictures.js.map +1 -0
- package/dist/components/shell.d.ts +2 -0
- package/dist/components/shell.d.ts.map +1 -1
- package/dist/components/shell.js +26 -1
- package/dist/components/shell.js.map +1 -1
- package/dist/components/sign-in.d.ts.map +1 -1
- package/dist/components/sign-in.js +49 -2
- package/dist/components/sign-in.js.map +1 -1
- package/dist/components/ui.d.ts +3 -2
- package/dist/components/ui.d.ts.map +1 -1
- package/dist/components/ui.js +6 -3
- package/dist/components/ui.js.map +1 -1
- package/dist/components/workspace.d.ts +7 -1
- package/dist/components/workspace.d.ts.map +1 -1
- package/dist/components/workspace.js +1 -1
- package/dist/components/workspace.js.map +1 -1
- package/dist/console.css +384 -5
- package/dist/console.d.ts.map +1 -1
- package/dist/console.js +146 -29
- package/dist/console.js.map +1 -1
- package/dist/data.d.ts +11 -2
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +35 -21
- package/dist/data.js.map +1 -1
- package/dist/i18n/en.d.ts +163 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +174 -1
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/ko.d.ts.map +1 -1
- package/dist/i18n/ko.js +154 -1
- package/dist/i18n/ko.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/limits.d.ts +14 -0
- package/dist/limits.d.ts.map +1 -1
- package/dist/limits.js +14 -0
- package/dist/limits.js.map +1 -1
- package/dist/plugin/args.d.ts +148 -0
- package/dist/plugin/args.d.ts.map +1 -0
- package/dist/plugin/args.js +369 -0
- package/dist/plugin/args.js.map +1 -0
- package/dist/plugin/bridge.d.ts +146 -0
- package/dist/plugin/bridge.d.ts.map +1 -0
- package/dist/plugin/bridge.js +125 -0
- package/dist/plugin/bridge.js.map +1 -0
- package/dist/plugin/capabilities.d.ts +20 -0
- package/dist/plugin/capabilities.d.ts.map +1 -0
- package/dist/plugin/capabilities.js +133 -0
- package/dist/plugin/capabilities.js.map +1 -0
- package/dist/plugin/context.d.ts +374 -0
- package/dist/plugin/context.d.ts.map +1 -0
- package/dist/plugin/context.js +2 -0
- package/dist/plugin/context.js.map +1 -0
- package/dist/plugin/define.d.ts +208 -0
- package/dist/plugin/define.d.ts.map +1 -0
- package/dist/plugin/define.js +482 -0
- package/dist/plugin/define.js.map +1 -0
- package/dist/plugin/definition-error.d.ts +11 -0
- package/dist/plugin/definition-error.d.ts.map +1 -0
- package/dist/plugin/definition-error.js +17 -0
- package/dist/plugin/definition-error.js.map +1 -0
- package/dist/plugin/limits.d.ts +67 -0
- package/dist/plugin/limits.d.ts.map +1 -0
- package/dist/plugin/limits.js +70 -0
- package/dist/plugin/limits.js.map +1 -0
- package/dist/plugin/load-worker.d.ts +7 -0
- package/dist/plugin/load-worker.d.ts.map +1 -0
- package/dist/plugin/load-worker.js +41 -0
- package/dist/plugin/load-worker.js.map +1 -0
- package/dist/plugin/load.d.ts +18 -0
- package/dist/plugin/load.d.ts.map +1 -0
- package/dist/plugin/load.js +62 -0
- package/dist/plugin/load.js.map +1 -0
- package/dist/plugin/manifest.d.ts +237 -0
- package/dist/plugin/manifest.d.ts.map +1 -0
- package/dist/plugin/manifest.js +411 -0
- package/dist/plugin/manifest.js.map +1 -0
- package/dist/plugin/refusals.d.ts +49 -0
- package/dist/plugin/refusals.d.ts.map +1 -0
- package/dist/plugin/refusals.js +79 -0
- package/dist/plugin/refusals.js.map +1 -0
- package/dist/plugin/rest-schemas.d.ts +556 -0
- package/dist/plugin/rest-schemas.d.ts.map +1 -0
- package/dist/plugin/rest-schemas.js +262 -0
- package/dist/plugin/rest-schemas.js.map +1 -0
- package/dist/plugin/sandbox.d.ts +23 -0
- package/dist/plugin/sandbox.d.ts.map +1 -0
- package/dist/plugin/sandbox.js +99 -0
- package/dist/plugin/sandbox.js.map +1 -0
- package/dist/plugin/testing.d.ts +45 -0
- package/dist/plugin/testing.d.ts.map +1 -0
- package/dist/plugin/testing.js +420 -0
- package/dist/plugin/testing.js.map +1 -0
- package/dist/plugin/web-react.d.ts +11 -0
- package/dist/plugin/web-react.d.ts.map +1 -0
- package/dist/plugin/web-react.js +34 -0
- package/dist/plugin/web-react.js.map +1 -0
- package/dist/plugin/web.d.ts +95 -0
- package/dist/plugin/web.d.ts.map +1 -0
- package/dist/plugin/web.js +245 -0
- package/dist/plugin/web.js.map +1 -0
- package/dist/plugin-nav.d.ts +29 -0
- package/dist/plugin-nav.d.ts.map +1 -0
- package/dist/plugin-nav.js +92 -0
- package/dist/plugin-nav.js.map +1 -0
- package/dist/plugin-testing.d.ts +2 -0
- package/dist/plugin-testing.d.ts.map +1 -0
- package/dist/plugin-testing.js +4 -0
- package/dist/plugin-testing.js.map +1 -0
- package/dist/plugin-web-react.d.ts +3 -0
- package/dist/plugin-web-react.d.ts.map +1 -0
- package/dist/plugin-web-react.js +3 -0
- package/dist/plugin-web-react.js.map +1 -0
- package/dist/plugin-web.d.ts +4 -0
- package/dist/plugin-web.d.ts.map +1 -0
- package/dist/plugin-web.js +5 -0
- package/dist/plugin-web.js.map +1 -0
- package/dist/plugin.d.ts +11 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +15 -0
- package/dist/plugin.js.map +1 -0
- package/dist/router.d.ts +28 -0
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +47 -0
- package/dist/router.js.map +1 -1
- package/dist/routes.d.ts +6 -0
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +8 -0
- package/dist/routes.js.map +1 -1
- package/dist/schemas.d.ts +147 -1
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +55 -5
- package/dist/schemas.js.map +1 -1
- package/dist/tokens.d.ts +2 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +101 -0
- package/dist/tokens.js.map +1 -0
- package/dist/vocabulary.d.ts +11 -1
- package/dist/vocabulary.d.ts.map +1 -1
- package/dist/vocabulary.js +24 -0
- package/dist/vocabulary.js.map +1 -1
- package/dist/web.d.ts.map +1 -1
- package/dist/web.js +5 -2
- package/dist/web.js.map +1 -1
- package/docs/specs/cli.md +16 -9
- package/docs/specs/plugins.md +487 -0
- package/docs/specs/rest.md +25 -13
- package/package.json +21 -3
- package/skills/building-a-console/SKILL.md +25 -26
- package/skills/building-a-console/references/configuring.md +40 -0
- package/skills/building-a-console/references/the-default-console.md +1 -1
- package/skills/building-a-console/references/the-look-from-a-website.md +5 -5
- package/skills/building-a-plugin/SKILL.md +137 -0
- package/skills/deploying-a-console/SKILL.md +24 -26
- package/skills/deploying-a-console/references/access.md +13 -9
- package/skills/deploying-a-console/references/resources.md +25 -10
- package/skills/deploying-a-console/references/running-it-again.md +15 -0
- package/skills/deploying-a-console/references/sizing.md +2 -0
- package/skills/planning-the-board/SKILL.md +96 -0
- package/skills/planning-the-board/references/a-task.md +36 -0
- package/skills/planning-the-board/references/setting-up.md +44 -0
- package/skills/working-the-board/SKILL.md +43 -34
- package/skills/working-the-board/references/the-pack.md +19 -0
- package/src/api.ts +16 -0
- package/src/cli/cli.ts +736 -45
- package/src/cli/format.ts +356 -9
- package/src/cli/help.ts +71 -6
- package/src/cli/plugin-check.ts +470 -0
- package/src/cli/plugin-cli.ts +148 -0
- package/src/cli/plugin-init.ts +90 -0
- package/src/cli/plugin-main.ts +30 -0
- package/src/client.ts +324 -1
- package/src/compat.ts +2 -2
- package/src/components/board.tsx +62 -14
- package/src/components/event-feed.tsx +42 -1
- package/src/components/markdown.tsx +6 -3
- package/src/components/pack-connect.tsx +10 -7
- package/src/components/pack-token.tsx +4 -1
- package/src/components/people.tsx +17 -7
- package/src/components/plugin-frame.tsx +437 -0
- package/src/components/plugin-settings.tsx +1111 -0
- package/src/components/remote-pictures.ts +19 -0
- package/src/components/shell.tsx +82 -14
- package/src/components/sign-in.tsx +114 -13
- package/src/components/ui.tsx +6 -3
- package/src/components/workspace.tsx +18 -0
- package/src/console.tsx +309 -23
- package/src/data.ts +47 -22
- package/src/i18n/en.ts +183 -1
- package/src/i18n/ko.ts +159 -1
- package/src/index.ts +12 -0
- package/src/limits.ts +14 -0
- package/src/plugin/args.ts +526 -0
- package/src/plugin/bridge.ts +314 -0
- package/src/plugin/capabilities.ts +150 -0
- package/src/plugin/context.ts +416 -0
- package/src/plugin/define.ts +792 -0
- package/src/plugin/definition-error.ts +19 -0
- package/src/plugin/limits.ts +70 -0
- package/src/plugin/load-worker.ts +50 -0
- package/src/plugin/load.ts +82 -0
- package/src/plugin/manifest.ts +561 -0
- package/src/plugin/refusals.ts +94 -0
- package/src/plugin/rest-schemas.ts +354 -0
- package/src/plugin/sandbox.ts +123 -0
- package/src/plugin/testing.ts +612 -0
- package/src/plugin/web-react.ts +45 -0
- package/src/plugin/web.ts +403 -0
- package/src/plugin-nav.ts +132 -0
- package/src/plugin-testing.ts +10 -0
- package/src/plugin-web-react.ts +4 -0
- package/src/plugin-web.ts +35 -0
- package/src/plugin.ts +126 -0
- package/src/router.ts +73 -0
- package/src/routes.ts +9 -0
- package/src/schemas.ts +60 -4
- package/src/styles/console.css +384 -5
- package/src/tokens.ts +101 -0
- package/src/vocabulary.ts +30 -0
- package/src/web.ts +5 -2
- package/template/plugin/.gitignore +2 -0
- package/template/plugin/README.md +26 -0
- package/template/plugin/SKILLCDN.md +13 -0
- package/template/plugin/build.mjs +40 -0
- package/template/plugin/console-plugin.json +50 -0
- package/template/plugin/package.json +27 -0
- package/template/plugin/skills/__key__/SKILL.md +23 -0
- package/template/plugin/src/check.test.ts +34 -0
- package/template/plugin/src/server/index.test.ts +41 -0
- package/template/plugin/src/server/index.ts +72 -0
- package/template/plugin/src/web/index.css +51 -0
- package/template/plugin/src/web/index.ts +115 -0
- package/template/plugin/tsconfig.json +17 -0
- package/skills/working-the-board/references/setting-up.md +0 -3
- /package/skills/{working-the-board → planning-the-board}/references/project-rules.md +0 -0
package/dist/web.js
CHANGED
|
@@ -28,20 +28,23 @@ const CONTENT_TYPES = {
|
|
|
28
28
|
};
|
|
29
29
|
/**
|
|
30
30
|
* Pages show what people and agents wrote, which is untrusted. Nothing inline runs, nothing
|
|
31
|
-
* loads from elsewhere
|
|
31
|
+
* loads from elsewhere, a picture from elsewhere coming through the console (ADR-0048), and
|
|
32
|
+
* nobody frames the page.
|
|
32
33
|
*/
|
|
33
34
|
const PAGE_HEADERS = {
|
|
34
35
|
"content-security-policy": [
|
|
35
36
|
"default-src 'self'",
|
|
36
37
|
"script-src 'self'",
|
|
37
38
|
"style-src 'self'",
|
|
38
|
-
"img-src 'self' data:
|
|
39
|
+
"img-src 'self' data:",
|
|
39
40
|
"font-src 'self'",
|
|
40
41
|
"connect-src 'self'",
|
|
41
42
|
"object-src 'none'",
|
|
42
43
|
"base-uri 'none'",
|
|
43
44
|
"form-action 'self'",
|
|
44
45
|
"frame-ancestors 'none'",
|
|
46
|
+
// The plugins' frames (ADR-0054): documents of this origin, sandboxed by their own policy.
|
|
47
|
+
"frame-src 'self'",
|
|
45
48
|
].join("; "),
|
|
46
49
|
"referrer-policy": "strict-origin-when-cross-origin",
|
|
47
50
|
"x-content-type-options": "nosniff",
|
package/dist/web.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.js","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEzD,2FAA2F;AAC3F,8FAA8F;AAC9F,sFAAsF;AACtF,4FAA4F;AAC5F,gDAAgD;AAEhD,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,MAAM,IAAI,GAAG,0BAA0B,CAAC;AAExC,MAAM,aAAa,GAAqC;IACtD,MAAM,EAAE,yBAAyB;IACjC,KAAK,EAAE,gCAAgC;IACvC,MAAM,EAAE,gCAAgC;IACxC,OAAO,EAAE,iCAAiC;IAC1C,MAAM,EAAE,iCAAiC;IACzC,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,cAAc;IACtB,MAAM,EAAE,2BAA2B;IACnC,cAAc,EAAE,2BAA2B;IAC3C,QAAQ,EAAE,YAAY;IACtB,OAAO,EAAE,WAAW;CACrB,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"web.js","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"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"}
|
package/docs/specs/cli.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
## Signing in
|
|
7
7
|
|
|
8
|
-
A person installs the package where the agent runs, or has the agent install it, and the command connects once ([ADR-0011](../adr/0011-an-agent-connects-with-a-short-code-a-person-approves-and-the-token-is-never-shown.md)): `console login --url <origin>` asks the console to connect, prints the address of the console's own page and a code of eight characters, and waits, up to the thirty minutes the code is good for; the person opens the address signed in, checks that the page shows the same code, names the agent and approves; and the command receives a token of its own, which it never prints. An agent that can run commands does this itself and relays the address and the code to its person; `--agent <name>` says what it calls itself; left out, the command names the agent it runs under where its environment says so (Claude Code, Codex), else `An agent`; the machine's name follows (`Claude Code on <machine>`), and the pages show the name before `on` with the whole on hover. A token made by hand on the Agents page is read from standard input with `--token-stdin` instead, for a script or a job, and checked against the console (`GET /api/v1/me` must know the person). Either way the command keeps the token as a login, with the console's address, the person's login there and the workspace's time zone as the console last said it (at `login`, `whoami` or `workspace`; the moments the command prints are in it, as ISO 8601 with its offset, and as the API gives them, in UTC, while none is known or with `--json`; [ADR-0035](../adr/0035-who-may-see-whom-is-decided-by-one-policy-and-the-workspace-keeps-its-settings.md)), in `$XDG_CONFIG_HOME/skillcdn-console/credentials.json` (`~/.config/skillcdn-console/credentials.json` when `XDG_CONFIG_HOME` is unset), readable by the person alone where the system can say so and written whole in one step ([ADR-0027](../adr/0027-the-command-keeps-a-login-per-console-and-a-token-goes-only-to-the-console-that-issued-it.md)). One machine holds a login per console and account: `login` at a second console adds one beside the first, the first is the default console, `--default` makes another the default, and `login` repeated for the same console and account replaces the token, giving the old one up at the console. `console logins` lists them, never a token. `logout [--url <origin>] [--account <login>]` gives one login's token up at its console (`DELETE /api/v1/me/token`) and forgets it; a console out of reach leaves the token to the Agents page, where its person or an administrator removes it. A token is never taken on the command line, never typed, and never printed, and a file the command cannot read as its own is never written over: the command says so and stops.
|
|
8
|
+
A person installs the package where the agent runs, or has the agent install it, and the command connects once ([ADR-0011](../adr/0011-an-agent-connects-with-a-short-code-a-person-approves-and-the-token-is-never-shown.md)): `console login --url <origin>` asks the console to connect, prints the address of the console's own page and a code of eight characters, and waits, up to the thirty minutes the code is good for; the person opens the address signed in, checks that the page shows the same code, names the agent and approves; and the command receives a token of its own, which it never prints. An agent that can run commands does this itself and relays the address and the code to its person; `--agent <name>` says what it calls itself; left out, the command names the agent it runs under where its environment says so (Claude Code, Codex), else `An agent`; the machine's name follows (`Claude Code on <machine>`), and the pages show the name before `on` with the whole on hover. A token made by hand on the Agents page is read from standard input with `--token-stdin` instead, for a script or a job, and checked against the console (`GET /api/v1/me` must know the person). Either way the command keeps the token as a login, with the console's address, the person's login there and the workspace's time zone as the console last said it (at `login`, `whoami` or `workspace`; the moments the command prints are in it, as ISO 8601 with its offset, and as the API gives them, in UTC, while none is known or with `--json`; [ADR-0035](../adr/0035-who-may-see-whom-is-decided-by-one-policy-and-the-workspace-keeps-its-settings.md)), in `$XDG_CONFIG_HOME/skillcdn-console/credentials.json` (`~/.config/skillcdn-console/credentials.json` when `XDG_CONFIG_HOME` is unset), readable by the person alone where the system can say so and written whole in one step ([ADR-0027](../adr/0027-the-command-keeps-a-login-per-console-and-a-token-goes-only-to-the-console-that-issued-it.md)). One machine holds a login per console and account: `login` at a second console adds one beside the first, the first is the default console, `--default` makes another the default, and `login` repeated for the same console and account replaces the token, giving the old one up at the console. `console logins` lists them, never a token. `logout [--url <origin>] [--account <login>]` gives one login's token up at its console (`DELETE /api/v1/me/token`) and forgets it; a console out of reach leaves the token to the Agents page, where its person or an administrator removes it; a console that refuses the token because its person is out (`auth.deactivated`, `auth.not_admitted`, [ADR-0044](../adr/0044-a-token-of-a-person-who-is-out-is-kept-and-refused-with-the-reason-until-they-are-back-in.md)) keeps it for when they are back in, and the command forgets it here. A token is never taken on the command line, never typed, and never printed, and a file the command cannot read as its own is never written over: the command says so and stops.
|
|
9
9
|
|
|
10
10
|
Which console a command talks to is decided first, and the token is then the one for that console alone: the address is `--url <origin>`, else `CONSOLE_URL` in the environment, else the console `.skillcdn-console.json` binds the directory to, else the default login; the token is `CONSOLE_TOKEN` where `CONSOLE_URL` names that address (the two are a pair, for a hook or a job, and one without the other is refused), else the login kept for the address, for the account `--account <login>` or the directory names, or the one account there. A console nobody is signed in to here gets no request, whatever is kept for another; several accounts at one console with nothing to say which stop the command. An address is `https`, or `http` on this machine alone (`localhost`), and a redirect is never followed, so that a token travels to the console it was issued by and nowhere else. `whoami` and every refusal name the console and the account.
|
|
11
11
|
|
|
@@ -23,7 +23,7 @@ The board is a project's ([ADR-0008](../adr/0008-a-workspace-holds-projects-and-
|
|
|
23
23
|
|---|---|---|
|
|
24
24
|
| `login --url <origin> [--agent <name>] [--token-stdin] [--default]` | `POST /api/v1/connect`, then `POST /api/v1/connect/claim` until a person approved, then `GET /api/v1/me` with the token; `DELETE /api/v1/me/token` with the token a repeated login replaces | the address and the code for a person; then who the token is, and whether this is the default console; keeps the login |
|
|
25
25
|
| `logins` | nothing | one line per login: the console, the account, what the token is called, since when, and which is the default; never a token |
|
|
26
|
-
| `logout [--url <origin>] [--account <login>]` | `DELETE /api/v1/me/token` | that the login's token is given up and forgotten, or that the console was out of reach and the token is left to the Agents page |
|
|
26
|
+
| `logout [--url <origin>] [--account <login>]` | `DELETE /api/v1/me/token` | that the login's token is given up and forgotten, or that the console keeps it while its person is out, or that the console was out of reach and the token is left to the Agents page |
|
|
27
27
|
| `whoami` | `GET /api/v1/me` | the login, the role, the workspace, the address, and the project this directory works in; with a project, where the organization's rules are read and where the skill working-the-board is on this machine; then the command's version and where it is installed, the console's version and the range it takes, and the update to make when they differ. Keeps the workspace's time zone on the login it used, so that the moments the command prints are in it from then on ([ADR-0035](../adr/0035-who-may-see-whom-is-decided-by-one-policy-and-the-workspace-keeps-its-settings.md)) |
|
|
28
28
|
| `projects` | `GET /api/v1/projects` | one line per project: key, name, what the person is in it, what waits in it |
|
|
29
29
|
| `use <key> [--url <origin>] [--account <login>]` | `GET /api/v1/projects/<key>` | that the directory works in the project from now on, at which console and as which account where it binds them, and that `console rules` says what its people ask; then the sentence for the checkout's agreement (AGENTS.md, or CLAUDE.md), to be copied as it is; writes `.skillcdn-console.json` |
|
|
@@ -42,26 +42,33 @@ The board is a project's ([ADR-0008](../adr/0008-a-workspace-holds-projects-and-
|
|
|
42
42
|
| `categories` | `GET /api/v1/categories` | one line per category: key, name, colour |
|
|
43
43
|
| `workspace` | `GET /api/v1/me` | the workspace's settings ([ADR-0035](../adr/0035-who-may-see-whom-is-decided-by-one-policy-and-the-workspace-keeps-its-settings.md)): its name, who sees whom on the People page (`everyone`, or `shared_projects`), the day the calendars begin a week on, its time zone, where the organization's skills come from, and the most days a token may last. Keeps the time zone on the login, as `whoami` does. Needs no project |
|
|
44
44
|
| `workspace edit [--people-visibility <everyone\|shared-projects>] [--week-start <auto\|monday\|sunday>] [--time-zone <zone\|none>]` | `PATCH /api/v1/workspace` | the settings as they are now; for an administrator. The time zone is an IANA name the console knows (`request.invalid` otherwise), and `none` takes it away; the command keeps the zone on its login and prints moments in it from then on |
|
|
45
|
-
| `workspace pack-token --connect` | `POST /api/v1/workspace/pack-token/connect`, then `
|
|
45
|
+
| `workspace pack-token --connect` | `POST /api/v1/workspace/pack-token/connect`, then `POST .../pack-token/connect/claim` at the interval the deployment named, until the token is kept or the request ended | the page at SkillCDN and the code for a person who may open the repository, then that the pack is connected and the workspace's settings as they are now, never the token; `1` when the code expired, the request was declined or SkillCDN refused; for an administrator ([ADR-0036](../adr/0036-a-private-pack-is-connected-with-a-code-a-person-approves-from-the-projects-settings.md)) |
|
|
46
46
|
| `workspace pack-token --stdin`, `workspace pack-token --remove` | `PUT /api/v1/workspace/pack-token` with the token read from standard input, or `DELETE /api/v1/workspace/pack-token` | the workspace's settings as they are now, saying when its SkillCDN token was set and never the token: what every project with no address and no token of its own reads the organization's pack with; for an administrator |
|
|
47
47
|
| `people` | `GET /api/v1/people` | one line per person the person sees (everyone, or, while the workspace narrows the people a member sees, those they share a project with and the administrators): login, name, role in the workspace, and `deactivated` for one taken out; then, where they see everyone, one line per login let in that nobody has signed in with yet. Needs no project |
|
|
48
48
|
| `person role <login> <admin\|member>` | `GET /api/v1/people?login=` for the id, then `PATCH /api/v1/people/<id>` | the person as they are now; for an administrator |
|
|
49
49
|
| `person add <login> [--host gh\|google]`, `person remove <login>` | `POST /api/v1/listings`; `GET /api/v1/people` for the id, then `DELETE /api/v1/listings/<id>` | the login let in (the host read off the login unless `--host` says: an address is Google's, anything else the git host's), or that it is no longer; for an administrator ([ADR-0022](../adr/0022-who-is-in-is-the-consoles-own-record-and-an-administrator-keeps-it.md)) |
|
|
50
50
|
| `person deactivate <login>`, `person reactivate <login>` | `GET /api/v1/people?login=` for the id, then `PATCH /api/v1/people/<id>` with `status` | the person as they are now: out, refused on every request with their agents, or back in; for an administrator; never a person the organization let in |
|
|
51
51
|
| `project <key>` | `GET /api/v1/projects/<key>` | the project in full: what it is, its mark, its skills address, what the person is in it |
|
|
52
|
-
| `project new <key> <name> [--description <markdown>\|--file <path>] [--visibility workspace\|private] [--skills <address>\|none] [--color <name>] [--symbol <text>]` | `POST /api/v1/projects` | the key and the name; the person is its owner |
|
|
52
|
+
| `project new <key> <name> [--description <markdown>\|--file <path>] [--visibility workspace\|private] [--skills <address>\|none] [--color <name>] [--symbol <text>]` | `POST /api/v1/projects` | the key and the name; the person is its owner; for an administrator ([ADR-0045](../adr/0045-a-project-is-made-by-an-administrator.md)) |
|
|
53
53
|
| `project edit <key> [--name <name>] [the same flags; `none` clears]` | `PATCH /api/v1/projects/<key>` | the project in full, as it is now; for an owner |
|
|
54
54
|
| `project icon <key> <file>`, `project icon <key> --remove` | `POST .../icon` as a form, or `DELETE .../icon` | the same |
|
|
55
|
-
| `project pack-token <key> --connect` | `POST .../pack-token/connect`, then `
|
|
55
|
+
| `project pack-token <key> --connect` | `POST .../pack-token/connect`, then `POST .../pack-token/connect/claim` at the interval the deployment named, until the token is kept or the request ended | the page at SkillCDN and the code for a person who may open the repository, then that the pack is connected and the project as it is now, never the token; `1` when the code expired, the request was declined or the deployment refused; for an owner ([ADR-0036](../adr/0036-a-private-pack-is-connected-with-a-code-a-person-approves-from-the-projects-settings.md)) |
|
|
56
56
|
| `project pack-token <key> --stdin`, `project pack-token <key> --remove` | `PUT .../pack-token` with the token read from standard input, or `DELETE .../pack-token` | the project as it is now, saying when the SkillCDN token was set and never the token; for an owner ([ADR-0028](../adr/0028-the-console-reads-a-projects-pack-through-the-deployments-rest-api-with-a-pack-token-for-a-private-one.md)) |
|
|
57
57
|
| `members` | `GET .../members` | one line per member: login, role, since when; in a project open to the workspace, everyone of it ([ADR-0035](../adr/0035-who-may-see-whom-is-decided-by-one-policy-and-the-workspace-keeps-its-settings.md)) |
|
|
58
58
|
| `member add <login> [--role owner\|member] [--project <key>[,<key>...]]`, `member role <login> <owner\|member>`, `member remove <login>` | `GET /api/v1/people?login=` for the id, then `POST .../members` (once per project when `--project` names several with commas), `PATCH .../members/<id>`, `DELETE .../members/<id>` | the member as they are now, or that they are no longer listed; with several projects, one line per project, a person listed already said so; for an owner. In a project open to the workspace everyone is a member already: `add` lists an owner with `--role owner` and refuses a member (`member.open_project`), `role <login> owner` lists one and `role <login> member` takes the listing away, `remove` takes a listing away and the person stays a member |
|
|
59
59
|
| `category new <key> <name> [--color <name>]`, `category edit <key> [--name <name>] [--color <name>]`, `category remove <key>` | `POST /api/v1/categories`, `PATCH .../categories/<key>`, `DELETE .../categories/<key>` | the category as it is now, or that it is gone; for an administrator |
|
|
60
|
-
| `skills`, `skills <folder\|file>`, `skills --search <words> [<folder>] [--limit <n>] [--cursor <cursor>]` | `GET .../skills`; `GET .../skills/browse?path=&cursor=`, page after page to the end; `GET .../skills/find?query=&path=&cursor=&limit=`, one page | the project's pack, or the organization's ([ADR-0031](../adr/0031-the-console-reads-a-pack-as-the-skillcdn-command-does-and-a-local-one-from-a-directory.md)): where it is, at a deployment or on the console's machine, and how the read went; what a client is told of it on connect, as the deployment tells one, with the reads named as the console's commands; every skill with the path of its `SKILL.md` and every document, as a search without words lists them; where a person connects an agent of its own, and where the console's own skills are on this machine. With a folder (`.` for the root; `/` is taken too, but a Windows shell rewrites it into a path before the command sees it), what it holds, whole, as `browse_repo` lays it out for a model. With a file's path, the file's outline, whole: every heading with its level and the offset and limit that read its section with `skill --file`; a file that is not Markdown has none, and the line says so (SkillCDN 0.4). With `--search`, one page of what the words find, as `search_repo` does: skills first with the files of theirs that matched, then documents, each with the sections of it that matched and the offset and limit that read each, in relevance order, within the folder when one is named, ten unless `--limit` says otherwise (up to 25), a line on how the page was ranked where the deployment searches by meaning too, and a `nextCursor` line when more matched, which `--cursor` continues. `--json` is the console's answer: what the pack answered, in the shapes of the main repository's REST API, the pages of a folder or an outline joined |
|
|
60
|
+
| `skills`, `skills <folder\|file>`, `skills --search <words> [<folder>] [--limit <n>] [--cursor <cursor>]` | `GET .../skills`; `GET .../skills/browse?path=&cursor=`, page after page to the end; `GET .../skills/find?query=&path=&cursor=&limit=`, one page | the project's pack, or the organization's ([ADR-0031](../adr/0031-the-console-reads-a-pack-as-the-skillcdn-command-does-and-a-local-one-from-a-directory.md)): where it is, at a deployment or on the console's machine, and how the read went; what a client is told of it on connect, as the deployment tells one, with the reads named as the console's commands; every skill with the path of its `SKILL.md` and every document, as a search without words lists them; where a person connects an agent of its own, and where the console's own skills are on this machine. With a folder (`.` for the root; `/` is taken too, but a Windows shell rewrites it into a path before the command sees it), what it holds, whole, as `browse_repo` lays it out for a model. With a file's path, the file's outline, whole: every heading with its level and the offset and limit that read its section with `skill --file`; a file that is not Markdown has none, and the line says so (SkillCDN 0.4). With `--search`, one page of what the words find, as `search_repo` does: skills first with the files of theirs that matched, then documents, each with the sections of it that matched and the offset and limit that read each, in relevance order, within the folder when one is named, ten unless `--limit` says otherwise (up to 25), a line on how the page was ranked where the deployment searches by meaning too, and a `nextCursor` line when more matched, which `--cursor` continues. `--json` is the console's answer: what the pack answered, in the shapes of the main repository's REST API, the pages of a folder or an outline joined. The listing ends with where the plugins' own skills are: `console plugin <key> skills` |
|
|
61
61
|
| `skill <path>`, `skill --file <path> [--offset <n>] [--limit <n>]` | `GET .../skills`, then `GET .../skills/one?path=&cursor=`, page after page until `complete`; with `--file`, `GET .../skills/file?path=&offset=` until the end, or, with `--offset` or `--limit`, `GET .../skills/file?path=&offset=&limit=` once | the skill whole, as `load_skill` lays it out for a model: the rules of the repository from its root to the nearest manifest, the instructions, the included files, then its supporting files and what it refers to, rendered by the main repository's own renderers with the reads named as the console's commands; or the file whole, or what a folder holds; or, with `--offset` (0 or more) or `--limit` (1 to 100,000), one page of the file as asked, the section a search or an outline named, with where the file continues; a private pack through the pack token the project holds ([ADR-0028](../adr/0028-the-console-reads-a-projects-pack-through-the-deployments-rest-api-with-a-pack-token-for-a-private-one.md)). `<path>` is the path of the SKILL.md from the repository's root, or the URI the pack names it by (`skill://<host>/<owner>/<name>/<path>`); a URI of another pack is not understood. `--file` takes no skill's path beside it, and `--offset` and `--limit` go with `--file` only: otherwise not understood. A read the pack refused prints its status and the pack's own words, and exits with `0` |
|
|
62
|
-
| `rules` | `GET .../rules`, or `GET /api/v1/rules` without a project named, and `GET /api/v1/me` | the rules that hold, as they read for the person (`{language}` is the language they chose, or the task's) ([ADR-0023](../adr/0023-the-rules-of-a-board-are-pages-the-workspace-and-its-projects-keep-read-first-by-every-agent.md)): the workspace's, the console's own until an administrator writes the organization's, with its version and who wrote it when written; then this project's own, or that it adds none |
|
|
62
|
+
| `rules` | `GET .../rules`, or `GET /api/v1/rules` without a project named, and `GET /api/v1/me` | the rules that hold, as they read for the person (`{language}` is the language they chose, or the task's) ([ADR-0023](../adr/0023-the-rules-of-a-board-are-pages-the-workspace-and-its-projects-keep-read-first-by-every-agent.md)): the workspace's, the console's own until an administrator writes the organization's, with its version and who wrote it when written; then this project's own, or that it adds none; then, under `## Plugins`, a line per plugin bound to the project that the person holds a role in, or at the workspace every plugin they may use, with the sentence its manifest gives agents and `console plugin <key>` to start with ([plugins.md](plugins.md), "The command") |
|
|
63
63
|
| `rules write --body <markdown>\|--file <path>\|-\|none [--workspace] [--base <version>]` | `PUT .../docs/rules` or `POST .../docs/rules/archive`; with `--workspace`, `PUT /api/v1/rules` or `POST /api/v1/rules/archive` | the version written, that the console's own rules sent as they are wrote nothing, or that the rules are put away; for an owner of the project, or an administrator for the workspace's |
|
|
64
|
-
| `
|
|
64
|
+
| `plugins` | `GET /api/v1/plugins`, `GET /api/v1/me` | one line per plugin the person may use ([plugins.md](plugins.md)): key, name in their language, version, state, their roles in it. Needs no project |
|
|
65
|
+
| `plugin <key>` | `GET /api/v1/plugins/<key>`, `GET /api/v1/me` | the plugin whole: what it is, the sentence for agents, the roles held in it, its board project, a line per command and query the person may run with its usage, where its skills are, its settings |
|
|
66
|
+
| `plugin <key> help [<command>]` | `GET /api/v1/plugins/<key>` | one command or query in full, as `help <command>` prints one: the usage, the arguments with their types and bounds, the roles, the refusals; or every one in a line |
|
|
67
|
+
| `plugin <key> <command> [<args>] [--<name> <value>]... [--file <path> \| -] [--run <id>]` | `POST /api/v1/plugins/<key>/files` as a form, where `--file` or `-`; then `POST /api/v1/plugins/<key>/invoke` with the words as typed after the command's name, the handle, the project the command works in and the run named | what the command says, or a query's answer as JSON, a file a query answers saved under its name; `--json` the whole answer; exit `3` with the decision's id and `console decision <id> --wait 100` when the command raised one; the console's refusal with its code otherwise. `--json`, `--url`, `--account`, `--project`, `--file` and `--run` are the command's own wherever they stand; every other word is the plugin's, and the console parses them against the definition |
|
|
68
|
+
| `plugin <key> records <collection> [<id>] [--where <field>=<value>]... [--search <words>] [--project <key>] [--order <field>[:desc]] [--limit <n>] [--after <cursor>] [--archived] [--versions]` | `GET .../records/<collection>?where=&q=&project=&order=&limit=&after=&archived=`; `GET .../records/<collection>/<id>`, `.../versions` | the records the person may read, one a line with the data compact, and the cursor the next page is asked with; one record whole; its versions |
|
|
69
|
+
| `plugin <key> skills [<folder>\|<file>] [--search <words>]`, `plugin <key> skill <path>`, `plugin <key> skill --file <path> [--offset <n>] [--limit <n>]` | `GET /api/v1/plugins/<key>/skills`, `.../skills/one`, `.../skills/file`, `.../skills/browse`, `.../skills/find`, as `skills` and `skill` ask a project's | the plugin's own skills, a pack read from its package, printed exactly as `skills` and `skill` print a project's |
|
|
70
|
+
| `plugin <key> enable --consent <capability>,... [--board new\|<key>] [--projects all\|<key>,...] [--set <key>=<value>]...`, `plugin <key> disable`, `plugin <key> settings [--set <key>=<value>]...`, `plugin <key> secret <name> [--remove]`, `plugin <key> grant <role> --person <login>\|--project <key>\|--everyone`, `plugin <key> revoke <grant id>` | `GET /api/v1/plugins/<key>` first; then `POST .../enable`, `POST .../disable`, `PATCH .../settings`, `PUT` or `DELETE .../secrets/<name>` with the value read from standard input, `GET /api/v1/people?login=` then `POST .../grants`, `DELETE .../grants/<id>` | for an administrator: `enable` prints what each capability the plugin asks opens and refuses unless `--consent` names every one again, makes the board project the manifest proposes with `--board new` or chooses one by key, puts the plugin on every project or on the keys named, and sets the settings read as their types, an empty value clearing one; what changed, as it is now; a secret is sealed and shown never |
|
|
71
|
+
| `take <number\|id> [--agent <name>]` | `GET .../tasks/<ref>`, then `POST .../runs`, then `GET .../rules`, `GET /api/v1/me`, `GET .../tasks/<ref>` again, `GET .../tasks/<id>/comments` and `GET .../runs?open=true&mine=true` | the run that began, with the run's id and the task's id on a line of their own, the task in full as it stands taken with the discussion on it, the rules that hold as they read for the person, with the plugins bound to the project under `## Plugins` as `rules` prints them, and what to do next; a run open on the task is taken over, and that is said when it happened ([ADR-0020](../adr/0020-the-console-does-not-claim-an-agent-is-at-work-a-run-says-when-it-was-last-heard-from-and-a-new-run-takes-over.md)); another run of the token open in the project is named, with the `--run <id>` to say on every command on a run from here |
|
|
65
72
|
| `report <markdown> [--run <id>]`, `report --file <path> [--run <id>]`, `report - [--run <id>]` | `POST .../runs/<id>/reports` | how many reports the run carries |
|
|
66
73
|
| `hand-in <https url \| file path> [--label <words>] [--run <id>]` | `POST .../runs/<id>/artifacts` for a link; `POST .../runs/<id>/files` for a file, sent as a form with its name and its media type by extension | how many artifacts; a picture handed in is shown on the task, and where a report names it as `` |
|
|
67
74
|
| `comment <number\|id> "<markdown>" [--attach <path>]...`, `comment <number\|id> --file <path>`, `comment <number\|id> -` | `GET .../tasks/<ref>`, then `POST .../tasks/<id>/comments`: as JSON, or as one form with the part `body` and a part `file` per file attached, its media type by extension | the comment as written, with its files and the command that reads each; a word to the task's people, which needs no run ([ADR-0024](../adr/0024-a-task-carries-a-discussion-of-comments-with-their-files-read-as-one-thread-with-the-runs-and-the-decisions.md)) |
|
|
@@ -122,7 +129,7 @@ Plain text on standard output: one line per thing in a list, a few lines for one
|
|
|
122
129
|
|
|
123
130
|
## What an agent is told
|
|
124
131
|
|
|
125
|
-
The command's help has two layers. `console help` is the map, read once at the start: what the board is, that the agent acts as the person whose token it holds and that everything it sends is shown to people as text, which project the commands work in and how it is named; then every command in a line, by section (signing in, the board, working, the documents, configuring), each with what it does in a sentence, a many-formed command (`task`, `goal`, `project`) listing its forms without their flags; then what holds everywhere, the exit codes and the refusals any command may meet. `console help <command>` is the reference, read when the command is about to be used: the command in full, every form and flag, what each does, the limits the console holds it to (how long a report, a summary, a question or an option may be; how many options, reports and links) and the refusals it may meet, by code, so that an agent learns them before it runs into them. The help says what the command does; how the work goes and what the organization asks are the skill's and the rules', and are not repeated in it. The skill `working-the-board` ([skills/working-the-board/SKILL.md](../../skills/working-the-board/SKILL.md), [ADR-0015](../adr/0015-the-consoles-skills-live-in-this-repository-in-the-skillcdn-format-and-the-package-carries-them.md)) says how the work goes: reading, taking, reporting at the milestones, asking and waiting, handing in, writing down, finishing. The rules of the board say what the organization and the project ask of agents ([ADR-0023](../adr/0023-the-rules-of-a-board-are-pages-the-workspace-and-its-projects-keep-read-first-by-every-agent.md)): which tasks to take, which skills to load first, what to report, when to ask; `take` prints them with the task, so that they are read once, there, and `console rules` reads them any time, as when a task is still to be chosen.
|
|
132
|
+
The command's help has two layers. `console help` is the map, read once at the start: what the board is, that the agent acts as the person whose token it holds and that everything it sends is shown to people as text, which project the commands work in and how it is named; then every command in a line, by section (signing in, the board, working, the documents, configuring), each with what it does in a sentence, a many-formed command (`task`, `goal`, `project`) listing its forms without their flags; then what holds everywhere, the exit codes and the refusals any command may meet. `console help <command>` is the reference, read when the command is about to be used: the command in full, every form and flag, what each does, the limits the console holds it to (how long a report, a summary, a question or an option may be; how many options, reports and links) and the refusals it may meet, by code, so that an agent learns them before it runs into them. The help says what the command does; how the work goes and what the organization asks are the skill's and the rules', and are not repeated in it. The skill `working-the-board` ([skills/working-the-board/SKILL.md](../../skills/working-the-board/SKILL.md), [ADR-0015](../adr/0015-the-consoles-skills-live-in-this-repository-in-the-skillcdn-format-and-the-package-carries-them.md)) says how the work goes: reading, taking, reporting at the milestones, asking and waiting, handing in, writing down, finishing. The rules of the board say what the organization and the project ask of agents ([ADR-0023](../adr/0023-the-rules-of-a-board-are-pages-the-workspace-and-its-projects-keep-read-first-by-every-agent.md)): which tasks to take, which skills to load first, what to report, when to ask; `take` prints them with the task, so that they are read once, there, and `console rules` reads them any time, as when a task is still to be chosen. The plugins of the console, if it has any, are two commands in a section of their own, `console plugins` and `console plugin <key>`; the rules a task prints end with the plugins bound to the project, a line each, and `console plugin <key>` is then read before its first command, with the plugin's own skills ([plugins.md](plugins.md), "The command").
|
|
126
133
|
|
|
127
134
|
## Running an agent on a task
|
|
128
135
|
|