@intentic/sandbox-contract 1.250.0 → 1.251.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 +7 -0
- package/dist/contracts/ci.contract.d.ts +4 -0
- package/dist/contracts/ci.contract.d.ts.map +1 -1
- package/dist/ids/conversation-ids.d.ts +15 -0
- package/dist/ids/conversation-ids.d.ts.map +1 -1
- package/dist/ids/conversation-ids.js +30 -0
- package/dist/ids/conversation-ids.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/schemas/ci.d.ts +4 -0
- package/dist/schemas/ci.d.ts.map +1 -1
- package/dist/schemas/ci.js +4 -0
- package/dist/schemas/ci.js.map +1 -1
- package/dist/state/fix-attempt-plan.d.ts +24 -0
- package/dist/state/fix-attempt-plan.d.ts.map +1 -0
- package/dist/state/fix-attempt-plan.js +22 -0
- package/dist/state/fix-attempt-plan.js.map +1 -0
- package/dist/state/fix-stance.d.ts +11 -0
- package/dist/state/fix-stance.d.ts.map +1 -0
- package/dist/state/fix-stance.js +79 -0
- package/dist/state/fix-stance.js.map +1 -0
- package/package.json +4 -4
- package/src/ids/conversation-ids.test.ts +61 -1
- package/src/ids/conversation-ids.ts +58 -1
- package/src/index.ts +2 -0
- package/src/schemas/ci.ts +8 -0
- package/src/state/fix-attempt-plan.test.ts +64 -0
- package/src/state/fix-attempt-plan.ts +54 -0
- package/src/state/fix-stance.test.ts +99 -0
- package/src/state/fix-stance.ts +140 -0
package/README.md
CHANGED
|
@@ -54,6 +54,13 @@ mismatch is a type error rather than a runtime surprise.
|
|
|
54
54
|
daemon may REFUSE: a `credential_offer` is addressed to the named people the owner's gate lists rather than
|
|
55
55
|
to whoever holds a session, so a reply that reaches this derivation at all is one the daemon already accepted
|
|
56
56
|
from an approver, and who that was rides on the `credential_receipt` frame (the reply carries no sender).
|
|
57
|
+
- [src/state/fix-stance.ts](src/state/fix-stance.ts) and [src/state/fix-attempt-plan.ts](src/state/fix-attempt-plan.ts):
|
|
58
|
+
what became of the agent a surface sent after a failure (working, needs you, fix ready, landed, waiting, ended),
|
|
59
|
+
and what a press on that surface does about it (open attempt 1, continue the ended attempt, start over, or wait
|
|
60
|
+
for the one in play). Read here rather than in any one surface, so the editor's push question, the pipelines
|
|
61
|
+
board and the daemon's `/ci/fix` route describe one agent one way and never race a second one beside it. The
|
|
62
|
+
attempt ids are [src/ids/conversation-ids.ts](src/ids/conversation-ids.ts): the failure's derived id for
|
|
63
|
+
attempt 1, then `-attempt2` on, so every attempt keeps its own transcript, cost and URL.
|
|
57
64
|
- [src/workspace-state.ts](src/state/workspace-state.ts) and [src/runtime-state.ts](src/state/runtime-state.ts): which
|
|
58
65
|
changed file, and which moved runtime thing, makes which browser view stale. The workspace table also assigns
|
|
59
66
|
each daemon-owned path its export lifecycle (`carry`, `secret`, `identity`, or `derived`), including the
|
|
@@ -88,6 +88,10 @@ export declare const ciContract: {
|
|
|
88
88
|
thinking: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
89
89
|
fast: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
90
90
|
}, import("zod/v4/core").$strip>>;
|
|
91
|
+
mode: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
92
|
+
continue: "continue";
|
|
93
|
+
"start-over": "start-over";
|
|
94
|
+
}>>;
|
|
91
95
|
force: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
92
96
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
93
97
|
conversationId: import("zod").ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ci.contract.d.ts","sourceRoot":"","sources":["../../src/contracts/ci.contract.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,UAAU;IACnB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IASJ,KAAK;;;;;;IASL,MAAM;;;;;;IASN,IAAI;;;;;;;;;;;;;;;;;;;;;;IASJ,GAAG
|
|
1
|
+
{"version":3,"file":"ci.contract.d.ts","sourceRoot":"","sources":["../../src/contracts/ci.contract.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,UAAU;IACnB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IASJ,KAAK;;;;;;IASL,MAAM;;;;;;IASN,IAAI;;;;;;;;;;;;;;;;;;;;;;IASJ,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAUN,CAAC"}
|
|
@@ -5,4 +5,19 @@ export declare const CI_FIX_PREFIX = "ci-fix-";
|
|
|
5
5
|
export declare const ciFixConversationId: (repo: string, runId: number) => string;
|
|
6
6
|
export declare const PUSH_FIX_PREFIX = "push-fix-";
|
|
7
7
|
export declare const pushFixConversationId: (scope: string, signature: string) => string;
|
|
8
|
+
export declare const fixAttemptId: (base: string, attempt: number) => string;
|
|
9
|
+
export declare const fixAttemptOf: (base: string, id: string) => number | undefined;
|
|
10
|
+
export interface FixAttempt<T extends {
|
|
11
|
+
readonly id: string;
|
|
12
|
+
}> {
|
|
13
|
+
readonly attempt: number;
|
|
14
|
+
readonly agent: T;
|
|
15
|
+
}
|
|
16
|
+
export declare const fixAttemptsOf: <T extends {
|
|
17
|
+
readonly id: string;
|
|
18
|
+
}>(base: string, agents: Iterable<T>) => FixAttempt<T>[];
|
|
19
|
+
export declare const latestFixAttempt: <T extends {
|
|
20
|
+
readonly id: string;
|
|
21
|
+
}>(base: string, agents: Iterable<T>) => FixAttempt<T> | undefined;
|
|
22
|
+
export declare const nextFixAttemptId: (base: string, knownIds: Iterable<string>) => string;
|
|
8
23
|
//# sourceMappingURL=conversation-ids.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-ids.d.ts","sourceRoot":"","sources":["../../src/ids/conversation-ids.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe,QAAqC,CAAC;AAGlE,eAAO,MAAM,gBAAgB,UAAW,MAAM,KAAG,OAAsC,CAAC;AA0IxF,eAAO,MAAM,iBAAiB,QAAO,MAAwD,CAAC;AAI9F,eAAO,MAAM,aAAa,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"conversation-ids.d.ts","sourceRoot":"","sources":["../../src/ids/conversation-ids.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe,QAAqC,CAAC;AAGlE,eAAO,MAAM,gBAAgB,UAAW,MAAM,KAAG,OAAsC,CAAC;AA0IxF,eAAO,MAAM,iBAAiB,QAAO,MAAwD,CAAC;AAI9F,eAAO,MAAM,aAAa,YAAY,CAAC;AAUvC,eAAO,MAAM,mBAAmB,SAAU,MAAM,SAAS,MAAM,KAAG,MAAsD,CAAC;AAIzH,eAAO,MAAM,eAAe,cAAc,CAAC;AAc3C,eAAO,MAAM,qBAAqB,UAAW,MAAM,aAAa,MAAM,KAAG,MAAqE,CAAC;AAQ/I,eAAO,MAAM,YAAY,SAAU,MAAM,WAAW,MAAM,KAAG,MAAoE,CAAC;AAKlI,eAAO,MAAM,YAAY,SAAU,MAAM,MAAM,MAAM,KAAG,MAAM,GAAG,SAUhE,CAAC;AAEF,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE;IACzD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACrB;AAID,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,QAAQ,MAAM,UAAU,QAAQ,CAAC,CAAC,CAAC,KAAG,UAAU,CAAC,CAAC,CAAC,EASjH,CAAC;AAGF,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,QAAQ,MAAM,UAAU,QAAQ,CAAC,CAAC,CAAC,KAAG,UAAU,CAAC,CAAC,CAAC,GAAG,SAClF,CAAC;AAKvC,eAAO,MAAM,gBAAgB,SAAU,MAAM,YAAY,QAAQ,CAAC,MAAM,CAAC,KAAG,MAM3E,CAAC"}
|
|
@@ -141,4 +141,34 @@ const digest = (text) => {
|
|
|
141
141
|
return (hash >>> 0).toString(36).padStart(7, "0");
|
|
142
142
|
};
|
|
143
143
|
export const pushFixConversationId = (scope, signature) => `${PUSH_FIX_PREFIX}${repoSlug(scope)}-${digest(signature)}`;
|
|
144
|
+
const ATTEMPT_MARK = "-attempt";
|
|
145
|
+
export const fixAttemptId = (base, attempt) => (attempt <= 1 ? base : `${base}${ATTEMPT_MARK}${attempt}`);
|
|
146
|
+
export const fixAttemptOf = (base, id) => {
|
|
147
|
+
if (id === base) {
|
|
148
|
+
return 1;
|
|
149
|
+
}
|
|
150
|
+
if (!id.startsWith(`${base}${ATTEMPT_MARK}`)) {
|
|
151
|
+
return undefined;
|
|
152
|
+
}
|
|
153
|
+
const rest = id.slice(base.length + ATTEMPT_MARK.length);
|
|
154
|
+
return /^[2-9]\d*$|^[1-9]\d+$/.test(rest) ? Number(rest) : undefined;
|
|
155
|
+
};
|
|
156
|
+
export const fixAttemptsOf = (base, agents) => {
|
|
157
|
+
const attempts = [];
|
|
158
|
+
for (const agent of agents) {
|
|
159
|
+
const attempt = fixAttemptOf(base, agent.id);
|
|
160
|
+
if (attempt !== undefined) {
|
|
161
|
+
attempts.push({ attempt, agent });
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return attempts.toSorted((left, right) => left.attempt - right.attempt);
|
|
165
|
+
};
|
|
166
|
+
export const latestFixAttempt = (base, agents) => fixAttemptsOf(base, agents).at(-1);
|
|
167
|
+
export const nextFixAttemptId = (base, knownIds) => {
|
|
168
|
+
let highest = 0;
|
|
169
|
+
for (const id of knownIds) {
|
|
170
|
+
highest = Math.max(highest, fixAttemptOf(base, id) ?? 0);
|
|
171
|
+
}
|
|
172
|
+
return fixAttemptId(base, highest + 1);
|
|
173
|
+
};
|
|
144
174
|
//# sourceMappingURL=conversation-ids.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-ids.js","sourceRoot":"","sources":["../../src/ids/conversation-ids.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"conversation-ids.js","sourceRoot":"","sources":["../../src/ids/conversation-ids.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -56,6 +56,8 @@ export * from "./state/workspace-state.js";
|
|
|
56
56
|
export * from "./state/runtime-state.js";
|
|
57
57
|
export * from "./state/state-portability.js";
|
|
58
58
|
export * from "./state/history-state.js";
|
|
59
|
+
export * from "./state/fix-stance.js";
|
|
60
|
+
export * from "./state/fix-attempt-plan.js";
|
|
59
61
|
export * from "./models/agent-runtimes.js";
|
|
60
62
|
export * from "./models/provider-specs.js";
|
|
61
63
|
export * from "./models/agent-catalog.js";
|
|
@@ -5907,6 +5909,10 @@ export declare const sandboxContract: {
|
|
|
5907
5909
|
thinking: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
5908
5910
|
fast: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
5909
5911
|
}, import("zod/v4/core").$strip>>;
|
|
5912
|
+
mode: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
5913
|
+
continue: "continue";
|
|
5914
|
+
"start-over": "start-over";
|
|
5915
|
+
}>>;
|
|
5910
5916
|
force: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
5911
5917
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
5912
5918
|
conversationId: import("zod").ZodString;
|
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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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACL,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACN,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACT,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACX,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACZ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACN,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACF,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACT,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACV,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACR,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACN,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACR,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACR,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACL,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACN,QAAQ;;;;;;;;;;;;;;;;;;;;;IACR,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACH,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACP,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACT,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACT,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACL,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACN,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACT,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACX,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACZ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACN,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACF,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACT,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACV,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACR,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACN,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACR,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACR,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACL,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACN,QAAQ;;;;;;;;;;;;;;;;;;;;;IACR,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACH,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACP,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACT,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACT,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
package/dist/index.js
CHANGED
|
@@ -94,6 +94,8 @@ export * from "./state/workspace-state.js";
|
|
|
94
94
|
export * from "./state/runtime-state.js";
|
|
95
95
|
export * from "./state/state-portability.js";
|
|
96
96
|
export * from "./state/history-state.js";
|
|
97
|
+
export * from "./state/fix-stance.js";
|
|
98
|
+
export * from "./state/fix-attempt-plan.js";
|
|
97
99
|
export * from "./models/agent-runtimes.js";
|
|
98
100
|
export * from "./models/provider-specs.js";
|
|
99
101
|
export * from "./models/agent-catalog.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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"}
|
package/dist/schemas/ci.d.ts
CHANGED
|
@@ -154,6 +154,10 @@ export declare const CiFixParamSchema: z.ZodObject<{
|
|
|
154
154
|
thinking: z.ZodOptional<z.ZodBoolean>;
|
|
155
155
|
fast: z.ZodOptional<z.ZodBoolean>;
|
|
156
156
|
}, z.core.$strip>>;
|
|
157
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
158
|
+
continue: "continue";
|
|
159
|
+
"start-over": "start-over";
|
|
160
|
+
}>>;
|
|
157
161
|
force: z.ZodOptional<z.ZodBoolean>;
|
|
158
162
|
}, z.core.$strip>;
|
|
159
163
|
export type CiFixParam = z.infer<typeof CiFixParamSchema>;
|
package/dist/schemas/ci.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ci.d.ts","sourceRoot":"","sources":["../../src/schemas/ci.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,YAAY;;;EAA+B,CAAC;AACzD,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAGlD,eAAO,MAAM,oBAAoB;;;;;;;EAA4E,CAAC;AAC9G,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAGlE,eAAO,MAAM,kBAAkB,WAAY,cAAc,KAAG,OAAsD,CAAC;AACnH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAwC5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAK5D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;iBAiB5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;iBAE/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAIlE,eAAO,MAAM,YAAY;;;;;;;;;;iBAgBvB,CAAC;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAGlD,eAAO,MAAM,mBAAmB,QAAa,CAAC;AAC9C,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAI/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,gBAAgB;;;iBAO3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAG1D,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"ci.d.ts","sourceRoot":"","sources":["../../src/schemas/ci.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,YAAY;;;EAA+B,CAAC;AACzD,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAGlD,eAAO,MAAM,oBAAoB;;;;;;;EAA4E,CAAC;AAC9G,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAGlE,eAAO,MAAM,kBAAkB,WAAY,cAAc,KAAG,OAAsD,CAAC;AACnH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAwC5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAK5D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;iBAiB5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;iBAE/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAIlE,eAAO,MAAM,YAAY;;;;;;;;;;iBAgBvB,CAAC;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAGlD,eAAO,MAAM,mBAAmB,QAAa,CAAC;AAC9C,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAI/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,gBAAgB;;;iBAO3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAG1D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;iBAkB3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,mBAAmB;;iBAE9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAgBhE,eAAO,MAAM,sBAAsB;;;;;;;EAAwE,CAAC;AAC5G,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;iBA6B3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|
package/dist/schemas/ci.js
CHANGED
|
@@ -72,6 +72,10 @@ export const CiRunParamSchema = z.object({
|
|
|
72
72
|
});
|
|
73
73
|
export const CiFixParamSchema = CiRunParamSchema.extend({
|
|
74
74
|
pick: AgentRunPickSchema.describe("Which model to open the conversation on, when somebody chose one. Leave it out for the sandbox's own choice, which is the ordinary path."),
|
|
75
|
+
mode: z
|
|
76
|
+
.enum(["continue", "start-over"])
|
|
77
|
+
.optional()
|
|
78
|
+
.describe("What to do about the attempt already made at this run, when there is one. `continue` carries on in that conversation; `start-over` stops it if running, files it away, and opens the next attempt on a clean worktree. Leave it out for the plain press: an attempt that ended is continued, a fresh failure gets attempt 1, and one still in play answers CONFLICT with why."),
|
|
75
79
|
force: z
|
|
76
80
|
.boolean()
|
|
77
81
|
.optional()
|
package/dist/schemas/ci.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ci.js","sourceRoot":"","sources":["../../src/schemas/ci.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ci.js","sourceRoot":"","sources":["../../src/schemas/ci.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { AgentSummary } from "../schemas/agents.js";
|
|
2
|
+
import { type FixStance } from "./fix-stance.js";
|
|
3
|
+
export type FixResume = "continue" | "start-over";
|
|
4
|
+
export type FixAttemptPlan = {
|
|
5
|
+
readonly kind: "new";
|
|
6
|
+
readonly conversationId: string;
|
|
7
|
+
readonly attempt: number;
|
|
8
|
+
} | {
|
|
9
|
+
readonly kind: "continue";
|
|
10
|
+
readonly conversationId: string;
|
|
11
|
+
readonly attempt: number;
|
|
12
|
+
} | {
|
|
13
|
+
readonly kind: "start-over";
|
|
14
|
+
readonly retire: string;
|
|
15
|
+
readonly stopFirst: boolean;
|
|
16
|
+
readonly conversationId: string;
|
|
17
|
+
readonly attempt: number;
|
|
18
|
+
} | {
|
|
19
|
+
readonly kind: "busy";
|
|
20
|
+
readonly conversationId: string;
|
|
21
|
+
readonly stance: FixStance;
|
|
22
|
+
};
|
|
23
|
+
export declare const planFixAttempt: (base: string, roster: readonly AgentSummary[], knownIds: Iterable<string>, resume?: FixResume) => FixAttemptPlan;
|
|
24
|
+
//# sourceMappingURL=fix-attempt-plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fix-attempt-plan.d.ts","sourceRoot":"","sources":["../../src/state/fix-attempt-plan.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,iBAAiB,CAAC;AAa5D,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;AAElD,MAAM,MAAM,cAAc,GAEpB;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAEnF;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAExF;IACI,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B,GAED;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAI7F,eAAO,MAAM,cAAc,SAAU,MAAM,UAAU,SAAS,YAAY,EAAE,YAAY,QAAQ,CAAC,MAAM,CAAC,WAAW,SAAS,KAAG,cAkB9H,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { fixAttemptOf, latestFixAttempt, nextFixAttemptId } from "../ids/conversation-ids.js";
|
|
2
|
+
import { fixStance } from "./fix-stance.js";
|
|
3
|
+
export const planFixAttempt = (base, roster, knownIds, resume) => {
|
|
4
|
+
const latest = latestFixAttempt(base, roster);
|
|
5
|
+
const stance = latest === undefined ? undefined : fixStance(latest.agent);
|
|
6
|
+
const known = [...knownIds, ...(latest === undefined ? [] : [latest.agent.id])];
|
|
7
|
+
const next = () => {
|
|
8
|
+
const conversationId = nextFixAttemptId(base, known);
|
|
9
|
+
return { conversationId, attempt: fixAttemptOf(base, conversationId) ?? 1 };
|
|
10
|
+
};
|
|
11
|
+
if (latest === undefined || stance === undefined || stance.kind === "landed") {
|
|
12
|
+
return { kind: "new", ...next() };
|
|
13
|
+
}
|
|
14
|
+
if (resume === "start-over") {
|
|
15
|
+
return { kind: "start-over", retire: latest.agent.id, stopFirst: stance.kind === "working", ...next() };
|
|
16
|
+
}
|
|
17
|
+
if (stance.retry) {
|
|
18
|
+
return { kind: "continue", conversationId: latest.agent.id, attempt: latest.attempt };
|
|
19
|
+
}
|
|
20
|
+
return { kind: "busy", conversationId: latest.agent.id, stance };
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=fix-attempt-plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fix-attempt-plan.js","sourceRoot":"","sources":["../../src/state/fix-attempt-plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9F,OAAO,EAAkB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAiC5D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,MAA+B,EAAE,QAA0B,EAAE,MAAkB,EAAkB,EAAE;IAC5I,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAChF,MAAM,IAAI,GAAG,GAAgD,EAAE;QAC3D,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACrD,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;IAChF,CAAC,CAAC;IACF,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3E,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;IACtC,CAAC;IACD,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;QAC1B,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;IAC5G,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IAC1F,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC;AACrE,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AgentSummary } from "../schemas/agents.js";
|
|
2
|
+
export type FixStanceKind = "working" | "needs-you" | "ready" | "landed" | "waiting" | "ended";
|
|
3
|
+
export interface FixStance {
|
|
4
|
+
readonly kind: FixStanceKind;
|
|
5
|
+
readonly ongoing: boolean;
|
|
6
|
+
readonly retry: boolean;
|
|
7
|
+
readonly label: string;
|
|
8
|
+
readonly hint: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const fixStance: (agent: AgentSummary) => FixStance;
|
|
11
|
+
//# sourceMappingURL=fix-stance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fix-stance.d.ts","sourceRoot":"","sources":["../../src/state/fix-stance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAYzD,MAAM,MAAM,aAAa,GAEnB,SAAS,GAET,WAAW,GAEX,OAAO,GAEP,QAAQ,GAER,SAAS,GAET,OAAO,CAAC;AAEd,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAE7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB;AAgGD,eAAO,MAAM,SAAS,UAAW,YAAY,KAAG,SAQ/C,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
const needsYou = (label, hint) => ({ kind: "needs-you", ongoing: true, retry: false, label, hint });
|
|
2
|
+
const ATTENTION = [
|
|
3
|
+
{ flag: "plan", label: "Approval needed", why: "it has proposed a plan and is waiting for a yes" },
|
|
4
|
+
{ flag: "capability", label: "Setup needed", why: "it needs something connected that is not connected yet" },
|
|
5
|
+
{ flag: "question", label: "Question for you", why: "it has asked you something" },
|
|
6
|
+
{ flag: "permission", label: "Permission needed", why: "it wants to use a tool it needs permission for" },
|
|
7
|
+
{ flag: "conflict", label: "Land conflict", why: "its work cannot be merged until somebody resolves a clash" },
|
|
8
|
+
];
|
|
9
|
+
const IN_FLIGHT = new Set(["running", "resuming", "stopping", "dismissing"]);
|
|
10
|
+
const WORKING = {
|
|
11
|
+
kind: "working",
|
|
12
|
+
ongoing: true,
|
|
13
|
+
retry: false,
|
|
14
|
+
label: "Agent working",
|
|
15
|
+
hint: "An agent is already working on this failure. Open the conversation to watch it.",
|
|
16
|
+
};
|
|
17
|
+
const READY = {
|
|
18
|
+
kind: "ready",
|
|
19
|
+
ongoing: true,
|
|
20
|
+
retry: false,
|
|
21
|
+
label: "Fix ready",
|
|
22
|
+
hint: "The fix is written and held on the agent's branch. Open it to review the diff and land it.",
|
|
23
|
+
};
|
|
24
|
+
const LANDED = {
|
|
25
|
+
kind: "landed",
|
|
26
|
+
ongoing: false,
|
|
27
|
+
retry: false,
|
|
28
|
+
label: "Fix landed",
|
|
29
|
+
hint: "The fix is in your workspace. Running the check again is what proves it.",
|
|
30
|
+
};
|
|
31
|
+
const WAITING = {
|
|
32
|
+
kind: "waiting",
|
|
33
|
+
ongoing: true,
|
|
34
|
+
retry: false,
|
|
35
|
+
label: "Waiting",
|
|
36
|
+
hint: "The fix agent's allowance is spent. Nothing is owed: the turn goes again when the provider's window reopens.",
|
|
37
|
+
};
|
|
38
|
+
const holdingWork = (agent) => agent.status === "ready" || (agent.status === "idle" && agent.diff !== undefined && agent.diff.files > 0);
|
|
39
|
+
const ENDINGS = {
|
|
40
|
+
error: { label: "Agent failed", why: "The fix agent's turn failed" },
|
|
41
|
+
interrupted: { label: "Interrupted", why: "The fix agent's turn was cut off when the sandbox went away" },
|
|
42
|
+
stopped: { label: "Stopped", why: "The fix agent was stopped before it finished" },
|
|
43
|
+
idle: { label: "Nothing changed", why: "The fix agent finished without changing any files" },
|
|
44
|
+
};
|
|
45
|
+
const ended = (agent) => {
|
|
46
|
+
const ending = ENDINGS[agent.status] ?? { label: "Agent stopped", why: "The fix agent's turn ended" };
|
|
47
|
+
const files = agent.diff?.files ?? 0;
|
|
48
|
+
const partial = files === 0 ? "" : ` It left ${files} changed file${files === 1 ? "" : "s"} on its branch.`;
|
|
49
|
+
return {
|
|
50
|
+
kind: "ended",
|
|
51
|
+
ongoing: false,
|
|
52
|
+
retry: true,
|
|
53
|
+
label: ending.label,
|
|
54
|
+
hint: `${ending.why}${agent.failure === undefined ? "" : `: ${agent.failure}`}.${partial} Continuing carries on in the same conversation; starting over opens a fresh one.`,
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
const RULES = [
|
|
58
|
+
(agent) => (agent.status === "error" && agent.failureCode === "rate_limit" ? WAITING : undefined),
|
|
59
|
+
(agent) => {
|
|
60
|
+
const parked = ATTENTION.find((entry) => agent.attention[entry.flag]);
|
|
61
|
+
return parked === undefined ? undefined : needsYou(parked.label, `The fix agent is waiting on you: ${parked.why}.`);
|
|
62
|
+
},
|
|
63
|
+
(agent) => agent.status === "awaiting" || agent.status === "conflict"
|
|
64
|
+
? needsYou("Needs you", "The fix agent has stopped and is waiting on you.")
|
|
65
|
+
: undefined,
|
|
66
|
+
(agent) => (IN_FLIGHT.has(agent.status) ? WORKING : undefined),
|
|
67
|
+
(agent) => (holdingWork(agent) ? READY : undefined),
|
|
68
|
+
(agent) => (agent.status === "landed" ? LANDED : undefined),
|
|
69
|
+
];
|
|
70
|
+
export const fixStance = (agent) => {
|
|
71
|
+
for (const rule of RULES) {
|
|
72
|
+
const stance = rule(agent);
|
|
73
|
+
if (stance !== undefined) {
|
|
74
|
+
return stance;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return ended(agent);
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=fix-stance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fix-stance.js","sourceRoot":"","sources":["../../src/state/fix-stance.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.251.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",
|
|
@@ -185,9 +185,9 @@
|
|
|
185
185
|
}
|
|
186
186
|
},
|
|
187
187
|
"dependencies": {
|
|
188
|
-
"@intentic/constants": "1.
|
|
189
|
-
"@intentic/extension-manifest": "1.
|
|
190
|
-
"@intentic/registry": "1.
|
|
188
|
+
"@intentic/constants": "1.251.0",
|
|
189
|
+
"@intentic/extension-manifest": "1.251.0",
|
|
190
|
+
"@intentic/registry": "1.251.0",
|
|
191
191
|
"@orpc/contract": "1.14.13",
|
|
192
192
|
"tslib": "2.8.1",
|
|
193
193
|
"zod": "4.5.4"
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import { afterEach, expect, test, vi } from "vitest";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
CI_FIX_PREFIX,
|
|
4
|
+
ciFixConversationId,
|
|
5
|
+
fixAttemptId,
|
|
6
|
+
fixAttemptOf,
|
|
7
|
+
fixAttemptsOf,
|
|
8
|
+
latestFixAttempt,
|
|
9
|
+
newConversationId,
|
|
10
|
+
nextFixAttemptId,
|
|
11
|
+
PUSH_FIX_PREFIX,
|
|
12
|
+
pushFixConversationId,
|
|
13
|
+
} from "./conversation-ids.js";
|
|
3
14
|
import { ConversationIdSchema } from "../schemas/agent.js";
|
|
4
15
|
|
|
5
16
|
const mockRandomValues = (values: readonly number[]) => {
|
|
@@ -101,3 +112,52 @@ test("every derived push fix id passes the conversation-id guard", () => {
|
|
|
101
112
|
}
|
|
102
113
|
}
|
|
103
114
|
});
|
|
115
|
+
|
|
116
|
+
// Attempt 1 is the bare derived id, so every fix conversation minted before attempts existed reads as attempt 1.
|
|
117
|
+
test("the first attempt wears the failure's own id, later ones carry their number", () => {
|
|
118
|
+
const base = ciFixConversationId(`web`, 41);
|
|
119
|
+
expect(fixAttemptId(base, 1)).toBe(base);
|
|
120
|
+
expect(fixAttemptId(base, 2)).toBe(`ci-fix-web-41-attempt2`);
|
|
121
|
+
expect(fixAttemptOf(base, base)).toBe(1);
|
|
122
|
+
expect(fixAttemptOf(base, `ci-fix-web-41-attempt2`)).toBe(2);
|
|
123
|
+
expect(fixAttemptOf(base, `ci-fix-web-41-attempt12`)).toBe(12);
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
// Read base-relative on purpose: a base ends in a run id, so a neighbouring failure's id can start with this one.
|
|
127
|
+
test("another failure's id is not an attempt at this one", () => {
|
|
128
|
+
const base = ciFixConversationId(`web`, 41);
|
|
129
|
+
// Repo `web-41`, run 2: starts with the base and a dash, and is nobody's attempt.
|
|
130
|
+
expect(fixAttemptOf(base, ciFixConversationId(`web-41`, 2))).toBeUndefined();
|
|
131
|
+
expect(fixAttemptOf(base, ciFixConversationId(`web`, 412))).toBeUndefined();
|
|
132
|
+
expect(fixAttemptOf(base, `swift-otter-k9m2`)).toBeUndefined();
|
|
133
|
+
// One spelling per attempt.
|
|
134
|
+
expect(fixAttemptOf(base, `ci-fix-web-41-attempt1`)).toBeUndefined();
|
|
135
|
+
expect(fixAttemptOf(base, `ci-fix-web-41-attempt02`)).toBeUndefined();
|
|
136
|
+
expect(fixAttemptOf(base, `ci-fix-web-41-attempt`)).toBeUndefined();
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
test("attempts are read off the roster, earliest first, and the newest is the live answer", () => {
|
|
140
|
+
const base = pushFixConversationId(`intentic`, `lint`);
|
|
141
|
+
const roster = [{ id: `swift-otter-k9m2` }, { id: fixAttemptId(base, 3) }, { id: base }, { id: pushFixConversationId(`intentic`, `typecheck`) }];
|
|
142
|
+
expect(fixAttemptsOf(base, roster).map((entry) => entry.attempt)).toEqual([1, 3]);
|
|
143
|
+
expect(latestFixAttempt(base, roster)?.agent.id).toBe(fixAttemptId(base, 3));
|
|
144
|
+
expect(latestFixAttempt(base, [])).toBeUndefined();
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
// The archive counts: a start-over files the last attempt away, and re-minting its number would un-archive it.
|
|
148
|
+
test("the next attempt is numbered past every known one, archived included", () => {
|
|
149
|
+
const base = ciFixConversationId(`web`, 41);
|
|
150
|
+
expect(nextFixAttemptId(base, [])).toBe(base);
|
|
151
|
+
expect(nextFixAttemptId(base, [base])).toBe(`ci-fix-web-41-attempt2`);
|
|
152
|
+
expect(nextFixAttemptId(base, [`ci-fix-web-41-attempt3`, `swift-otter-k9m2`])).toBe(`ci-fix-web-41-attempt4`);
|
|
153
|
+
expect(nextFixAttemptId(base, [ciFixConversationId(`web-41`, 2)])).toBe(base);
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
test("an attempt id passes the guard and fits, even for the widest run id a forge mints", () => {
|
|
157
|
+
const widest = ciFixConversationId(`a-repository-name-of-thirty-two-chars-or-more`, 99_999_999_999);
|
|
158
|
+
for (const attempt of [1, 2, 99]) {
|
|
159
|
+
const id = fixAttemptId(widest, attempt);
|
|
160
|
+
expect(ConversationIdSchema.safeParse(id).success).toBe(true);
|
|
161
|
+
expect(id.length).toBeLessThanOrEqual(64);
|
|
162
|
+
}
|
|
163
|
+
});
|
|
@@ -149,7 +149,8 @@ export const newConversationId = (): string => `${pick(ADJECTIVES)}-${pick(NOUNS
|
|
|
149
149
|
// Derived, not drawn, so a re-computed id says whether an agent is already on this failure and a second press continues
|
|
150
150
|
// it. The repo is included (one run id per project) and slugified, not hashed, since people read it.
|
|
151
151
|
export const CI_FIX_PREFIX = "ci-fix-";
|
|
152
|
-
// Leaves ~24 characters for the run id within the 64-char id limit
|
|
152
|
+
// Leaves ~24 characters for the run id and an attempt suffix within the 64-char id limit; the widest run id either
|
|
153
|
+
// forge mints is eleven digits.
|
|
153
154
|
const REPO_SLUG_MAX = 32;
|
|
154
155
|
const repoSlug = (repo: string): string =>
|
|
155
156
|
repo
|
|
@@ -176,3 +177,59 @@ const digest = (text: string): string => {
|
|
|
176
177
|
};
|
|
177
178
|
|
|
178
179
|
export const pushFixConversationId = (scope: string, signature: string): string => `${PUSH_FIX_PREFIX}${repoSlug(scope)}-${digest(signature)}`;
|
|
180
|
+
|
|
181
|
+
// ONE FAILURE, MANY ATTEMPTS, ONE LIVE ANSWER. The derived id above names the FAILURE; an attempt at it is a
|
|
182
|
+
// conversation of its own, so starting over (another model, a clean worktree) never rewrites a record some other window
|
|
183
|
+
// is showing, and every attempt keeps its own transcript, cost and URL. Attempt 1 wears the bare id, so every id minted
|
|
184
|
+
// before attempts existed is attempt 1 of its failure.
|
|
185
|
+
const ATTEMPT_MARK = "-attempt";
|
|
186
|
+
|
|
187
|
+
export const fixAttemptId = (base: string, attempt: number): string => (attempt <= 1 ? base : `${base}${ATTEMPT_MARK}${attempt}`);
|
|
188
|
+
|
|
189
|
+
// Which attempt at `base` this id is, or undefined for an id that is none of them. Read base-relative, never the other
|
|
190
|
+
// way round: a base ends in a run id or a digest, so nothing about an id on its own says where an attempt marker would
|
|
191
|
+
// begin, and `ci-fix-web-41-2` is repo `web-41`'s run 2, not a second go at run 41.
|
|
192
|
+
export const fixAttemptOf = (base: string, id: string): number | undefined => {
|
|
193
|
+
if (id === base) {
|
|
194
|
+
return 1;
|
|
195
|
+
}
|
|
196
|
+
if (!id.startsWith(`${base}${ATTEMPT_MARK}`)) {
|
|
197
|
+
return undefined;
|
|
198
|
+
}
|
|
199
|
+
const rest = id.slice(base.length + ATTEMPT_MARK.length);
|
|
200
|
+
// One spelling per attempt: the first is the bare id, so `-attempt1` and a zero-padded number are nobody's.
|
|
201
|
+
return /^[2-9]\d*$|^[1-9]\d+$/.test(rest) ? Number(rest) : undefined;
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
export interface FixAttempt<T extends { readonly id: string }> {
|
|
205
|
+
readonly attempt: number;
|
|
206
|
+
readonly agent: T;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
// Every attempt at `base` among `agents`, earliest first. The roster is the record: nothing else files which
|
|
210
|
+
// conversations answered a failure, and none is needed, since the ids say so.
|
|
211
|
+
export const fixAttemptsOf = <T extends { readonly id: string }>(base: string, agents: Iterable<T>): FixAttempt<T>[] => {
|
|
212
|
+
const attempts: FixAttempt<T>[] = [];
|
|
213
|
+
for (const agent of agents) {
|
|
214
|
+
const attempt = fixAttemptOf(base, agent.id);
|
|
215
|
+
if (attempt !== undefined) {
|
|
216
|
+
attempts.push({ attempt, agent });
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
return attempts.toSorted((left, right) => left.attempt - right.attempt);
|
|
220
|
+
};
|
|
221
|
+
|
|
222
|
+
// The failure's live answer: its newest attempt, since an older one was set aside by the very act of starting a newer.
|
|
223
|
+
export const latestFixAttempt = <T extends { readonly id: string }>(base: string, agents: Iterable<T>): FixAttempt<T> | undefined =>
|
|
224
|
+
fixAttemptsOf(base, agents).at(-1);
|
|
225
|
+
|
|
226
|
+
// The id the next attempt takes: one past every attempt KNOWN, archived ones included. A start-over files the last
|
|
227
|
+
// attempt away rather than deleting it, and a message to an archived conversation un-archives it, so minting a number
|
|
228
|
+
// the archive holds would quietly resurrect the attempt the reader just set aside.
|
|
229
|
+
export const nextFixAttemptId = (base: string, knownIds: Iterable<string>): string => {
|
|
230
|
+
let highest = 0;
|
|
231
|
+
for (const id of knownIds) {
|
|
232
|
+
highest = Math.max(highest, fixAttemptOf(base, id) ?? 0);
|
|
233
|
+
}
|
|
234
|
+
return fixAttemptId(base, highest + 1);
|
|
235
|
+
};
|
package/src/index.ts
CHANGED
|
@@ -100,6 +100,8 @@ export * from "./state/workspace-state.js";
|
|
|
100
100
|
export * from "./state/runtime-state.js";
|
|
101
101
|
export * from "./state/state-portability.js";
|
|
102
102
|
export * from "./state/history-state.js";
|
|
103
|
+
export * from "./state/fix-stance.js";
|
|
104
|
+
export * from "./state/fix-attempt-plan.js";
|
|
103
105
|
// Provider vocabulary bottom-up: agent-runtimes, provider-specs, agent-catalog; three modules since the dependency
|
|
104
106
|
// points one way.
|
|
105
107
|
export * from "./models/agent-runtimes.js";
|
package/src/schemas/ci.ts
CHANGED
|
@@ -130,6 +130,14 @@ export const CiFixParamSchema = CiRunParamSchema.extend({
|
|
|
130
130
|
pick: AgentRunPickSchema.describe(
|
|
131
131
|
"Which model to open the conversation on, when somebody chose one. Leave it out for the sandbox's own choice, which is the ordinary path.",
|
|
132
132
|
),
|
|
133
|
+
// The verb the picker's bar was ended with, when an attempt already exists (state/fix-attempt-plan.ts). Left out,
|
|
134
|
+
// an ended attempt is continued and a fresh press opens attempt 1; one still in play answers CONFLICT.
|
|
135
|
+
mode: z
|
|
136
|
+
.enum(["continue", "start-over"])
|
|
137
|
+
.optional()
|
|
138
|
+
.describe(
|
|
139
|
+
"What to do about the attempt already made at this run, when there is one. `continue` carries on in that conversation; `start-over` stops it if running, files it away, and opens the next attempt on a clean worktree. Leave it out for the plain press: an attempt that ended is continued, a fresh failure gets attempt 1, and one still in play answers CONFLICT with why.",
|
|
140
|
+
),
|
|
133
141
|
force: z
|
|
134
142
|
.boolean()
|
|
135
143
|
.optional()
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { expect, test } from "vitest";
|
|
2
|
+
import { ciFixConversationId, fixAttemptId } from "../ids/conversation-ids.js";
|
|
3
|
+
import type { AgentSummary } from "../schemas/agents.js";
|
|
4
|
+
import { planFixAttempt } from "./fix-attempt-plan.js";
|
|
5
|
+
|
|
6
|
+
const NO_ATTENTION = { plan: false, question: false, permission: false, capability: false, credential: false, conflict: false };
|
|
7
|
+
const BASE = ciFixConversationId(`web`, 41);
|
|
8
|
+
|
|
9
|
+
const agent = (id: string, over: Partial<AgentSummary> = {}): AgentSummary => ({
|
|
10
|
+
id,
|
|
11
|
+
status: `running`,
|
|
12
|
+
provider: `claude`,
|
|
13
|
+
harness: `native`,
|
|
14
|
+
attention: { ...NO_ATTENTION },
|
|
15
|
+
updatedAt: 1_000,
|
|
16
|
+
...over,
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
test("with nobody on the failure, a press opens attempt 1 under the failure's own id", () => {
|
|
20
|
+
expect(planFixAttempt(BASE, [], [])).toEqual({ kind: `new`, conversationId: BASE, attempt: 1 });
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
// The archive counts: attempt 1 was set aside earlier, and re-minting its id would un-archive it.
|
|
24
|
+
test("an archived attempt is skipped over, not resurrected", () => {
|
|
25
|
+
expect(planFixAttempt(BASE, [], [BASE])).toEqual({ kind: `new`, conversationId: fixAttemptId(BASE, 2), attempt: 2 });
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
test("a landed attempt is closed: the same gates red again get a fresh attempt", () => {
|
|
29
|
+
const plan = planFixAttempt(BASE, [agent(BASE, { status: `landed` })], []);
|
|
30
|
+
expect(plan).toEqual({ kind: `new`, conversationId: fixAttemptId(BASE, 2), attempt: 2 });
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
test("an attempt that ended is continued by a plain press, and by an explicit Continue", () => {
|
|
34
|
+
const roster = [agent(BASE, { status: `error`, failure: `no capacity` })];
|
|
35
|
+
expect(planFixAttempt(BASE, roster, [])).toEqual({ kind: `continue`, conversationId: BASE, attempt: 1 });
|
|
36
|
+
expect(planFixAttempt(BASE, roster, [], `continue`)).toEqual({ kind: `continue`, conversationId: BASE, attempt: 1 });
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
test("start over retires the latest attempt and numbers the next past it", () => {
|
|
40
|
+
const second = fixAttemptId(BASE, 2);
|
|
41
|
+
const plan = planFixAttempt(BASE, [agent(BASE, { status: `stopped` }), agent(second, { status: `error` })], [], `start-over`);
|
|
42
|
+
expect(plan).toEqual({ kind: `start-over`, retire: second, stopFirst: false, conversationId: fixAttemptId(BASE, 3), attempt: 3 });
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
// Only a running turn needs stopping before the archive will take it; a parked one is already still.
|
|
46
|
+
test("starting over on a working attempt stops it first", () => {
|
|
47
|
+
const plan = planFixAttempt(BASE, [agent(BASE, { status: `running` })], [], `start-over`);
|
|
48
|
+
expect(plan).toMatchObject({ kind: `start-over`, retire: BASE, stopFirst: true });
|
|
49
|
+
const parked = planFixAttempt(BASE, [agent(BASE, { status: `awaiting`, attention: { ...NO_ATTENTION, question: true } })], [], `start-over`);
|
|
50
|
+
expect(parked).toMatchObject({ kind: `start-over`, stopFirst: false });
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
// A second agent beside a live one is the race the derived id exists to prevent; the press opens the live one instead.
|
|
54
|
+
test.each([`running`, `awaiting`, `ready`] as const)("an attempt still in play (%s) is busy, not a fresh press", (status) => {
|
|
55
|
+
const plan = planFixAttempt(BASE, [agent(BASE, { status })], []);
|
|
56
|
+
expect(plan).toMatchObject({ kind: `busy`, conversationId: BASE });
|
|
57
|
+
// Continue is not a way around it either.
|
|
58
|
+
expect(planFixAttempt(BASE, [agent(BASE, { status })], [], `continue`).kind).toBe(`busy`);
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
test("a spent allowance is a wait, not an ending: the press does not spend it again", () => {
|
|
62
|
+
const plan = planFixAttempt(BASE, [agent(BASE, { status: `error`, failureCode: `rate_limit` })], []);
|
|
63
|
+
expect(plan.kind).toBe(`busy`);
|
|
64
|
+
});
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { fixAttemptOf, latestFixAttempt, nextFixAttemptId } from "../ids/conversation-ids.js";
|
|
2
|
+
import type { AgentSummary } from "../schemas/agents.js";
|
|
3
|
+
import { type FixStance, fixStance } from "./fix-stance.js";
|
|
4
|
+
|
|
5
|
+
/* WHAT A PRESS ON A FAILURE'S FIX CONTROL DOES, decided once for every surface that has one — the push question in
|
|
6
|
+
* the shell, the pipelines board's rows, the daemon's own /ci/fix route — so the browser and the daemon cannot
|
|
7
|
+
* disagree about whether a press continues an attempt, opens the next one, or has to wait. Pure: the roster in, a
|
|
8
|
+
* plan out. Carrying the plan out (stopping, archiving, starting) is the caller's, since each side does that
|
|
9
|
+
* through its own doors.
|
|
10
|
+
*
|
|
11
|
+
* THE RULE, in the order it is read: nothing live (or the last answer landed) opens the NEXT attempt; "start over"
|
|
12
|
+
* sets the latest aside and opens the next; an attempt that ENDED is continued; anything else is still in play and
|
|
13
|
+
* the reader is sent to it rather than allowed to race a second agent beside it. */
|
|
14
|
+
|
|
15
|
+
// How the reader ended the picker, when they did; absent is the plain press on the button.
|
|
16
|
+
export type FixResume = "continue" | "start-over";
|
|
17
|
+
|
|
18
|
+
export type FixAttemptPlan =
|
|
19
|
+
// Nothing live answers this failure, or the last answer landed: open the next attempt with the full prompt.
|
|
20
|
+
| { readonly kind: "new"; readonly conversationId: string; readonly attempt: number }
|
|
21
|
+
// The latest attempt ended without a fix: carry on in it, with a nudge rather than the whole opening prompt.
|
|
22
|
+
| { readonly kind: "continue"; readonly conversationId: string; readonly attempt: number }
|
|
23
|
+
// Set the latest attempt aside (stopped first if still running) and open the next one on a clean worktree.
|
|
24
|
+
| {
|
|
25
|
+
readonly kind: "start-over";
|
|
26
|
+
readonly retire: string;
|
|
27
|
+
readonly stopFirst: boolean;
|
|
28
|
+
readonly conversationId: string;
|
|
29
|
+
readonly attempt: number;
|
|
30
|
+
}
|
|
31
|
+
// The latest attempt is still in play: working, parked on the reader, or holding a fix to review. Open it instead.
|
|
32
|
+
| { readonly kind: "busy"; readonly conversationId: string; readonly stance: FixStance };
|
|
33
|
+
|
|
34
|
+
// `roster` is the live fleet; `knownIds` is every conversation id that exists, archived ones included, since the next
|
|
35
|
+
// attempt's number must clear the archive too (conversation-ids.ts, nextFixAttemptId).
|
|
36
|
+
export const planFixAttempt = (base: string, roster: readonly AgentSummary[], knownIds: Iterable<string>, resume?: FixResume): FixAttemptPlan => {
|
|
37
|
+
const latest = latestFixAttempt(base, roster);
|
|
38
|
+
const stance = latest === undefined ? undefined : fixStance(latest.agent);
|
|
39
|
+
const known = [...knownIds, ...(latest === undefined ? [] : [latest.agent.id])];
|
|
40
|
+
const next = (): { conversationId: string; attempt: number } => {
|
|
41
|
+
const conversationId = nextFixAttemptId(base, known);
|
|
42
|
+
return { conversationId, attempt: fixAttemptOf(base, conversationId) ?? 1 };
|
|
43
|
+
};
|
|
44
|
+
if (latest === undefined || stance === undefined || stance.kind === "landed") {
|
|
45
|
+
return { kind: "new", ...next() };
|
|
46
|
+
}
|
|
47
|
+
if (resume === "start-over") {
|
|
48
|
+
return { kind: "start-over", retire: latest.agent.id, stopFirst: stance.kind === "working", ...next() };
|
|
49
|
+
}
|
|
50
|
+
if (stance.retry) {
|
|
51
|
+
return { kind: "continue", conversationId: latest.agent.id, attempt: latest.attempt };
|
|
52
|
+
}
|
|
53
|
+
return { kind: "busy", conversationId: latest.agent.id, stance };
|
|
54
|
+
};
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { expect, test } from "vitest";
|
|
2
|
+
import { fixStance } from "./fix-stance.js";
|
|
3
|
+
import type { AgentSummary } from "../schemas/agents.js";
|
|
4
|
+
|
|
5
|
+
const NO_ATTENTION = { plan: false, question: false, permission: false, capability: false, credential: false, conflict: false };
|
|
6
|
+
|
|
7
|
+
const agent = (over: Partial<AgentSummary> = {}): AgentSummary => ({
|
|
8
|
+
id: `ci-fix-web-42`,
|
|
9
|
+
status: `running`,
|
|
10
|
+
provider: `claude`,
|
|
11
|
+
harness: `native`,
|
|
12
|
+
attention: { ...NO_ATTENTION },
|
|
13
|
+
updatedAt: 1_000,
|
|
14
|
+
...over,
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
test("a live turn reads as work in progress, and asks nothing of the reader", () => {
|
|
18
|
+
const stance = fixStance(agent({ status: `running` }));
|
|
19
|
+
expect(stance.kind).toBe(`working`);
|
|
20
|
+
expect(stance.ongoing).toBe(true);
|
|
21
|
+
expect(stance.retry).toBe(false);
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
test.each([`resuming`, `stopping`, `dismissing`] as const)("%s still reads as working", (status) => {
|
|
25
|
+
expect(fixStance(agent({ status })).kind).toBe(`working`);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
test("a parked turn is read off the attention flag, not the status", () => {
|
|
29
|
+
const stance = fixStance(agent({ status: `idle`, attention: { ...NO_ATTENTION, question: true } }));
|
|
30
|
+
expect(stance.kind).toBe(`needs-you`);
|
|
31
|
+
expect(stance.label).toBe(`Question for you`);
|
|
32
|
+
expect(stance.ongoing).toBe(true);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
test("a setup that is not connected yet outranks a question raised beside it", () => {
|
|
36
|
+
const stance = fixStance(agent({ status: `awaiting`, attention: { ...NO_ATTENTION, question: true, capability: true } }));
|
|
37
|
+
expect(stance.label).toBe(`Setup needed`);
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
test("a turn parked with no flag yet still says it is waiting on you", () => {
|
|
41
|
+
expect(fixStance(agent({ status: `awaiting` })).kind).toBe(`needs-you`);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
test("held work reads as a fix to review, whether the fleet called it ready or left it idle", () => {
|
|
45
|
+
expect(fixStance(agent({ status: `ready` })).kind).toBe(`ready`);
|
|
46
|
+
expect(fixStance(agent({ status: `idle`, diff: { files: 4, insertions: 120, deletions: 8 } })).kind).toBe(`ready`);
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
// Diff present doesn't change a failed status to ready; it only earns a mention in the hint.
|
|
50
|
+
test("an agent that failed after writing files still reads as failed", () => {
|
|
51
|
+
const stance = fixStance(agent({ status: `error`, diff: { files: 2, insertions: 34, deletions: 6 } }));
|
|
52
|
+
expect(stance.kind).toBe(`ended`);
|
|
53
|
+
expect(stance.retry).toBe(true);
|
|
54
|
+
expect(stance.hint).toContain(`2 changed files on its branch`);
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
test("a finished turn that changed nothing offers to try again", () => {
|
|
58
|
+
const stance = fixStance(agent({ status: `idle` }));
|
|
59
|
+
expect(stance.kind).toBe(`ended`);
|
|
60
|
+
expect(stance.label).toBe(`Nothing changed`);
|
|
61
|
+
expect(stance.retry).toBe(true);
|
|
62
|
+
expect(stance.ongoing).toBe(false);
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
test("a landed fix is over, and stops holding the branch's other rows back", () => {
|
|
66
|
+
const stance = fixStance(agent({ status: `landed`, diff: { files: 2, insertions: 10, deletions: 1 } }));
|
|
67
|
+
expect(stance.kind).toBe(`landed`);
|
|
68
|
+
expect(stance.ongoing).toBe(false);
|
|
69
|
+
expect(stance.retry).toBe(false);
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
test("a failed turn carries the provider's own sentence into the hint", () => {
|
|
73
|
+
const stance = fixStance(agent({ status: `error`, failure: `the model endpoint refused the request` }));
|
|
74
|
+
expect(stance.kind).toBe(`ended`);
|
|
75
|
+
expect(stance.retry).toBe(true);
|
|
76
|
+
expect(stance.hint).toContain(`the model endpoint refused the request`);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
// Retry is false because retrying would spend the same already-refused allowance.
|
|
80
|
+
test("a spent allowance reads as a wait rather than an error", () => {
|
|
81
|
+
const stance = fixStance(agent({ status: `error`, failureCode: `rate_limit`, failure: `usage limit reached` }));
|
|
82
|
+
expect(stance.kind).toBe(`waiting`);
|
|
83
|
+
expect(stance.retry).toBe(false);
|
|
84
|
+
expect(stance.ongoing).toBe(true);
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
test("a stopped turn says so, and offers the press again", () => {
|
|
88
|
+
const stance = fixStance(agent({ status: `stopped` }));
|
|
89
|
+
expect(stance.label).toBe(`Stopped`);
|
|
90
|
+
expect(stance.retry).toBe(true);
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
// An unknown status can arrive from a newer daemon; the stance must still read rather than crash on a missing ending.
|
|
94
|
+
test("an unknown ending still produces a stance", () => {
|
|
95
|
+
const stance = fixStance(agent({ status: `teleported` as AgentSummary["status"] }));
|
|
96
|
+
expect(stance.kind).toBe(`ended`);
|
|
97
|
+
expect(stance.label).toBe(`Agent stopped`);
|
|
98
|
+
expect(stance.retry).toBe(true);
|
|
99
|
+
});
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import type { AgentSummary } from "../schemas/agents.js";
|
|
2
|
+
|
|
3
|
+
/* WHAT BECAME OF THE AGENT A SURFACE SENT AFTER A FAILURE — a red pipeline row, a refused push — read off the fleet
|
|
4
|
+
* summary that surface joined by conversation id (ids/conversation-ids.ts). Reads both status and attention, since
|
|
5
|
+
* a parked turn is `idle` with a flag rather than finished. Mirrors the fleet board's own labels except for naming
|
|
6
|
+
* the subject (`Fix ready`), because on these surfaces the failure is what's read. Pure: no host, no clock.
|
|
7
|
+
*
|
|
8
|
+
* IN THE CONTRACT, NOT IN ONE SURFACE, because the words must not differ between the pipelines board (an
|
|
9
|
+
* extension) and the push question (the shell): the same agent, one click apart, described two ways is a bug a
|
|
10
|
+
* reader notices before a test does. Only the reading lives here; how each kind is DRAWN (icon, colour) is the UI
|
|
11
|
+
* kit's `fixStanceLook`, which an extension cannot load in a test and this package must not know about. */
|
|
12
|
+
|
|
13
|
+
export type FixStanceKind =
|
|
14
|
+
// A turn is in flight. Nothing is owed by the reader.
|
|
15
|
+
| "working"
|
|
16
|
+
// Parked on the user: a question, a plan, a permission, a setup, a conflict.
|
|
17
|
+
| "needs-you"
|
|
18
|
+
// The fix is written and held on the agent's branch, waiting to be reviewed and landed.
|
|
19
|
+
| "ready"
|
|
20
|
+
// It is in the workspace. What is left is proving it: re-run the check.
|
|
21
|
+
| "landed"
|
|
22
|
+
// Stopped on a spent allowance, which is a wait rather than a failure and must not be drawn as one.
|
|
23
|
+
| "waiting"
|
|
24
|
+
// Over, with nothing held: it failed, it was interrupted, it was stopped, or it changed nothing.
|
|
25
|
+
| "ended";
|
|
26
|
+
|
|
27
|
+
export interface FixStance {
|
|
28
|
+
readonly kind: FixStanceKind;
|
|
29
|
+
// True while this agent is still the failure's live answer; false once ended or landed.
|
|
30
|
+
readonly ongoing: boolean;
|
|
31
|
+
// True only for an ended fix: the one state where continuing it is a press rather than a chip.
|
|
32
|
+
readonly retry: boolean;
|
|
33
|
+
readonly label: string;
|
|
34
|
+
// Why the chip says what it says, and what pressing it does; no time-relative words.
|
|
35
|
+
readonly hint: string;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const needsYou = (label: string, hint: string): FixStance => ({ kind: "needs-you", ongoing: true, retry: false, label, hint });
|
|
39
|
+
|
|
40
|
+
// Ranks parked flags like the fleet does: setup outranks a plain question since it blocks the agent outright.
|
|
41
|
+
const ATTENTION: readonly { readonly flag: keyof AgentSummary["attention"]; readonly label: string; readonly why: string }[] = [
|
|
42
|
+
{ flag: "plan", label: "Approval needed", why: "it has proposed a plan and is waiting for a yes" },
|
|
43
|
+
{ flag: "capability", label: "Setup needed", why: "it needs something connected that is not connected yet" },
|
|
44
|
+
{ flag: "question", label: "Question for you", why: "it has asked you something" },
|
|
45
|
+
{ flag: "permission", label: "Permission needed", why: "it wants to use a tool it needs permission for" },
|
|
46
|
+
{ flag: "conflict", label: "Land conflict", why: "its work cannot be merged until somebody resolves a clash" },
|
|
47
|
+
];
|
|
48
|
+
|
|
49
|
+
// Live turn: running, unwinding a Stop, or waiting on a daemon repair; `awaiting` is handled above.
|
|
50
|
+
const IN_FLIGHT: ReadonlySet<AgentSummary["status"]> = new Set(["running", "resuming", "stopping", "dismissing"]);
|
|
51
|
+
|
|
52
|
+
const WORKING: FixStance = {
|
|
53
|
+
kind: "working",
|
|
54
|
+
ongoing: true,
|
|
55
|
+
retry: false,
|
|
56
|
+
label: "Agent working",
|
|
57
|
+
hint: "An agent is already working on this failure. Open the conversation to watch it.",
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
const READY: FixStance = {
|
|
61
|
+
kind: "ready",
|
|
62
|
+
ongoing: true,
|
|
63
|
+
retry: false,
|
|
64
|
+
label: "Fix ready",
|
|
65
|
+
hint: "The fix is written and held on the agent's branch. Open it to review the diff and land it.",
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
const LANDED: FixStance = {
|
|
69
|
+
kind: "landed",
|
|
70
|
+
ongoing: false,
|
|
71
|
+
retry: false,
|
|
72
|
+
label: "Fix landed",
|
|
73
|
+
hint: "The fix is in your workspace. Running the check again is what proves it.",
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
const WAITING: FixStance = {
|
|
77
|
+
kind: "waiting",
|
|
78
|
+
ongoing: true,
|
|
79
|
+
retry: false,
|
|
80
|
+
label: "Waiting",
|
|
81
|
+
hint: "The fix agent's allowance is spent. Nothing is owed: the turn goes again when the provider's window reopens.",
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
// True only for a clean finish (`ready`, or `idle` with a diff); a crashed turn with files also has a diff, but that
|
|
85
|
+
// belongs in the ending's hint, not here.
|
|
86
|
+
const holdingWork = (agent: AgentSummary): boolean =>
|
|
87
|
+
agent.status === "ready" || (agent.status === "idle" && agent.diff !== undefined && agent.diff.files > 0);
|
|
88
|
+
|
|
89
|
+
// Each ending's label states the reader's next move, not just what happened; `idle` counts too, since finishing with no
|
|
90
|
+
// changed files fixed nothing.
|
|
91
|
+
const ENDINGS: Partial<Record<AgentSummary["status"], { readonly label: string; readonly why: string }>> = {
|
|
92
|
+
error: { label: "Agent failed", why: "The fix agent's turn failed" },
|
|
93
|
+
interrupted: { label: "Interrupted", why: "The fix agent's turn was cut off when the sandbox went away" },
|
|
94
|
+
stopped: { label: "Stopped", why: "The fix agent was stopped before it finished" },
|
|
95
|
+
idle: { label: "Nothing changed", why: "The fix agent finished without changing any files" },
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
const ended = (agent: AgentSummary): FixStance => {
|
|
99
|
+
const ending = ENDINGS[agent.status] ?? { label: "Agent stopped", why: "The fix agent's turn ended" };
|
|
100
|
+
// File count left behind by a turn that died mid-edit; not a fix, but worth surfacing.
|
|
101
|
+
const files = agent.diff?.files ?? 0;
|
|
102
|
+
const partial = files === 0 ? "" : ` It left ${files} changed file${files === 1 ? "" : "s"} on its branch.`;
|
|
103
|
+
return {
|
|
104
|
+
kind: "ended",
|
|
105
|
+
ongoing: false,
|
|
106
|
+
retry: true,
|
|
107
|
+
label: ending.label,
|
|
108
|
+
// Includes the provider's own failure sentence when present; often the only record of an unwatched run.
|
|
109
|
+
hint: `${ending.why}${agent.failure === undefined ? "" : `: ${agent.failure}`}.${partial} Continuing carries on in the same conversation; starting over opens a fresh one.`,
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
// List order is priority, so a new status is inserted at its rank rather than appended as a trailing if. A spent
|
|
114
|
+
// allowance is checked first, ahead of `error`, since it is not a failure and must not offer a retry that spends the
|
|
115
|
+
// same allowance again.
|
|
116
|
+
const RULES: readonly ((agent: AgentSummary) => FixStance | undefined)[] = [
|
|
117
|
+
(agent) => (agent.status === "error" && agent.failureCode === "rate_limit" ? WAITING : undefined),
|
|
118
|
+
(agent) => {
|
|
119
|
+
const parked = ATTENTION.find((entry) => agent.attention[entry.flag]);
|
|
120
|
+
return parked === undefined ? undefined : needsYou(parked.label, `The fix agent is waiting on you: ${parked.why}.`);
|
|
121
|
+
},
|
|
122
|
+
// Bare `awaiting`/`conflict` with no flag raised: parked, with nothing more specific to say.
|
|
123
|
+
(agent) =>
|
|
124
|
+
agent.status === "awaiting" || agent.status === "conflict"
|
|
125
|
+
? needsYou("Needs you", "The fix agent has stopped and is waiting on you.")
|
|
126
|
+
: undefined,
|
|
127
|
+
(agent) => (IN_FLIGHT.has(agent.status) ? WORKING : undefined),
|
|
128
|
+
(agent) => (holdingWork(agent) ? READY : undefined),
|
|
129
|
+
(agent) => (agent.status === "landed" ? LANDED : undefined),
|
|
130
|
+
];
|
|
131
|
+
|
|
132
|
+
export const fixStance = (agent: AgentSummary): FixStance => {
|
|
133
|
+
for (const rule of RULES) {
|
|
134
|
+
const stance = rule(agent);
|
|
135
|
+
if (stance !== undefined) {
|
|
136
|
+
return stance;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return ended(agent);
|
|
140
|
+
};
|