@pellux/goodvibes-sdk 0.35.0 → 0.37.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.
Files changed (112) hide show
  1. package/README.md +11 -1
  2. package/dist/contracts/artifacts/operator-contract.json +1 -1
  3. package/dist/events/agents.d.ts +14 -0
  4. package/dist/events/agents.d.ts.map +1 -1
  5. package/dist/events/index.d.ts +1 -1
  6. package/dist/events/index.d.ts.map +1 -1
  7. package/dist/events/turn.d.ts +17 -0
  8. package/dist/events/turn.d.ts.map +1 -1
  9. package/dist/events/workflows.d.ts +8 -0
  10. package/dist/events/workflows.d.ts.map +1 -1
  11. package/dist/platform/acp/connection.d.ts +16 -0
  12. package/dist/platform/acp/connection.d.ts.map +1 -1
  13. package/dist/platform/acp/connection.js +17 -0
  14. package/dist/platform/agents/orchestrator-runner.d.ts +1 -1
  15. package/dist/platform/agents/orchestrator-runner.d.ts.map +1 -1
  16. package/dist/platform/agents/orchestrator-runner.js +3 -21
  17. package/dist/platform/agents/orchestrator.d.ts.map +1 -1
  18. package/dist/platform/agents/orchestrator.js +3 -2
  19. package/dist/platform/agents/worktree.d.ts +11 -1
  20. package/dist/platform/agents/worktree.d.ts.map +1 -1
  21. package/dist/platform/agents/worktree.js +48 -14
  22. package/dist/platform/agents/wrfc-config.d.ts +23 -0
  23. package/dist/platform/agents/wrfc-config.d.ts.map +1 -1
  24. package/dist/platform/agents/wrfc-config.js +24 -0
  25. package/dist/platform/agents/wrfc-controller.d.ts +49 -1
  26. package/dist/platform/agents/wrfc-controller.d.ts.map +1 -1
  27. package/dist/platform/agents/wrfc-controller.js +261 -12
  28. package/dist/platform/agents/wrfc-types.d.ts +48 -1
  29. package/dist/platform/agents/wrfc-types.d.ts.map +1 -1
  30. package/dist/platform/config/schema-domain-core.d.ts +3 -0
  31. package/dist/platform/config/schema-domain-core.d.ts.map +1 -1
  32. package/dist/platform/config/schema-domain-core.js +24 -0
  33. package/dist/platform/config/schema-types.d.ts +6 -2
  34. package/dist/platform/config/schema-types.d.ts.map +1 -1
  35. package/dist/platform/core/compaction-sections.d.ts +8 -0
  36. package/dist/platform/core/compaction-sections.d.ts.map +1 -1
  37. package/dist/platform/core/compaction-sections.js +71 -2
  38. package/dist/platform/core/context-compaction.d.ts +13 -0
  39. package/dist/platform/core/context-compaction.d.ts.map +1 -1
  40. package/dist/platform/core/context-compaction.js +24 -2
  41. package/dist/platform/core/conversation.d.ts.map +1 -1
  42. package/dist/platform/core/conversation.js +8 -3
  43. package/dist/platform/core/orchestrator-context-runtime.d.ts.map +1 -1
  44. package/dist/platform/core/orchestrator-context-runtime.js +1 -2
  45. package/dist/platform/core/orchestrator-tool-runtime.d.ts.map +1 -1
  46. package/dist/platform/core/orchestrator-tool-runtime.js +30 -2
  47. package/dist/platform/core/orchestrator-turn-loop.d.ts.map +1 -1
  48. package/dist/platform/core/orchestrator-turn-loop.js +18 -1
  49. package/dist/platform/permissions/manager.d.ts.map +1 -1
  50. package/dist/platform/permissions/manager.js +3 -2
  51. package/dist/platform/permissions/prompt.d.ts +8 -1
  52. package/dist/platform/permissions/prompt.d.ts.map +1 -1
  53. package/dist/platform/permissions/types.d.ts +6 -0
  54. package/dist/platform/permissions/types.d.ts.map +1 -1
  55. package/dist/platform/providers/anthropic-compat.js +2 -2
  56. package/dist/platform/providers/anthropic-sdk-provider.js +1 -1
  57. package/dist/platform/providers/anthropic.js +2 -2
  58. package/dist/platform/providers/gemini.js +2 -2
  59. package/dist/platform/providers/interface.d.ts +9 -1
  60. package/dist/platform/providers/interface.d.ts.map +1 -1
  61. package/dist/platform/providers/llama-cpp.js +1 -1
  62. package/dist/platform/providers/lm-studio.js +1 -1
  63. package/dist/platform/providers/ollama.js +1 -1
  64. package/dist/platform/providers/openai-codex.js +1 -1
  65. package/dist/platform/providers/openai-compat.d.ts.map +1 -1
  66. package/dist/platform/providers/openai-compat.js +2 -2
  67. package/dist/platform/providers/openai.js +2 -2
  68. package/dist/platform/runtime/emitters/agents.d.ts +2 -0
  69. package/dist/platform/runtime/emitters/agents.d.ts.map +1 -1
  70. package/dist/platform/runtime/emitters/turn.d.ts +9 -0
  71. package/dist/platform/runtime/emitters/turn.d.ts.map +1 -1
  72. package/dist/platform/runtime/emitters/turn.js +4 -0
  73. package/dist/platform/runtime/emitters/workflows.d.ts +1 -0
  74. package/dist/platform/runtime/emitters/workflows.d.ts.map +1 -1
  75. package/dist/platform/runtime/services.d.ts +2 -0
  76. package/dist/platform/runtime/services.d.ts.map +1 -1
  77. package/dist/platform/runtime/services.js +15 -0
  78. package/dist/platform/runtime/store/domains/agents.d.ts +7 -0
  79. package/dist/platform/runtime/store/domains/agents.d.ts.map +1 -1
  80. package/dist/platform/runtime/store/helpers/reducers/lifecycle.d.ts.map +1 -1
  81. package/dist/platform/runtime/store/helpers/reducers/lifecycle.js +3 -0
  82. package/dist/platform/runtime/tools/phases/execute.d.ts.map +1 -1
  83. package/dist/platform/runtime/tools/phases/execute.js +11 -1
  84. package/dist/platform/tools/exec/runtime.d.ts.map +1 -1
  85. package/dist/platform/tools/exec/runtime.js +9 -0
  86. package/dist/platform/tools/index.d.ts +1 -0
  87. package/dist/platform/tools/index.d.ts.map +1 -1
  88. package/dist/platform/tools/shared/overflow.d.ts.map +1 -1
  89. package/dist/platform/tools/shared/overflow.js +21 -2
  90. package/dist/platform/types/errors.d.ts +26 -0
  91. package/dist/platform/types/errors.d.ts.map +1 -1
  92. package/dist/platform/types/errors.js +63 -1
  93. package/dist/platform/utils/retry.d.ts +4 -2
  94. package/dist/platform/utils/retry.d.ts.map +1 -1
  95. package/dist/platform/utils/retry.js +4 -2
  96. package/dist/platform/version.js +1 -1
  97. package/dist/platform/workspace/checkpoint/index.d.ts +9 -0
  98. package/dist/platform/workspace/checkpoint/index.d.ts.map +1 -0
  99. package/dist/platform/workspace/checkpoint/index.js +7 -0
  100. package/dist/platform/workspace/checkpoint/manager.d.ts +163 -0
  101. package/dist/platform/workspace/checkpoint/manager.d.ts.map +1 -0
  102. package/dist/platform/workspace/checkpoint/manager.js +473 -0
  103. package/dist/platform/workspace/checkpoint/side-git.d.ts +117 -0
  104. package/dist/platform/workspace/checkpoint/side-git.d.ts.map +1 -0
  105. package/dist/platform/workspace/checkpoint/side-git.js +254 -0
  106. package/dist/platform/workspace/checkpoint/types.d.ts +96 -0
  107. package/dist/platform/workspace/checkpoint/types.d.ts.map +1 -0
  108. package/dist/platform/workspace/checkpoint/types.js +20 -0
  109. package/dist/platform/workspace/index.d.ts +1 -0
  110. package/dist/platform/workspace/index.d.ts.map +1 -1
  111. package/dist/platform/workspace/index.js +1 -0
  112. 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
