@cotal-ai/core 0.23.0 → 0.25.0

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.
Files changed (62) hide show
  1. package/dist/checkpoint-answer.d.ts +46 -0
  2. package/dist/checkpoint-answer.d.ts.map +1 -0
  3. package/dist/checkpoint-answer.js +112 -0
  4. package/dist/checkpoint-answer.js.map +1 -0
  5. package/dist/connector-config.d.ts +23 -1
  6. package/dist/connector-config.d.ts.map +1 -1
  7. package/dist/connector-config.js +13 -1
  8. package/dist/connector-config.js.map +1 -1
  9. package/dist/connector.d.ts +20 -0
  10. package/dist/connector.d.ts.map +1 -1
  11. package/dist/endpoint-action.d.ts +2 -0
  12. package/dist/endpoint-action.d.ts.map +1 -1
  13. package/dist/endpoint-action.js +13 -2
  14. package/dist/endpoint-action.js.map +1 -1
  15. package/dist/endpoint-binding.d.ts +61 -0
  16. package/dist/endpoint-binding.d.ts.map +1 -1
  17. package/dist/endpoint-binding.js +109 -0
  18. package/dist/endpoint-binding.js.map +1 -1
  19. package/dist/endpoint-checkpoint.d.ts +21 -0
  20. package/dist/endpoint-checkpoint.d.ts.map +1 -1
  21. package/dist/endpoint-checkpoint.js +41 -3
  22. package/dist/endpoint-checkpoint.js.map +1 -1
  23. package/dist/endpoint-envelope.d.ts.map +1 -1
  24. package/dist/endpoint-envelope.js +13 -2
  25. package/dist/endpoint-envelope.js.map +1 -1
  26. package/dist/endpoint-invoke.d.ts.map +1 -1
  27. package/dist/endpoint-invoke.js +40 -4
  28. package/dist/endpoint-invoke.js.map +1 -1
  29. package/dist/endpoint-records.d.ts.map +1 -1
  30. package/dist/endpoint-records.js +86 -0
  31. package/dist/endpoint-records.js.map +1 -1
  32. package/dist/endpoint.d.ts.map +1 -1
  33. package/dist/endpoint.js +21 -0
  34. package/dist/endpoint.js.map +1 -1
  35. package/dist/index.d.ts +6 -0
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +6 -0
  38. package/dist/index.js.map +1 -1
  39. package/dist/launch-material.d.ts +86 -0
  40. package/dist/launch-material.d.ts.map +1 -0
  41. package/dist/launch-material.js +217 -0
  42. package/dist/launch-material.js.map +1 -0
  43. package/dist/provision.d.ts.map +1 -1
  44. package/dist/provision.js +54 -11
  45. package/dist/provision.js.map +1 -1
  46. package/dist/run-journal.d.ts +337 -0
  47. package/dist/run-journal.d.ts.map +1 -0
  48. package/dist/run-journal.js +703 -0
  49. package/dist/run-journal.js.map +1 -0
  50. package/dist/run-migration.d.ts +85 -0
  51. package/dist/run-migration.d.ts.map +1 -0
  52. package/dist/run-migration.js +201 -0
  53. package/dist/run-migration.js.map +1 -0
  54. package/dist/run-notice.d.ts +84 -0
  55. package/dist/run-notice.d.ts.map +1 -0
  56. package/dist/run-notice.js +212 -0
  57. package/dist/run-notice.js.map +1 -0
  58. package/dist/run-record.d.ts +104 -0
  59. package/dist/run-record.d.ts.map +1 -0
  60. package/dist/run-record.js +58 -0
  61. package/dist/run-record.js.map +1 -0
  62. package/package.json +1 -1
