@pellux/goodvibes-sdk 0.35.0 → 0.36.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 +11 -1
- package/dist/contracts/artifacts/operator-contract.json +1 -1
- package/dist/events/agents.d.ts +14 -0
- package/dist/events/agents.d.ts.map +1 -1
- package/dist/events/index.d.ts +1 -1
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/turn.d.ts +17 -0
- package/dist/events/turn.d.ts.map +1 -1
- package/dist/events/workflows.d.ts +8 -0
- package/dist/events/workflows.d.ts.map +1 -1
- package/dist/platform/acp/connection.d.ts +16 -0
- package/dist/platform/acp/connection.d.ts.map +1 -1
- package/dist/platform/acp/connection.js +17 -0
- package/dist/platform/agents/orchestrator-runner.d.ts +1 -1
- package/dist/platform/agents/orchestrator-runner.d.ts.map +1 -1
- package/dist/platform/agents/orchestrator-runner.js +3 -21
- package/dist/platform/agents/orchestrator.d.ts.map +1 -1
- package/dist/platform/agents/orchestrator.js +3 -2
- package/dist/platform/agents/worktree.d.ts +11 -1
- package/dist/platform/agents/worktree.d.ts.map +1 -1
- package/dist/platform/agents/worktree.js +48 -14
- package/dist/platform/agents/wrfc-config.d.ts +23 -0
- package/dist/platform/agents/wrfc-config.d.ts.map +1 -1
- package/dist/platform/agents/wrfc-config.js +24 -0
- package/dist/platform/agents/wrfc-controller.d.ts +49 -1
- package/dist/platform/agents/wrfc-controller.d.ts.map +1 -1
- package/dist/platform/agents/wrfc-controller.js +261 -12
- package/dist/platform/agents/wrfc-types.d.ts +48 -1
- package/dist/platform/agents/wrfc-types.d.ts.map +1 -1
- package/dist/platform/config/schema-domain-core.d.ts +3 -0
- package/dist/platform/config/schema-domain-core.d.ts.map +1 -1
- package/dist/platform/config/schema-domain-core.js +24 -0
- package/dist/platform/config/schema-types.d.ts +6 -2
- package/dist/platform/config/schema-types.d.ts.map +1 -1
- package/dist/platform/core/conversation.d.ts.map +1 -1
- package/dist/platform/core/conversation.js +8 -3
- package/dist/platform/core/orchestrator-turn-loop.d.ts.map +1 -1
- package/dist/platform/core/orchestrator-turn-loop.js +18 -1
- package/dist/platform/providers/anthropic-compat.js +2 -2
- package/dist/platform/providers/anthropic-sdk-provider.js +1 -1
- package/dist/platform/providers/anthropic.js +2 -2
- package/dist/platform/providers/gemini.js +2 -2
- package/dist/platform/providers/interface.d.ts +9 -1
- package/dist/platform/providers/interface.d.ts.map +1 -1
- package/dist/platform/providers/llama-cpp.js +1 -1
- package/dist/platform/providers/lm-studio.js +1 -1
- package/dist/platform/providers/ollama.js +1 -1
- package/dist/platform/providers/openai-codex.js +1 -1
- package/dist/platform/providers/openai-compat.d.ts.map +1 -1
- package/dist/platform/providers/openai-compat.js +2 -2
- package/dist/platform/providers/openai.js +2 -2
- package/dist/platform/runtime/emitters/agents.d.ts +2 -0
- package/dist/platform/runtime/emitters/agents.d.ts.map +1 -1
- package/dist/platform/runtime/emitters/turn.d.ts +9 -0
- package/dist/platform/runtime/emitters/turn.d.ts.map +1 -1
- package/dist/platform/runtime/emitters/turn.js +4 -0
- package/dist/platform/runtime/emitters/workflows.d.ts +1 -0
- package/dist/platform/runtime/emitters/workflows.d.ts.map +1 -1
- package/dist/platform/runtime/store/domains/agents.d.ts +7 -0
- package/dist/platform/runtime/store/domains/agents.d.ts.map +1 -1
- package/dist/platform/runtime/store/helpers/reducers/lifecycle.d.ts.map +1 -1
- package/dist/platform/runtime/store/helpers/reducers/lifecycle.js +3 -0
- package/dist/platform/runtime/tools/phases/execute.d.ts.map +1 -1
- package/dist/platform/runtime/tools/phases/execute.js +11 -1
- package/dist/platform/tools/exec/runtime.d.ts.map +1 -1
- package/dist/platform/tools/exec/runtime.js +9 -0
- package/dist/platform/tools/shared/overflow.d.ts.map +1 -1
- package/dist/platform/tools/shared/overflow.js +21 -2
- package/dist/platform/types/errors.d.ts +26 -0
- package/dist/platform/types/errors.d.ts.map +1 -1
- package/dist/platform/types/errors.js +63 -1
- package/dist/platform/utils/retry.d.ts +4 -2
- package/dist/platform/utils/retry.d.ts.map +1 -1
- package/dist/platform/utils/retry.js +4 -2
- package/dist/platform/version.js +1 -1
- package/package.json +9 -9
package/README.md
CHANGED
|
@@ -25,13 +25,23 @@ const sdk = createGoodVibesSdk({
|
|
|
25
25
|
console.log(await sdk.operator.control.snapshot());
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
Primary entry points (see [public-surface.md](../../docs/public-surface.md) and the package `exports` map for the complete list):
|
|
29
29
|
- `@pellux/goodvibes-sdk`
|
|
30
30
|
- `@pellux/goodvibes-sdk/auth`
|
|
31
|
+
- `@pellux/goodvibes-sdk/client-auth`
|
|
31
32
|
- `@pellux/goodvibes-sdk/operator`
|
|
32
33
|
- `@pellux/goodvibes-sdk/peer`
|
|
33
34
|
- `@pellux/goodvibes-sdk/contracts`
|
|
35
|
+
- `@pellux/goodvibes-sdk/contracts/node`
|
|
36
|
+
- `@pellux/goodvibes-sdk/errors`
|
|
37
|
+
- `@pellux/goodvibes-sdk/events`
|
|
38
|
+
- `@pellux/goodvibes-sdk/observer`
|
|
39
|
+
- `@pellux/goodvibes-sdk/transport-core`
|
|
40
|
+
- `@pellux/goodvibes-sdk/transport-http`
|
|
41
|
+
- `@pellux/goodvibes-sdk/transport-realtime`
|
|
42
|
+
- `@pellux/goodvibes-sdk/transport-direct`
|
|
34
43
|
- `@pellux/goodvibes-sdk/browser`
|
|
44
|
+
- `@pellux/goodvibes-sdk/browser/agent`
|
|
35
45
|
- `@pellux/goodvibes-sdk/browser/knowledge`
|
|
36
46
|
- `@pellux/goodvibes-sdk/browser/homeassistant`
|
|
37
47
|
- `@pellux/goodvibes-sdk/web`
|
package/dist/events/agents.d.ts
CHANGED
|
@@ -75,6 +75,8 @@ export type AgentEvent =
|
|
|
75
75
|
durationMs: number;
|
|
76
76
|
output?: string;
|
|
77
77
|
toolCallsMade?: number;
|
|
78
|
+
/** Accumulated token usage for the agent's run, when the execution path tracked it. */
|
|
79
|
+
usage?: AgentUsage | undefined;
|
|
78
80
|
}
|
|
79
81
|
/** Agent failed with an error. */
|
|
80
82
|
| {
|
|
@@ -93,4 +95,16 @@ export type AgentEvent =
|
|
|
93
95
|
};
|
|
94
96
|
/** All agent event type literals as a union. */
|
|
95
97
|
export type AgentEventType = AgentEvent['type'];
|
|
98
|
+
/**
|
|
99
|
+
* Token usage for a single agent's run. Mirrors the shape of
|
|
100
|
+
* `TokenUsage` in `platform/core/conversation.ts` — kept as a structural
|
|
101
|
+
* duplicate here (rather than an import) so this leaf event module stays
|
|
102
|
+
* free of dependencies on `platform/`.
|
|
103
|
+
*/
|
|
104
|
+
export type AgentUsage = {
|
|
105
|
+
inputTokens: number;
|
|
106
|
+
outputTokens: number;
|
|
107
|
+
cacheReadTokens?: number | undefined;
|
|
108
|
+
cacheWriteTokens?: number | undefined;
|
|
109
|
+
};
|
|
96
110
|
//# sourceMappingURL=agents.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/events/agents.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAErF;;;;GAIG;AAEH,MAAM,MAAM,UAAU;AACpB,iDAAiD;AAC/C;IACE,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC;IAChH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AACH,gDAAgD;GAC9C;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC;IAChH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AACH,+CAA+C;GAC7C;IACE,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC;IAChH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AACH,wCAAwC;GACtC;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE;AACxG,qDAAqD;GACnD;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;AACtE,oDAAoD;GAClD;IAAE,IAAI,EAAE,qBAAqB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACjG,iDAAiD;GAC/C;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;AAChE,oCAAoC;GAClC;
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/events/agents.ts"],"names":[],"mappings":"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"}
|
package/dist/events/index.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export type { TurnEvent, TurnEventType, TurnInputOrigin, TurnStopReason, Partial
|
|
|
12
12
|
export type { ProviderEvent, ProviderEventType } from './providers.js';
|
|
13
13
|
export type { ToolEvent, ToolEventType, ToolResultSummary } from './tools.js';
|
|
14
14
|
export type { TaskEvent, TaskEventType } from './tasks.js';
|
|
15
|
-
export type { AgentEvent, AgentEventType } from './agents.js';
|
|
15
|
+
export type { AgentEvent, AgentEventType, AgentUsage } from './agents.js';
|
|
16
16
|
export type { WorkflowEvent, WorkflowEventType, Constraint, WrfcState } from './workflows.js';
|
|
17
17
|
export type { OrchestrationEvent, OrchestrationEventType, OrchestrationTaskContract } from './orchestration.js';
|
|
18
18
|
export type { CommunicationEvent, CommunicationEventType, CommunicationKind, CommunicationScope } from './communication.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACnE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5G,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACvE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC9E,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3D,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"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"}
|
package/dist/events/turn.d.ts
CHANGED
|
@@ -66,6 +66,23 @@ export type TurnEvent =
|
|
|
66
66
|
scope?: 'provider';
|
|
67
67
|
terminal?: false;
|
|
68
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* A provider chat call hit a retryable transport error mid-stream and is
|
|
71
|
+
* about to retry the same request against the same provider after a delay.
|
|
72
|
+
*
|
|
73
|
+
* This is distinct from provider failover (a new provider chosen after a
|
|
74
|
+
* terminal TURN_ERROR): STREAM_RETRY fires from inside a single in-flight
|
|
75
|
+
* `provider.chat()` call, before any TURN_ERROR is ever raised.
|
|
76
|
+
*/
|
|
77
|
+
| {
|
|
78
|
+
type: 'STREAM_RETRY';
|
|
79
|
+
turnId: string;
|
|
80
|
+
provider: string;
|
|
81
|
+
attempt: number;
|
|
82
|
+
maxAttempts: number;
|
|
83
|
+
delayMs: number;
|
|
84
|
+
reason: string;
|
|
85
|
+
}
|
|
69
86
|
/** An LLM request is about to be dispatched to the provider. */
|
|
70
87
|
| {
|
|
71
88
|
type: 'LLM_REQUEST_STARTED';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn.d.ts","sourceRoot":"","sources":["../../src/events/turn.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"turn.d.ts","sourceRoot":"","sources":["../../src/events/turn.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,6 +46,14 @@ export type WorkflowEvent = {
|
|
|
46
46
|
type: 'WORKFLOW_CHAIN_FAILED';
|
|
47
47
|
chainId: string;
|
|
48
48
|
reason: string;
|
|
49
|
+
/**
|
|
50
|
+
* Why the chain failed. 'transport' means the failure was classified as a
|
|
51
|
+
* transient network/transport error (and had already exhausted its automatic
|
|
52
|
+
* retry budget — see WrfcChain.transportRetryCount); absent/'other' covers
|
|
53
|
+
* ordinary review/gate rejections and anything else. Optional so existing
|
|
54
|
+
* consumers that don't inspect it keep working unchanged.
|
|
55
|
+
*/
|
|
56
|
+
failureKind?: 'transport' | 'other' | undefined;
|
|
49
57
|
} | {
|
|
50
58
|
type: 'WORKFLOW_AUTO_COMMITTED';
|
|
51
59
|
chainId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../src/events/workflows.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;CAC3B;AAED,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,aAAa,GACb,aAAa,GACb,WAAW,GACX,QAAQ,GACR,gBAAgB,GAChB,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,YAAY,CAAC;AAEjB,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,EAAE,EAAE,SAAS,CAAA;CAAE,GACnF;IACE,IAAI,EAAE,2BAA2B,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,uFAAuF;IACvF,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,mFAAmF;IACnF,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,0FAA0F;IAC1F,wBAAwB,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACjD,GACD;IACE,IAAI,EAAE,wBAAwB,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,+GAA+G;IAC/G,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAC5C,GACD;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAChF;IAAE,IAAI,EAAE,uBAAuB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAClD;
|
|
1
|
+
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../src/events/workflows.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;CAC3B;AAED,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,aAAa,GACb,aAAa,GACb,WAAW,GACX,QAAQ,GACR,gBAAgB,GAChB,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,YAAY,CAAC;AAEjB,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,EAAE,EAAE,SAAS,CAAA;CAAE,GACnF;IACE,IAAI,EAAE,2BAA2B,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,uFAAuF;IACvF,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,mFAAmF;IACnF,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,0FAA0F;IAC1F,wBAAwB,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACjD,GACD;IACE,IAAI,EAAE,wBAAwB,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,+GAA+G;IAC/G,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAC5C,GACD;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAChF;IAAE,IAAI,EAAE,uBAAuB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAClD;IACE,IAAI,EAAE,uBAAuB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;CACjD,GACD;IAAE,IAAI,EAAE,yBAAyB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACrF;IAAE,IAAI,EAAE,0BAA0B,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrE;IAAE,IAAI,EAAE,iCAAiC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,UAAU,EAAE,CAAA;CAAE,GACvF;IAAE,IAAI,EAAE,2BAA2B,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3E,MAAM,MAAM,iBAAiB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -9,6 +9,21 @@ import type { SubagentInfo, SubagentResult, SubagentTask } from './protocol.js';
|
|
|
9
9
|
import type { PermissionRequestHandler } from '../permissions/prompt.js';
|
|
10
10
|
import type { RuntimeEventBus } from '../runtime/events/index.js';
|
|
11
11
|
import type { HookDispatcher } from '../hooks/index.js';
|
|
12
|
+
import type { AgentUsage } from '../../events/agents.js';
|
|
13
|
+
/** Shape of the (experimental/unstable) ACP `PromptResponse.usage` field. */
|
|
14
|
+
interface AcpPromptUsage {
|
|
15
|
+
inputTokens: number;
|
|
16
|
+
outputTokens: number;
|
|
17
|
+
cachedReadTokens?: number | null;
|
|
18
|
+
cachedWriteTokens?: number | null;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Map the ACP prompt response's usage field (`cachedReadTokens`/`cachedWriteTokens`,
|
|
22
|
+
* ACP protocol naming) onto the SDK's `AgentUsage` shape (`cacheReadTokens`/
|
|
23
|
+
* `cacheWriteTokens`). Exported for unit testing without spawning a real
|
|
24
|
+
* ACP subprocess.
|
|
25
|
+
*/
|
|
26
|
+
export declare function mapAcpUsage(usage: AcpPromptUsage | null | undefined): AgentUsage | undefined;
|
|
12
27
|
/**
|
|
13
28
|
* AcpConnection manages the lifecycle of a single subagent child process.
|
|
14
29
|
*
|
|
@@ -56,4 +71,5 @@ export declare class AcpConnection {
|
|
|
56
71
|
private buildClientImpl;
|
|
57
72
|
private buildPromptText;
|
|
58
73
|
}
|
|
74
|
+
export {};
|
|
59
75
|
//# sourceMappingURL=connection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/platform/acp/connection.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEhF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAKzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAalE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/platform/acp/connection.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEhF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAKzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAalE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAgBzD,6EAA6E;AAC7E,UAAU,cAAc;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAQ5F;AAED;;;;;;;;GAQG;AACH,qBAAa,aAAa;IAgBtB,OAAO,CAAC,IAAI;IAfd,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,IAAI,CAAqC;IACjD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,YAAY,CAA6C;IACjE,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,gBAAgB,CAAM;IAC9B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsC;gBAGnE,EAAE,EAAE,MAAM,EACF,IAAI,EAAE,YAAY,EAC1B,QAAQ,EAAE,MAAM,EAAE,EAClB,iBAAiB,GAAE,wBAA6E,EAChG,UAAU,GAAE,eAAe,GAAG,IAAW,EACzC,cAAc,GAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,IAAW;IAe5D,6BAA6B;IAC7B,OAAO,IAAI,YAAY;IAIvB;;;OAGG;IACG,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC;IAyHpC,mCAAmC;IAC7B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB7B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,yBAAyB;IAYjC,OAAO,CAAC,2BAA2B;IAUnC,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,yBAAyB;IAejC,OAAO,CAAC,4BAA4B;YAatB,iBAAiB;IAqB/B,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,eAAe;IAiEvB,OAAO,CAAC,eAAe;CAiBxB"}
|
|
@@ -17,6 +17,22 @@ function isMessageChunk(update) {
|
|
|
17
17
|
return (update.sessionUpdate === 'agent_message_chunk' &&
|
|
18
18
|
('content' in update));
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Map the ACP prompt response's usage field (`cachedReadTokens`/`cachedWriteTokens`,
|
|
22
|
+
* ACP protocol naming) onto the SDK's `AgentUsage` shape (`cacheReadTokens`/
|
|
23
|
+
* `cacheWriteTokens`). Exported for unit testing without spawning a real
|
|
24
|
+
* ACP subprocess.
|
|
25
|
+
*/
|
|
26
|
+
export function mapAcpUsage(usage) {
|
|
27
|
+
if (!usage)
|
|
28
|
+
return undefined;
|
|
29
|
+
return {
|
|
30
|
+
inputTokens: usage.inputTokens,
|
|
31
|
+
outputTokens: usage.outputTokens,
|
|
32
|
+
...(usage.cachedReadTokens != null ? { cacheReadTokens: usage.cachedReadTokens } : {}),
|
|
33
|
+
...(usage.cachedWriteTokens != null ? { cacheWriteTokens: usage.cachedWriteTokens } : {}),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
20
36
|
/**
|
|
21
37
|
* AcpConnection manages the lifecycle of a single subagent child process.
|
|
22
38
|
*
|
|
@@ -142,6 +158,7 @@ export class AcpConnection {
|
|
|
142
158
|
durationMs: result.duration,
|
|
143
159
|
output: result.output,
|
|
144
160
|
toolCallsMade: result.toolCallsMade,
|
|
161
|
+
usage: mapAcpUsage(promptResp.usage),
|
|
145
162
|
});
|
|
146
163
|
}
|
|
147
164
|
this.emitTransportDisconnected('ACP session completed', false);
|
|
@@ -23,7 +23,7 @@ export interface AgentOrchestratorRunContext {
|
|
|
23
23
|
readonly emitOrchestrationCancelled: (record: AgentRecord, reason: string) => void;
|
|
24
24
|
readonly emitAgentFailedEvent: (recordId: string, error: string, durationMs: number) => void;
|
|
25
25
|
readonly emitOrchestrationFailed: (record: AgentRecord, error: string) => void;
|
|
26
|
-
readonly emitAgentCompletedEvent: (recordId: string, durationMs: number, output: string, toolCallsMade: number) => void;
|
|
26
|
+
readonly emitAgentCompletedEvent: (recordId: string, durationMs: number, output: string, toolCallsMade: number, usage: AgentRecord['usage'] | undefined) => void;
|
|
27
27
|
readonly emitOrchestrationCompleted: (record: AgentRecord, output: string) => void;
|
|
28
28
|
readonly emitStreamDelta: (recordId: string, content: string, accumulated: string) => void;
|
|
29
29
|
readonly processManager?: ProcessManager | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator-runner.d.ts","sourceRoot":"","sources":["../../../src/platform/agents/orchestrator-runner.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAMtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAMnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,2BAA2B,CAAC;AAE1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGlE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAa9D,KAAK,cAAc,GAAG,OAAO,8BAA8B,EAAE,cAAc,CAAC;AAE5E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACvD,QAAQ,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,cAAc,CAAC;IAC7D,QAAQ,CAAC,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACzE,QAAQ,CAAC,yBAAyB,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACpF,QAAQ,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,QAAQ,CAAC,uBAAuB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7E,QAAQ,CAAC,0BAA0B,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACnF,QAAQ,CAAC,oBAAoB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7F,QAAQ,CAAC,uBAAuB,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/E,QAAQ,CAAC,uBAAuB,EAAE,
|
|
1
|
+
{"version":3,"file":"orchestrator-runner.d.ts","sourceRoot":"","sources":["../../../src/platform/agents/orchestrator-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ import { join } from 'node:path';
|
|
|
10
10
|
import { splitModelRegistryKey } from '../providers/registry-helpers.js';
|
|
11
11
|
import { logger } from '../utils/logger.js';
|
|
12
12
|
import { ConsecutiveErrorBreaker } from '../core/circuit-breaker.js';
|
|
13
|
-
import { isRateLimitOrQuotaError, isContextSizeExceededError } from '../types/errors.js';
|
|
13
|
+
import { isRateLimitOrQuotaError, isContextSizeExceededError, isNetworkTransportError } from '../types/errors.js';
|
|
14
14
|
import { AgentSession } from './session.js';
|
|
15
15
|
import { estimateTokens, estimateConversationTokens, compactSmallWindow, } from '../core/context-compaction.js';
|
|
16
16
|
import { summarizeToolArgs } from './orchestrator-utils.js';
|
|
@@ -57,24 +57,6 @@ export function resolveContextWindowModelDefinition(providerRegistry, activeRout
|
|
|
57
57
|
(model.id === activeRoute.modelId ||
|
|
58
58
|
model.id === activeRoute.requestedModelId)) ?? providerRegistry.getCurrentModel();
|
|
59
59
|
}
|
|
60
|
-
function isNetworkError(err) {
|
|
61
|
-
if (!(err instanceof Error))
|
|
62
|
-
return false;
|
|
63
|
-
const msg = err.message.toLowerCase();
|
|
64
|
-
return (msg.includes('fetch failed') ||
|
|
65
|
-
msg.includes('econnrefused') ||
|
|
66
|
-
msg.includes('enotfound') ||
|
|
67
|
-
msg.includes('network error') ||
|
|
68
|
-
msg.includes('network timeout') ||
|
|
69
|
-
msg.includes('networkerror') ||
|
|
70
|
-
msg.includes('econnreset') ||
|
|
71
|
-
msg.includes('etimedout') ||
|
|
72
|
-
msg.includes('socket hang up') ||
|
|
73
|
-
msg.includes('dns') ||
|
|
74
|
-
msg.includes('connection lost') ||
|
|
75
|
-
msg.includes('epipe') ||
|
|
76
|
-
msg.includes('ehostunreach'));
|
|
77
|
-
}
|
|
78
60
|
function applyContextWindowAwareness(context, record, modelId, modelWindow, conversation, systemPrompt, toolTokens, turn) {
|
|
79
61
|
if (!(context.featureFlagManager?.isEnabled('agent-context-window-awareness') ?? true)) {
|
|
80
62
|
return systemPrompt;
|
|
@@ -196,7 +178,7 @@ async function finalizeAgentRun(context, record, session, preAgentProcessIds) {
|
|
|
196
178
|
record.completedAt = Date.now();
|
|
197
179
|
cleanupLeakedProcesses(context.processManager, preAgentProcessIds);
|
|
198
180
|
if (context.runtimeBus && record.status !== 'failed' && statusAfterLoop !== 'cancelled') {
|
|
199
|
-
context.emitAgentCompletedEvent(record.id, (record.completedAt ?? Date.now()) - record.startedAt, record.fullOutput ?? '', record.toolCallCount);
|
|
181
|
+
context.emitAgentCompletedEvent(record.id, (record.completedAt ?? Date.now()) - record.startedAt, record.fullOutput ?? '', record.toolCallCount, record.usage);
|
|
200
182
|
context.emitOrchestrationCompleted(record, record.fullOutput ?? '');
|
|
201
183
|
}
|
|
202
184
|
if (record.status === 'failed') {
|
|
@@ -437,7 +419,7 @@ export async function runAgentTask(context, record) {
|
|
|
437
419
|
context.emitAgentProgress(record.id, record.progress);
|
|
438
420
|
context.emitOrchestrationProgress(record, record.progress);
|
|
439
421
|
}
|
|
440
|
-
else if (
|
|
422
|
+
else if (isNetworkTransportError(chatErr) && networkAttempt < NETWORK_RETRY_DELAYS_MS.length) {
|
|
441
423
|
const delayMs = NETWORK_RETRY_DELAYS_MS[networkAttempt];
|
|
442
424
|
const delaySec = Math.round(delayMs / 1000);
|
|
443
425
|
logger.warn(`Agent ${record.id}: network error on turn ${turn}, retrying in ${delaySec}s (attempt ${networkAttempt + 1}/${NETWORK_RETRY_DELAYS_MS.length})`, { error: chatErr instanceof Error ? chatErr.message : String(chatErr) });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../src/platform/agents/orchestrator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../src/platform/agents/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -103,7 +103,7 @@ export class AgentOrchestrator {
|
|
|
103
103
|
error,
|
|
104
104
|
});
|
|
105
105
|
}
|
|
106
|
-
emitAgentCompletedEvent(recordId, durationMs, output, toolCallsMade) {
|
|
106
|
+
emitAgentCompletedEvent(recordId, durationMs, output, toolCallsMade, usage) {
|
|
107
107
|
if (!this.runtimeBus)
|
|
108
108
|
return;
|
|
109
109
|
emitAgentCompleted(this.runtimeBus, this.emitterContext(recordId), {
|
|
@@ -111,6 +111,7 @@ export class AgentOrchestrator {
|
|
|
111
111
|
durationMs,
|
|
112
112
|
output,
|
|
113
113
|
toolCallsMade,
|
|
114
|
+
usage,
|
|
114
115
|
});
|
|
115
116
|
}
|
|
116
117
|
emitOrchestrationCompleted(record, output) {
|
|
@@ -340,7 +341,7 @@ export class AgentOrchestrator {
|
|
|
340
341
|
emitOrchestrationCancelled: (record, reason) => this.emitOrchestrationCancelled(record, reason),
|
|
341
342
|
emitAgentFailedEvent: (recordId, error, durationMs) => this.emitAgentFailedEvent(recordId, error, durationMs),
|
|
342
343
|
emitOrchestrationFailed: (record, error) => this.emitOrchestrationFailed(record, error),
|
|
343
|
-
emitAgentCompletedEvent: (recordId, durationMs, output, toolCallsMade) => this.emitAgentCompletedEvent(recordId, durationMs, output, toolCallsMade),
|
|
344
|
+
emitAgentCompletedEvent: (recordId, durationMs, output, toolCallsMade, usage) => this.emitAgentCompletedEvent(recordId, durationMs, output, toolCallsMade, usage),
|
|
344
345
|
emitOrchestrationCompleted: (record, output) => this.emitOrchestrationCompleted(record, output),
|
|
345
346
|
emitStreamDelta: (recordId, content, accumulated) => this.emitStreamDelta(recordId, content, accumulated),
|
|
346
347
|
processManager: this.toolDeps?.processManager,
|
|
@@ -22,7 +22,17 @@ export declare class AgentWorktree {
|
|
|
22
22
|
* Returns true if a merge was performed, false if no changes were found.
|
|
23
23
|
*/
|
|
24
24
|
merge(agentId: string): Promise<boolean>;
|
|
25
|
-
|
|
25
|
+
/**
|
|
26
|
+
* @param paths When provided (non-empty), stage only these paths instead of sweeping the
|
|
27
|
+
* whole working tree. Paths are self-reported LLM claims, not ground truth, so they are
|
|
28
|
+
* filtered before staging: a path that exists on disk (created/modified) is kept outright;
|
|
29
|
+
* a path that does not exist is kept only if `git ls-files` shows it as tracked (a real
|
|
30
|
+
* deletion), otherwise it is a hallucinated path and dropped. This matters because
|
|
31
|
+
* `git add -A -- <path>` throws "pathspec did not match any files" for a path that is
|
|
32
|
+
* neither on disk nor known to git — a single bad claim must not fail the whole batch.
|
|
33
|
+
* Omit (or pass an empty array) to keep the legacy `git add --all` sweep for back-compat.
|
|
34
|
+
*/
|
|
35
|
+
commitWorkingTree(message: string, paths?: string[]): Promise<string | null>;
|
|
26
36
|
currentHead(): Promise<string | null>;
|
|
27
37
|
/**
|
|
28
38
|
* Remove the worktree without merging (cancel/error path).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../../src/platform/agents/worktree.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;GAUG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;gBAErB,GAAG,EAAE,MAAM;IAIvB;;;OAGG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAU9C;;;OAGG;IACG,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../../src/platform/agents/worktree.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;GAUG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;gBAErB,GAAG,EAAE,MAAM;IAIvB;;;OAGG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAU9C;;;OAGG;IACG,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqC9C;;;;;;;;;OASG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA2D5E,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAU3C;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB7C,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,WAAW;IAInB;;;OAGG;YACW,WAAW;YAeX,aAAa;IAU3B;;OAEG;YACW,eAAe;IAgB7B;;OAEG;YACW,aAAa;CAQ5B"}
|
|
@@ -64,22 +64,56 @@ export class AgentWorktree {
|
|
|
64
64
|
logger.debug('AgentWorktree.merge: complete', { agentId });
|
|
65
65
|
return true;
|
|
66
66
|
}
|
|
67
|
-
|
|
67
|
+
/**
|
|
68
|
+
* @param paths When provided (non-empty), stage only these paths instead of sweeping the
|
|
69
|
+
* whole working tree. Paths are self-reported LLM claims, not ground truth, so they are
|
|
70
|
+
* filtered before staging: a path that exists on disk (created/modified) is kept outright;
|
|
71
|
+
* a path that does not exist is kept only if `git ls-files` shows it as tracked (a real
|
|
72
|
+
* deletion), otherwise it is a hallucinated path and dropped. This matters because
|
|
73
|
+
* `git add -A -- <path>` throws "pathspec did not match any files" for a path that is
|
|
74
|
+
* neither on disk nor known to git — a single bad claim must not fail the whole batch.
|
|
75
|
+
* Omit (or pass an empty array) to keep the legacy `git add --all` sweep for back-compat.
|
|
76
|
+
*/
|
|
77
|
+
async commitWorkingTree(message, paths) {
|
|
68
78
|
const git = simpleGit({ baseDir: this.git.getCwd() });
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
const scoped = paths && paths.length > 0 ? paths : null;
|
|
80
|
+
if (scoped) {
|
|
81
|
+
const cwd = this.git.getCwd();
|
|
82
|
+
const onDisk = scoped.filter((p) => existsSync(join(cwd, p)));
|
|
83
|
+
const maybeDeleted = scoped.filter((p) => !onDisk.includes(p));
|
|
84
|
+
let trackedDeleted = [];
|
|
85
|
+
if (maybeDeleted.length > 0) {
|
|
86
|
+
const tracked = await git.raw(['ls-files', '--', ...maybeDeleted]);
|
|
87
|
+
const trackedSet = new Set(tracked.split('\n').map((line) => line.trim()).filter(Boolean));
|
|
88
|
+
trackedDeleted = maybeDeleted.filter((p) => trackedSet.has(p));
|
|
89
|
+
}
|
|
90
|
+
const existingPaths = [...onDisk, ...trackedDeleted];
|
|
91
|
+
if (existingPaths.length === 0) {
|
|
92
|
+
logger.debug('AgentWorktree.commitWorkingTree: no scoped paths exist on disk or in the index, nothing to stage', {
|
|
93
|
+
claimedPaths: scoped,
|
|
94
|
+
});
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
// -A (not plain add) scoped to just these pathspecs so confirmed deletions are staged
|
|
98
|
+
// too (plain `git add <path>` silently no-ops on a path that no longer exists on disk).
|
|
99
|
+
await git.raw(['add', '-A', '--', ...existingPaths]);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
const status = await git.raw([
|
|
103
|
+
'status',
|
|
104
|
+
'--porcelain',
|
|
105
|
+
'--untracked-files=all',
|
|
106
|
+
'--',
|
|
107
|
+
'.',
|
|
108
|
+
':(exclude).goodvibes',
|
|
109
|
+
':(exclude).goodvibes/**',
|
|
110
|
+
]);
|
|
111
|
+
if (status.trim().length === 0) {
|
|
112
|
+
logger.debug('AgentWorktree.commitWorkingTree: no direct working tree changes');
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
await git.raw(['add', '--all', '--', '.', ':(exclude).goodvibes', ':(exclude).goodvibes/**']);
|
|
81
116
|
}
|
|
82
|
-
await git.raw(['add', '--all', '--', '.', ':(exclude).goodvibes', ':(exclude).goodvibes/**']);
|
|
83
117
|
try {
|
|
84
118
|
const result = await this.git.commit(message, {
|
|
85
119
|
fallbackIdentity: { name: 'GoodVibes', email: 'goodvibes@local' },
|
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
import type { ConfigManager } from '../config/manager.js';
|
|
2
2
|
import type { AgentManager } from '../tools/agent/index.js';
|
|
3
3
|
export type AgentManagerLike = Pick<AgentManager, 'spawn' | 'getStatus' | 'list' | 'cancel' | 'listByCohort' | 'clear'>;
|
|
4
|
+
export type WrfcCommitScope = 'off' | 'scoped' | 'all';
|
|
4
5
|
export type WrfcConfigLike = {
|
|
5
6
|
scoreThreshold: number;
|
|
6
7
|
maxFixAttempts: number;
|
|
7
8
|
autoCommit: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Scope of files staged on WRFC auto-commit:
|
|
11
|
+
* - 'off': never commit on gate pass.
|
|
12
|
+
* - 'scoped' (default): stage only the paths the chain's own completion reports claim
|
|
13
|
+
* to have touched (see collectChainTouchedPaths in wrfc-controller.ts).
|
|
14
|
+
* - 'all': legacy full-tree `git add -A` sweep.
|
|
15
|
+
*/
|
|
16
|
+
commitScope: WrfcCommitScope;
|
|
8
17
|
gates: Array<{
|
|
9
18
|
name: string;
|
|
10
19
|
command: string;
|
|
@@ -15,12 +24,26 @@ export type WrfcConfigLike = {
|
|
|
15
24
|
* as hung/silent and failing the chain. Default: 0 (disabled).
|
|
16
25
|
*/
|
|
17
26
|
agentHeartbeatTimeoutMs: number;
|
|
27
|
+
/**
|
|
28
|
+
* How many times a chain will auto-retry a transport-classified child-agent
|
|
29
|
+
* failure (respawning the same role) before failing the chain outright.
|
|
30
|
+
* Separate from maxFixAttempts — a transport blip is not a fix cycle. Default: 1.
|
|
31
|
+
*/
|
|
32
|
+
transportRetryLimit: number;
|
|
33
|
+
/**
|
|
34
|
+
* How long (in ms) to wait before respawning after a transport-classified
|
|
35
|
+
* failure. Default: 5000.
|
|
36
|
+
*/
|
|
37
|
+
transportRetryDelayMs: number;
|
|
18
38
|
};
|
|
19
39
|
export type WrfcConfigReader = Pick<ConfigManager, 'get' | 'getCategory'>;
|
|
20
40
|
export declare function readWrfcConfig(configManager: WrfcConfigReader): WrfcConfigLike;
|
|
21
41
|
export declare function getWrfcAgentHeartbeatTimeoutMs(configManager: WrfcConfigReader): number;
|
|
42
|
+
export declare function getWrfcTransportRetryLimit(configManager: WrfcConfigReader): number;
|
|
43
|
+
export declare function getWrfcTransportRetryDelayMs(configManager: WrfcConfigReader): number;
|
|
22
44
|
export declare function getWrfcScoreThreshold(configManager: WrfcConfigReader): number;
|
|
23
45
|
export declare function getWrfcMaxFixAttempts(configManager: WrfcConfigReader): number;
|
|
24
46
|
export declare function getWrfcAutoCommit(configManager: WrfcConfigReader): boolean;
|
|
47
|
+
export declare function getWrfcCommitScope(configManager: WrfcConfigReader): WrfcCommitScope;
|
|
25
48
|
export declare function getEnabledWrfcGates(configManager: WrfcConfigReader): WrfcConfigLike['gates'];
|
|
26
49
|
//# sourceMappingURL=wrfc-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrfc-config.d.ts","sourceRoot":"","sources":["../../../src/platform/agents/wrfc-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,cAAc,GAAG,OAAO,CAAC,CAAC;AACxH,MAAM,MAAM,cAAc,GAAG;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAClE;;;OAGG;IACH,uBAAuB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"wrfc-config.d.ts","sourceRoot":"","sources":["../../../src/platform/agents/wrfc-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,cAAc,GAAG,OAAO,CAAC,CAAC;AACxH,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,KAAK,CAAC;AAQvD,MAAM,MAAM,cAAc,GAAG;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB;;;;;;OAMG;IACH,WAAW,EAAE,eAAe,CAAC;IAC7B,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAClE;;;OAGG;IACH,uBAAuB,EAAE,MAAM,CAAC;IAChC;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,aAAa,CAAC,CAAC;AAE1E,wBAAgB,cAAc,CAAC,aAAa,EAAE,gBAAgB,GAAG,cAAc,CAmC9E;AAED,wBAAgB,8BAA8B,CAAC,aAAa,EAAE,gBAAgB,GAAG,MAAM,CAEtF;AAED,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,gBAAgB,GAAG,MAAM,CAElF;AAED,wBAAgB,4BAA4B,CAAC,aAAa,EAAE,gBAAgB,GAAG,MAAM,CAEpF;AAED,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,gBAAgB,GAAG,MAAM,CAE7E;AAED,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,gBAAgB,GAAG,MAAM,CAE7E;AAED,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,gBAAgB,GAAG,OAAO,CAE1E;AAED,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,gBAAgB,GAAG,eAAe,CAEnF;AAED,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,gBAAgB,GAAG,cAAc,CAAC,OAAO,CAAC,CAE5F"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
const WRFC_COMMIT_SCOPES = ['off', 'scoped', 'all'];
|
|
2
|
+
function isWrfcCommitScope(value) {
|
|
3
|
+
return typeof value === 'string' && WRFC_COMMIT_SCOPES.includes(value);
|
|
4
|
+
}
|
|
1
5
|
export function readWrfcConfig(configManager) {
|
|
2
6
|
const wrfcConfig = configManager.getCategory('wrfc');
|
|
3
7
|
// Number.isFinite (not typeof === 'number') so a NaN/Infinity config value is
|
|
@@ -6,6 +10,8 @@ export function readWrfcConfig(configManager) {
|
|
|
6
10
|
const rawScore = configManager.get('wrfc.scoreThreshold');
|
|
7
11
|
const rawMax = configManager.get('wrfc.maxFixAttempts');
|
|
8
12
|
const rawHeartbeat = configManager.get('wrfc.agentHeartbeatTimeoutMs');
|
|
13
|
+
const rawTransportRetryLimit = configManager.get('wrfc.transportRetryLimit');
|
|
14
|
+
const rawTransportRetryDelayMs = configManager.get('wrfc.transportRetryDelayMs');
|
|
9
15
|
return {
|
|
10
16
|
scoreThreshold: Number.isFinite(rawScore)
|
|
11
17
|
? rawScore
|
|
@@ -16,15 +22,30 @@ export function readWrfcConfig(configManager) {
|
|
|
16
22
|
autoCommit: typeof configManager.get('wrfc.autoCommit') === 'boolean'
|
|
17
23
|
? configManager.get('wrfc.autoCommit')
|
|
18
24
|
: wrfcConfig?.autoCommit ?? false,
|
|
25
|
+
commitScope: isWrfcCommitScope(configManager.get('wrfc.commitScope'))
|
|
26
|
+
? configManager.get('wrfc.commitScope')
|
|
27
|
+
: isWrfcCommitScope(wrfcConfig?.commitScope) ? wrfcConfig.commitScope : 'scoped',
|
|
19
28
|
gates: Array.isArray(wrfcConfig?.gates) ? wrfcConfig.gates : [],
|
|
20
29
|
agentHeartbeatTimeoutMs: Number.isFinite(rawHeartbeat)
|
|
21
30
|
? rawHeartbeat
|
|
22
31
|
: Number.isFinite(wrfcConfig?.agentHeartbeatTimeoutMs) ? wrfcConfig?.agentHeartbeatTimeoutMs : 0,
|
|
32
|
+
transportRetryLimit: Number.isFinite(rawTransportRetryLimit)
|
|
33
|
+
? rawTransportRetryLimit
|
|
34
|
+
: Number.isFinite(wrfcConfig?.transportRetryLimit) ? wrfcConfig?.transportRetryLimit : 1,
|
|
35
|
+
transportRetryDelayMs: Number.isFinite(rawTransportRetryDelayMs)
|
|
36
|
+
? rawTransportRetryDelayMs
|
|
37
|
+
: Number.isFinite(wrfcConfig?.transportRetryDelayMs) ? wrfcConfig?.transportRetryDelayMs : 5_000,
|
|
23
38
|
};
|
|
24
39
|
}
|
|
25
40
|
export function getWrfcAgentHeartbeatTimeoutMs(configManager) {
|
|
26
41
|
return readWrfcConfig(configManager).agentHeartbeatTimeoutMs ?? 0;
|
|
27
42
|
}
|
|
43
|
+
export function getWrfcTransportRetryLimit(configManager) {
|
|
44
|
+
return readWrfcConfig(configManager).transportRetryLimit ?? 1;
|
|
45
|
+
}
|
|
46
|
+
export function getWrfcTransportRetryDelayMs(configManager) {
|
|
47
|
+
return readWrfcConfig(configManager).transportRetryDelayMs ?? 5_000;
|
|
48
|
+
}
|
|
28
49
|
export function getWrfcScoreThreshold(configManager) {
|
|
29
50
|
return readWrfcConfig(configManager).scoreThreshold ?? 9.9;
|
|
30
51
|
}
|
|
@@ -34,6 +55,9 @@ export function getWrfcMaxFixAttempts(configManager) {
|
|
|
34
55
|
export function getWrfcAutoCommit(configManager) {
|
|
35
56
|
return readWrfcConfig(configManager).autoCommit ?? false;
|
|
36
57
|
}
|
|
58
|
+
export function getWrfcCommitScope(configManager) {
|
|
59
|
+
return readWrfcConfig(configManager).commitScope ?? 'scoped';
|
|
60
|
+
}
|
|
37
61
|
export function getEnabledWrfcGates(configManager) {
|
|
38
62
|
return readWrfcConfig(configManager).gates.filter((gate) => gate.enabled);
|
|
39
63
|
}
|