- Entry points:
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`
@@ -3,7 +3,7 @@
3
3
  "product": {
4
4
  "id": "goodvibes",
5
5
  "surface": "operator",
6
- "version": "0.35.0"
6
+ "version": "0.37.0"
7
7
  },
8
8
  "auth": {
9
9
  "modes": [
@@ -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":"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"}
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/events/agents.ts"],"names":[],"mappings":"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"}
@@ -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":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"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"}
@@ -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;IAAE,IAAI,EAAE,uBAAuB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClE;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"}
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;AAkBxD;;;;;;;;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;IAwHpC,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"}
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":"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"}
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 (isNetworkError(chatErr) && networkAttempt < NETWORK_RETRY_DELAYS_MS.length) {
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
- commitWorkingTree(message: string): Promise<string | null>;
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;IAqCxC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAmC1D,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"}
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
- async commitWorkingTree(message) {
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 status = await git.raw([
70
- 'status',
71
- '--porcelain',
72
- '--untracked-files=all',
73
- '--',
74
- '.',
75
- ':(exclude).goodvibes',
76
- ':(exclude).goodvibes/**',
77
- ]);
78
- if (status.trim().length === 0) {
79
- logger.debug('AgentWorktree.commitWorkingTree: no direct working tree changes');
80
- return null;
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;CACjC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,aAAa,CAAC,CAAC;AAE1E,wBAAgB,cAAc,CAAC,aAAa,EAAE,gBAAgB,GAAG,cAAc,CAwB9E;AAED,wBAAgB,8BAA8B,CAAC,aAAa,EAAE,gBAAgB,GAAG,MAAM,CAEtF;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,mBAAmB,CAAC,aAAa,EAAE,gBAAgB,GAAG,cAAc,CAAC,OAAO,CAAC,CAE5F"}
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
  }