@@ -0,0 +1,46 @@
1
+ import type { KV } from "@nats-io/kv";
2
+ /** One answer to one checkpoint. `value` is the program's payload; `artifact` is the digest of
3
+ * what the answerer actually saw, which is what makes an approval evidence rather than a claim. */
4
+ export interface CheckpointAnswerValue {
5
+ readonly v: 1;
6
+ readonly token: string;
7
+ readonly answerId: string;
8
+ /** Absent when the answer carries no payload — an approval that is only a "yes". */
9
+ readonly value?: unknown;
10
+ readonly artifact?: string;
11
+ /** WHO answered, as the run's own ACL knows them — never the presenting principal, which is the
12
+ * driver for every answer and therefore discriminates nothing. */
13
+ readonly by: string;
14
+ readonly at: number;
15
+ }
16
+ /**
17
+ * The id an answer is filed under, DERIVED rather than random.
18
+ *
19
+ * A resolver that wrote its record and then crashed before presenting the token has to be able to
20
+ * retry, and a fresh random id on the retry would file a second answer and leave the first one
21
+ * unnameable. Deriving from the answer's own content makes the retry land on the same key with the
22
+ * same bytes; two resolvers who genuinely answer the same thing are then indistinguishable, which
23
+ * is correct, and two who answer differently get different ids and race on the settle, which is
24
+ * what the settle is for.
25
+ */
26
+ export declare function checkpointAnswerId(a: {
27
+ token: string;
28
+ by: string;
29
+ value?: unknown;
30
+ artifact?: string;
31
+ }): string;
32
+ /**
33
+ * File an answer, create-only.
34
+ *
35
+ * A retry of the SAME answer is not a conflict: the id is derived from the content, so an existing
36
+ * record under this id with identical bytes is this resolver's own earlier attempt and the call
37
+ * succeeds. Different bytes under the same id would be a digest collision, which is refused rather
38
+ * than overwritten.
39
+ */
40
+ export declare function recordCheckpointAnswer(kv: KV, endpoint: string, value: CheckpointAnswerValue): Promise<{
41
+ key: string;
42
+ created: boolean;
43
+ }>;
44
+ /** Read one answer. `undefined` = no answer was filed under this id. */
45
+ export declare function readCheckpointAnswer(kv: KV, endpoint: string, token: string, answerId: string): Promise<CheckpointAnswerValue | undefined>;
46
+ //# sourceMappingURL=checkpoint-answer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint-answer.d.ts","sourceRoot":"","sources":["../src/checkpoint-answer.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAMtC;oGACoG;AACpG,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IACd,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,oFAAoF;IACpF,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;uEACmE;IACnE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AA6BD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAU/G;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAe5C;AAED,wEAAwE;AACxE,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAO5C"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * The CHECKPOINT ANSWER record: what somebody actually answered, beside the settle fact that says
3
+ * a checkpoint was answered at all.
4
+ *
5
+ * `endpoint-checkpoint`'s one-use settle fact is the arbiter of a race between a resume and the
6
+ * deadline. It is deliberately small and its keys are closed, so an answer's `value` and the
7
+ * `artifact` digest of what the answerer actually saw do not belong in it. They live here.
8
+ *
9
+ * **Keyed `(endpoint, token, answerId)`, and the settle fact NAMES the id it accepted.** The
10
+ * obvious key — `(token, presenter)` — does not work, and the reason is not about this record: a
11
+ * workflow checkpoint's holder is the run driver, every resolver reaches the checkpoint through
12
+ * the driver's own `resolveCheckpoint` command, so every presenter is the SAME principal. That key
13
+ * collapses to one slot, two resolvers racing overwrite it, and the settle fact then selects
14
+ * whichever answer was written LAST rather than the one belonging to the resolver that won. So the
15
+ * id is minted per answer, written here first, and carried into the settle: the answer that counts
16
+ * is the one the winning settlement names. A loser's record is orphaned and read by nothing.
17
+ *
18
+ * **Written BEFORE the token is presented.** The record is the payload and the settle is the fact
19
+ * that releases the waiting run; a payload written after the release is a payload the run can
20
+ * already have looked for and not found. Same order, and the same reason, as minting a checkpoint
21
+ * before arming its timer.
22
+ *
23
+ * Create-only, never updated, never deleted: an answer is something that happened.
24
+ */
25
+ import { createHash } from "node:crypto";
26
+ import { EpEnvelopeError } from "./endpoint-envelope.js";
27
+ import { assertIdToken } from "./endpoint-subjects.js";
28
+ import { RECORD_KINDS, createRecordEntry, recordAtomicKey } from "./endpoint-records.js";
29
+ import { canonicalJson } from "./canonical.js";
30
+ function answerQualifiers(endpoint, token, answerId) {
31
+ return [endpoint, token, answerId];
32
+ }
33
+ function parseAnswer(raw, key) {
34
+ if (raw === null || typeof raw !== "object" || Array.isArray(raw))
35
+ throw new EpEnvelopeError("internal", `checkpoint answer ${key} is not an object; garbled state never authorizes`);
36
+ const o = raw;
37
+ for (const k of Object.keys(o))
38
+ if (!["v", "token", "answerId", "value", "artifact", "by", "at"].includes(k))
39
+ throw new EpEnvelopeError("internal", `checkpoint answer ${key} carries the unknown field "${k}"; record schemas are closed`);
40
+ if (o.v !== 1 || typeof o.token !== "string" || typeof o.answerId !== "string"
41
+ || typeof o.by !== "string" || o.by.length === 0
42
+ || typeof o.at !== "number" || !Number.isSafeInteger(o.at) || o.at < 0
43
+ || (o.artifact !== undefined && typeof o.artifact !== "string"))
44
+ throw new EpEnvelopeError("internal", `checkpoint answer ${key} is malformed; garbled state never authorizes`);
45
+ return {
46
+ v: 1,
47
+ token: o.token,
48
+ answerId: o.answerId,
49
+ ...(o.value !== undefined ? { value: o.value } : {}),
50
+ ...(o.artifact !== undefined ? { artifact: o.artifact } : {}),
51
+ by: o.by,
52
+ at: o.at,
53
+ };
54
+ }
55
+ /**
56
+ * The id an answer is filed under, DERIVED rather than random.
57
+ *
58
+ * A resolver that wrote its record and then crashed before presenting the token has to be able to
59
+ * retry, and a fresh random id on the retry would file a second answer and leave the first one
60
+ * unnameable. Deriving from the answer's own content makes the retry land on the same key with the
61
+ * same bytes; two resolvers who genuinely answer the same thing are then indistinguishable, which
62
+ * is correct, and two who answer differently get different ids and race on the settle, which is
63
+ * what the settle is for.
64
+ */
65
+ export function checkpointAnswerId(a) {
66
+ const canonical = canonicalJson({
67
+ token: a.token,
68
+ by: a.by,
69
+ value: a.value ?? null,
70
+ artifact: a.artifact ?? null,
71
+ });
72
+ // base64url of the sha256, truncated to 43 chars — the same shape and alphabet the run's own
73
+ // request ids use, so an answer id is a `<token>` by construction rather than by hope.
74
+ return createHash("sha256").update(canonical, "utf8").digest("base64url").slice(0, 43);
75
+ }
76
+ /**
77
+ * File an answer, create-only.
78
+ *
79
+ * A retry of the SAME answer is not a conflict: the id is derived from the content, so an existing
80
+ * record under this id with identical bytes is this resolver's own earlier attempt and the call
81
+ * succeeds. Different bytes under the same id would be a digest collision, which is refused rather
82
+ * than overwritten.
83
+ */
84
+ export async function recordCheckpointAnswer(kv, endpoint, value) {
85
+ assertIdToken(value.answerId, "answerId");
86
+ const key = recordAtomicKey(RECORD_KINDS.answer, answerQualifiers(endpoint, value.token, value.answerId));
87
+ try {
88
+ await createRecordEntry(kv, key, value);
89
+ return { key, created: true };
90
+ }
91
+ catch (e) {
92
+ if (!(e instanceof EpEnvelopeError && e.code === "conflict"))
93
+ throw e;
94
+ const existing = await readCheckpointAnswer(kv, endpoint, value.token, value.answerId);
95
+ if (existing === undefined)
96
+ throw new EpEnvelopeError("internal", `checkpoint answer ${key} lost its create CAS but is not readable; reconcile the store`);
97
+ if (canonicalJson(existing) !== canonicalJson(value))
98
+ throw new EpEnvelopeError("conflict", `checkpoint answer ${key} already exists with different content; an answer id is derived from its answer, so a differing one under the same id is never overwritten`);
99
+ return { key, created: false };
100
+ }
101
+ }
102
+ /** Read one answer. `undefined` = no answer was filed under this id. */
103
+ export async function readCheckpointAnswer(kv, endpoint, token, answerId) {
104
+ const key = recordAtomicKey(RECORD_KINDS.answer, answerQualifiers(endpoint, token, answerId));
105
+ const entry = await kv.get(key);
106
+ if (!entry)
107
+ return undefined;
108
+ if (entry.operation !== "PUT")
109
+ throw new EpEnvelopeError("failed-precondition", `the checkpoint answer ${key} carries a ${entry.operation} marker; an answer is something that happened and is never erased - reconcile the store`);
110
+ return parseAnswer(JSON.parse(new TextDecoder().decode(entry.value)), key);
111
+ }
112
+ //# sourceMappingURL=checkpoint-answer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint-answer.js","sourceRoot":"","sources":["../src/checkpoint-answer.ts"],"names":[],"mappings":"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"}
@@ -19,9 +19,26 @@ export interface McpServerSpec {
19
19
  export interface ConnectorConfig {
20
20
  mcpServers?: Record<string, McpServerSpec>;
21
21
  }
22
- /** The parsed cotal config file: a section per connector, keyed by connector name ("claude", …). */
22
+ /** Machine-local policy for what a SPAWNED AGENT's process environment contains.
23
+ *
24
+ * Absent (the default) means the child inherits the operator's environment, because a harness they
25
+ * installed and configured should behave under `cotal spawn` the way it behaves when they run it
26
+ * themselves. Cotal still resets its own `COTAL_*` namespace either way; that is identity, not
27
+ * preference, and it is not configurable.
28
+ *
29
+ * `env` PRESENT opts into containment: the child gets a fixed OS allow-list plus exactly these
30
+ * names. An EMPTY array is a real policy (the OS allow-list alone), which is why the mode turns on
31
+ * presence and never on length. Use it when secrets live only in the environment and never on
32
+ * disk - an `aws-vault exec` or `op run` shell, CI-injected values - and know that it does nothing
33
+ * about `~/.aws` or `~/.ssh`, which a child with a shell reads regardless. */
34
+ export interface SpawnConfig {
35
+ env?: string[];
36
+ }
37
+ /** The parsed cotal config file: a section per connector, keyed by connector name ("claude", …),
38
+ * plus machine-local spawn policy. */
23
39
  export interface CotalConfig {
24
40
  connectors?: Record<string, ConnectorConfig>;
41
+ spawn?: SpawnConfig;
25
42
  }
26
43
  /** Operator-level config dir: `$XDG_CONFIG_HOME/cotal`; else `%APPDATA%\Cotal` on Windows (the
27
44
  * platform's per-user roaming config dir) or `~/.config/cotal` on POSIX. Holds `config.json`
@@ -43,4 +60,9 @@ export declare function connectorServers(config: CotalConfig, connector: string,
43
60
  /** Parse a `--share-tools` flag value into a selection for {@link connectorServers}: flag absent
44
61
  * → `undefined` (share all declared); `none` or empty → `[]` (share nothing); else the comma list. */
45
62
  export declare function parseShareSelection(value: string | undefined): readonly string[] | undefined;
63
+ /** The spawned-agent env allow-list an operator declared, or `undefined` when they declared none
64
+ * (the inherit default). The caller passes this straight to `LaunchOpts.envAllow`; distinguishing
65
+ * "declared empty" from "not declared" is the whole point, so this returns the array as written
66
+ * rather than defaulting it. */
67
+ export declare function spawnEnvAllow(config: CotalConfig): readonly string[] | undefined;
46
68
  //# sourceMappingURL=connector-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connector-config.d.ts","sourceRoot":"","sources":["../src/connector-config.ts"],"names":[],"mappings":"AA4BA;;;;;2FAK2F;AAC3F,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,uFAAuF;IACvF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;wDACwD;AACxD,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC5C;AAED,oGAAoG;AACpG,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC9C;AAED;;2CAE2C;AAC3C,wBAAgB,eAAe,IAAI,MAAM,CAMxC;AAED,qEAAqE;AACrE,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,4DAA4D;AAC5D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AA+BD;gEACgE;AAChE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAEzD;AAED;;;;oGAIoG;AACpG,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,GAC5B,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAc/B;AAED;uGACuG;AACvG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAQ5F"}
1
+ {"version":3,"file":"connector-config.d.ts","sourceRoot":"","sources":["../src/connector-config.ts"],"names":[],"mappings":"AA4BA;;;;;2FAK2F;AAC3F,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,uFAAuF;IACvF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;wDACwD;AACxD,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC5C;AAED;;;;;;;;;;;+EAW+E;AAC/E,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;uCACuC;AACvC,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED;;2CAE2C;AAC3C,wBAAgB,eAAe,IAAI,MAAM,CAMxC;AAED,qEAAqE;AACrE,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,4DAA4D;AAC5D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAoCD;gEACgE;AAChE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAEzD;AAED;;;;oGAIoG;AACpG,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,GAC5B,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAc/B;AAED;uGACuG;AACvG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAQ5F;AAED;;;iCAGiC;AACjC,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAEhF"}
@@ -71,7 +71,12 @@ function mergeConfig(base, over) {
71
71
  const o = over.connectors?.[name];
72
72
  connectors[name] = { ...b, ...o, mcpServers: { ...(b?.mcpServers ?? {}), ...(o?.mcpServers ?? {}) } };
73
73
  }
74
- return { connectors };
74
+ // `spawn` replaces WHOLESALE rather than merging per key the way servers do. An allow-list is one
75
+ // policy statement, and a space-local file that names three variables means those three, not those
76
+ // three plus whatever the operator-level file happened to list. Silently unioning two allow-lists
77
+ // would widen the narrower one, which is the wrong direction for a containment setting.
78
+ const spawn = over.spawn ?? base.spawn;
79
+ return spawn === undefined ? { connectors } : { connectors, spawn };
75
80
  }
