@cotal-ai/core 0.84.0 → 0.85.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.
- package/dist/connector.d.ts +8 -2
- package/dist/connector.d.ts.map +1 -1
- package/dist/connector.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/startup-confirm.d.ts +9 -5
- package/dist/startup-confirm.d.ts.map +1 -1
- package/dist/startup-confirm.js +51 -18
- package/dist/startup-confirm.js.map +1 -1
- package/dist/turn-contract.d.ts +94 -0
- package/dist/turn-contract.d.ts.map +1 -0
- package/dist/turn-contract.js +52 -0
- package/dist/turn-contract.js.map +1 -0
- package/package.json +1 -1
package/dist/connector.d.ts
CHANGED
|
@@ -163,9 +163,15 @@ export interface LaunchSpec {
|
|
|
163
163
|
* text with cursor moves, not spaces); a text with nothing left after stripping, `""` included,
|
|
164
164
|
* is refused before the seat starts. */
|
|
165
165
|
confirm?: string;
|
|
166
|
-
/** Optional native startup choices, answered in order before confirm.
|
|
167
|
-
* may
|
|
166
|
+
/** Optional native startup choices, answered in order before confirm. A choice marked
|
|
167
|
+
* `optional` may be passed over for the next one. Only the startup watch may answer them;
|
|
168
|
+
* ordinary tool permissions remain the harness's responsibility. */
|
|
168
169
|
confirmBefore?: readonly StartupReply[];
|
|
170
|
+
/** Optional texts that show the harness reached its input screen without showing confirm, for a
|
|
171
|
+
* harness that shows that prompt only in some setups. Each is matched within one visible line,
|
|
172
|
+
* normalized like confirm. Seen on two consecutive screen reads, it ends the startup watch with
|
|
173
|
+
* no key. Requires confirm. */
|
|
174
|
+
confirmReady?: readonly string[];
|
|
169
175
|
/** This agent's local control endpoint — the OS path its lifecycle hooks connect to (passed in
|
|
170
176
|
* the child env as `COTAL_CONTROL_SOCKET`/`COTAL_CONTROL_TOKEN`), plus the first-frame `token`
|
|
171
177
|
* that authenticates it. The connector mints it in `buildLaunch`; the manager keeps it IN MEMORY
|
package/dist/connector.d.ts.map
CHANGED
|
@@ -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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"}
|
package/dist/connector.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector.js","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"connector.js","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"AAiVA;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,SAAmG;IAEnG,IAAI,SAAS,CAAC,2BAA2B;QAAE,OAAO,OAAO,CAAC;IAC1D,IAAI,SAAS,CAAC,cAAc;QAAE,OAAO,MAAM,CAAC;IAC5C,OAAO,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC;AAC/D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,+BAA+B,CAAC,SAAsD;IACpG,IAAI,SAAS,CAAC,wBAAwB,KAAK,IAAI;QAAE,OAAO;IACxD,MAAM,IAAI,KAAK,CACb,qIAAqI,CACtI,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -93,6 +93,7 @@ export * from "./run-notice.js";
|
|
|
93
93
|
export * from "./run-migration.js";
|
|
94
94
|
export * from "./run-program.js";
|
|
95
95
|
export * from "./run-driver-grants.js";
|
|
96
|
+
export * from "./turn-contract.js";
|
|
96
97
|
export * from "./run-host.js";
|
|
97
98
|
export * from "./issued-authority.js";
|
|
98
99
|
export * from "./run-admission.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -97,6 +97,7 @@ export * from "./run-notice.js";
|
|
|
97
97
|
export * from "./run-migration.js";
|
|
98
98
|
export * from "./run-program.js";
|
|
99
99
|
export * from "./run-driver-grants.js";
|
|
100
|
+
export * from "./turn-contract.js";
|
|
100
101
|
export * from "./run-host.js";
|
|
101
102
|
export * from "./issued-authority.js";
|
|
102
103
|
export * from "./run-admission.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,14 +3,18 @@
|
|
|
3
3
|
export interface StartupReply {
|
|
4
4
|
prompt: string;
|
|
5
5
|
key: "Down" | "Enter";
|
|
6
|
+
/** The choice may never appear, for example one of two layouts a harness draws a dialog in. While
|
|
7
|
+
* it is not on screen, the next choice can be answered instead, which skips this one for good. */
|
|
8
|
+
optional?: boolean;
|
|
6
9
|
}
|
|
7
10
|
/** The seat package repeats this small matcher because it has no core dependency. Both operate on
|
|
8
11
|
* current screen snapshots, never scrollback accumulated from an earlier dialog. */
|
|
9
12
|
export declare class StartupConfirmSequence {
|
|
10
13
|
#private;
|
|
11
|
-
constructor(prompt: string, before?: readonly StartupReply[]);
|
|
14
|
+
constructor(prompt: string, before?: readonly StartupReply[], ready?: readonly string[]);
|
|
15
|
+
/** The key to press, if any; `done` ends the watch. */
|
|
12
16
|
observe(screen: string): {
|
|
13
|
-
key
|
|
17
|
+
key?: "Down" | "Enter";
|
|
14
18
|
done: boolean;
|
|
15
19
|
} | undefined;
|
|
16
20
|
}
|
|
@@ -26,7 +30,7 @@ export interface ConfirmPane {
|
|
|
26
30
|
/** Stop the child and report the failure. Must not throw from the watch's timer. */
|
|
27
31
|
fail(message: string): void;
|
|
28
32
|
}
|
|
29
|
-
/** Honor {@link LaunchSpec.confirm}
|
|
30
|
-
* No key is sent for an unrelated dialog, after exit, or
|
|
31
|
-
export declare function confirmWatch(prompt: string, before?: readonly StartupReply[]): (pane: ConfirmPane) => void;
|
|
33
|
+
/** Honor {@link LaunchSpec.confirm}, its optional preceding choices and its ready texts within one
|
|
34
|
+
* startup bound. No key is sent for an unrelated dialog, after exit, or once the watch is done. */
|
|
35
|
+
export declare function confirmWatch(prompt: string, before?: readonly StartupReply[], ready?: readonly string[]): (pane: ConfirmPane) => void;
|
|
32
36
|
//# sourceMappingURL=startup-confirm.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startup-confirm.d.ts","sourceRoot":"","sources":["../src/startup-confirm.ts"],"names":[],"mappings":"AAYA;sFACsF;AACtF,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"startup-confirm.d.ts","sourceRoot":"","sources":["../src/startup-confirm.ts"],"names":[],"mappings":"AAYA;sFACsF;AACtF,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACtB;sGACkG;IAClG,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;oFACoF;AACpF,qBAAa,sBAAsB;;gBAQrB,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,SAAS,YAAY,EAAO,EAAE,KAAK,GAAE,SAAS,MAAM,EAAO;IAkB/F,uDAAuD;IACvD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS;CAoC/E;AAED,6DAA6D;AAC7D,MAAM,WAAW,WAAW;IAC1B;2FACuF;IACvF,IAAI,IAAI,MAAM,GAAG,SAAS,CAAC;IAC3B,+BAA+B;IAC/B,KAAK,IAAI,IAAI,CAAC;IACd,0DAA0D;IAC1D,IAAI,CAAC,IAAI,IAAI,CAAC;IACd,oFAAoF;IACpF,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;mGACmG;AACnG,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,SAAS,YAAY,EAAO,EAAE,KAAK,GAAE,SAAS,MAAM,EAAO,GAAG,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CA8B7I"}
|
package/dist/startup-confirm.js
CHANGED
|
@@ -11,24 +11,36 @@ function normalizeConfirmText(value) {
|
|
|
11
11
|
export class StartupConfirmSequence {
|
|
12
12
|
#final;
|
|
13
13
|
#before;
|
|
14
|
+
#ready;
|
|
14
15
|
#step = 0;
|
|
15
|
-
#
|
|
16
|
+
#seen;
|
|
17
|
+
#readySeen = false;
|
|
16
18
|
#done = false;
|
|
17
|
-
constructor(prompt, before = []) {
|
|
19
|
+
constructor(prompt, before = [], ready = []) {
|
|
18
20
|
this.#final = normalizeConfirmText(prompt);
|
|
19
21
|
if (!this.#final)
|
|
20
22
|
throw new Error("startup confirmation prompt is empty after ANSI and whitespace normalization");
|
|
21
23
|
if (!Array.isArray(before) || before.length > 8)
|
|
22
24
|
throw new Error("invalid startup choices");
|
|
23
25
|
this.#before = before.map((reply) => {
|
|
24
|
-
if (!reply || typeof reply.prompt !== "string" || reply.prompt.length > 1024 || !["Down", "Enter"].includes(reply.key)
|
|
26
|
+
if (!reply || typeof reply.prompt !== "string" || reply.prompt.length > 1024 || !["Down", "Enter"].includes(reply.key)
|
|
27
|
+
|| (reply.optional !== undefined && typeof reply.optional !== "boolean"))
|
|
25
28
|
throw new Error("invalid startup choice");
|
|
26
29
|
const normalized = reply.prompt.split(/\r?\n/).map(normalizeConfirmText).filter(Boolean).join("\n");
|
|
27
30
|
if (!normalized)
|
|
28
31
|
throw new Error("startup choice prompt is empty after normalization");
|
|
29
|
-
return { prompt: normalized, key: reply.key };
|
|
32
|
+
return { prompt: normalized, key: reply.key, optional: reply.optional === true };
|
|
33
|
+
});
|
|
34
|
+
if (!Array.isArray(ready) || ready.length > 8)
|
|
35
|
+
throw new Error("invalid startup ready texts");
|
|
36
|
+
this.#ready = ready.map((text) => {
|
|
37
|
+
const normalized = typeof text === "string" && text.length <= 1024 ? normalizeConfirmText(text) : "";
|
|
38
|
+
if (!normalized)
|
|
39
|
+
throw new Error("invalid startup ready text");
|
|
40
|
+
return normalized;
|
|
30
41
|
});
|
|
31
42
|
}
|
|
43
|
+
/** The key to press, if any; `done` ends the watch. */
|
|
32
44
|
observe(screen) {
|
|
33
45
|
if (this.#done)
|
|
34
46
|
return undefined;
|
|
@@ -37,35 +49,56 @@ export class StartupConfirmSequence {
|
|
|
37
49
|
const expected = prompt.split("\n");
|
|
38
50
|
return lines.some((_, start) => expected.every((line, offset) => lines[start + offset] === line));
|
|
39
51
|
};
|
|
40
|
-
|
|
52
|
+
// An optional choice that is not on screen does not block the choice after it. Answering a
|
|
53
|
+
// later choice passes over the optional ones before it for good.
|
|
54
|
+
let index = this.#step;
|
|
55
|
+
while (this.#before[index]?.optional && !matches(this.#before[index].prompt))
|
|
56
|
+
index++;
|
|
57
|
+
const step = this.#before[index];
|
|
41
58
|
// Workspace paths can contain the warning text. Prefer a real menu over that text and match
|
|
42
59
|
// whole visible lines, rather than a substring in the displayed path.
|
|
43
60
|
if (!step || !matches(step.prompt)) {
|
|
44
|
-
this.#
|
|
61
|
+
this.#seen = undefined;
|
|
45
62
|
const final = this.#before.length ? matches(this.#final) : normalizeConfirmText(screen).includes(this.#final);
|
|
46
|
-
if (
|
|
63
|
+
if (final) {
|
|
64
|
+
this.#done = true;
|
|
65
|
+
return { key: "Enter", done: true };
|
|
66
|
+
}
|
|
67
|
+
// A harness may skip the confirmation and open its input screen. Seeing a ready text within
|
|
68
|
+
// one visible line, on two consecutive snapshots, ends the watch without a key. A declared
|
|
69
|
+
// dialog still on screen is not that input screen, even when its displayed path has the text.
|
|
70
|
+
const ready = lines.some((line) => this.#ready.some((text) => line.includes(text)))
|
|
71
|
+
&& !this.#before.some((reply) => matches(reply.prompt));
|
|
72
|
+
if (!ready) {
|
|
73
|
+
this.#readySeen = false;
|
|
47
74
|
return undefined;
|
|
75
|
+
}
|
|
76
|
+
if (!this.#readySeen) {
|
|
77
|
+
this.#readySeen = true;
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
48
80
|
this.#done = true;
|
|
49
|
-
return {
|
|
81
|
+
return { done: true };
|
|
50
82
|
}
|
|
83
|
+
this.#readySeen = false;
|
|
51
84
|
// A partial first paint is not an interactive menu yet. Require the same choice on two
|
|
52
85
|
// consecutive snapshots; a changed screen clears the observation instead of receiving a key.
|
|
53
|
-
if (
|
|
54
|
-
this.#
|
|
86
|
+
if (this.#seen !== index) {
|
|
87
|
+
this.#seen = index;
|
|
55
88
|
return undefined;
|
|
56
89
|
}
|
|
57
|
-
this.#step
|
|
58
|
-
this.#
|
|
90
|
+
this.#step = index + 1;
|
|
91
|
+
this.#seen = undefined;
|
|
59
92
|
return { key: step.key, done: false };
|
|
60
93
|
}
|
|
61
94
|
}
|
|
62
|
-
/** Honor {@link LaunchSpec.confirm}
|
|
63
|
-
* No key is sent for an unrelated dialog, after exit, or
|
|
64
|
-
export function confirmWatch(prompt, before = []) {
|
|
95
|
+
/** Honor {@link LaunchSpec.confirm}, its optional preceding choices and its ready texts within one
|
|
96
|
+
* startup bound. No key is sent for an unrelated dialog, after exit, or once the watch is done. */
|
|
97
|
+
export function confirmWatch(prompt, before = [], ready = []) {
|
|
65
98
|
// Validate before a runtime starts a child, but allocate mutable state per watch.
|
|
66
|
-
new StartupConfirmSequence(prompt, before);
|
|
99
|
+
new StartupConfirmSequence(prompt, before, ready);
|
|
67
100
|
return (pane) => {
|
|
68
|
-
const sequence = new StartupConfirmSequence(prompt, before);
|
|
101
|
+
const sequence = new StartupConfirmSequence(prompt, before, ready);
|
|
69
102
|
const deadline = Date.now() + CONFIRM_TIMEOUT_MS;
|
|
70
103
|
const poll = () => {
|
|
71
104
|
let failure = `Cotal startup confirmation failed: prompt ${JSON.stringify(prompt)} did not appear within ${CONFIRM_TIMEOUT_MS}ms.`;
|
|
@@ -81,7 +114,7 @@ export function confirmWatch(prompt, before = []) {
|
|
|
81
114
|
throw new Error("this runtime cannot answer a Down startup choice");
|
|
82
115
|
pane.down();
|
|
83
116
|
}
|
|
84
|
-
else if (action)
|
|
117
|
+
else if (action?.key === "Enter")
|
|
85
118
|
pane.enter();
|
|
86
119
|
if (action?.done)
|
|
87
120
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startup-confirm.js","sourceRoot":"","sources":["../src/startup-confirm.ts"],"names":[],"mappings":"AAEA,MAAM,GAAG,GAAG,0BAA0B,CAAC;AACvC,MAAM,GAAG,GAAG,oCAAoC,CAAC;AACjD,MAAM,GAAG,GAAG,cAAc,CAAC;AAC3B,MAAM,OAAO,GAAG,GAAG,CAAC;AACpB,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,SAAS,oBAAoB,CAAC,KAAa;IACzC,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACtF,CAAC;
|
|
1
|
+
{"version":3,"file":"startup-confirm.js","sourceRoot":"","sources":["../src/startup-confirm.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The manager's `turn` command contract: the relay a workflow run submits and the acceptance the
|
|
3
|
+
* manager answers with.
|
|
4
|
+
*
|
|
5
|
+
* It lives in core so the manager and every suite that serves a manager-shaped `turn` compile the
|
|
6
|
+
* same objects: implementations never import each other, and a private copy keeps passing after
|
|
7
|
+
* the manager's contract changes.
|
|
8
|
+
*/
|
|
9
|
+
/** `turn` (workflow runs, cotal-lang §5.3): wake the TARGET seat for one turn on behalf of a
|
|
10
|
+
* workflow run. The manager relays and stays run-ignorant: `payload` is an opaque bounded string
|
|
11
|
+
* the seat pulls back verbatim through `turn-pending` — its shape is the runtime↔connector
|
|
12
|
+
* contract, never this endpoint's. A deadline bounds the whole turn and is REQUIRED at the
|
|
13
|
+
* wire (the caller defaults it; an unbounded turn goal could never be settled by a successor
|
|
14
|
+
* incarnation, which refuses to settle a goal with no readiness deadline). It is `deadlineMs`,
|
|
15
|
+
* counted from the acceptance, or `deadlineAt`, an instant the caller already holds (an ask's
|
|
16
|
+
* pause): the hold denies at that same instant, and one already past is refused
|
|
17
|
+
* `deadline-exceeded`. */
|
|
18
|
+
export declare const TURN_INPUT_SCHEMA: {
|
|
19
|
+
readonly type: "object";
|
|
20
|
+
readonly additionalProperties: false;
|
|
21
|
+
readonly required: readonly ["payload"];
|
|
22
|
+
readonly oneOf: readonly [{
|
|
23
|
+
readonly required: readonly ["deadlineMs"];
|
|
24
|
+
}, {
|
|
25
|
+
readonly required: readonly ["deadlineAt"];
|
|
26
|
+
}];
|
|
27
|
+
readonly properties: {
|
|
28
|
+
readonly payload: {
|
|
29
|
+
readonly type: "string";
|
|
30
|
+
readonly minLength: 1;
|
|
31
|
+
readonly maxLength: 65536;
|
|
32
|
+
};
|
|
33
|
+
readonly deadlineMs: {
|
|
34
|
+
readonly type: "integer";
|
|
35
|
+
readonly minimum: 1;
|
|
36
|
+
};
|
|
37
|
+
readonly deadlineAt: {
|
|
38
|
+
readonly type: "integer";
|
|
39
|
+
readonly minimum: 1;
|
|
40
|
+
};
|
|
41
|
+
readonly handoffFrom: {
|
|
42
|
+
readonly type: "string";
|
|
43
|
+
readonly minLength: 1;
|
|
44
|
+
readonly maxLength: 200;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
/** `turn` acceptance: the SEAT the goal was pinned to (its addressing triple), the goal
|
|
49
|
+
* coordinates, the absolute deadline the manager armed, and the executor coordinate — the same
|
|
50
|
+
* floor shape `spawn` serves, because a follower recovers the same way. */
|
|
51
|
+
export declare const TURN_OUTPUT_SCHEMA: {
|
|
52
|
+
readonly type: "object";
|
|
53
|
+
readonly additionalProperties: false;
|
|
54
|
+
readonly required: readonly ["name", "owner", "actor", "uid", "goalId", "fingerprint", "deadlineAt", "executor"];
|
|
55
|
+
readonly properties: {
|
|
56
|
+
readonly name: {
|
|
57
|
+
readonly type: "string";
|
|
58
|
+
};
|
|
59
|
+
readonly owner: {
|
|
60
|
+
readonly type: "string";
|
|
61
|
+
};
|
|
62
|
+
readonly actor: {
|
|
63
|
+
readonly type: "string";
|
|
64
|
+
};
|
|
65
|
+
readonly uid: {
|
|
66
|
+
readonly type: "string";
|
|
67
|
+
};
|
|
68
|
+
readonly goalId: {
|
|
69
|
+
readonly type: "string";
|
|
70
|
+
};
|
|
71
|
+
readonly fingerprint: {
|
|
72
|
+
readonly type: "string";
|
|
73
|
+
};
|
|
74
|
+
readonly deadlineAt: {
|
|
75
|
+
readonly type: "integer";
|
|
76
|
+
readonly minimum: 1;
|
|
77
|
+
};
|
|
78
|
+
readonly executor: {
|
|
79
|
+
readonly type: "object";
|
|
80
|
+
readonly additionalProperties: false;
|
|
81
|
+
readonly required: readonly ["lifecycleUid", "epoch"];
|
|
82
|
+
readonly properties: {
|
|
83
|
+
readonly lifecycleUid: {
|
|
84
|
+
readonly type: "string";
|
|
85
|
+
};
|
|
86
|
+
readonly epoch: {
|
|
87
|
+
readonly type: "integer";
|
|
88
|
+
readonly minimum: 0;
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
//# sourceMappingURL=turn-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turn-contract.d.ts","sourceRoot":"","sources":["../src/turn-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;;2BAQ2B;AAC3B,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWpB,CAAC;AACX;;4EAE4E;AAC5E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkBrB,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The manager's `turn` command contract: the relay a workflow run submits and the acceptance the
|
|
3
|
+
* manager answers with.
|
|
4
|
+
*
|
|
5
|
+
* It lives in core so the manager and every suite that serves a manager-shaped `turn` compile the
|
|
6
|
+
* same objects: implementations never import each other, and a private copy keeps passing after
|
|
7
|
+
* the manager's contract changes.
|
|
8
|
+
*/
|
|
9
|
+
/** `turn` (workflow runs, cotal-lang §5.3): wake the TARGET seat for one turn on behalf of a
|
|
10
|
+
* workflow run. The manager relays and stays run-ignorant: `payload` is an opaque bounded string
|
|
11
|
+
* the seat pulls back verbatim through `turn-pending` — its shape is the runtime↔connector
|
|
12
|
+
* contract, never this endpoint's. A deadline bounds the whole turn and is REQUIRED at the
|
|
13
|
+
* wire (the caller defaults it; an unbounded turn goal could never be settled by a successor
|
|
14
|
+
* incarnation, which refuses to settle a goal with no readiness deadline). It is `deadlineMs`,
|
|
15
|
+
* counted from the acceptance, or `deadlineAt`, an instant the caller already holds (an ask's
|
|
16
|
+
* pause): the hold denies at that same instant, and one already past is refused
|
|
17
|
+
* `deadline-exceeded`. */
|
|
18
|
+
export const TURN_INPUT_SCHEMA = {
|
|
19
|
+
type: "object", additionalProperties: false, required: ["payload"],
|
|
20
|
+
oneOf: [{ required: ["deadlineMs"] }, { required: ["deadlineAt"] }],
|
|
21
|
+
properties: {
|
|
22
|
+
payload: { type: "string", minLength: 1, maxLength: 65536 },
|
|
23
|
+
deadlineMs: { type: "integer", minimum: 1 },
|
|
24
|
+
deadlineAt: { type: "integer", minimum: 1 },
|
|
25
|
+
// The goal-chain link when this turn honors a handoff (lang §5.3): the previous turn's goal
|
|
26
|
+
// id, mirrored into this goal's terminal data so the chain is readable from the facts alone.
|
|
27
|
+
handoffFrom: { type: "string", minLength: 1, maxLength: 200 },
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
/** `turn` acceptance: the SEAT the goal was pinned to (its addressing triple), the goal
|
|
31
|
+
* coordinates, the absolute deadline the manager armed, and the executor coordinate — the same
|
|
32
|
+
* floor shape `spawn` serves, because a follower recovers the same way. */
|
|
33
|
+
export const TURN_OUTPUT_SCHEMA = {
|
|
34
|
+
type: "object", additionalProperties: false,
|
|
35
|
+
required: ["name", "owner", "actor", "uid", "goalId", "fingerprint", "deadlineAt", "executor"],
|
|
36
|
+
properties: {
|
|
37
|
+
name: { type: "string" },
|
|
38
|
+
owner: { type: "string" },
|
|
39
|
+
actor: { type: "string" },
|
|
40
|
+
uid: { type: "string" },
|
|
41
|
+
goalId: { type: "string" },
|
|
42
|
+
fingerprint: { type: "string" },
|
|
43
|
+
deadlineAt: { type: "integer", minimum: 1 },
|
|
44
|
+
executor: {
|
|
45
|
+
type: "object",
|
|
46
|
+
additionalProperties: false,
|
|
47
|
+
required: ["lifecycleUid", "epoch"],
|
|
48
|
+
properties: { lifecycleUid: { type: "string" }, epoch: { type: "integer", minimum: 0 } },
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=turn-contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turn-contract.js","sourceRoot":"","sources":["../src/turn-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;;2BAQ2B;AAC3B,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC;IAClE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;IACnE,UAAU,EAAE;QACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE;QAC3D,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;QAC3C,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;QAC3C,4FAA4F;QAC5F,6FAA6F;QAC7F,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE;KAC9D;CACO,CAAC;AACX;;4EAE4E;AAC5E,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAK;IAC3C,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,CAAC;IAC9F,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACvB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC1B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;QAC3C,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,QAAQ,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC;YACnC,UAAU,EAAE,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;SACzF;KACF;CACO,CAAC"}
|
package/package.json
CHANGED