cohorte 3.0.0-dev.1 → 3.0.0-dev.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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "manifestVersion": 1,
3
- "cohorteVersion": "3.0.0-dev.1",
3
+ "cohorteVersion": "3.0.0-dev.2",
4
4
  "algorithm": "sha256",
5
5
  "treeSha256": "b0988b7a3040d59aa44b1e5637dec54344b144c7991deac7b8e1f055aad8f2aa",
6
6
  "files": [
@@ -7,18 +7,18 @@
7
7
  "chunks/approve-Cv135UqI.mjs.map": "591ec1c955d716ff701ffc80547b35501637fe9394eb5e7f890573256ba58671",
8
8
  "chunks/auth-BT5oVp76.mjs": "dc3e23b73b9315625cd6e6f29724b19cfbbc1a6e4f6ef8fb3bcb5043e4fa024d",
9
9
  "chunks/auth-BT5oVp76.mjs.map": "d2f9f55f7e62812dc5b51ed2c19e8868c2da10598f111b0e0efbdabdb1f2ff21",
10
- "chunks/auth-CYOh60KG.mjs": "32124ce47f62b34df05c42709710f30ce495f2b29709b56dfe30c1cc82a8426c",
11
- "chunks/auth-CYOh60KG.mjs.map": "0ce18a8c4b70021a7b3ca08f058bff33891c71745c3ce3988894185a6d3f08e1",
10
+ "chunks/auth-ybswxUPK.mjs": "d9c47f201762f3e0fd63e67718af83584e0ef7de0ac429ff48ca863481a716ea",
11
+ "chunks/auth-ybswxUPK.mjs.map": "aae7c3264901e57ecd2b10ba7e56de1fff39e09074dba6184fd883af07b81990",
12
12
  "chunks/brainstorm-BwKA6yZP.mjs": "d462fe4cc908205599a49af9870ee1cc945e6bfa13006b60b15af838fafa41bd",
13
13
  "chunks/brainstorm-BwKA6yZP.mjs.map": "6ae68c1ea9b8fc80f08a33c08a2a5dbb5b1940119143b81cff400a233e0137fc",
14
14
  "chunks/cancel-KV_cpsqS.mjs": "a58787b67ff0e4e36f301f01bf683e7a39340fcc7a9f8201887afc250a248155",
15
15
  "chunks/cancel-KV_cpsqS.mjs.map": "d95aa4e6b9ba3388b200f834c124dab064eafb119b08aba8f69fea560643d7dc",
16
16
  "chunks/canonical-C8UxeEmB.mjs": "81de21827f9dcbb402599424cbbc0850bcfdf51eb71d7d6e9cf6fb094a40e17b",
17
17
  "chunks/canonical-C8UxeEmB.mjs.map": "7f683738f91a995f0181c224be62d6b13889dab16e308839329762c87f2244c1",
18
- "chunks/catalogue-BvwSrM_j.mjs": "fb6401d7f5c001590a9d0857f3939ba6771272aab2bde08ac7fba27967a35fe1",
19
- "chunks/catalogue-BvwSrM_j.mjs.map": "1c34d2f5853ab28f7ab8a1c92017e8215a7946239dd29afa31e1cb479256a987",
20
- "chunks/compose-Dvxunpto.mjs": "5d4441942593c4931137d0445349b048248609e46b6494f4a139c44544ebcfaf",
21
- "chunks/compose-Dvxunpto.mjs.map": "fbb7940038e1b7447b40ae90328c0115c0055b0767711dae5bf982f5cb963b7c",
18
+ "chunks/catalogue-B5uFqfzJ.mjs": "58716aede8cc56b09305edee2d48fdf1f57420fc492c763ae4e75de1b64bf70c",
19
+ "chunks/catalogue-B5uFqfzJ.mjs.map": "bb796e82d4c7d03d6d8eb88d13f5cb90484aa5e532fce8908563ccc8e8957903",
20
+ "chunks/compose-C0rEh5wB.mjs": "4137497e8b58fa60914a7b55c3922d05b7b1343a8450c0bd3b0279e525b718fa",
21
+ "chunks/compose-C0rEh5wB.mjs.map": "8c05ba88886784b1afbf05b0b6c94e01604633cc849b87cb5534cc49ce9d6705",
22
22
  "chunks/config-DefHA2Lw.mjs": "89695a150a5a9a9aa0c0091e3f6a3e2cb8c372ef5a10a51c7243a57ab5e20d4f",
23
23
  "chunks/config-DefHA2Lw.mjs.map": "a8d12fad50d509410461860ee41b92234a5021b43488a73fb510bd9cb2a79195",
24
24
  "chunks/contract-BkMjU1kR.mjs": "d9cea311263df193ec80357701d4a58cd5494954cf00b97d47440ce88fe3033e",
@@ -27,12 +27,12 @@
27
27
  "chunks/contract-bQ9FJl4N.mjs.map": "ae3848d143086a45de307396ed2c683e002efb3efa7b780d4a72222c29999807",
28
28
  "chunks/deny-ClTxSvHJ.mjs": "c15d9da9cd878b6d630db16db1c1ceac39768052e361e92326ed311254ae6efd",
29
29
  "chunks/deny-ClTxSvHJ.mjs.map": "d9e2562664a51cb652d35904de61354921adf3596b3f2de42316a70664c6f5f6",
30
- "chunks/diff-Qw0II0sj.mjs": "9f04abefb2458fa3d04695354ad4a1f441f5c60259761a02c7349f1db9bcb834",
31
- "chunks/diff-Qw0II0sj.mjs.map": "92d3e83f85953c7d6ad0c4e38711021096e134c545c2067a788491301b679777",
30
+ "chunks/diff-D_0hBwHl.mjs": "5dd7c2f0816aad91f44268c232341e5e798cf50c8754c5829165dc13c8c3c330",
31
+ "chunks/diff-D_0hBwHl.mjs.map": "e60b18d708904de2926e5a60653bb4e74afe99a339f6289a77acf72561b49df2",
32
32
  "chunks/discover-eS01-me1.mjs": "cc820731956110a734a7704b7a758210fb450f242b5b824f3e479f7f30b47624",
33
33
  "chunks/discover-eS01-me1.mjs.map": "00b2e9370ef097880d4283737735bd14cff654fdd926596ebe767108351f624b",
34
- "chunks/doctor-B-H2UK5e.mjs": "ce6fb4defa7282e5a9dfbb31f29b5d8b0de3ac9aa8cff2a84adf257ee86e7554",
35
- "chunks/doctor-B-H2UK5e.mjs.map": "c72d1be51648ee76214e28ed516cae9e4c50c148d6716cff7c3d38a68820b618",
34
+ "chunks/doctor-CginW8y8.mjs": "3f0d4b3962b92d7371b9ca245c8e8a67bd01f4689c18c7bdb884ee4bcc43737c",
35
+ "chunks/doctor-CginW8y8.mjs.map": "d6d6cf03da48af9bd0e3bf0379c4082a0b9486d4f8f8a9c4514a82eeea50845f",
36
36
  "chunks/fix-D4Tj8RVA.mjs": "921fb776daf53262fce2e57c351c7412b68604cba3733779b7b1a27deaa29b90",
37
37
  "chunks/fix-D4Tj8RVA.mjs.map": "5526a0af1fc1de5f56b17b9794a87f3d56767f86f0800e24a82e93a82a1c4c8c",
38
38
  "chunks/gc-BBXlBF5w.mjs": "8d5e39d1aee4be244d065c25ed7e43fcbf47218e241903c772f772bcf201b317",
@@ -49,8 +49,8 @@
49
49
  "chunks/models-Btp6X2YZ.mjs.map": "2973e5a7d3cf68f2006df821da5458f62ab892b7a79b1003a200f4cd07b446b8",
50
50
  "chunks/pause-BASBfKLO.mjs": "f689005d4da154c6ecaabc8219879506353227cd54e5cbb966f820b5404d1572",
51
51
  "chunks/pause-BASBfKLO.mjs.map": "c4a5e4acea758923384e6cead9a04cf4c72bfd3c143d36b5b5f193282a643099",
52
- "chunks/policy-DUIgzF3W.mjs": "ed8c481f3d2ae68aa47b27f924964fb31000df4a38293ffbf8d358cbfb830813",
53
- "chunks/policy-DUIgzF3W.mjs.map": "536de8c10ed907e14cb138f8b9ff09e29f3dcb76c78b7db860722b93ef95fc18",
52
+ "chunks/policy-Clypo20s.mjs": "95dfe7d213c8c553d8c6487f16335b6ef92496f492d8da815dcb2a15a3c6df2c",
53
+ "chunks/policy-Clypo20s.mjs.map": "8decec17a5147e058b843b1237ab12c2bbd18505aa62ee59f17c62ecde095389",
54
54
  "chunks/providers-Dx78imKj.mjs": "08b94fa141f4d4a13258304f441a0e8f29dc6b103107c031a7fa1c9357e5aaba",
55
55
  "chunks/providers-Dx78imKj.mjs.map": "a57182df4581da66ce5d02d852d3f083d7752801290918342dd6094acb959576",
56
56
  "chunks/reconcile-Bhy3IIYo.mjs": "be8f15f64eeb5d839a83f4d89e714ee6853635c2390273ce35816fd9f592b98c",
@@ -81,16 +81,16 @@
81
81
  "chunks/skip-DZG5kpcH.mjs.map": "77fcc41d0188d23b5ad17321258beb24b90bcd7aad80c6f952b23317e06ba2cd",
82
82
  "chunks/spec-Bq0P3jVh.mjs": "08674514e132059f6ddc67b0f92edbf44ad5e3ad65811a7957d85b13fc0deaea",
83
83
  "chunks/spec-Bq0P3jVh.mjs.map": "9746f35b366ec599dc920cc56977832b17612fdd9e6b13c2b2f2eabd0f03f4d1",
84
- "chunks/src-CId6kMsY.mjs": "ad5e12f809266d8a66e7925b78e39e94c207dd685db92d70afb8cf3cdde9554a",
85
- "chunks/src-CId6kMsY.mjs.map": "da936068c535da40b07a8e926ab3a5f164a47f52b40508cfc490389d34e410e9",
86
- "chunks/src-CfAOde7C.mjs": "131ca62d3cbbd1012b44f328d88816d8db1c35609b81dbe113163abf52a10d2c",
87
- "chunks/src-CfAOde7C.mjs.map": "f4e0a52d22ac92e1a91c46861fe83495d0e7e6e020aee400be49cc2b1117461d",
88
84
  "chunks/src-CmFjh4M0.mjs": "3b904a86c1f26746f4b1483a563dee68bc26d4b4b42a5498954a563e16bd5a52",
89
85
  "chunks/src-CmFjh4M0.mjs.map": "5f9110f9a53f07d27413388b8ab48eb6cad3bdfb1ae160fac6d3b59d45b3d2af",
90
86
  "chunks/src-Cu3TxNob.mjs": "462fa47682c4613351dea593a703bed0e098f9d2753f527d1878fb041ce00481",
91
87
  "chunks/src-Cu3TxNob.mjs.map": "c7ee88bb5230c2132a16bfd156bb849644e9ab5b3da4fdfd22191dd7d943a792",
88
+ "chunks/src-DZazJCp1.mjs": "861aeb557fef7fb1103e66ccc6dfa82470e6e6fd8a5b5620c3880f8630b450a9",
89
+ "chunks/src-DZazJCp1.mjs.map": "9ac557ccc7a72d020ff48d4dfd24a8f8c2fbdad009ec074506a9c105be513f77",
92
90
  "chunks/src-DcU4IXMe.mjs": "652f7db3cf70f79c7194d03382176c60cc5ddc745bd68619b95efff1a2e95adc",
93
91
  "chunks/src-DcU4IXMe.mjs.map": "6a266ea715e71c303de472458d15a4c8f284dc0a212773d86426da5318fd1b88",
92
+ "chunks/src-r0ECB1UJ.mjs": "94b7580d1eb852c1c5c3681c8322132617913a76b56e5ea0bde0cbcb96700a87",
93
+ "chunks/src-r0ECB1UJ.mjs.map": "e7792478b0f36fda418bf082352f116fe64206ae125ac5a95d43bede9677a0d5",
94
94
  "chunks/src-s7YRvk0t.mjs": "54f73aae29cf07720cefded111799db4f1668b7cb66f847490f9a02f5b39fbb2",
95
95
  "chunks/src-s7YRvk0t.mjs.map": "c1b77cf4696d58dcea0b568a52e4dc123dca57df48c593eceaaa53c21e53466a",
96
96
  "chunks/status-SMjiOMYy.mjs": "01c0dbc2fd6573bfb5134de328b6df1d6631e4a8f47fd65da56e16375e73f63f",
@@ -99,6 +99,6 @@
99
99
  "chunks/tail-BuhT-2PH.mjs.map": "5d44106e9044ca20a281f499d543c1f1955007a97f5427ee89550c3bbd129725",
100
100
  "chunks/update-BXIppsbi.mjs": "0207788cf68937696d41f94ed082c823ae0782e6afc624e741d35015879bd0d9",
101
101
  "chunks/update-BXIppsbi.mjs.map": "ef6972b3c42b9abd0e7dcc12b6e92ecfd980bfe5cf2a304138fd4afca6ec3adc",
102
- "cli.mjs": "7673161e65f4a86d874cac113a938d56b3d5f297649eebb7dfc79938e17fe618",
103
- "cli.mjs.map": "0d9ba2d0be3ca7785b004871d539642b22d15386284505a92cb7da39f684431c"
102
+ "cli.mjs": "8d2479a9ffedde37b4bae91b49d2281e46af29a7e239a1f648684158c451d969",
103
+ "cli.mjs.map": "d6d61509e41294cbdbc553b2c621abf05fb883f6aa84d4334c06c40fc7298304"
104
104
  }