76
81
  /** Load the merged cotal config: the operator-level file as the base, the space-local file layered
77
82
  * on top (more specific wins, per connector + server name). */
@@ -110,4 +115,11 @@ export function parseShareSelection(value) {
110
115
  .map((s) => s.trim())
111
116
  .filter(Boolean);
112
117
  }
118
+ /** The spawned-agent env allow-list an operator declared, or `undefined` when they declared none
119
+ * (the inherit default). The caller passes this straight to `LaunchOpts.envAllow`; distinguishing
120
+ * "declared empty" from "not declared" is the whole point, so this returns the array as written
121
+ * rather than defaulting it. */
122
+ export function spawnEnvAllow(config) {
123
+ return config.spawn?.env;
124
+ }
113
125
  //# sourceMappingURL=connector-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connector-config.js","sourceRoot":"","sources":["../src/connector-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connector-config.js","sourceRoot":"","sources":["../src/connector-config.ts"],"names":[],"mappings":"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"}
@@ -74,6 +74,12 @@ export interface LaunchOpts {
74
74
  * left untouched — resuming MUST NOT hijack the source session. A connector that can't fork
75
75
  * THROWS at {@link Connector.buildLaunch} rather than silently spawning fresh. */
76
76
  resume?: string;
77
+ /** Exact session of THIS connector process to continue after a supervised process restart.
78
+ * Distinct from {@link resume}: `resume` forks FROM an existing transcript into a new session;
79
+ * `continueSession` reopens the already-meshed session itself. Manager-internal only, never a
80
+ * CLI/manifest/model-provided field. A connector that cannot preserve its mesh surface across
81
+ * same-session continuation throws rather than silently launching fresh. */
82
+ continueSession?: string;
77
83
  /** Publish this session's AG-UI event plane to the agent's own event channel (see
78
84
  * {@link Connector.eventChannel}), so an external observer or UI can read what the agent actually
79
85
  * did as structured events rather than as prose (sets `COTAL_EVENTS`). Defaults to OFF; set `true`
@@ -90,6 +96,13 @@ export interface LaunchOpts {
90
96
  * (Claude launches isolated with `--strict-mcp-config`). Connectors that don't support sharing
91
97
  * throw on a non-empty map rather than silently dropping it. */
92
98
  mcpServers?: Record<string, McpServerSpec>;
99
+ /** The spawned-agent env allow-list an operator declared in the cotal config (`spawn.env`),
100
+ * resolved from it by the CALLER exactly the way {@link mcpServers} is (see `spawnEnvAllow`).
101
+ * `undefined` - the default - means the child inherits the operator's environment; an array,
102
+ * including an EMPTY one, opts into containment and names everything the child gets beyond a
103
+ * fixed OS allow-list. A connector passes it straight through to `launchEnv`; it never
104
+ * interprets it, and it never reads the config itself. */
105
+ envAllow?: readonly string[];
93
106
  /** The manager's workspace root. Connectors that keep per-agent local state (e.g. the OpenCode
94
107
  * connector's SQLite DB + serve pidfile) pin it here so a per-agent working directory — which can
95
108
  * point at any repo — doesn't scatter that state into the target tree. The per-agent working
@@ -117,6 +130,10 @@ export interface LaunchSpec {
117
130
  path: string;
118
131
  token: string;
119
132
  };
133
+ /** Connector-owned host-session state file. A supervised restart reads this exact manager-provided
134
+ * path after process exit, then verifies the successor reports the same session over `control`.
135
+ * Contains no transcript or credential; currently used by Pi for its current session id. */
136
+ sessionStatePath?: string;
120
137
  }
