@agent-relay/factory 0.1.60 → 0.1.63

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 (162) hide show
  1. package/README.md +140 -16
  2. package/dist/cli/exit-codes.d.ts +81 -0
  3. package/dist/cli/exit-codes.d.ts.map +1 -0
  4. package/dist/cli/exit-codes.js +122 -0
  5. package/dist/cli/exit-codes.js.map +1 -0
  6. package/dist/cli/fleet.d.ts +23 -2
  7. package/dist/cli/fleet.d.ts.map +1 -1
  8. package/dist/cli/fleet.js +201 -42
  9. package/dist/cli/fleet.js.map +1 -1
  10. package/dist/cli/index.d.ts +3 -0
  11. package/dist/cli/index.d.ts.map +1 -0
  12. package/dist/cli/index.js +2 -0
  13. package/dist/cli/index.js.map +1 -0
  14. package/dist/config/schema.d.ts +175 -52
  15. package/dist/config/schema.d.ts.map +1 -1
  16. package/dist/config/schema.js +24 -5
  17. package/dist/config/schema.js.map +1 -1
  18. package/dist/dispatch/templates.d.ts +7 -0
  19. package/dist/dispatch/templates.d.ts.map +1 -1
  20. package/dist/dispatch/templates.js +64 -12
  21. package/dist/dispatch/templates.js.map +1 -1
  22. package/dist/dispatch/work-unit-identity.d.ts +19 -0
  23. package/dist/dispatch/work-unit-identity.d.ts.map +1 -0
  24. package/dist/dispatch/work-unit-identity.js +40 -0
  25. package/dist/dispatch/work-unit-identity.js.map +1 -0
  26. package/dist/environments/stack-descriptor.d.ts +3 -3
  27. package/dist/fleet/control-plane-circuit.d.ts +57 -0
  28. package/dist/fleet/control-plane-circuit.d.ts.map +1 -0
  29. package/dist/fleet/control-plane-circuit.js +219 -0
  30. package/dist/fleet/control-plane-circuit.js.map +1 -0
  31. package/dist/fleet/internal-fleet-client.d.ts +2 -1
  32. package/dist/fleet/internal-fleet-client.d.ts.map +1 -1
  33. package/dist/fleet/internal-fleet-client.js +11 -7
  34. package/dist/fleet/internal-fleet-client.js.map +1 -1
  35. package/dist/fleet/relay-fleet-client.d.ts +3 -0
  36. package/dist/fleet/relay-fleet-client.d.ts.map +1 -1
  37. package/dist/fleet/relay-fleet-client.js +97 -18
  38. package/dist/fleet/relay-fleet-client.js.map +1 -1
  39. package/dist/github/writeback-paths.d.ts +7 -0
  40. package/dist/github/writeback-paths.d.ts.map +1 -0
  41. package/dist/github/writeback-paths.js +28 -0
  42. package/dist/github/writeback-paths.js.map +1 -0
  43. package/dist/hosted/orchestrator.d.ts.map +1 -1
  44. package/dist/hosted/orchestrator.js +2 -0
  45. package/dist/hosted/orchestrator.js.map +1 -1
  46. package/dist/index.d.ts +10 -6
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +6 -4
  49. package/dist/index.js.map +1 -1
  50. package/dist/intake/index.d.ts +2 -1
  51. package/dist/intake/index.d.ts.map +1 -1
  52. package/dist/intake/index.js +2 -1
  53. package/dist/intake/index.js.map +1 -1
  54. package/dist/intake/notion-manifest.d.ts +48 -0
  55. package/dist/intake/notion-manifest.d.ts.map +1 -0
  56. package/dist/intake/notion-manifest.js +258 -0
  57. package/dist/intake/notion-manifest.js.map +1 -0
  58. package/dist/intake/notion-relay-claim.d.ts +5 -4
  59. package/dist/intake/notion-relay-claim.d.ts.map +1 -1
  60. package/dist/intake/notion-relay-claim.js +48 -7
  61. package/dist/intake/notion-relay-claim.js.map +1 -1
  62. package/dist/intake/notion.d.ts +6 -3
  63. package/dist/intake/notion.d.ts.map +1 -1
  64. package/dist/intake/notion.js +63 -13
  65. package/dist/intake/notion.js.map +1 -1
  66. package/dist/issue-key-match.d.ts +6 -0
  67. package/dist/issue-key-match.d.ts.map +1 -1
  68. package/dist/issue-key-match.js +6 -1
  69. package/dist/issue-key-match.js.map +1 -1
  70. package/dist/mount/local-mount-preflight.d.ts.map +1 -1
  71. package/dist/mount/local-mount-preflight.js +6 -2
  72. package/dist/mount/local-mount-preflight.js.map +1 -1
  73. package/dist/mount/mount-auth-error.d.ts +16 -3
  74. package/dist/mount/mount-auth-error.d.ts.map +1 -1
  75. package/dist/mount/mount-auth-error.js +34 -7
  76. package/dist/mount/mount-auth-error.js.map +1 -1
  77. package/dist/mount/relayfile-cloud-mount-client.d.ts +14 -1
  78. package/dist/mount/relayfile-cloud-mount-client.d.ts.map +1 -1
  79. package/dist/mount/relayfile-cloud-mount-client.js +107 -6
  80. package/dist/mount/relayfile-cloud-mount-client.js.map +1 -1
  81. package/dist/mount/relayfile-github-connection-write.d.ts +24 -2
  82. package/dist/mount/relayfile-github-connection-write.d.ts.map +1 -1
  83. package/dist/mount/relayfile-github-connection-write.js +90 -1
  84. package/dist/mount/relayfile-github-connection-write.js.map +1 -1
  85. package/dist/node/factory-node.d.ts.map +1 -1
  86. package/dist/node/factory-node.js +18 -4
  87. package/dist/node/factory-node.js.map +1 -1
  88. package/dist/observability/events.d.ts +52 -52
  89. package/dist/orchestrator/batch-tracker.d.ts +30 -0
  90. package/dist/orchestrator/batch-tracker.d.ts.map +1 -1
  91. package/dist/orchestrator/batch-tracker.js +50 -2
  92. package/dist/orchestrator/batch-tracker.js.map +1 -1
  93. package/dist/orchestrator/factory.d.ts +36 -2
  94. package/dist/orchestrator/factory.d.ts.map +1 -1
  95. package/dist/orchestrator/factory.js +863 -98
  96. package/dist/orchestrator/factory.js.map +1 -1
  97. package/dist/orchestrator/index.d.ts +2 -2
  98. package/dist/orchestrator/index.d.ts.map +1 -1
  99. package/dist/orchestrator/index.js +2 -2
  100. package/dist/orchestrator/index.js.map +1 -1
  101. package/dist/orchestrator/reaper.d.ts +16 -2
  102. package/dist/orchestrator/reaper.d.ts.map +1 -1
  103. package/dist/orchestrator/reaper.js +79 -5
  104. package/dist/orchestrator/reaper.js.map +1 -1
  105. package/dist/ports/fleet.d.ts +6 -0
  106. package/dist/ports/fleet.d.ts.map +1 -1
  107. package/dist/ports/index.d.ts +1 -1
  108. package/dist/ports/index.d.ts.map +1 -1
  109. package/dist/ports/mount.d.ts +39 -0
  110. package/dist/ports/mount.d.ts.map +1 -1
  111. package/dist/ports/state.d.ts +35 -6
  112. package/dist/ports/state.d.ts.map +1 -1
  113. package/dist/state/document-store.d.ts +32 -0
  114. package/dist/state/document-store.d.ts.map +1 -0
  115. package/dist/state/document-store.js +7 -0
  116. package/dist/state/document-store.js.map +1 -0
  117. package/dist/state/file-state-store.d.ts +20 -3
  118. package/dist/state/file-state-store.d.ts.map +1 -1
  119. package/dist/state/file-state-store.js +89 -245
  120. package/dist/state/file-state-store.js.map +1 -1
  121. package/dist/state/in-memory-state-store.d.ts +2 -1
  122. package/dist/state/in-memory-state-store.d.ts.map +1 -1
  123. package/dist/state/in-memory-state-store.js +12 -3
  124. package/dist/state/in-memory-state-store.js.map +1 -1
  125. package/dist/state/watch-state-document.d.ts +5 -0
  126. package/dist/state/watch-state-document.d.ts.map +1 -0
  127. package/dist/state/watch-state-document.js +444 -0
  128. package/dist/state/watch-state-document.js.map +1 -0
  129. package/dist/testing/deadline.d.ts +11 -0
  130. package/dist/testing/deadline.d.ts.map +1 -0
  131. package/dist/testing/deadline.js +23 -0
  132. package/dist/testing/deadline.js.map +1 -0
  133. package/dist/testing/fakes.d.ts +2 -0
  134. package/dist/testing/fakes.d.ts.map +1 -1
  135. package/dist/testing/fakes.js.map +1 -1
  136. package/dist/testing/index.d.ts +1 -0
  137. package/dist/testing/index.d.ts.map +1 -1
  138. package/dist/testing/index.js +1 -0
  139. package/dist/testing/index.js.map +1 -1
  140. package/dist/triage/heuristic.d.ts +5 -0
  141. package/dist/triage/heuristic.d.ts.map +1 -1
  142. package/dist/triage/heuristic.js +42 -3
  143. package/dist/triage/heuristic.js.map +1 -1
  144. package/dist/triage/index.d.ts +1 -1
  145. package/dist/triage/index.d.ts.map +1 -1
  146. package/dist/triage/index.js +1 -1
  147. package/dist/triage/index.js.map +1 -1
  148. package/dist/triage/schema.d.ts +73 -55
  149. package/dist/triage/schema.d.ts.map +1 -1
  150. package/dist/triage/schema.js +2 -1
  151. package/dist/triage/schema.js.map +1 -1
  152. package/dist/types.d.ts +51 -3
  153. package/dist/types.d.ts.map +1 -1
  154. package/dist/writeback/github.d.ts +22 -7
  155. package/dist/writeback/github.d.ts.map +1 -1
  156. package/dist/writeback/github.js +86 -16
  157. package/dist/writeback/github.js.map +1 -1
  158. package/dist/writeback/index.d.ts +1 -1
  159. package/dist/writeback/index.d.ts.map +1 -1
  160. package/dist/writeback/index.js +1 -1
  161. package/dist/writeback/index.js.map +1 -1
  162. package/package.json +13 -8