@@ -1,5 +1,32 @@
1
+ import { spawn } from "node:child_process";
1
2
  import { createInterface } from "node:readline/promises";
2
3
  //#region src/commands/auth/index.ts
4
+ /** Open an OAuth URL without involving a shell. The URL is always printed by the caller as a fallback. */
5
+ function openBrowser(rawUrl, spawnProcess = spawn) {
6
+ let url;
7
+ try {
8
+ url = new URL(rawUrl);
9
+ } catch {
10
+ return false;
11
+ }
12
+ if (url.protocol !== "https:" && url.protocol !== "http:") return false;
13
+ const command = process.platform === "darwin" ? "open" : process.platform === "win32" ? "cmd.exe" : "xdg-open";
14
+ const args = process.platform === "win32" ? [
15
+ "/c",
16
+ "start",
17
+ "",
18
+ url.toString()
19
+ ] : [url.toString()];
20
+ try {
21
+ spawnProcess(command, args, {
22
+ detached: true,
23
+ stdio: "ignore"
24
+ }).unref();
25
+ return true;
26
+ } catch {
27
+ return false;
28
+ }
29
+ }
3
30
  function document(ctx, statuses) {
4
31
  return {
5
32
  documentVersion: 1,
@@ -29,6 +56,22 @@ async function loginUi(ctx, signal) {
29
56
  signal.addEventListener("abort", abort, { once: true });
30
57
  return {
31
58
  show(event) {
59
+ if (event.kind === "open-url") {
60
+ const lines = [event.instructions, event.url ? `Open: ${event.url}` : void 0].filter((value) => Boolean(value));
61
+ if (lines.length) ctx.stdio.stdout.write(`${lines.join("\n")}\n`);
62
+ if (event.url) openBrowser(event.url);
63
+ return;
64
+ }
65
+ if (event.kind === "device-code") {
66
+ const lines = [
67
+ event.verificationUri ? `Open: ${event.verificationUri}` : void 0,
68
+ event.userCode ? `Code: ${event.userCode}` : void 0,
69
+ event.instructions,
70
+ event.message
71
+ ].filter((value) => Boolean(value));
72
+ if (lines.length) ctx.stdio.stdout.write(`${lines.join("\n")}\n`);
73
+ return;
74
+ }
32
75
  const text = event.message ?? event.instructions ?? event.url ?? event.verificationUri ?? event.userCode ?? "";
33
76
  if (text) ctx.stdio.stdout.write(`${text}\n`);
34
77
  },
@@ -88,6 +131,6 @@ const auth = {
88
131
  }
89
132
  };
90
133
  //#endregion
91
- export { auth as default };
134
+ export { auth as default, openBrowser };
92
135
 
93
- //# sourceMappingURL=auth-CYOh60KG.mjs.map
136
+ //# sourceMappingURL=auth-ybswxUPK.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-ybswxUPK.mjs","names":[],"sources":["../../../../apps/cli/src/commands/auth/index.ts"],"sourcesContent":["// apps/cli/src/commands/auth/index.ts — DESIGN §9 verb `auth`; provider authentication is delegated to the\n// selected runtime child so credentials never cross the CLI/runtime boundary.\nimport { spawn } from 'node:child_process';\nimport { createInterface } from 'node:readline/promises';\nimport type { ProviderAuthStatus } from '@cohorte/runtime-contract';\nimport type { CommandModule } from '../../contract/index.ts';\n\ntype Spawn = typeof spawn;\n\n/** Open an OAuth URL without involving a shell. The URL is always printed by the caller as a fallback. */\nexport function openBrowser(rawUrl: string, spawnProcess: Spawn = spawn): boolean {\n let url: URL;\n try {\n url = new URL(rawUrl);\n } catch {\n return false;\n }\n if (url.protocol !== 'https:' && url.protocol !== 'http:') return false;\n\n const command = process.platform === 'darwin' ? 'open' : process.platform === 'win32' ? 'cmd.exe' : 'xdg-open';\n const args = process.platform === 'win32' ? ['/c', 'start', '', url.toString()] : [url.toString()];\n try {\n const child = spawnProcess(command, args, { detached: true, stdio: 'ignore' });\n child.unref();\n return true;\n } catch {\n return false;\n }\n}\n\nfunction document(ctx: Parameters<CommandModule['run']>[0], statuses: ProviderAuthStatus[]) {\n return {\n documentVersion: 1,\n generatedAt: ctx.clock.now(),\n runtime: (() => {\n const runtime = ctx.runtime.resolve();\n return { id: runtime.id, version: 'unknown' };\n })(),\n providers: statuses.map((status) => ({\n ...status,\n ...(status.accountLabel === undefined ? { accountLabelNote: 'account: not exposed by the engine' } : {}),\n })),\n };\n}\n\nfunction print(ctx: Parameters<CommandModule['run']>[0], value: ReturnType<typeof document>): void {\n if (ctx.stdio.stdout && value) ctx.stdio.stdout.write(`${JSON.stringify(value)}\\n`);\n}\n\nasync function loginUi(ctx: Parameters<CommandModule['run']>[0], signal: AbortSignal) {\n const readline = createInterface({ input: ctx.stdio.stdin, output: ctx.stdio.stdout, terminal: false });\n const abort = () => readline.close();\n signal.addEventListener('abort', abort, { once: true });\n return {\n show(event: {\n kind: string;\n url?: string;\n instructions?: string;\n message?: string;\n userCode?: string;\n verificationUri?: string;\n }) {\n if (event.kind === 'open-url') {\n const lines = [event.instructions, event.url ? `Open: ${event.url}` : undefined].filter(\n (value): value is string => Boolean(value),\n );\n if (lines.length) ctx.stdio.stdout.write(`${lines.join('\\n')}\\n`);\n if (event.url) openBrowser(event.url);\n return;\n }\n if (event.kind === 'device-code') {\n const lines = [\n event.verificationUri ? `Open: ${event.verificationUri}` : undefined,\n event.userCode ? `Code: ${event.userCode}` : undefined,\n event.instructions,\n event.message,\n ].filter((value): value is string => Boolean(value));\n if (lines.length) ctx.stdio.stdout.write(`${lines.join('\\n')}\\n`);\n return;\n }\n const text = event.message ?? event.instructions ?? event.url ?? event.verificationUri ?? event.userCode ?? '';\n if (text) ctx.stdio.stdout.write(`${text}\\n`);\n },\n async ask(prompt: { kind: string; message: string; options?: { id: string; label: string }[] }) {\n if (prompt.kind === 'select' && prompt.options?.length) {\n ctx.stdio.stdout.write(`${prompt.message}\\n`);\n prompt.options.forEach((option, index) => {\n ctx.stdio.stdout.write(` ${index + 1}. ${option.label}\\n`);\n });\n const answer = await readline.question('Choice: ');\n const index = Number.parseInt(answer, 10) - 1;\n return prompt.options[index]?.id ?? answer;\n }\n return readline.question(`${prompt.message} `);\n },\n close() {\n signal.removeEventListener('abort', abort);\n readline.close();\n },\n };\n}\n\nconst auth: CommandModule = {\n verb: 'auth',\n async run(ctx, args) {\n const runtime = ctx.runtime.resolve();\n const provider = args.positionals[0];\n if (args.subVerb === 'status' || args.subVerb === undefined) {\n const statuses = await runtime.authStatus(provider ? [provider] : ['openai-codex', 'anthropic']);\n const value = document(ctx, statuses);\n if (args.json) print(ctx, value);\n else\n for (const status of value.providers)\n ctx.stdio.stdout.write(`${status.provider}: ${status.state} (${status.billing})\\n`);\n return 0;\n }\n if (!provider) return 2;\n if (args.subVerb === 'logout') {\n await runtime.logout(provider);\n const value = document(ctx, await runtime.authStatus([provider]));\n if (args.json) print(ctx, value);\n else ctx.stdio.stdout.write(`${provider}: logged out\\n`);\n return 0;\n }\n if (args.subVerb === 'login') {\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), 10 * 60_000);\n const ui = await loginUi(ctx, controller.signal);\n try {\n const status = await runtime.login(provider, ui, controller.signal);\n const value = document(ctx, [status]);\n if (args.json) print(ctx, value);\n else ctx.stdio.stdout.write(`${status.provider}: ${status.state}\\n`);\n return 0;\n } finally {\n clearTimeout(timeout);\n ui.close();\n }\n }\n return 10;\n },\n};\n\nexport default auth;\n"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { n as sha256Hex, t as canonicalJson } from "./canonical-C8UxeEmB.mjs";
2
2
  import { M as NotImplemented, o as err, s as ok } from "./src-Cu3TxNob.mjs";
3
3
  import { c as AgentOutput, g as ClosedEnum, o as toStrictSchema } from "./src-s7YRvk0t.mjs";
4
4
  import { l as DEFAULT_NETWORK_POLICY } from "./schema-C9QbUW4H.mjs";
5
- import { c as toolGrantProblems, f as AGENT_GIT_DENIED_SUBCOMMANDS, h as isTrampoline, m as PROTECTED_REPO_GLOBS, s as ToolGrant } from "./src-CId6kMsY.mjs";
5
+ import { c as toolGrantProblems, f as AGENT_GIT_DENIED_SUBCOMMANDS, h as isTrampoline, m as PROTECTED_REPO_GLOBS, s as ToolGrant } from "./src-r0ECB1UJ.mjs";
6
6
  import { createHash } from "node:crypto";
7
7
  import { Type } from "typebox";
8
8
  import { Compile } from "typebox/compile";
@@ -1546,4 +1546,4 @@ const TOOL_CATALOGUE = Object.freeze({
1546
1546
  //#endregion
1547
1547
  export { buildPolicySnapshot as a, createCommandPolicy as c, createGlobMatcher as i, createProgramResolver as l, toolIntrospection as n, createPolicyEngine as o, createPathResolver as r, explainPolicy as s, TOOL_CATALOGUE as t };
1548
1548
 
1549
- //# sourceMappingURL=catalogue-BvwSrM_j.mjs.map
1549
+ //# sourceMappingURL=catalogue-B5uFqfzJ.mjs.map