121
138
  /** One provider-specific model variant. `options` is opaque connector metadata for UIs; core never
122
139
  * interprets it or feeds it back into launch. */
@@ -194,6 +211,9 @@ export interface Connector extends Extension {
194
211
  * stays as the backstop. Only a connector that forks-from a prior session (never hijacks it) sets
195
212
  * this `true`. */
196
213
  readonly supportsResume?: boolean;
214
+ /** Whether this connector can reopen the exact host session named by
215
+ * {@link LaunchOpts.continueSession} after a supervised process crash. Default-deny. */
216
+ readonly supportsSessionContinuation?: boolean;
197
217
  /** Whether this connector can honor {@link LaunchOpts.variant}. Default-deny so a variant request
198
218
  * fails before provisioning side effects in the manager. */
199
219
  readonly supportsModelVariant?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"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"}
@@ -401,6 +401,7 @@ export type GoalCommitCause = {
401
401
  data?: unknown;
402
402
  } | {
403
403
  cause: "readiness";
404
+ data?: unknown;
404
405
  };
405
406
  /** Commit the goal's terminal state at the ONE mediated commit point, BOUND to the persisted
406
407
  * accepted goal and its CAUSE (see {@link GoalCommitCause}). First terminal fact wins uniformly
@@ -455,6 +456,7 @@ export declare function settleGoalUncertain(ctx: ActionContext, args: {
455
456
  instanceId: string;
456
457
  epoch: number;
457
458
  };
459
+ reason?: string;
458
460
  }): Promise<{
459
461
  won: boolean;
460
462
  fact: GoalResultFact;
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-action.d.ts","sourceRoot":"","sources":["../src/endpoint-action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint-action.d.ts","sourceRoot":"","sources":["../src/endpoint-action.ts"],"names":[],"mappings":"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"}
@@ -929,7 +929,18 @@ export async function commitGoalResult(ctx, args) {
929
929
  throw new EpEnvelopeError("failed-precondition", `goal "${snap.goalId}" declares no readiness deadline; an unbounded goal is never settled uncertain (SPEC 13.6)`);
930
930
  if (now < spec.value.acceptedAt + spec.value.readinessDeadlineMs)
931
931
  throw new EpEnvelopeError("failed-precondition", `goal "${snap.goalId}" is not past its readiness deadline (acceptedAt ${spec.value.acceptedAt} + ${spec.value.readinessDeadlineMs}ms > now ${now}); an early uncertain settle would steal a still-possible success (SPEC 13.6)`);
932
- return finish(await commitTerminalFact(ctx, snap, spec.value, "uncertain", { reason: "the success signal did not arrive within the readiness deadline", readinessDeadlineMs: spec.value.readinessDeadlineMs }, now, committer));
932
+ // The COMMITTER's reason wins when it supplied one. Core knows the deadline elapsed; only the
933
+ // owner of that deadline knows what it means and what the operator should do about it, and that
934
+ // guidance is the whole operational value of an `uncertain` terminal (#605): the generic line
935
+ // below reads as a plain failure, which is exactly what teaches an operator to re-issue, and a
936
+ // re-issue after a launch that actually succeeded mints a duplicate.
937
+ const suppliedReason = data?.reason;
938
+ return finish(await commitTerminalFact(ctx, snap, spec.value, "uncertain", {
939
+ reason: typeof suppliedReason === "string" && suppliedReason.length > 0
940
+ ? suppliedReason
941
+ : "the success signal did not arrive within the readiness deadline",
942
+ readinessDeadlineMs: spec.value.readinessDeadlineMs,
943
+ }, now, committer));
933
944
  }
934
945
  // ---- cancel (§13.6 item 4) --------------------------------------------------------------------
935
946
  /** The reverse-DNS detail kind carrying a goal's cached terminal fact on an error (§13.3). */
@@ -989,7 +1000,7 @@ export async function requestGoalCancel(ctx, args) {
989
1000
  * REACHABLE (readiness is the owner's deadline, not an executor completion, so no executor is
990
1001
  * required). A racing late success that committed first wins and this returns the winner. */
991
1002
  export async function settleGoalUncertain(ctx, args) {
992
- return commitGoalResult(ctx, { ref: args.ref, now: args.now, cause: "readiness", ...(args.committer !== undefined ? { committer: args.committer } : {}) });
1003
+ return commitGoalResult(ctx, { ref: args.ref, now: args.now, cause: "readiness", ...(args.reason !== undefined ? { data: { reason: args.reason } } : {}), ...(args.committer !== undefined ? { committer: args.committer } : {}) });
993
1004
  }
994
1005
  function goalIndexKey(ref) {
995
1006
  return recordAtomicKey(RECORD_KINDS.goalidx, [ref.endpoint, ref.caller.owner, ref.caller.actor, ref.caller.uid, ref.goalId]);