@intentic/sandbox-contract 1.238.0 → 1.239.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/contracts/agent.contract.d.ts +21 -2
- package/dist/contracts/agent.contract.d.ts.map +1 -1
- package/dist/contracts/agent.contract.js +1 -1
- package/dist/contracts/agent.contract.js.map +1 -1
- package/dist/contracts/runner.contract.d.ts +12 -2
- package/dist/contracts/runner.contract.d.ts.map +1 -1
- package/dist/events.d.ts +13 -0
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +10 -0
- package/dist/events.js.map +1 -1
- package/dist/index.d.ts +138 -118
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/schemas/engines.d.ts +157 -0
- package/dist/schemas/engines.d.ts.map +1 -0
- package/dist/schemas/engines.js +70 -0
- package/dist/schemas/engines.js.map +1 -0
- package/dist/schemas/plan-limits.d.ts +19 -0
- package/dist/schemas/plan-limits.d.ts.map +1 -1
- package/dist/schemas/plan-limits.js +8 -1
- package/dist/schemas/plan-limits.js.map +1 -1
- package/dist/workspace-state.d.ts +5 -0
- package/dist/workspace-state.d.ts.map +1 -1
- package/dist/workspace-state.js +1 -0
- package/dist/workspace-state.js.map +1 -1
- package/package.json +4 -4
- package/src/contracts/agent.contract.ts +1 -1
- package/src/events.test.ts +14 -0
- package/src/events.ts +44 -7
- package/src/index.ts +1 -0
- package/src/schemas/engines.ts +129 -0
- package/src/schemas/plan-limits.ts +31 -12
- package/src/workspace-state.test.ts +5 -0
- package/src/workspace-state.ts +12 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const ENGINE_IDS = ["claude", "codex", "cursor", "opencode", "translator"];
|
|
3
|
+
export const EngineIdSchema = z.enum(ENGINE_IDS);
|
|
4
|
+
export const EngineChannelSchema = z.object({
|
|
5
|
+
kind: z.enum(["blessed", "latest", "pinned", "image"]).describe("Where this engine's version comes from."),
|
|
6
|
+
version: z.string().optional().describe("Which version, when it is pinned to one."),
|
|
7
|
+
});
|
|
8
|
+
export const EngineQuarantineSchema = z.object({
|
|
9
|
+
version: z.string().describe("Which version was refused."),
|
|
10
|
+
reason: z.string().describe("What was wrong with it: it would not launch, or it did not export what the daemon calls."),
|
|
11
|
+
at: z.string().describe("When it was refused."),
|
|
12
|
+
});
|
|
13
|
+
export const EngineRowSchema = z.object({
|
|
14
|
+
id: EngineIdSchema.describe("Which engine."),
|
|
15
|
+
label: z.string().describe("What it is called on screen."),
|
|
16
|
+
running: z
|
|
17
|
+
.object({
|
|
18
|
+
version: z.string().optional().describe("The version a turn would use right now. Absent means there is no copy of this engine here yet."),
|
|
19
|
+
source: z
|
|
20
|
+
.enum(["image", "store"])
|
|
21
|
+
.describe("Whether that version is the one baked into the sandbox image or one the store installed over it."),
|
|
22
|
+
})
|
|
23
|
+
.describe("What a turn started now would actually run."),
|
|
24
|
+
baked: z
|
|
25
|
+
.string()
|
|
26
|
+
.optional()
|
|
27
|
+
.describe("The version the image bakes, which is the floor everything else falls back to. Absent on an image that carries no copy of it."),
|
|
28
|
+
channel: EngineChannelSchema.describe("The owner's standing answer for this engine."),
|
|
29
|
+
offered: z
|
|
30
|
+
.object({
|
|
31
|
+
version: z.string().describe("The version this engine would move to."),
|
|
32
|
+
blessed: z.boolean().describe("Whether the blessed list names this version, which on the latest channel is routinely no."),
|
|
33
|
+
})
|
|
34
|
+
.optional()
|
|
35
|
+
.describe("A newer version waiting, absent when the running one is already what the channel asks for."),
|
|
36
|
+
blessed: z.string().optional().describe("What the blessed list names for this engine, when the list has been read."),
|
|
37
|
+
previous: z.string().optional().describe("The version kept one step back, which is what going back means."),
|
|
38
|
+
quarantined: z.array(EngineQuarantineSchema).describe("Versions the store installed and then refused, with the reason."),
|
|
39
|
+
diskBytes: z.number().int().nonnegative().describe("What this engine's kept versions cost on the daemon's volume."),
|
|
40
|
+
});
|
|
41
|
+
export const EnginesViewSchema = z.object({
|
|
42
|
+
engines: z.array(EngineRowSchema).describe("Every engine this sandbox can run, whether or not the store holds anything for it."),
|
|
43
|
+
checkedAt: z.string().optional().describe("When upstream was last asked what it publishes. Absent until the first check has run."),
|
|
44
|
+
listSource: z.string().describe("Where the blessed list is read from, so a self-hosted sandbox can show its own."),
|
|
45
|
+
listReadAt: z.string().optional().describe("When that list was last read. Absent means it has never been reachable from here."),
|
|
46
|
+
});
|
|
47
|
+
export const EngineChannelInputSchema = z.object({
|
|
48
|
+
id: EngineIdSchema.describe("Which engine."),
|
|
49
|
+
kind: z.enum(["blessed", "latest", "pinned", "image"]).describe("Where its version should come from."),
|
|
50
|
+
version: z.string().optional().describe("Which version, required when pinning and ignored otherwise."),
|
|
51
|
+
});
|
|
52
|
+
export const EngineUpdateInputSchema = z.object({
|
|
53
|
+
id: EngineIdSchema.describe("Which engine."),
|
|
54
|
+
version: z
|
|
55
|
+
.string()
|
|
56
|
+
.optional()
|
|
57
|
+
.describe("Which version. Leave it out for whatever the channel offers; naming one takes a version nobody has blessed, deliberately."),
|
|
58
|
+
floor: z
|
|
59
|
+
.string()
|
|
60
|
+
.optional()
|
|
61
|
+
.describe("Install the lowest published version at or above this one. What a turn refused for being too old sends back."),
|
|
62
|
+
});
|
|
63
|
+
export const EngineRevertInputSchema = z.object({ id: EngineIdSchema.describe("Which engine.") });
|
|
64
|
+
export const EngineAppliedSchema = z.object({
|
|
65
|
+
ok: z.literal(true).describe("It went through."),
|
|
66
|
+
version: z.string().describe("Which version is now active."),
|
|
67
|
+
source: z.enum(["image", "store"]).describe("Whether that is the image's copy or the store's."),
|
|
68
|
+
fromNextTurn: z.boolean().describe("Whether the change reaches turns already in flight, or only the next one."),
|
|
69
|
+
});
|
|
70
|
+
//# sourceMappingURL=engines.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engines.js","sourceRoot":"","sources":["../../src/schemas/engines.ts"],"names":[],"mappings":"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"}
|
|
@@ -166,7 +166,26 @@ export declare const SteerSchema: z.ZodObject<{
|
|
|
166
166
|
export declare const StopTurnSchema: z.ZodObject<{
|
|
167
167
|
conversationId: z.ZodString;
|
|
168
168
|
}, z.core.$strip>;
|
|
169
|
+
export declare const ResumeRoutingSchema: z.ZodObject<{
|
|
170
|
+
agent: z.ZodString;
|
|
171
|
+
harness: z.ZodEnum<{
|
|
172
|
+
"claude-code": "claude-code";
|
|
173
|
+
native: "native";
|
|
174
|
+
}>;
|
|
175
|
+
account: z.ZodOptional<z.ZodString>;
|
|
176
|
+
model: z.ZodOptional<z.ZodString>;
|
|
177
|
+
}, z.core.$strip>;
|
|
178
|
+
export type ResumeRouting = z.infer<typeof ResumeRoutingSchema>;
|
|
169
179
|
export declare const ResumeTurnSchema: z.ZodObject<{
|
|
170
180
|
conversationId: z.ZodString;
|
|
181
|
+
routing: z.ZodOptional<z.ZodObject<{
|
|
182
|
+
agent: z.ZodString;
|
|
183
|
+
harness: z.ZodEnum<{
|
|
184
|
+
"claude-code": "claude-code";
|
|
185
|
+
native: "native";
|
|
186
|
+
}>;
|
|
187
|
+
account: z.ZodOptional<z.ZodString>;
|
|
188
|
+
model: z.ZodOptional<z.ZodString>;
|
|
189
|
+
}, z.core.$strip>>;
|
|
171
190
|
}, z.core.$strip>;
|
|
172
191
|
//# sourceMappingURL=plan-limits.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-limits.d.ts","sourceRoot":"","sources":["../../src/schemas/plan-limits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,iBAAiB;;;;;iBAK5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAU5D,eAAO,MAAM,kBAAkB;;;;;;;;iBAG7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAmB9D,eAAO,MAAM,qBAAqB;;;;;;;;;iBAmBhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,eAAO,MAAM,sBAAsB;;;;;;;;;;;iBAMjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAGtE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;iBAQlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAKxE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAI1E,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BA2G3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAM1D,eAAO,MAAM,WAAW;;;;;;;;;;iBAclB,CAAC;AAGP,eAAO,MAAM,cAAc;;iBAA2G,CAAC;
|
|
1
|
+
{"version":3,"file":"plan-limits.d.ts","sourceRoot":"","sources":["../../src/schemas/plan-limits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,iBAAiB;;;;;iBAK5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAU5D,eAAO,MAAM,kBAAkB;;;;;;;;iBAG7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAmB9D,eAAO,MAAM,qBAAqB;;;;;;;;;iBAmBhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,eAAO,MAAM,sBAAsB;;;;;;;;;;;iBAMjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAGtE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;iBAQlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAKxE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAI1E,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BA2G3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAM1D,eAAO,MAAM,WAAW;;;;;;;;;;iBAclB,CAAC;AAGP,eAAO,MAAM,cAAc;;iBAA2G,CAAC;AAgBvI,eAAO,MAAM,mBAAmB;;;;;;;;iBAO9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAMhE,eAAO,MAAM,gBAAgB;;;;;;;;;;;iBAK3B,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { EditorContextSchema } from "./agent.js";
|
|
2
|
+
import { AgentHarnessSchema, AgentProviderSchema, EditorContextSchema } from "./agent.js";
|
|
3
3
|
export const UsageWindowSchema = z.object({
|
|
4
4
|
kind: z.string(),
|
|
5
5
|
label: z.string().optional(),
|
|
@@ -120,7 +120,14 @@ export const SteerSchema = z
|
|
|
120
120
|
message: "text or attachments required",
|
|
121
121
|
});
|
|
122
122
|
export const StopTurnSchema = z.object({ conversationId: z.string().min(1).describe("Which conversation's running turn to cancel.") });
|
|
123
|
+
export const ResumeRoutingSchema = z.object({
|
|
124
|
+
agent: AgentProviderSchema.describe("Which provider serves the re-run."),
|
|
125
|
+
harness: AgentHarnessSchema.describe("Which agentic loop runs it."),
|
|
126
|
+
account: z.string().optional().describe("Which of that provider's accounts pays for it. Leave it out for the first one."),
|
|
127
|
+
model: z.string().optional().describe("Which model. Leave it out to keep the one the refused turn named."),
|
|
128
|
+
});
|
|
123
129
|
export const ResumeTurnSchema = z.object({
|
|
124
130
|
conversationId: z.string().min(1).describe("Which conversation's held turn to run again."),
|
|
131
|
+
routing: ResumeRoutingSchema.optional().describe("Who serves the re-run, when the conversation has been re-pointed since it was refused. Leave it out to run it on whatever the turn carried."),
|
|
125
132
|
});
|
|
126
133
|
//# sourceMappingURL=plan-limits.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-limits.js","sourceRoot":"","sources":["../../src/schemas/plan-limits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"plan-limits.js","sourceRoot":"","sources":["../../src/schemas/plan-limits.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,6 +71,11 @@ declare const STATE_FILES: readonly [{
|
|
|
71
71
|
readonly path: ".intentic/records/runtime-installs.json";
|
|
72
72
|
readonly invalidates: readonly ["environment"];
|
|
73
73
|
readonly portability: "carry";
|
|
74
|
+
}, {
|
|
75
|
+
readonly path: ".intentic/config/engines.json";
|
|
76
|
+
readonly invalidates: readonly ["engines"];
|
|
77
|
+
readonly portability: "carry";
|
|
78
|
+
readonly versioned: true;
|
|
74
79
|
}, {
|
|
75
80
|
readonly path: ".intentic/config/drafts/";
|
|
76
81
|
readonly invalidates: readonly ["drafts"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-state.d.ts","sourceRoot":"","sources":["../src/workspace-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AA0CxD,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IAKjD,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAExC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAgCtB,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;IAY1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;IAoBzB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IAKxB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACnC;AAOD,QAAA,MAAM,WAAW;mBA4BH,oCAAoC;;0BAE7B,OAAO;;;mBAShB,6CAA6C;;0BAA8C,OAAO;;;mBAOlG,oCAAoC;;0BAAyC,OAAO;;mBAQlF,sCAAsC;;kBAEvC,4GAA4G;0BACpG,OAAO;;mBAehB,gCAAgC;;0BAAuE,OAAO;;;mBAY9G,gDAAgD;;0BAA6C,OAAO;;;mBACpG,yCAAyC;;0BAA6C,OAAO;;;mBAC7F,iCAAiC;;0BAA6C,OAAO;;;mBAEnF,iDAAiD;;0BAE1C,SAAS;mBAChB,oGAAoG;;mBAGtG,gCAAgC;;0BAAuD,OAAO;;;mBAY9F,sCAAsC;;0BAA0C,OAAO;;;mBAKrF,mCAAmC;;0BAE5B,SAAS;mBAChB,qFAAqF;;mBAQvF,yCAAyC;;0BAA6C,OAAO;;
|
|
1
|
+
{"version":3,"file":"workspace-state.d.ts","sourceRoot":"","sources":["../src/workspace-state.ts"],"names":[],"mappings":"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"}
|
package/dist/workspace-state.js
CHANGED
|
@@ -33,6 +33,7 @@ const STATE_FILES = [
|
|
|
33
33
|
note: "Stamps of when each rule last did something; the new sandbox starts its own record.",
|
|
34
34
|
},
|
|
35
35
|
{ path: ".intentic/records/runtime-installs.json", invalidates: ["environment"], portability: "carry" },
|
|
36
|
+
{ path: ".intentic/config/engines.json", invalidates: ["engines"], portability: "carry", versioned: true },
|
|
36
37
|
{ path: ".intentic/config/drafts/", invalidates: ["drafts"], portability: "carry", versioned: true, authored: true },
|
|
37
38
|
{
|
|
38
39
|
path: ".intentic/config/automations.json",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-state.js","sourceRoot":"","sources":["../src/workspace-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAgIhD,MAAM,WAAW,GAAG;IA2BhB;QACI,IAAI,EAAE,oCAAoC;QAC1C,WAAW,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,CAAC;QACnE,WAAW,EAAE,OAAO;QACpB,SAAS,EAAE,IAAI;KAClB;IAOD,EAAE,IAAI,EAAE,6CAA6C,EAAE,WAAW,EAAE,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE;IAO7H,EAAE,IAAI,EAAE,oCAAoC,EAAE,WAAW,EAAE,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE;IAO9F;QACI,IAAI,EAAE,sCAAsC;QAC5C,WAAW,EAAE,EAAE;QACf,GAAG,EAAE,4GAA4G;QACjH,WAAW,EAAE,OAAO;KACvB;IAcD,EAAE,IAAI,EAAE,gCAAgC,EAAE,WAAW,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE;IAYzI,EAAE,IAAI,EAAE,gDAAgD,EAAE,WAAW,EAAE,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE;IAC/H,EAAE,IAAI,EAAE,yCAAyC,EAAE,WAAW,EAAE,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE;IACxH,EAAE,IAAI,EAAE,iCAAiC,EAAE,WAAW,EAAE,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE;IAChH;QACI,IAAI,EAAE,iDAAiD;QACvD,WAAW,EAAE,CAAC,aAAa,CAAC;QAC5B,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,oGAAoG;KAC7G;IAED,EAAE,IAAI,EAAE,gCAAgC,EAAE,WAAW,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE;IAYzH,EAAE,IAAI,EAAE,sCAAsC,EAAE,WAAW,EAAE,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE;IAIlH;QACI,IAAI,EAAE,mCAAmC;QACzC,WAAW,EAAE,CAAC,cAAc,CAAC;QAC7B,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,qFAAqF;KAC9F;IAOD,EAAE,IAAI,EAAE,yCAAyC,EAAE,WAAW,EAAE,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"workspace-state.js","sourceRoot":"","sources":["../src/workspace-state.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intentic/sandbox-contract",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.239.0",
|
|
4
4
|
"description": "oRPC wire contract for the intentic sandbox daemon, shared by the daemon and its browser client",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -119,9 +119,9 @@
|
|
|
119
119
|
}
|
|
120
120
|
},
|
|
121
121
|
"dependencies": {
|
|
122
|
-
"@intentic/constants": "1.
|
|
123
|
-
"@intentic/extension-manifest": "1.
|
|
124
|
-
"@intentic/registry": "1.
|
|
122
|
+
"@intentic/constants": "1.239.0",
|
|
123
|
+
"@intentic/extension-manifest": "1.239.0",
|
|
124
|
+
"@intentic/registry": "1.239.0",
|
|
125
125
|
"@orpc/contract": "1.14.13",
|
|
126
126
|
"tslib": "2.8.1",
|
|
127
127
|
"zod": "4.4.3"
|
|
@@ -74,7 +74,7 @@ export const agentContract = {
|
|
|
74
74
|
path: "/agent/resume",
|
|
75
75
|
summary: "Run a refused turn again",
|
|
76
76
|
description:
|
|
77
|
-
"Sends the same turn again when the model provider's allowance refused it, with everything it originally carried. It repeats the request rather than adding a new message to the conversation, so pressing it twice costs nothing and the agent is never told to continue work it has not started.",
|
|
77
|
+
"Sends the same turn again when the model provider's allowance refused it, with everything it originally carried except who serves it: the caller may name a different provider, harness or account, which is the usual answer to a spent allowance. It repeats the request rather than adding a new message to the conversation, so pressing it twice costs nothing and the agent is never told to continue work it has not started.",
|
|
78
78
|
})
|
|
79
79
|
.input(ResumeTurnSchema)
|
|
80
80
|
.output(StartedTurnSchema),
|
package/src/events.test.ts
CHANGED
|
@@ -44,6 +44,20 @@ test("a re-run discloses as a notice, and the answered case as a note on the mes
|
|
|
44
44
|
expect(answered).toEqual({ kind: "note", note: { title: expect.any(String), text: RESUME_NOTES.answered } });
|
|
45
45
|
});
|
|
46
46
|
|
|
47
|
+
/* THE THREE SPENT-ALLOWANCE NOTES OPEN ON THE SAME SENTENCE, and both readers of a note resolve it by PREFIX
|
|
48
|
+
* (withoutResumeNote, resumeDisclosure). So one of them growing into a prefix of another is a silent swap rather
|
|
49
|
+
* than a failure: a press that moved the turn onto an account with headroom would report itself as an ordinary
|
|
50
|
+
* re-run, and the reader would be told nothing about the one fact that explains why this press worked where the
|
|
51
|
+
* last one bounced. Each resolves to its own line, or this is broken. */
|
|
52
|
+
test("the spent-allowance notes do not disclose as each other", () => {
|
|
53
|
+
const lines = (["limit", "switched", "refused"] as const).map((reason) => {
|
|
54
|
+
const disclosure = resumeDisclosure(withResumeNote("ship the parser", RESUME_NOTES[reason]));
|
|
55
|
+
expect(disclosure?.kind).toBe("notice");
|
|
56
|
+
return disclosure?.kind === "notice" ? disclosure.text : reason;
|
|
57
|
+
});
|
|
58
|
+
expect(new Set(lines).size).toBe(3);
|
|
59
|
+
});
|
|
60
|
+
|
|
47
61
|
// Same guarantee withoutResumeNote gives: an ordinary prompt is not a resume of anything.
|
|
48
62
|
test("a prompt that is not a resume discloses nothing", () => {
|
|
49
63
|
expect(resumeDisclosure("just a question")).toBeUndefined();
|
package/src/events.ts
CHANGED
|
@@ -1048,8 +1048,31 @@ export const AgentEventSchema = z.discriminatedUnion("kind", [
|
|
|
1048
1048
|
* is a real classification all the same: it says the failure came from the LOOP rather than
|
|
1049
1049
|
* from the provider, the credential or the request, which rules out every recovery next door. */
|
|
1050
1050
|
"harness-incomplete",
|
|
1051
|
+
/* THE ENGINE IS TOO OLD FOR THE MODEL, and the provider says so in the same breath as the
|
|
1052
|
+
* version that would work ("Claude Code 2.1.233 does not support this model; version 2.1.251
|
|
1053
|
+
* or newer is required"). Its own code because the fix is unlike every neighbour's: nothing is
|
|
1054
|
+
* disconnected, nothing is spent, no retry of any length helps, and the thing that has to
|
|
1055
|
+
* change is not the request but the PROGRAM running it (schemas/engines.ts).
|
|
1056
|
+
*
|
|
1057
|
+
* It used to be unfixable from inside a sandbox at all — the engine came with the image, so a
|
|
1058
|
+
* whole fleet failed every turn on this model until a new image reached it. Now the daemon can
|
|
1059
|
+
* install the version the provider named, which is why this frame carries the numbers rather
|
|
1060
|
+
* than only the sentence: `engine` is what the card's Update button acts on. The install is
|
|
1061
|
+
* still a person's decision, because the version that satisfies a floor is by definition one
|
|
1062
|
+
* nobody has blessed yet. */
|
|
1063
|
+
"engine-version-floor",
|
|
1051
1064
|
])
|
|
1052
1065
|
.optional(),
|
|
1066
|
+
/* engine-version-floor only: which engine is too old, what it is running, and the floor the provider
|
|
1067
|
+
* demanded. On the wire because the recovery is a specific, offerable action — install at or above
|
|
1068
|
+
* `floor` — and a client that had only the sentence would have to parse prose to offer it. */
|
|
1069
|
+
engine: z
|
|
1070
|
+
.object({
|
|
1071
|
+
id: z.string().describe("Which engine (e.g. claude)."),
|
|
1072
|
+
running: z.string().optional().describe("The version that was refused, when the provider named it."),
|
|
1073
|
+
floor: z.string().describe("The lowest version the provider will accept."),
|
|
1074
|
+
})
|
|
1075
|
+
.optional(),
|
|
1053
1076
|
// rate_limit only: when the exhausted window reopens (epoch seconds, from the stream's own
|
|
1054
1077
|
// rate_limit_event or the account's persisted usage windows). Absent when the reset instant is unknown
|
|
1055
1078
|
// (nothing to schedule against).
|
|
@@ -1147,11 +1170,18 @@ export const RESUME_NOTES = {
|
|
|
1147
1170
|
auth: `The Claude credential that interrupted this conversation has been renewed, and this turn resumed automatically. ${REPEATED}`,
|
|
1148
1171
|
outage: `The model provider was briefly unavailable and interrupted this conversation; this turn resumed automatically. ${REPEATED}`,
|
|
1149
1172
|
restart: `The sandbox restarted while this turn was running, which stopped it, and this turn resumed automatically once it came back. ${REPEATED}`,
|
|
1150
|
-
/* A SPENT ALLOWANCE STRANDS A TURN IN
|
|
1173
|
+
/* A SPENT ALLOWANCE STRANDS A TURN IN THREE SHAPES, and they must not share a note.
|
|
1151
1174
|
*
|
|
1152
1175
|
* `limit` is the mid-turn one and reads like its three neighbours above: the session holds real work, and
|
|
1153
1176
|
* carrying on from it is exactly right.
|
|
1154
1177
|
*
|
|
1178
|
+
* `switched` is that same mid-turn stranding picked back up on a DIFFERENT account (or provider, or
|
|
1179
|
+
* harness), which is what the composer's account switcher does between the refusal and the press. A session
|
|
1180
|
+
* belongs to the credential that minted it, so this one cannot resume: it opens a fresh session seeded from
|
|
1181
|
+
* the daemon's record. REPEATED's "already completed in this session" is therefore false where it counts —
|
|
1182
|
+
* the work is in the carried-across conversation, not in this session's own history — and a model told to
|
|
1183
|
+
* look for it there finds nothing and starts over silently.
|
|
1184
|
+
*
|
|
1155
1185
|
* `refused` is the turn the provider turned away at the door, before the model read one word of it, and it
|
|
1156
1186
|
* is the COMMONER of the two, because an allowance that is already spent refuses the first request it is
|
|
1157
1187
|
* asked. REPEATED is actively wrong for it: "part of it was already completed in this session, continue from
|
|
@@ -1162,6 +1192,8 @@ export const RESUME_NOTES = {
|
|
|
1162
1192
|
* allowance is the user's own budget and stays their call to spend (turn-resume.ts), so what re-ran this
|
|
1163
1193
|
* turn was a person pressing Continue. */
|
|
1164
1194
|
limit: `The model provider's usage allowance ran out while this turn was running, which stopped it, and it has been sent again. ${REPEATED}`,
|
|
1195
|
+
switched:
|
|
1196
|
+
"The model provider's usage allowance ran out while this turn was running, which stopped it, and it has been sent again on a different account, which starts a fresh session. The conversation so far has been carried across above, including the part of the request that was already completed: continue from that point instead of starting over.",
|
|
1165
1197
|
refused:
|
|
1166
1198
|
"The model provider refused the previous attempt at this request outright, because its usage allowance was spent: no part of the request below was read or acted on, and nothing has been done towards it. It has been sent again, and starts from the beginning.",
|
|
1167
1199
|
// A turn that was PARKED on the user when the daemon died: nothing re-runs at boot, the card is restored
|
|
@@ -1209,13 +1241,18 @@ const RESUME_DISCLOSURES: Record<ResumeReason, ResumeDisclosure> = {
|
|
|
1209
1241
|
auth: { kind: "notice", text: "Claude sign-in renewed, this turn picked up where it left off." },
|
|
1210
1242
|
outage: { kind: "notice", text: "The model provider came back, this turn picked up where it left off." },
|
|
1211
1243
|
restart: { kind: "notice", text: "The sandbox came back, this turn picked up where it left off." },
|
|
1212
|
-
/* THE
|
|
1213
|
-
*
|
|
1214
|
-
*
|
|
1215
|
-
*
|
|
1216
|
-
*
|
|
1217
|
-
*
|
|
1244
|
+
/* THE THREE NOBODY AUTOMATED, said in the passive voice the other three earn honestly and these do not: a
|
|
1245
|
+
* person pressed Continue. Which is the whole reason these rows exist at all. A press used to append the word
|
|
1246
|
+
* "Continue" as a message of its own, so a chat that bounced off a spent allowance four times read back as
|
|
1247
|
+
* the user saying "Continue" four times to an agent that had answered none of them, and the provider session
|
|
1248
|
+
* the model actually reads accumulated all four (plus a synthetic "No response requested." per press). One
|
|
1249
|
+
* row for one press was never the problem; a row that claims the user said something new is.
|
|
1250
|
+
*
|
|
1251
|
+
* `switched` names the account because that is the fact the reader needs: they pressed the same button they
|
|
1252
|
+
* pressed a minute ago, and the difference between the press that bounced and the press that worked is who
|
|
1253
|
+
* served it. The line is also the only place a retired session is accounted for. */
|
|
1218
1254
|
limit: { kind: "notice", text: "Sent again after the allowance ran out mid-turn, picking up where it left off." },
|
|
1255
|
+
switched: { kind: "notice", text: "Sent again on the switched account after the allowance ran out mid-turn, in a fresh session." },
|
|
1219
1256
|
refused: { kind: "notice", text: "Sent again after the allowance refused it: nothing had run." },
|
|
1220
1257
|
answered: { kind: "note", note: { title: "Picked back up after a sandbox restart", text: RESUME_NOTES.answered } },
|
|
1221
1258
|
};
|
package/src/index.ts
CHANGED
|
@@ -144,6 +144,7 @@ export * from "./schemas/claude-gate.js";
|
|
|
144
144
|
export * from "./schemas/codebase-health.js";
|
|
145
145
|
export * from "./schemas/computers.js";
|
|
146
146
|
export * from "./schemas/drafts.js";
|
|
147
|
+
export * from "./schemas/engines.js";
|
|
147
148
|
export * from "./schemas/environment.js";
|
|
148
149
|
export * from "./schemas/exit.js";
|
|
149
150
|
export * from "./schemas/extension-updates.js";
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
// engines: the upstream agent programs this sandbox spawns, and which version of each it runs
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
|
|
4
|
+
/* AN ENGINE IS THE PROGRAM A RUNTIME RIDES ON, which is a different noun from `runtime` and has to stay one.
|
|
5
|
+
*
|
|
6
|
+
* `runtime` (agent-catalog.ts) is the LOOP: claude-code, codex, opencode, acp, pi, cursor — what shape a turn
|
|
7
|
+
* has. An engine is the installed PROGRAM that loop spawns or imports: the `claude` binary and its SDK, the
|
|
8
|
+
* `codex` wrapper, `@cursor/sdk`, the `opencode` binary, the `cli-proxy-api` translator. One engine can back
|
|
9
|
+
* several runtimes (the translator serves Gemini, Kimi and ChatGPT; Kimi runs under the Claude Code loop), so
|
|
10
|
+
* the two lists are neither the same set nor the same question.
|
|
11
|
+
*
|
|
12
|
+
* The distinction earns its keep because engines have a lifecycle runtimes do not: they are published upstream,
|
|
13
|
+
* on somebody else's schedule, and until this existed the only way to move one was to ship a sandbox image.
|
|
14
|
+
* That made an ordinary upstream event — Anthropic raising the version floor a model requires — into a support
|
|
15
|
+
* problem: every sandbox in the fleet failed every Claude turn until a new image reached it.
|
|
16
|
+
*
|
|
17
|
+
* So an engine version now comes from a STORE on the daemon volume, and the image's copy is the floor beneath
|
|
18
|
+
* it. The blessed list says which version this project has actually run its suite against; an owner who wants
|
|
19
|
+
* upstream's newest without waiting for that says so per engine. */
|
|
20
|
+
|
|
21
|
+
export const ENGINE_IDS = ["claude", "codex", "cursor", "opencode", "translator"] as const;
|
|
22
|
+
export type EngineId = (typeof ENGINE_IDS)[number];
|
|
23
|
+
export const EngineIdSchema = z.enum(ENGINE_IDS);
|
|
24
|
+
|
|
25
|
+
/* THE OWNER'S STANDING ANSWER for one engine, and the whole of the version policy.
|
|
26
|
+
*
|
|
27
|
+
* blessed , the default: whatever the blessed list names, which is a version this project's CI has run
|
|
28
|
+
* against. Data, not an image, so blessing a version reaches a running sandbox in seconds.
|
|
29
|
+
* latest , upstream's newest published version, taken without waiting for anyone to bless it. The opt-in
|
|
30
|
+
* for an owner who would rather have the fix than the assurance.
|
|
31
|
+
* pinned , exactly this version, until they say otherwise. What a revert leaves behind, and what somebody
|
|
32
|
+
* debugging a regression wants.
|
|
33
|
+
* image , do not use the store at all: run what the image bakes. The way back to a stock sandbox. */
|
|
34
|
+
export const EngineChannelSchema = z.object({
|
|
35
|
+
kind: z.enum(["blessed", "latest", "pinned", "image"]).describe("Where this engine's version comes from."),
|
|
36
|
+
version: z.string().optional().describe("Which version, when it is pinned to one."),
|
|
37
|
+
});
|
|
38
|
+
export type EngineChannel = z.infer<typeof EngineChannelSchema>;
|
|
39
|
+
|
|
40
|
+
// A version the store installed and then refused, with the reason it was refused. Kept per engine so a bad
|
|
41
|
+
// publish is not retried on a timer forever, and so the card can say why the sandbox is back on the image's
|
|
42
|
+
// copy rather than leaving that as an unexplained downgrade.
|
|
43
|
+
export const EngineQuarantineSchema = z.object({
|
|
44
|
+
version: z.string().describe("Which version was refused."),
|
|
45
|
+
reason: z.string().describe("What was wrong with it: it would not launch, or it did not export what the daemon calls."),
|
|
46
|
+
at: z.string().describe("When it was refused."),
|
|
47
|
+
});
|
|
48
|
+
export type EngineQuarantine = z.infer<typeof EngineQuarantineSchema>;
|
|
49
|
+
|
|
50
|
+
// One engine as the Environment card draws it: what is running, what is on offer, and what the ways out are.
|
|
51
|
+
export const EngineRowSchema = z.object({
|
|
52
|
+
id: EngineIdSchema.describe("Which engine."),
|
|
53
|
+
label: z.string().describe("What it is called on screen."),
|
|
54
|
+
running: z
|
|
55
|
+
.object({
|
|
56
|
+
// Absent means this sandbox has no copy of the engine at all: a core image bakes no provider packs,
|
|
57
|
+
// and until the store installs one, a turn on that provider cannot start. Different from "running
|
|
58
|
+
// the image's copy", and the card says so rather than drawing a blank version.
|
|
59
|
+
version: z.string().optional().describe("The version a turn would use right now. Absent means there is no copy of this engine here yet."),
|
|
60
|
+
source: z
|
|
61
|
+
.enum(["image", "store"])
|
|
62
|
+
.describe("Whether that version is the one baked into the sandbox image or one the store installed over it."),
|
|
63
|
+
})
|
|
64
|
+
.describe("What a turn started now would actually run."),
|
|
65
|
+
baked: z
|
|
66
|
+
.string()
|
|
67
|
+
.optional()
|
|
68
|
+
.describe("The version the image bakes, which is the floor everything else falls back to. Absent on an image that carries no copy of it."),
|
|
69
|
+
channel: EngineChannelSchema.describe("The owner's standing answer for this engine."),
|
|
70
|
+
// What the channel would move to, absent when the running version is already it. Carries whether the
|
|
71
|
+
// blessed list names it, because on `latest` the answer is routinely no and the row has to say so.
|
|
72
|
+
offered: z
|
|
73
|
+
.object({
|
|
74
|
+
version: z.string().describe("The version this engine would move to."),
|
|
75
|
+
blessed: z.boolean().describe("Whether the blessed list names this version, which on the latest channel is routinely no."),
|
|
76
|
+
})
|
|
77
|
+
.optional()
|
|
78
|
+
.describe("A newer version waiting, absent when the running one is already what the channel asks for."),
|
|
79
|
+
blessed: z.string().optional().describe("What the blessed list names for this engine, when the list has been read."),
|
|
80
|
+
// The store keeps one version back so a revert is a pointer move rather than a download. Absent on an
|
|
81
|
+
// engine that has only ever run the image's copy.
|
|
82
|
+
previous: z.string().optional().describe("The version kept one step back, which is what going back means."),
|
|
83
|
+
quarantined: z.array(EngineQuarantineSchema).describe("Versions the store installed and then refused, with the reason."),
|
|
84
|
+
diskBytes: z.number().int().nonnegative().describe("What this engine's kept versions cost on the daemon's volume."),
|
|
85
|
+
});
|
|
86
|
+
export type EngineRow = z.infer<typeof EngineRowSchema>;
|
|
87
|
+
|
|
88
|
+
export const EnginesViewSchema = z.object({
|
|
89
|
+
engines: z.array(EngineRowSchema).describe("Every engine this sandbox can run, whether or not the store holds anything for it."),
|
|
90
|
+
checkedAt: z.string().optional().describe("When upstream was last asked what it publishes. Absent until the first check has run."),
|
|
91
|
+
listSource: z.string().describe("Where the blessed list is read from, so a self-hosted sandbox can show its own."),
|
|
92
|
+
listReadAt: z.string().optional().describe("When that list was last read. Absent means it has never been reachable from here."),
|
|
93
|
+
});
|
|
94
|
+
export type EnginesView = z.infer<typeof EnginesViewSchema>;
|
|
95
|
+
|
|
96
|
+
export const EngineChannelInputSchema = z.object({
|
|
97
|
+
id: EngineIdSchema.describe("Which engine."),
|
|
98
|
+
kind: z.enum(["blessed", "latest", "pinned", "image"]).describe("Where its version should come from."),
|
|
99
|
+
version: z.string().optional().describe("Which version, required when pinning and ignored otherwise."),
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
/* Install and activate a version now. `version` absent means what the channel offers, which is the button on
|
|
103
|
+
* the row. Naming one explicitly is the "update anyway" path: it installs a version the blessed list does not
|
|
104
|
+
* name, which is how a sandbox gets past an upstream version floor that the list has not caught up with. */
|
|
105
|
+
export const EngineUpdateInputSchema = z.object({
|
|
106
|
+
id: EngineIdSchema.describe("Which engine."),
|
|
107
|
+
version: z
|
|
108
|
+
.string()
|
|
109
|
+
.optional()
|
|
110
|
+
.describe("Which version. Leave it out for whatever the channel offers; naming one takes a version nobody has blessed, deliberately."),
|
|
111
|
+
/* The other half of the update-anyway path: a turn that died on an upstream version floor knows the floor
|
|
112
|
+
* and not which published version satisfies it. Sending the floor lets the daemon answer that — it takes
|
|
113
|
+
* the LOWEST version at or above it, the smallest step that works — rather than making a browser walk a
|
|
114
|
+
* registry to fill in a version number. */
|
|
115
|
+
floor: z
|
|
116
|
+
.string()
|
|
117
|
+
.optional()
|
|
118
|
+
.describe("Install the lowest published version at or above this one. What a turn refused for being too old sends back."),
|
|
119
|
+
});
|
|
120
|
+
export const EngineRevertInputSchema = z.object({ id: EngineIdSchema.describe("Which engine.") });
|
|
121
|
+
|
|
122
|
+
export const EngineAppliedSchema = z.object({
|
|
123
|
+
ok: z.literal(true).describe("It went through."),
|
|
124
|
+
version: z.string().describe("Which version is now active."),
|
|
125
|
+
source: z.enum(["image", "store"]).describe("Whether that is the image's copy or the store's."),
|
|
126
|
+
// An engine loaded in-process (the Claude SDK's JavaScript half, @cursor/sdk) is picked up by the NEXT
|
|
127
|
+
// turn rather than by the one that pressed the button: a turn already running holds the module it loaded.
|
|
128
|
+
fromNextTurn: z.boolean().describe("Whether the change reaches turns already in flight, or only the next one."),
|
|
129
|
+
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { EditorContextSchema } from "./agent.js";
|
|
2
|
+
import { AgentHarnessSchema, AgentProviderSchema, EditorContextSchema } from "./agent.js";
|
|
3
3
|
// Declared ABOVE both account shapes because both carry it: headroom is one idea in this product, not a Claude
|
|
4
4
|
// idea that other providers imitate. A native account (OauthAccount) and a routed subscription
|
|
5
5
|
// (TranslatorAccount) differ in who holds the credential and how the reading is taken, never in what a
|
|
@@ -237,19 +237,38 @@ export const SteerSchema = z
|
|
|
237
237
|
// True cancel for the conversation's in-flight turn, aborts the agent daemon-side, unlike closing the
|
|
238
238
|
// /agent fetch (which sends no cancel frame).
|
|
239
239
|
export const StopTurnSchema = z.object({ conversationId: z.string().min(1).describe("Which conversation's running turn to cancel.") });
|
|
240
|
-
/*
|
|
241
|
-
*
|
|
240
|
+
/* WHO SERVES THE RE-RUN, the one part of a held turn a press is allowed to move, and the field that exists
|
|
241
|
+
* because leaving it out made the press useless in exactly the case it was built for.
|
|
242
242
|
*
|
|
243
|
-
* A spent allowance
|
|
244
|
-
*
|
|
245
|
-
*
|
|
246
|
-
*
|
|
247
|
-
* is
|
|
243
|
+
* A spent allowance is a refusal by an ACCOUNT, and the fix a person reaches for is the account switcher in the
|
|
244
|
+
* composer: switch to one with headroom, press Continue. Replaying the turn with everything it carried replayed
|
|
245
|
+
* the refused account too, so the press bounced off the same limit, reported it in the same words, and the user's
|
|
246
|
+
* only way through was to type "Continue" by hand — a send, which reads the composer's current selection, which
|
|
247
|
+
* is the very thing the press was ignoring.
|
|
248
248
|
*
|
|
249
|
-
* So the
|
|
250
|
-
*
|
|
251
|
-
*
|
|
252
|
-
*
|
|
249
|
+
* So the press carries WHO, and the daemon keeps WHAT. Everything that makes the turn the turn (the prompt, the
|
|
250
|
+
* attachments, the effort, the mode, the worktree, the session holding whatever it managed to do) stays on the
|
|
251
|
+
* daemon's own copy, because a client re-deriving those from its transcript would be re-deriving them from the
|
|
252
|
+
* STRIPPED copy it renders, which is how a re-send comes to run a different turn from the one it claims to
|
|
253
|
+
* repeat. Routing is the exception, and it is the exception on purpose: it is not a property of the request, it
|
|
254
|
+
* is the answer to "who pays for it", and the whole reason the user is pressing is that they have changed it. */
|
|
255
|
+
export const ResumeRoutingSchema = z.object({
|
|
256
|
+
agent: AgentProviderSchema.describe("Which provider serves the re-run."),
|
|
257
|
+
harness: AgentHarnessSchema.describe("Which agentic loop runs it."),
|
|
258
|
+
account: z.string().optional().describe("Which of that provider's accounts pays for it. Leave it out for the first one."),
|
|
259
|
+
// Omitted rather than guessed: a client whose catalog hasn't loaded has no pick to send, and the turn's own
|
|
260
|
+
// model is a better answer than a blank one.
|
|
261
|
+
model: z.string().optional().describe("Which model. Leave it out to keep the one the refused turn named."),
|
|
262
|
+
});
|
|
263
|
+
export type ResumeRouting = z.infer<typeof ResumeRoutingSchema>;
|
|
264
|
+
/* RUN THE HELD TURN AGAIN: which conversation, and who serves it now.
|
|
265
|
+
*
|
|
266
|
+
* What comes back is an ordinary StartedTurn, and the caller then attaches to it exactly as it would to a turn
|
|
267
|
+
* somebody else started (the resume note on the prompt is what tells an attaching window to reuse the bubble that
|
|
268
|
+
* is already there instead of drawing the same message twice). */
|
|
253
269
|
export const ResumeTurnSchema = z.object({
|
|
254
270
|
conversationId: z.string().min(1).describe("Which conversation's held turn to run again."),
|
|
271
|
+
routing: ResumeRoutingSchema.optional().describe(
|
|
272
|
+
"Who serves the re-run, when the conversation has been re-pointed since it was refused. Leave it out to run it on whatever the turn carried.",
|
|
273
|
+
),
|
|
255
274
|
});
|