@intentic/sandbox-contract 1.315.0 → 1.316.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/README.md +5 -5
- package/dist/contracts/agent.contract.d.ts +1 -0
- package/dist/contracts/agent.contract.d.ts.map +1 -1
- package/dist/contracts/agents.contract.js +3 -3
- package/dist/contracts/agents.contract.js.map +1 -1
- package/dist/contracts/ci.contract.d.ts +22 -0
- package/dist/contracts/ci.contract.d.ts.map +1 -1
- package/dist/contracts/settings.contract.d.ts +0 -3
- package/dist/contracts/settings.contract.d.ts.map +1 -1
- package/dist/contracts/system.contract.d.ts +3 -0
- package/dist/contracts/system.contract.d.ts.map +1 -1
- package/dist/contracts/workspace.contract.d.ts +15 -137
- package/dist/contracts/workspace.contract.d.ts.map +1 -1
- package/dist/contracts/workspace.contract.js +25 -15
- package/dist/contracts/workspace.contract.js.map +1 -1
- package/dist/events/land-breakage.d.ts +0 -2
- package/dist/events/land-breakage.d.ts.map +1 -1
- package/dist/events/land-breakage.js +0 -2
- package/dist/events/land-breakage.js.map +1 -1
- package/dist/events/system-events.d.ts +2 -0
- package/dist/events/system-events.d.ts.map +1 -1
- package/dist/index.d.ts +43 -142
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/models/agent-runtimes.d.ts.map +1 -1
- package/dist/models/agent-runtimes.js +1 -1
- package/dist/models/agent-runtimes.js.map +1 -1
- package/dist/models/plan-pools.d.ts +2 -1
- package/dist/models/plan-pools.d.ts.map +1 -1
- package/dist/models/plan-pools.js +8 -4
- package/dist/models/plan-pools.js.map +1 -1
- package/dist/protocol/raw-routes.d.ts +9 -0
- package/dist/protocol/raw-routes.d.ts.map +1 -1
- package/dist/protocol/raw-routes.js +2 -0
- package/dist/protocol/raw-routes.js.map +1 -1
- package/dist/protocol/request-id.d.ts +0 -1
- package/dist/protocol/request-id.d.ts.map +1 -1
- package/dist/protocol/request-id.js +0 -1
- package/dist/protocol/request-id.js.map +1 -1
- package/dist/schemas/agent.js +1 -1
- package/dist/schemas/agent.js.map +1 -1
- package/dist/schemas/agents.d.ts +0 -1
- package/dist/schemas/agents.d.ts.map +1 -1
- package/dist/schemas/agents.js +2 -2
- package/dist/schemas/agents.js.map +1 -1
- package/dist/schemas/ci.d.ts +45 -0
- package/dist/schemas/ci.d.ts.map +1 -1
- package/dist/schemas/ci.js +18 -0
- package/dist/schemas/ci.js.map +1 -1
- package/dist/schemas/devices.d.ts +0 -1
- package/dist/schemas/devices.d.ts.map +1 -1
- package/dist/schemas/devices.js +3 -4
- package/dist/schemas/devices.js.map +1 -1
- package/dist/schemas/personas.js +2 -2
- package/dist/schemas/personas.js.map +1 -1
- package/dist/schemas/providers/plan-limits.d.ts +2 -0
- package/dist/schemas/providers/plan-limits.d.ts.map +1 -1
- package/dist/schemas/providers/plan-limits.js +4 -0
- package/dist/schemas/providers/plan-limits.js.map +1 -1
- package/dist/schemas/settings-history.d.ts +1 -1
- package/dist/schemas/settings-history.d.ts.map +1 -1
- package/dist/schemas/settings-history.js +2 -1
- package/dist/schemas/settings-history.js.map +1 -1
- package/dist/schemas/settings.d.ts +0 -4
- package/dist/schemas/settings.d.ts.map +1 -1
- package/dist/schemas/settings.js +6 -13
- package/dist/schemas/settings.js.map +1 -1
- package/dist/schemas/workspace/push-checks.d.ts +222 -0
- package/dist/schemas/workspace/push-checks.d.ts.map +1 -0
- package/dist/schemas/workspace/push-checks.js +97 -0
- package/dist/schemas/workspace/push-checks.js.map +1 -0
- package/dist/schemas/workspace/workspace-tree.d.ts +9 -0
- package/dist/schemas/workspace/workspace-tree.d.ts.map +1 -1
- package/dist/schemas/workspace/workspace-tree.js +12 -0
- package/dist/schemas/workspace/workspace-tree.js.map +1 -1
- package/dist/state/definition.d.ts +0 -4
- package/dist/state/definition.d.ts.map +1 -1
- package/dist/state/runtime-state.d.ts +2 -2
- package/dist/state/runtime-state.d.ts.map +1 -1
- package/dist/state/runtime-state.js +1 -1
- package/dist/state/runtime-state.js.map +1 -1
- package/dist/state/workspace-state.d.ts +1 -11
- package/dist/state/workspace-state.d.ts.map +1 -1
- package/dist/state/workspace-state.js +1 -13
- package/dist/state/workspace-state.js.map +1 -1
- package/package.json +5 -5
- package/src/contracts/agents.contract.ts +3 -3
- package/src/contracts/workspace.contract.ts +35 -21
- package/src/events/errands.test.ts +4 -4
- package/src/events/land-breakage.ts +5 -9
- package/src/events/verify-nudge.ts +3 -3
- package/src/index.ts +2 -2
- package/src/models/agent-runtimes.ts +5 -4
- package/src/models/plan-pools.test.ts +15 -0
- package/src/models/plan-pools.ts +20 -4
- package/src/protocol/ingress-contract.fixture.json +2 -0
- package/src/protocol/raw-routes.ts +4 -1
- package/src/protocol/request-id.ts +0 -3
- package/src/schemas/agent.ts +1 -1
- package/src/schemas/agents.ts +5 -7
- package/src/schemas/automations.ts +2 -2
- package/src/schemas/ci.ts +25 -0
- package/src/schemas/devices.ts +8 -12
- package/src/schemas/personas.ts +2 -2
- package/src/schemas/providers/plan-limits.ts +8 -0
- package/src/schemas/settings-history.ts +3 -1
- package/src/schemas/settings.test.ts +4 -3
- package/src/schemas/settings.ts +17 -31
- package/src/schemas/speaker.ts +4 -4
- package/src/schemas/workspace/{mainline.test.ts → push-checks.test.ts} +5 -5
- package/src/schemas/workspace/push-checks.ts +155 -0
- package/src/schemas/workspace/workspace-tree.ts +15 -0
- package/src/state/fix-stance.test.ts +2 -1
- package/src/state/landed-commit.ts +1 -1
- package/src/state/red-streak.ts +4 -4
- package/src/state/runtime-state.ts +2 -3
- package/src/state/workspace-state.ts +1 -13
- package/dist/schemas/workspace/mainline.d.ts +0 -513
- package/dist/schemas/workspace/mainline.d.ts.map +0 -1
- package/dist/schemas/workspace/mainline.js +0 -182
- package/dist/schemas/workspace/mainline.js.map +0 -1
- package/src/schemas/workspace/mainline.ts +0 -268
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-state.js","sourceRoot":"","sources":["../../src/state/workspace-state.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspace-state.js","sourceRoot":"","sources":["../../src/state/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.316.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",
|
|
@@ -251,10 +251,10 @@
|
|
|
251
251
|
}
|
|
252
252
|
},
|
|
253
253
|
"dependencies": {
|
|
254
|
-
"@intentic/base": "1.
|
|
255
|
-
"@intentic/constants": "1.
|
|
256
|
-
"@intentic/extension-manifest": "1.
|
|
257
|
-
"@intentic/registry": "1.
|
|
254
|
+
"@intentic/base": "1.316.0",
|
|
255
|
+
"@intentic/constants": "1.316.0",
|
|
256
|
+
"@intentic/extension-manifest": "1.316.0",
|
|
257
|
+
"@intentic/registry": "1.316.0",
|
|
258
258
|
"@orpc/contract": "1.15.4",
|
|
259
259
|
"tslib": "2.8.1",
|
|
260
260
|
"zod": "4.6.5"
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
LandResultSchema,
|
|
26
26
|
} from "../schemas/agents.js";
|
|
27
27
|
import { AgentsListSchema } from "../schemas/automations.js";
|
|
28
|
-
import {
|
|
28
|
+
import { PushFixResultSchema, PushFixSchema } from "../schemas/workspace/push-checks.js";
|
|
29
29
|
import { AgentChangesSchema, AgentConflictsSchema, AgentScratchSchema, AgentHistorySchema } from "../schemas/git/git.js";
|
|
30
30
|
import { FileDiffSchema } from "../schemas/history.js";
|
|
31
31
|
import { OkSchema } from "../schemas/shared.js";
|
|
@@ -292,8 +292,8 @@ export const agentsContract = {
|
|
|
292
292
|
description:
|
|
293
293
|
"Opens an isolated conversation holding every open finding the project's push checks let through: what each check printed, the command that shows it again, and the commits that brought it. Pressed again while they stand, it continues that conversation.",
|
|
294
294
|
})
|
|
295
|
-
.input(
|
|
296
|
-
.output(
|
|
295
|
+
.input(PushFixSchema)
|
|
296
|
+
.output(PushFixResultSchema),
|
|
297
297
|
land: procedure
|
|
298
298
|
.route({
|
|
299
299
|
method: "POST",
|
|
@@ -17,12 +17,12 @@ import {
|
|
|
17
17
|
WorkspaceSyncSchema,
|
|
18
18
|
} from "../schemas/workspace/workspace-repos.js";
|
|
19
19
|
import {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
} from "../schemas/workspace/
|
|
20
|
+
PushChecksSchema,
|
|
21
|
+
PushDismissResultSchema,
|
|
22
|
+
PushDismissSchema,
|
|
23
|
+
PushRecheckResultSchema,
|
|
24
|
+
PushRecheckSchema,
|
|
25
|
+
} from "../schemas/workspace/push-checks.js";
|
|
26
26
|
import { WorkspaceSearchQuerySchema, WorkspaceSearchResultSchema } from "../schemas/workspace/workspace-search.js";
|
|
27
27
|
import { WorkspaceInstallResultSchema, WorkspaceInstallSchema, WorkspaceSetupSchema } from "../schemas/workspace/workspace-setup.js";
|
|
28
28
|
import {
|
|
@@ -42,6 +42,8 @@ import {
|
|
|
42
42
|
WorkspaceFileSchema,
|
|
43
43
|
WorkspaceMediaTicketQuerySchema,
|
|
44
44
|
WorkspaceMediaTicketSchema,
|
|
45
|
+
WorkspaceDownloadTicketQuerySchema,
|
|
46
|
+
WorkspaceDownloadTicketSchema,
|
|
45
47
|
WorkspaceMoveSchema,
|
|
46
48
|
WorkspaceResolveQuerySchema,
|
|
47
49
|
WorkspaceResolveSchema,
|
|
@@ -138,6 +140,19 @@ export const workspaceContract = {
|
|
|
138
140
|
.meta({ floor: "viewer", guest: true })
|
|
139
141
|
.input(WorkspaceMediaTicketQuerySchema)
|
|
140
142
|
.output(WorkspaceMediaTicketSchema),
|
|
143
|
+
// Mints the ticket GET /workspace/download (a plain Hono route streaming a ZIP, no oRPC shape) requires.
|
|
144
|
+
downloadTicket: procedure
|
|
145
|
+
.route({
|
|
146
|
+
method: "POST",
|
|
147
|
+
path: "/workspace/download-ticket",
|
|
148
|
+
summary: "Get a pass for downloading files and folders together",
|
|
149
|
+
description:
|
|
150
|
+
"Mints the short-lived ticket the download route takes, bound to a selection of files and folders. The route answers one ZIP streamed straight from disk: folders whole, already-compressed formats stored as they are and everything else deflated. Minting it first means a missing or unreadable path is refused here, before the browser starts a download that cannot finish.",
|
|
151
|
+
})
|
|
152
|
+
// Downloading is a read, and the ticket is strictly narrower than the bearer.
|
|
153
|
+
.meta({ floor: "viewer", guest: true })
|
|
154
|
+
.input(WorkspaceDownloadTicketQuerySchema)
|
|
155
|
+
.output(WorkspaceDownloadTicketSchema),
|
|
141
156
|
// Matches a prose-written path, often just a suffix, against the tree rather than trusting it as root-relative.
|
|
142
157
|
resolve: procedure
|
|
143
158
|
.route({
|
|
@@ -268,37 +283,36 @@ export const workspaceContract = {
|
|
|
268
283
|
})
|
|
269
284
|
.input(WorkspaceInstallSchema)
|
|
270
285
|
.output(WorkspaceInstallResultSchema),
|
|
271
|
-
//
|
|
272
|
-
|
|
286
|
+
// What the pre-push hook found and let through waits here until measured gone or dismissed; with the two hands on it.
|
|
287
|
+
pushChecks: procedure
|
|
273
288
|
.route({
|
|
274
289
|
method: "GET",
|
|
275
|
-
path: "/workspace/
|
|
276
|
-
summary: "
|
|
290
|
+
path: "/workspace/push-checks",
|
|
291
|
+
summary: "What pushes left behind",
|
|
277
292
|
description:
|
|
278
|
-
"
|
|
293
|
+
"Every push the pre-push hook measured, newest first, with what each brought in, and what is still owed per project. The hook never refuses a push, so this is where its findings wait. Nothing here is ever sent to an agent by itself.",
|
|
279
294
|
})
|
|
280
|
-
.output(
|
|
281
|
-
|
|
282
|
-
mainlinePushDismiss: procedure
|
|
295
|
+
.output(PushChecksSchema),
|
|
296
|
+
pushDismiss: procedure
|
|
283
297
|
.route({
|
|
284
298
|
method: "POST",
|
|
285
|
-
path: "/workspace/
|
|
299
|
+
path: "/workspace/push-checks/dismiss",
|
|
286
300
|
summary: "Set aside what a push left behind",
|
|
287
301
|
description:
|
|
288
302
|
"Marks findings a push check let through as not to be fixed, so they stop counting against the project, or opens dismissed ones again. Nothing is changed in the code.",
|
|
289
303
|
})
|
|
290
|
-
.input(
|
|
291
|
-
.output(
|
|
292
|
-
|
|
304
|
+
.input(PushDismissSchema)
|
|
305
|
+
.output(PushDismissResultSchema),
|
|
306
|
+
pushRecheck: procedure
|
|
293
307
|
.route({
|
|
294
308
|
method: "POST",
|
|
295
|
-
path: "/workspace/
|
|
309
|
+
path: "/workspace/push-checks/recheck",
|
|
296
310
|
summary: "Measure what a push left behind again",
|
|
297
311
|
description:
|
|
298
312
|
"Runs the project's own push measurement over its main tree now and resolves every open finding it no longer prints. A few seconds; nothing is pushed.",
|
|
299
313
|
})
|
|
300
|
-
.input(
|
|
301
|
-
.output(
|
|
314
|
+
.input(PushRecheckSchema)
|
|
315
|
+
.output(PushRecheckResultSchema),
|
|
302
316
|
repos: procedure
|
|
303
317
|
.route({
|
|
304
318
|
method: "GET",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { errandOfPrompt, errandOfRow } from "./errands.js";
|
|
2
|
-
import {
|
|
2
|
+
import { LAND_BREAKAGE_OPENING, LAND_FIX_OPENING } from "./land-breakage.js";
|
|
3
3
|
import { LAND_CONFLICT_OPENING } from "./land-conflict.js";
|
|
4
4
|
import { verifyNudgePrompt } from "./verify-nudge.js";
|
|
5
5
|
|
|
@@ -11,12 +11,12 @@ describe(`which errand a message is`, () => {
|
|
|
11
11
|
});
|
|
12
12
|
|
|
13
13
|
test(`is read by its opening on a row written before rows said, and on nothing but a message`, () => {
|
|
14
|
-
expect(errandOfPrompt(
|
|
15
|
-
expect(errandOfPrompt(
|
|
14
|
+
expect(errandOfPrompt(`${LAND_BREAKAGE_OPENING}\n\n- a failure`)).toBe(`land-breakage`);
|
|
15
|
+
expect(errandOfPrompt(`${LAND_FIX_OPENING}\n\n- a failure`)).toBe(`land-fix`);
|
|
16
16
|
expect(errandOfPrompt(verifyNudgePrompt([`x`]))).toBe(`verify-nudge`);
|
|
17
17
|
expect(errandOfPrompt(`${LAND_CONFLICT_OPENING}\n\nthe files`)).toBe(`land-conflict`);
|
|
18
18
|
expect(errandOfPrompt(`Please fix the parser`)).toBeUndefined();
|
|
19
|
-
expect(errandOfRow({ role: `assistant`, text:
|
|
19
|
+
expect(errandOfRow({ role: `assistant`, text: LAND_FIX_OPENING })).toBeUndefined();
|
|
20
20
|
expect(errandOfRow({ role: `user`, text: `hello` })).toBeUndefined();
|
|
21
21
|
});
|
|
22
22
|
});
|
|
@@ -1,23 +1,19 @@
|
|
|
1
|
-
// The follow-
|
|
1
|
+
// The follow-ups the daemon USED to send when the check it ran after every land went red: back to the conversation
|
|
2
|
+
// that landed the work, or to a fresh conversation started on it. Nothing sends either any more: nothing checks work
|
|
3
|
+
// after it lands, CI checks what the owner pushes (schemas/workspace/push-checks.ts). They stay on the wire because
|
|
4
|
+
// records already hold them, and the chat has to go on recognising them: a prompt nobody typed must not reach a reader
|
|
5
|
+
// as their own words.
|
|
2
6
|
|
|
3
7
|
// Anchored on by the chat, so it must stay unique and stable across releases.
|
|
4
8
|
export const LAND_BREAKAGE_OPENING =
|
|
5
9
|
"What this conversation landed turned the main tree's own check red after it arrived. Each failure below appeared with that land and was not failing before it. Fix them on this branch and check the fix as you would any change; it lands like any other turn.";
|
|
6
10
|
|
|
7
|
-
// The prompt a breakage actually sends: its opening, then the failures, each already worded for the model.
|
|
8
|
-
export const landBreakagePrompt = (parts: readonly string[]): string => [LAND_BREAKAGE_OPENING, ...parts].join("\n\n");
|
|
9
|
-
|
|
10
11
|
// Whether a stored prompt is one.
|
|
11
12
|
export const isLandBreakage = (prompt: string): boolean => prompt.startsWith(LAND_BREAKAGE_OPENING);
|
|
12
13
|
|
|
13
|
-
// The opening of a FRESH conversation the daemon starts on a red main-line check that the conversation that landed the
|
|
14
|
-
// work could not take: nobody could be named, several could, or the one named had gone cold or run out of room.
|
|
15
14
|
// Anchored on by the chat like the follow-up above, so it must stay unique and stable across releases.
|
|
16
15
|
export const LAND_FIX_OPENING =
|
|
17
16
|
"The main tree's own check went red after work landed, and no conversation still holding that work could take it, so this one was started to fix it. The failures, the lands they arrived with and where to read those conversations are below. Fix them in this isolated worktree and check the fix as you would any change; your work lands like any other turn.";
|
|
18
17
|
|
|
19
|
-
// The prompt a fresh fix-up is started with: its opening, then the evidence, each part already worded for the model.
|
|
20
|
-
export const landFixPrompt = (parts: readonly string[]): string => [LAND_FIX_OPENING, ...parts].join("\n\n");
|
|
21
|
-
|
|
22
18
|
// Whether a stored prompt is one.
|
|
23
19
|
export const isLandFix = (prompt: string): boolean => prompt.startsWith(LAND_FIX_OPENING);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// The follow-up the daemon USED to send when a turn ended with work it could not confirm. Nothing sends it any more:
|
|
2
|
-
// checks
|
|
3
|
-
// records already hold it, and the chat has to go on recognising it: a prompt nobody typed must not
|
|
4
|
-
// their own words.
|
|
2
|
+
// nothing checks inside a conversation, CI checks what the owner pushes (schemas/workspace/push-checks.ts). It stays on
|
|
3
|
+
// the wire because records already hold it, and the chat has to go on recognising it: a prompt nobody typed must not
|
|
4
|
+
// reach a reader as their own words.
|
|
5
5
|
|
|
6
6
|
// Anchored on by the reader, so it must stay unique and stable across releases — a reworded opening un-recognises every
|
|
7
7
|
// nudge already in a record, and they read as the user's own typing again.
|
package/src/index.ts
CHANGED
|
@@ -83,7 +83,7 @@ export { intenticContract } from "./contracts/intentic.contract.js";
|
|
|
83
83
|
export { inventoryContract } from "./contracts/inventory.contract.js";
|
|
84
84
|
export { issuesContract } from "./contracts/issues.contract.js";
|
|
85
85
|
export { logsContract } from "./contracts/logs.contract.js";
|
|
86
|
-
export {
|
|
86
|
+
export { REQUEST_ID_HEADER } from "./protocol/request-id.js";
|
|
87
87
|
export * from "./protocol/edge-verdict.js";
|
|
88
88
|
export { loopsContract } from "./contracts/loops.contract.js";
|
|
89
89
|
export { panelsContract } from "./contracts/panels.contract.js";
|
|
@@ -234,7 +234,7 @@ export * from "./schemas/webext.js";
|
|
|
234
234
|
export * from "./schemas/workflows.js";
|
|
235
235
|
export * from "./schemas/workspace/workspace-repos.js";
|
|
236
236
|
export * from "./schemas/workspace/workspace-search.js";
|
|
237
|
-
export * from "./schemas/workspace/
|
|
237
|
+
export * from "./schemas/workspace/push-checks.js";
|
|
238
238
|
export * from "./schemas/workspace/workspace-setup.js";
|
|
239
239
|
export * from "./schemas/workspace/workspace-tree.js";
|
|
240
240
|
export * from "./state/arrival.js";
|
|
@@ -181,7 +181,7 @@ export const PI: AgentCapabilities = {
|
|
|
181
181
|
secrets: "none",
|
|
182
182
|
};
|
|
183
183
|
|
|
184
|
-
// Cursor's own runtime, driven through `@cursor/sdk`
|
|
184
|
+
// Cursor's own runtime, driven through `@cursor/sdk` from this daemon's process; an embedding surface, so most seams
|
|
185
185
|
// other runtimes lack are function arguments here. The harness axis doesn't apply: the SDK is the only door.
|
|
186
186
|
export const CURSOR: AgentCapabilities = {
|
|
187
187
|
runtime: "cursor",
|
|
@@ -199,11 +199,12 @@ export const CURSOR: AgentCapabilities = {
|
|
|
199
199
|
// Cursor publishes effort as model parameters, not one scale; true here just means it's forwardable at all.
|
|
200
200
|
effort: true,
|
|
201
201
|
fastMode: false,
|
|
202
|
-
//
|
|
203
|
-
|
|
202
|
+
// The SDK agent of an anchored turn runs in a runtime process born in the turn's mount namespace (the daemon keeps
|
|
203
|
+
// the loop, the tools and the hook gate), so its shell and its edits see the worktree at /work.
|
|
204
|
+
isolation: "namespace",
|
|
204
205
|
// Cursor's commands are files on disk the SDK loads but doesn't publish back, so there's no list to offer.
|
|
205
206
|
commands: false,
|
|
206
|
-
// The SDK runs its shell
|
|
207
|
+
// The SDK runs its shell itself, as a plain child; there is no tmux session for the terminal panel to attach to.
|
|
207
208
|
terminals: false,
|
|
208
209
|
// The SDK throws typed errors instead of dissolving a refusal into prose, so the adapter files coded frames.
|
|
209
210
|
recovery: true,
|
|
@@ -209,6 +209,21 @@ test("a refusal stands until a later reading contradicts it, and never past its
|
|
|
209
209
|
expect(refusalVerdict(refusal({ kind: "limit", account: "a" }), [])).toBe("standing");
|
|
210
210
|
});
|
|
211
211
|
|
|
212
|
+
// Codex's usage endpoint kept reading room while every turn was refused "try again at 3:38 PM": the provider's own
|
|
213
|
+
// instant is what ends the refusal, where it is known which account it refused.
|
|
214
|
+
test("a spent allowance with the provider's own reset stands until that instant, whatever a later reading says", () => {
|
|
215
|
+
const room = at(2_000, window({ kind: "five_hour", utilization: 0 }));
|
|
216
|
+
const until = { kind: "limit", resetsAt: 10 } as const;
|
|
217
|
+
expect(refusalVerdict(refusal({ ...until, account: "a" }), [{ account: "a", usage: room }], 9_999)).toBe("standing");
|
|
218
|
+
expect(refusalVerdict(refusal({ ...until, account: "a" }), [{ account: "a", usage: room }], 10_000)).toBe("answered");
|
|
219
|
+
// A routed refusal names no account, but with one account there is no doubt whose it was.
|
|
220
|
+
expect(refusalVerdict(refusal(until), [{ account: "a", usage: room }], 9_999)).toBe("standing");
|
|
221
|
+
// Over several, the translator benches the one it refused and routes on, so another's room still answers it.
|
|
222
|
+
expect(refusalVerdict(refusal(until), [{ account: "a", usage: room }, { account: "b", usage: room }], 9_999)).toBe("answered");
|
|
223
|
+
// Spent until the instant the provider named, not the pool's own reset.
|
|
224
|
+
expect(serviceStates([{ account: "a", usage: room }], refusal({ ...until, account: "a" }), undefined, 9_999).get("a")).toEqual({ kind: "spent", reopensAt: 10 });
|
|
225
|
+
});
|
|
226
|
+
|
|
212
227
|
test("a provider's accounts are judged together: a standing refusal lands only on the account it names", () => {
|
|
213
228
|
const room = at(500, window({ kind: "five_hour", utilization: 40 }));
|
|
214
229
|
const states = serviceStates([{ account: "a", usage: room }, { account: "b", usage: room }], refusal({ kind: "entitlement", account: "a" }));
|
package/src/models/plan-pools.ts
CHANGED
|
@@ -147,6 +147,9 @@ export interface ServiceFacts {
|
|
|
147
147
|
readonly seatRefusal?: string | undefined;
|
|
148
148
|
readonly cooling?: { readonly until?: number | undefined; readonly reason?: string | undefined; readonly verify?: string | undefined } | undefined;
|
|
149
149
|
readonly usage?: AccountUsage | undefined;
|
|
150
|
+
// How the account is named to a person (its label, a routed credential's address); a surface that quotes a figure
|
|
151
|
+
// says whose it is.
|
|
152
|
+
readonly label?: string | undefined;
|
|
150
153
|
}
|
|
151
154
|
|
|
152
155
|
// A spent allowance is over once a reading with room lands after it; a refused credential once any reading does (the
|
|
@@ -168,11 +171,22 @@ const answers = (refusal: ProviderRefusal, facts: ServiceFacts): boolean => {
|
|
|
168
171
|
* the account it named is disconnected, `answered` once that account (or, for a refusal naming none, any account) has a
|
|
169
172
|
* later reading that contradicts it, else `standing`. An empty list is one not loaded yet, so the refusal stands.
|
|
170
173
|
*/
|
|
171
|
-
export const refusalVerdict = (
|
|
174
|
+
export const refusalVerdict = (
|
|
175
|
+
refusal: ProviderRefusal,
|
|
176
|
+
accounts: readonly ServiceFacts[],
|
|
177
|
+
now: number = Date.now(),
|
|
178
|
+
): "standing" | "answered" | "gone" => {
|
|
172
179
|
const named = accounts.filter((facts) => facts.account === refusal.account);
|
|
173
180
|
if (refusal.account !== undefined && named.length === 0) {
|
|
174
181
|
return accounts.length === 0 ? "standing" : "gone";
|
|
175
182
|
}
|
|
183
|
+
// Where the provider named when to try again, and it is known which account it refused (it named one, or there is
|
|
184
|
+
// only one), its own words outrank a usage endpoint that kept showing room while it refused: over at that instant,
|
|
185
|
+
// and not before. A nameless refusal over several accounts is still answered by any of them reading room, since the
|
|
186
|
+
// translator benches the one it refused and routes on.
|
|
187
|
+
if (refusal.kind === "limit" && refusal.resetsAt !== undefined && (refusal.account !== undefined || accounts.length <= 1)) {
|
|
188
|
+
return refusal.resetsAt * 1000 <= now ? "answered" : "standing";
|
|
189
|
+
}
|
|
176
190
|
return (refusal.account === undefined ? accounts : named).some((facts) => answers(refusal, facts)) ? "answered" : "standing";
|
|
177
191
|
};
|
|
178
192
|
|
|
@@ -215,10 +229,12 @@ const refusedPool = (usage: AccountUsage | undefined, refusal: ProviderRefusal,
|
|
|
215
229
|
if (usage === undefined || binding === undefined) {
|
|
216
230
|
// No pool to pin: the refusal itself is the evidence, unless it was about a different model than this question.
|
|
217
231
|
const sameModel = refusal.model === undefined || model === undefined || refusal.model === model.id;
|
|
218
|
-
return sameModel ?
|
|
232
|
+
return sameModel ? spent(refusal.resetsAt) : headroomState(usage, model);
|
|
219
233
|
}
|
|
220
234
|
const pinned = usage.windows.map((window) => (window === binding ? { ...window, utilization: Math.max(window.utilization, SPENT_UTILIZATION) } : window));
|
|
221
|
-
|
|
235
|
+
const state = headroomState({ ...usage, windows: pinned }, model);
|
|
236
|
+
// The provider's own "try again at" is when it reopens, over whatever the polled pool last said.
|
|
237
|
+
return state.kind === "spent" && refusal.resetsAt !== undefined ? spent(refusal.resetsAt) : state;
|
|
222
238
|
};
|
|
223
239
|
|
|
224
240
|
/**
|
|
@@ -262,7 +278,7 @@ export const serviceStates = (
|
|
|
262
278
|
model?: ModelRef,
|
|
263
279
|
now: number = Date.now(),
|
|
264
280
|
): ReadonlyMap<string, AccountState> => {
|
|
265
|
-
const standing = refusal !== undefined && refusalVerdict(refusal, accounts) === "standing" ? refusal : undefined;
|
|
281
|
+
const standing = refusal !== undefined && refusalVerdict(refusal, accounts, now) === "standing" ? refusal : undefined;
|
|
266
282
|
return new Map(
|
|
267
283
|
accounts.map((facts) => [
|
|
268
284
|
facts.account,
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
"GET /diff/raw",
|
|
49
49
|
"GET /workspace/raw",
|
|
50
50
|
"GET /workspace/media",
|
|
51
|
+
"GET /workspace/download",
|
|
51
52
|
"POST /workspace/upload",
|
|
52
53
|
"POST /workspace/upload-archive",
|
|
53
54
|
"GET /system/sync/ssh",
|
|
@@ -59,6 +60,7 @@
|
|
|
59
60
|
],
|
|
60
61
|
"lanes": [
|
|
61
62
|
{ "host": "sandbox-abcdef012345.sbx.example.test", "method": "GET", "path": "/workspace/media?path=a.mp4", "lane": "bulk" },
|
|
63
|
+
{ "host": "sandbox-abcdef012345.sbx.example.test", "method": "GET", "path": "/workspace/download?ticket=t", "lane": "bulk" },
|
|
62
64
|
{ "host": "sandbox-abcdef012345.sbx.example.test", "method": "POST", "path": "/workspace/upload?path=a", "lane": "bulk" },
|
|
63
65
|
{ "host": "sandbox-abcdef012345.sbx.example.test:443", "method": "GET", "path": "/system/runners/git/app/info/refs?service=git-upload-pack", "lane": "bulk" },
|
|
64
66
|
{ "host": "sandbox-abcdef012345.sbx.example.test", "method": "POST", "path": "/system/runners/git/app/git-receive-pack", "lane": "bulk" },
|
|
@@ -18,6 +18,8 @@ export const RAW_ROUTES = {
|
|
|
18
18
|
"GET /workspace/thumb": { guest: true },
|
|
19
19
|
// Fetched by a <video>/<audio> tag, which sends no header: its scoped ticket is checked in the handler.
|
|
20
20
|
"GET /workspace/media": { auth: "door", guest: true, lane: "bulk" },
|
|
21
|
+
// Navigated to for a ZIP of a selection, so no header either: the ticket it carries names the selection.
|
|
22
|
+
"GET /workspace/download": { auth: "door", guest: true, lane: "bulk" },
|
|
21
23
|
// An attachment is part of the message it rides with; any other target edits the shared tree.
|
|
22
24
|
"POST /workspace/upload": { floor: "writer", attachmentFloor: "collaborator", lane: "bulk" },
|
|
23
25
|
"POST /workspace/upload-diff": {},
|
|
@@ -91,12 +93,13 @@ export const RAW_ROUTES = {
|
|
|
91
93
|
"GET /wallet/status": { agent: true, control: "never" },
|
|
92
94
|
"POST /wallet/fetch": { agent: true, control: "never" },
|
|
93
95
|
"GET /wallet/history": { agent: true, control: "never" },
|
|
94
|
-
// The `agents` CLI's children: start, follow up, answer (never a consent card), list.
|
|
96
|
+
// The `agents` CLI's children: start, follow up, answer (never a consent card), cancel, list.
|
|
95
97
|
"POST /children/spawn": { agent: true, control: "never" },
|
|
96
98
|
"GET /children/providers": { agent: true, control: "never" },
|
|
97
99
|
"POST /children/wait": { agent: true, control: "never" },
|
|
98
100
|
"POST /children/send": { agent: true, control: "never" },
|
|
99
101
|
"POST /children/answer": { agent: true, control: "never" },
|
|
102
|
+
"POST /children/cancel": { agent: true, control: "never" },
|
|
100
103
|
"GET /children": { agent: true, control: "never" },
|
|
101
104
|
// The fleet reads, and the one write: words in front of another conversation, which a person can do by typing.
|
|
102
105
|
"GET /fleet": { agent: true },
|
|
@@ -1,5 +1,2 @@
|
|
|
1
1
|
// Correlates a browser call to the daemon request that served it; a token only, never a security boundary.
|
|
2
2
|
export const REQUEST_ID_HEADER = "x-intentic-request-id";
|
|
3
|
-
|
|
4
|
-
// Confirms daemon CORS accepts this header before sending; no evidence here means don't send, unlike supportsRoute.
|
|
5
|
-
export const REQUEST_ID_EVIDENCE_ROUTE = "logs.report";
|
package/src/schemas/agent.ts
CHANGED
|
@@ -131,7 +131,7 @@ export type ForkedFrom = z.infer<typeof ForkedFromSchema>;
|
|
|
131
131
|
const AgentTurnFieldsSchema = z.object({
|
|
132
132
|
prompt: z.string().describe("What to say to the agent. May be empty if you are only attaching files."),
|
|
133
133
|
errand: TurnErrandSchema.optional().describe(
|
|
134
|
-
"What the words are for, when the app or the sandbox composed them rather than a person typing them: a land conflict to resolve, a red
|
|
134
|
+
"What the words are for, when the app or the sandbox composed them rather than a person typing them: a land conflict to resolve, a red CI run to fix. Shown as the sandbox's words, not yours. Leave it out for your own words.",
|
|
135
135
|
),
|
|
136
136
|
// Minted by the sender so a send whose answer was lost can be sent again without being delivered twice.
|
|
137
137
|
messageId: z
|
package/src/schemas/agents.ts
CHANGED
|
@@ -88,11 +88,11 @@ export const UnfinishedWorkSchema = z.object({
|
|
|
88
88
|
check: z
|
|
89
89
|
.string()
|
|
90
90
|
.optional()
|
|
91
|
-
.describe("The end-of-turn check that was still failing when the turn ended, by name. No longer written: checks
|
|
91
|
+
.describe("The end-of-turn check that was still failing when the turn ended, by name. No longer written: nothing checks inside a turn."),
|
|
92
92
|
});
|
|
93
93
|
export type UnfinishedWork = z.infer<typeof UnfinishedWorkSchema>;
|
|
94
94
|
// What the last turn showed of its own work, read off its tool calls and never asked of the model: the record a card
|
|
95
|
-
// badges instead of sending the turn back to prove anything.
|
|
95
|
+
// badges instead of sending the turn back to prove anything. CI checks what the owner pushes (push-checks.ts).
|
|
96
96
|
export const TurnProofSchema = z.object({
|
|
97
97
|
at: z.number().describe("When the turn that left this ended, in milliseconds."),
|
|
98
98
|
verification: z
|
|
@@ -137,7 +137,7 @@ export const LandedMessageSchema = z.object({
|
|
|
137
137
|
.optional()
|
|
138
138
|
.describe("Why a test this change weakened is meant to be weaker, in the conversation's own words. Nearly always absent."),
|
|
139
139
|
// Present only when the conversation declared an exception a check should grant this change (`Allow: <check> — <reason>`);
|
|
140
|
-
// the
|
|
140
|
+
// the push reads it off the commit.
|
|
141
141
|
allows: z
|
|
142
142
|
.array(z.string())
|
|
143
143
|
.optional()
|
|
@@ -574,10 +574,8 @@ export const AgentSummarySchema = z.object({
|
|
|
574
574
|
),
|
|
575
575
|
});
|
|
576
576
|
export type AgentSummary = z.infer<typeof AgentSummarySchema>;
|
|
577
|
-
// Whether a conversation runs again by itself: the daemon's own reading,
|
|
578
|
-
|
|
579
|
-
export const awaitsWake = (agent: { readonly awaitingWake?: boolean | undefined; readonly watches?: readonly unknown[] | undefined }): boolean =>
|
|
580
|
-
agent.awaitingWake ?? (agent.watches?.length ?? 0) > 0;
|
|
577
|
+
// Whether a conversation runs again by itself: the daemon's own reading, never guessed from its armed watches.
|
|
578
|
+
export const awaitsWake = (agent: { readonly awaitingWake?: boolean | undefined }): boolean => agent.awaitingWake === true;
|
|
581
579
|
// One armed watch as a card carries it; derived from AgentSummarySchema.watches so the two shapes can't drift apart.
|
|
582
580
|
export type AgentWatch = NonNullable<AgentSummary["watches"]>[number];
|
|
583
581
|
// One background job as a card carries it.
|
|
@@ -28,8 +28,8 @@ import { ZoneSchema } from "../time/zone.js";
|
|
|
28
28
|
// reads these.
|
|
29
29
|
// turn.settled: fires once per isolated turn regardless of outcome, while the diff is still on screen
|
|
30
30
|
// agent.landed: fires only once work reaches the main tree, including a later manual Land
|
|
31
|
-
// deps.broken/deps.fixed:
|
|
32
|
-
//
|
|
31
|
+
// deps.broken/deps.fixed: retired with the check that ran after every land (2026-09-27). Nothing emits them any more;
|
|
32
|
+
// they stay so an automation written for them still reads, and it never fires. Main's red CI is the `ci` listener's.
|
|
33
33
|
export const WorkspaceEventKindSchema = z.enum(["turn.settled", "agent.landed", "deps.broken", "deps.fixed"]);
|
|
34
34
|
export type WorkspaceEventKind = z.infer<typeof WorkspaceEventKindSchema>;
|
|
35
35
|
// Payload of a workspace-triggered wake, delivered as JSON in $AUTOMATION_PAYLOAD and appended to the prompt.
|
package/src/schemas/ci.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// ci: pipeline runs on the workspace repos' github/gitlab remotes
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { AgentRunPickSchema } from "./agent.js";
|
|
4
|
+
import { RedDecisionSchema } from "./workspace/push-checks.js";
|
|
4
5
|
// The daemon maps each workspace repo to its CI project via a connected github/gitlab capability, registers a webhook
|
|
5
6
|
// to fire `ci` listener automations instantly, and serves the Pipelines rail from a webhook-freshened, poll-backfilled
|
|
6
7
|
// cache. `host` names which provider API serves a repo; the listener provider is always `ci`, since a trigger narrows
|
|
@@ -39,6 +40,9 @@ export const PipelineRunSchema = z.object({
|
|
|
39
40
|
.describe(
|
|
40
41
|
"What set it off, in the forge's own word rather than flattened into a shared vocabulary, because the forge's word is the precise one.",
|
|
41
42
|
),
|
|
43
|
+
// github's workflow name: several workflows run on one push there, and one passing says nothing of another. Absent on
|
|
44
|
+
// gitlab, where a commit's pipeline is the project's one.
|
|
45
|
+
workflow: z.string().optional().describe("Which workflow it is a run of, where a push starts several. Absent where a commit has one pipeline."),
|
|
42
46
|
branch: z.string().describe("Which branch."),
|
|
43
47
|
sha: z.string().describe("Which commit."),
|
|
44
48
|
status: PipelineStatusSchema.describe(
|
|
@@ -108,10 +112,31 @@ export type CiRepo = z.infer<typeof CiRepoSchema>;
|
|
|
108
112
|
// Fallback poll interval when a repo's webhook couldn't register; lives here since both the poller and the automation
|
|
109
113
|
// editor need it to tell the owner what a `hookWarning` actually costs (minutes' delay, not the feature).
|
|
110
114
|
export const CI_POLL_INTERVAL_MS = 2 * 60_000;
|
|
115
|
+
// Main's CI while it is red, as the daemon's one fix agent on it sees it (ci/main-fixer.ts): from the first job that
|
|
116
|
+
// failed until a later run of every workflow that failed on it passes, whatever else failed along the way.
|
|
117
|
+
export const CiMainRedSchema = z.object({
|
|
118
|
+
repo: z.string().describe("Which workspace repository."),
|
|
119
|
+
branch: z.string().describe("Which main-line branch."),
|
|
120
|
+
since: z.number().describe("When its first job failed, in milliseconds."),
|
|
121
|
+
runId: z.number().describe("The newest run that failed on it."),
|
|
122
|
+
jobs: z.array(z.string()).describe("The jobs failing on it now, by name: the newest red run's failures, and any that failed since."),
|
|
123
|
+
fixer: z
|
|
124
|
+
.string()
|
|
125
|
+
.optional()
|
|
126
|
+
.describe("The one conversation working on it, which every failure goes to until the branch is green. Absent while nobody is on it."),
|
|
127
|
+
decision: RedDecisionSchema.optional().describe(
|
|
128
|
+
"The latest thing decided about it: `fix-up` while the fix agent has it, `spent` once it waits for you (its turns are used up, or it stopped without a fix), `reported` when repairs are off.",
|
|
129
|
+
),
|
|
130
|
+
});
|
|
131
|
+
export type CiMainRed = z.infer<typeof CiMainRedSchema>;
|
|
111
132
|
export const CiRunsResponseSchema = z.object({
|
|
112
133
|
repos: z.array(CiRepoSchema).describe("Which workspace repositories are wired to a forge, and how each one's notifications are set up."),
|
|
113
134
|
// Newest first, across all mapped repos.
|
|
114
135
|
runs: z.array(PipelineRunSchema).describe("Runs across all of them, newest first."),
|
|
136
|
+
reds: z
|
|
137
|
+
.array(CiMainRedSchema)
|
|
138
|
+
.optional()
|
|
139
|
+
.describe("Every main-line branch red right now, with the fix agent on it. Absent from a daemon that keeps none."),
|
|
115
140
|
});
|
|
116
141
|
export type CiRunsResponse = z.infer<typeof CiRunsResponseSchema>;
|
|
117
142
|
// Re-resolves repo → project + token on every call, so a stale card can't act on a mapping the workspace no longer has.
|
package/src/schemas/devices.ts
CHANGED
|
@@ -505,7 +505,7 @@ export const DeviceSchema = z.object({
|
|
|
505
505
|
// The host connection's key, when this machine is also a connected device. Absent otherwise.
|
|
506
506
|
hostId: z.string().optional(),
|
|
507
507
|
// The card that connection is of, beside the key rather than parsed out of it: the machine's name, a label. Absent
|
|
508
|
-
// with `hostId
|
|
508
|
+
// with `hostId`.
|
|
509
509
|
card: z.string().optional(),
|
|
510
510
|
// The computer this row is an environment of, from whichever door has said (MachineIdSchema): what `machinesOf`
|
|
511
511
|
// groups by. Absent when no door has, which leaves the row a computer of its own.
|
|
@@ -563,20 +563,15 @@ export const deviceDistro = (device: Device): string | undefined => {
|
|
|
563
563
|
const byEnvironment = (a: Device, b: Device): number =>
|
|
564
564
|
Number(isWslDevice(a)) - Number(isWslDevice(b)) || (deviceDistro(a) ?? a.label).localeCompare(deviceDistro(b) ?? b.label);
|
|
565
565
|
|
|
566
|
-
// The card a device's door hangs off: one card is one computer, so two doors naming the same card are one machine
|
|
567
|
-
// whatever either has said about itself — which is the whole of what an environment that has never connected says.
|
|
568
|
-
// The row's own label, else its key read by the one parser there is (a row from a daemon older than `card`).
|
|
569
|
-
export const deviceCard = (device: Pick<Device, "card" | "hostId">): string | undefined =>
|
|
570
|
-
device.card ?? (device.hostId === undefined ? undefined : parseHostConnection(device.hostId).card);
|
|
571
|
-
|
|
572
566
|
// The computer a device is on, by whichever door said: its row, its connect-time facts, its report, its sync enrollment.
|
|
573
567
|
export const deviceMachineId = (device: Device): string | undefined =>
|
|
574
568
|
device.machineId ?? device.facts?.machineId ?? device.report?.machineId ?? device.sync?.machineId;
|
|
575
569
|
|
|
576
|
-
// What makes two devices one computer: a shared card
|
|
577
|
-
//
|
|
570
|
+
// What makes two devices one computer: a shared card (the row's own `card`, never parsed back out of its key: one card
|
|
571
|
+
// is one computer, whatever either door has said about itself), or a shared machine id. Nothing else: a hostname is
|
|
572
|
+
// shared by a PC and its WSL distros and by two unrelated machines with the same name, so it joined things by accident.
|
|
578
573
|
const tokensOf = (device: Device): string[] => {
|
|
579
|
-
const card =
|
|
574
|
+
const { card } = device;
|
|
580
575
|
const machine = deviceMachineId(device);
|
|
581
576
|
return [...(card === undefined ? [] : [`card:${card.toLowerCase()}`]), ...(machine === undefined ? [] : [`machine:${machine}`])];
|
|
582
577
|
};
|
|
@@ -621,8 +616,9 @@ const machineOf = (environments: readonly Device[]): Machine => {
|
|
|
621
616
|
if (first === undefined) {
|
|
622
617
|
return { key: "", label: "", environments };
|
|
623
618
|
}
|
|
624
|
-
const named =
|
|
625
|
-
|
|
619
|
+
const named =
|
|
620
|
+
environments.map((device) => device.card).find((key) => key !== undefined) ?? (rest.length === 0 ? undefined : deviceMachineId(first));
|
|
621
|
+
const label = first.label === first.hostId ? (first.card ?? first.label) : first.label;
|
|
626
622
|
return { key: named ?? first.key, label, environments };
|
|
627
623
|
};
|
|
628
624
|
|