@@ -1,4 +1,5 @@
1
1
  import type { AgentSpec, SpawnResult } from '../ports/index.js';
2
+ import type { DispatchLifecyclePhase } from '../ports/state.js';
2
3
  import type { DispatchResult, FactoryDispatchClaimStatus, IssueRef, TriageDecision } from '../types.js';
3
4
  export interface TrackedAgent {
4
5
  spec: AgentSpec;
@@ -6,6 +7,12 @@ export interface TrackedAgent {
6
7
  sessionRef?: string;
7
8
  /** Session lineage already resumed after Relay could not address a babysitter wake. */
8
9
  unreachableWakeResumedSessionRef?: string;
10
+ /**
11
+ * Set when this placement was deliberately released. A released agent keeps
12
+ * its bookkeeping entry for reporting, but it is no longer a live worker, so
13
+ * it can never suppress a later respawn of the same invocation.
14
+ */
15
+ releasedAtMs?: number;
9
16
  }
10
17
  export interface InFlightIssue {
11
18
  issue: IssueRef;
@@ -15,6 +22,10 @@ export interface InFlightIssue {
15
22
  invocationIds: Set<string>;
16
23
  result?: DispatchResult;
17
24
  dispatchClaim?: FactoryDispatchClaimStatus;
25
+ /** Wall-clock anchor set when the first agent placement succeeds. */
26
+ heldSinceAtMs?: number;
27
+ /** Latest durable phase, used only for operator-facing held-agent status. */
28
+ lifecyclePhase?: DispatchLifecyclePhase;
18
29
  }
19
30
  export interface QueuedIssue {
20
31
  issue: IssueRef;
@@ -59,8 +70,27 @@ export declare class BatchTracker {
59
70
  complete(issue: IssueRef): QueuedIssue | undefined;
60
71
  abandon(issue: IssueRef): void;
61
72
  invocationIdFor(issue: IssueRef, spec: AgentSpec): string;
73
+ /**
74
+ * A recorded invocation suppresses a respawn only while a live worker still
75
+ * carries it. `recordPlanned` deliberately records nothing here: an owner
76
+ * that dies between planning and spawn confirmation leaves the invocation
77
+ * unrecorded, so takeover retries it as-is and the roster lookup in
78
+ * `#spawnAgent` adopts the surviving worker instead of duplicating it.
79
+ *
80
+ * A deliberate release is the opposite case. The worker is gone, so the
81
+ * memory of its spawn must not answer for it — otherwise the dispatch gate
82
+ * reports a synthetic success and the state store believes work is running
83
+ * that no process exists for. This derives liveness from the tracked agents
84
+ * rather than trusting the id set, so a release path that drops or marks its
85
+ * agent invalidates the claim without having to remember to say so.
86
+ */
62
87
  shouldSpawn(record: InFlightIssue, invocationId: string): boolean;
63
88
  recordSpawn(record: InFlightIssue, spec: AgentSpec, invocationId: string, result: SpawnResult): void;
89
+ /**
90
+ * Invalidate the spawn memory for an agent that was deliberately released.
91
+ * Returns the invocation id that was released, for callers that log it.
92
+ */
93
+ recordRelease(record: InFlightIssue, agentName: string, releasedAtMs: number): string | undefined;
64
94
  recordPlanned(record: InFlightIssue, spec: AgentSpec): void;
65
95
  recordDryRun(record: InFlightIssue, spec: AgentSpec, invocationId: string): void;
66
96
  /** Restore a crash-safe lifecycle before the fleet emits reconciled exits. */
@@ -1 +1 @@
1
- {"version":3,"file":"batch-tracker.d.ts","sourceRoot":"","sources":["../../src/orchestrator/batch-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch-tracker.d.ts","sourceRoot":"","sources":["../../src/orchestrator/batch-tracker.ts"],"names":[],"mappings":"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"}
@@ -126,8 +126,24 @@ export class BatchTracker {
126
126
  invocationIdFor(issue, spec) {
127
127
  return spec.invocationId ?? `factory:${issue.key}:${stableHash(`${issue.uuid}:${spec.role}:${spec.name}:${spec.repo}`)}`;
128
128
  }
129
+ /**
130
+ * A recorded invocation suppresses a respawn only while a live worker still
131
+ * carries it. `recordPlanned` deliberately records nothing here: an owner
132
+ * that dies between planning and spawn confirmation leaves the invocation
133
+ * unrecorded, so takeover retries it as-is and the roster lookup in
134
+ * `#spawnAgent` adopts the surviving worker instead of duplicating it.
135
+ *
136
+ * A deliberate release is the opposite case. The worker is gone, so the
137
+ * memory of its spawn must not answer for it — otherwise the dispatch gate
138
+ * reports a synthetic success and the state store believes work is running
139
+ * that no process exists for. This derives liveness from the tracked agents
140
+ * rather than trusting the id set, so a release path that drops or marks its
141
+ * agent invalidates the claim without having to remember to say so.
142
+ */
129
143
  shouldSpawn(record, invocationId) {
130
- return !record.invocationIds.has(invocationId) && !this.#invocationIds.has(invocationId);
144
+ if (!record.invocationIds.has(invocationId) && !this.#invocationIds.has(invocationId))
145
+ return true;
146
+ return !this.#hasLiveInvocation(record, invocationId);
131
147
  }
132
148
  recordSpawn(record, spec, invocationId, result) {
133
149
  record.invocationIds.add(invocationId);
@@ -138,8 +154,37 @@ export class BatchTracker {
138
154
  sessionRef: result.sessionRef ?? spec.sessionRef,
139
155
  });
140
156
  }
157
+ /**
158
+ * Invalidate the spawn memory for an agent that was deliberately released.
159
+ * Returns the invocation id that was released, for callers that log it.
160
+ */
161
+ recordRelease(record, agentName, releasedAtMs) {
162
+ const tracked = record.agents.get(agentName)
163
+ ?? [...record.agents.values()].find((candidate) => candidate.result?.name === agentName);
164
+ if (!tracked)
165
+ return undefined;
166
+ tracked.releasedAtMs ??= releasedAtMs;
167
+ const invocationId = tracked.spec.invocationId ?? this.invocationIdFor(record.issue, tracked.spec);
168
+ record.invocationIds.delete(invocationId);
169
+ // The tracker-global set is what blocks a different in-flight record from
170
+ // reusing the id, so a release has to clear both or the claim survives the
171
+ // worker in another record's name.
172
+ if (!this.#hasLiveInvocation(record, invocationId))
173
+ this.#invocationIds.delete(invocationId);
174
+ return invocationId;
175
+ }
176
+ #hasLiveInvocation(record, invocationId) {
177
+ const records = [record, ...this.#inFlight.values()];
178
+ return records.some((candidate) => [...candidate.agents.values()].some((tracked) => tracked.result !== undefined &&
179
+ tracked.releasedAtMs === undefined &&
180
+ tracked.spec.invocationId === invocationId));
181
+ }
141
182
  recordPlanned(record, spec) {
142
- if (record.agents.has(spec.name))
183
+ // A released placement is not a plan still in flight. Replace it so the
184
+ // retry's own spec is what a takeover reads, instead of the dead
185
+ // generation's spawn result.
186
+ const existing = record.agents.get(spec.name);
187
+ if (existing && existing.releasedAtMs === undefined)
143
188
  return;
144
189
  record.agents.set(spec.name, { spec: { ...spec }, sessionRef: spec.sessionRef });
145
190
  }
@@ -166,9 +211,12 @@ export class BatchTracker {
166
211
  spec: structuredClone(tracked.spec),
167
212
  result: tracked.result ? { ...tracked.result } : undefined,
168
213
  sessionRef: tracked.sessionRef,
214
+ releasedAtMs: tracked.releasedAtMs,
169
215
  }])),
170
216
  invocationIds: new Set(record.invocationIds),
171
217
  result: record.result ? structuredClone(record.result) : undefined,
218
+ heldSinceAtMs: record.heldSinceAtMs,
219
+ lifecyclePhase: record.lifecyclePhase,
172
220
  };
173
221
  this.#inFlight.set(key, restored);
174
222
  this.#parked.delete(key);
@@ -1 +1 @@
1
- {"version":3,"file":"batch-tracker.js","sourceRoot":"","sources":["../../src/orchestrator/batch-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch-tracker.js","sourceRoot":"","sources":["../../src/orchestrator/batch-tracker.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { type FactoryConfig } from '../config/schema.js';
2
2
  import type { ChangeEvent, MountClient } from '../ports/index.js';
3
- import type { DispatchLifecycle, WaitingClarification } from '../ports/state.js';
3
+ import type { DispatchLifecycle, TerminalDispatchLifecyclePhase, WaitingClarification } from '../ports/state.js';
4
4
  import type { DispatchResult, Factory, FactoryEventPayload, FactoryPorts, FactoryStatus, FactoryStartOptions, FactoryLoopRunOptions, FactoryLoopHeartbeat, FactoryLoopLiveness, IssueRef, IterationReport, LinearIssue, TriageDecision } from '../types.js';
5
5
  type FactoryEvent = 'issue-queued' | 'dispatched' | 'issue-done' | 'writeback-verified' | 'error';
6
6
  type Listener = (payload: FactoryEventPayload) => void;
@@ -36,7 +36,17 @@ export declare function createFactory(config: FactoryConfig, ports: FactoryPorts
36
36
  export declare class FactoryLoop implements Factory {
37
37
  #private;
38
38
  constructor(config: FactoryConfig, ports: FactoryPorts);
39
- waitForDispatchTerminal(issue: IssueRef): Promise<void>;
39
+ /**
40
+ * Resolves once this issue's durable dispatch row reaches a terminal phase,
41
+ * and reports which one. A caller that turns the run into an exit code needs
42
+ * the phase: a dispatch that hit capacity returns an empty hold result and
43
+ * schedules a durable retry, so the pre-wait result says nothing about how
44
+ * the run actually ended.
45
+ *
46
+ * `undefined` means no terminal phase was observed — there was no lifecycle
47
+ * row to wait on, or the wait ended because Factory is stopping.
48
+ */
49
+ waitForDispatchTerminal(issue: IssueRef): Promise<TerminalDispatchLifecyclePhase | undefined>;
40
50
  start(opts?: FactoryStartOptions): Promise<void>;
41
51
  stop(): Promise<void>;
42
52
  dispose(): Promise<void>;
@@ -109,6 +119,30 @@ export declare function githubApiFallbackCandidatesFromDispatchLifecycles(dispat
109
119
  }>;
110
120
  export declare const githubRepoSubscriptionGlobs: (config: FactoryConfig) => string[];
111
121
  export declare const keyFromPath: (path: string) => string;
122
+ export declare const isAllowedFactoryGithubArtifactDraft: (path: string, opts: {
123
+ guarded?: boolean;
124
+ } | undefined) => boolean;
125
+ /**
126
+ * Last-resort mount guard for Factory-authored GitHub drafts. PR/ref paths are
127
+ * intrinsically Factory-owned. Issue mutations additionally require a current
128
+ * in-scope issue projection in one of Relayfile's supported repository layouts.
129
+ */
130
+ export declare const isAllowedFactoryGithubDraft: (path: string, content: unknown, opts: {
131
+ guarded?: boolean;
132
+ } | undefined, mount: MountClient, config: FactoryConfig) => Promise<boolean>;
112
133
  export declare const changeEventPath: (event: ChangeEvent) => string | undefined;
134
+ /**
135
+ * The dispatch claim race: another writer changed the issue's live state
136
+ * between this process reading it and writing back, so the dispatch was
137
+ * abandoned. Exported so callers outside this module — notably the CLI, which
138
+ * turns it into a distinct exit code — can recognize it by type rather than by
139
+ * matching on `error.name`, and so tests can construct a genuine instance.
140
+ */
141
+ export declare class LiveDispatchStateChangedError extends Error {
142
+ readonly issueKey: string;
143
+ constructor(issueKey: string);
144
+ }
145
+ /** Whether a thrown value is a {@link LiveDispatchStateChangedError}. */
146
+ export declare function isLiveDispatchStateChangedError(error: unknown): error is LiveDispatchStateChangedError;
113
147
  export {};
114
148
  //# sourceMappingURL=factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/orchestrator/factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/orchestrator/factory.ts"],"names":[],"mappings":"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"}