@agent-relay/factory 0.1.37 → 0.1.39
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 +110 -11
- package/dist/cli/fleet.d.ts +6 -0
- package/dist/cli/fleet.d.ts.map +1 -1
- package/dist/cli/fleet.js +74 -4
- package/dist/cli/fleet.js.map +1 -1
- package/dist/config/schema.d.ts +52 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +9 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/dispatch/templates.d.ts +2 -0
- package/dist/dispatch/templates.d.ts.map +1 -1
- package/dist/dispatch/templates.js +7 -0
- package/dist/dispatch/templates.js.map +1 -1
- package/dist/dispatch/test-guidance.d.ts +19 -0
- package/dist/dispatch/test-guidance.d.ts.map +1 -0
- package/dist/dispatch/test-guidance.js +180 -0
- package/dist/dispatch/test-guidance.js.map +1 -0
- package/dist/featuremap/check.d.ts +19 -0
- package/dist/featuremap/check.d.ts.map +1 -0
- package/dist/featuremap/check.js +81 -0
- package/dist/featuremap/check.js.map +1 -0
- package/dist/featuremap/index.d.ts +5 -0
- package/dist/featuremap/index.d.ts.map +1 -0
- package/dist/featuremap/index.js +3 -0
- package/dist/featuremap/index.js.map +1 -0
- package/dist/featuremap/validate.d.ts +55 -0
- package/dist/featuremap/validate.d.ts.map +1 -0
- package/dist/featuremap/validate.js +205 -0
- package/dist/featuremap/validate.js.map +1 -0
- package/dist/fleet/internal-fleet-client.d.ts.map +1 -1
- package/dist/fleet/internal-fleet-client.js +13 -0
- package/dist/fleet/internal-fleet-client.js.map +1 -1
- package/dist/fleet/relay-fleet-client.d.ts +1 -0
- package/dist/fleet/relay-fleet-client.d.ts.map +1 -1
- package/dist/fleet/relay-fleet-client.js +4 -0
- package/dist/fleet/relay-fleet-client.js.map +1 -1
- package/dist/github/repo-identity.d.ts +8 -0
- package/dist/github/repo-identity.d.ts.map +1 -0
- package/dist/github/repo-identity.js +28 -0
- package/dist/github/repo-identity.js.map +1 -0
- package/dist/github/standalone-babysitter.d.ts +1 -0
- package/dist/github/standalone-babysitter.d.ts.map +1 -1
- package/dist/github/standalone-babysitter.js +16 -1
- package/dist/github/standalone-babysitter.js.map +1 -1
- package/dist/hosted/index.d.ts +5 -0
- package/dist/hosted/index.d.ts.map +1 -0
- package/dist/hosted/index.js +3 -0
- package/dist/hosted/index.js.map +1 -0
- package/dist/hosted/orchestrator.d.ts +12 -0
- package/dist/hosted/orchestrator.d.ts.map +1 -0
- package/dist/hosted/orchestrator.js +513 -0
- package/dist/hosted/orchestrator.js.map +1 -0
- package/dist/hosted/state-store.d.ts +48 -0
- package/dist/hosted/state-store.d.ts.map +1 -0
- package/dist/hosted/state-store.js +210 -0
- package/dist/hosted/state-store.js.map +1 -0
- package/dist/hosted/types.d.ts +173 -0
- package/dist/hosted/types.d.ts.map +1 -0
- package/dist/hosted/types.js +2 -0
- package/dist/hosted/types.js.map +1 -0
- package/dist/index.d.ts +8 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/mount/relayfile-cloud-mount-client.d.ts +20 -2
- package/dist/mount/relayfile-cloud-mount-client.d.ts.map +1 -1
- package/dist/mount/relayfile-cloud-mount-client.js +209 -22
- package/dist/mount/relayfile-cloud-mount-client.js.map +1 -1
- package/dist/mount/relayfile-github-connection-write.d.ts.map +1 -1
- package/dist/mount/relayfile-github-connection-write.js +4 -2
- package/dist/mount/relayfile-github-connection-write.js.map +1 -1
- package/dist/orchestrator/batch-tracker.d.ts +24 -2
- package/dist/orchestrator/batch-tracker.d.ts.map +1 -1
- package/dist/orchestrator/batch-tracker.js +70 -5
- package/dist/orchestrator/batch-tracker.js.map +1 -1
- package/dist/orchestrator/coalesced-task-queue.d.ts +19 -0
- package/dist/orchestrator/coalesced-task-queue.d.ts.map +1 -0
- package/dist/orchestrator/coalesced-task-queue.js +85 -0
- package/dist/orchestrator/coalesced-task-queue.js.map +1 -0
- package/dist/orchestrator/dependencies.d.ts +21 -0
- package/dist/orchestrator/dependencies.d.ts.map +1 -0
- package/dist/orchestrator/dependencies.js +70 -0
- package/dist/orchestrator/dependencies.js.map +1 -0
- package/dist/orchestrator/factory.d.ts.map +1 -1
- package/dist/orchestrator/factory.js +1466 -224
- package/dist/orchestrator/factory.js.map +1 -1
- package/dist/orchestrator/index.d.ts +3 -0
- package/dist/orchestrator/index.d.ts.map +1 -1
- package/dist/orchestrator/index.js +1 -0
- package/dist/orchestrator/index.js.map +1 -1
- package/dist/ports/mount.d.ts +2 -0
- package/dist/ports/mount.d.ts.map +1 -1
- package/dist/ports/state.d.ts +66 -4
- package/dist/ports/state.d.ts.map +1 -1
- package/dist/ports/writeback.d.ts +3 -0
- package/dist/ports/writeback.d.ts.map +1 -1
- package/dist/state/file-state-store.d.ts +17 -3
- package/dist/state/file-state-store.d.ts.map +1 -1
- package/dist/state/file-state-store.js +204 -3
- package/dist/state/file-state-store.js.map +1 -1
- package/dist/state/in-memory-state-store.d.ts +14 -1
- package/dist/state/in-memory-state-store.d.ts.map +1 -1
- package/dist/state/in-memory-state-store.js +112 -1
- package/dist/state/in-memory-state-store.js.map +1 -1
- package/dist/subscriptions/index.d.ts +2 -0
- package/dist/subscriptions/index.d.ts.map +1 -1
- package/dist/subscriptions/index.js +1 -0
- package/dist/subscriptions/index.js.map +1 -1
- package/dist/subscriptions/slack-filter.d.ts +32 -0
- package/dist/subscriptions/slack-filter.d.ts.map +1 -0
- package/dist/subscriptions/slack-filter.js +62 -0
- package/dist/subscriptions/slack-filter.js.map +1 -0
- package/dist/subscriptions/specs.d.ts +2 -0
- package/dist/subscriptions/specs.d.ts.map +1 -1
- package/dist/subscriptions/specs.js +11 -0
- package/dist/subscriptions/specs.js.map +1 -1
- package/dist/triage/schema.d.ts +16 -16
- package/dist/types.d.ts +17 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/writeback/github.d.ts +4 -0
- package/dist/writeback/github.d.ts.map +1 -1
- package/dist/writeback/github.js +95 -0
- package/dist/writeback/github.js.map +1 -1
- package/dist/writeback/index.d.ts +2 -0
- package/dist/writeback/index.d.ts.map +1 -1
- package/dist/writeback/index.js +1 -0
- package/dist/writeback/index.js.map +1 -1
- package/dist/writeback/mount-health.d.ts +15 -0
- package/dist/writeback/mount-health.d.ts.map +1 -0
- package/dist/writeback/mount-health.js +15 -0
- package/dist/writeback/mount-health.js.map +1 -0
- package/package.json +13 -2
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
/** Test/local implementation with the same owner+epoch+expiry semantics as the DO store. */
|
|
2
|
+
export class InMemoryHostedFactoryStateStore {
|
|
3
|
+
#now;
|
|
4
|
+
#workspaces = new Map();
|
|
5
|
+
constructor(options = {}) {
|
|
6
|
+
this.#now = options.now ?? Date.now;
|
|
7
|
+
}
|
|
8
|
+
async claimRunLease(workspaceId, ownerId, ttlMs) {
|
|
9
|
+
const workspace = this.#workspace(workspaceId);
|
|
10
|
+
const nowMs = this.#now();
|
|
11
|
+
const current = workspace.lease;
|
|
12
|
+
if (current && current.expiresAtMs > nowMs && current.ownerId !== ownerId) {
|
|
13
|
+
return { acquired: false, lease: { ...current } };
|
|
14
|
+
}
|
|
15
|
+
const lease = {
|
|
16
|
+
workspaceId,
|
|
17
|
+
ownerId,
|
|
18
|
+
// A claim is a new fencing operation even when the caller reuses an
|
|
19
|
+
// owner ID. Renew is the only operation that preserves an epoch.
|
|
20
|
+
epoch: (current?.epoch ?? 0) + 1,
|
|
21
|
+
expiresAtMs: nowMs + validTtl(ttlMs),
|
|
22
|
+
};
|
|
23
|
+
workspace.lease = lease;
|
|
24
|
+
return { acquired: true, lease: { ...lease } };
|
|
25
|
+
}
|
|
26
|
+
async renewRunLease(lease, ttlMs) {
|
|
27
|
+
const workspace = this.#workspace(lease.workspaceId);
|
|
28
|
+
const nowMs = this.#now();
|
|
29
|
+
if (!matchesLiveLease(workspace.lease, lease, nowMs))
|
|
30
|
+
return null;
|
|
31
|
+
const renewed = { ...lease, expiresAtMs: nowMs + validTtl(ttlMs) };
|
|
32
|
+
workspace.lease = renewed;
|
|
33
|
+
return { ...renewed };
|
|
34
|
+
}
|
|
35
|
+
async releaseRunLease(lease) {
|
|
36
|
+
const workspace = this.#workspace(lease.workspaceId);
|
|
37
|
+
if (!matchesLease(workspace.lease, lease))
|
|
38
|
+
return;
|
|
39
|
+
// Keep the epoch tombstone so a later claimant cannot reuse a stale fence.
|
|
40
|
+
workspace.lease = { ...lease, expiresAtMs: 0 };
|
|
41
|
+
}
|
|
42
|
+
async getIssue(workspaceId, issueId) {
|
|
43
|
+
const record = this.#workspace(workspaceId).issues.get(issueId);
|
|
44
|
+
return record ? cloneRecord(record) : null;
|
|
45
|
+
}
|
|
46
|
+
async listIssues(workspaceId) {
|
|
47
|
+
return [...this.#workspace(workspaceId).issues.values()].map(cloneRecord);
|
|
48
|
+
}
|
|
49
|
+
async findIssueByInvocation(workspaceId, invocationId) {
|
|
50
|
+
const workspace = this.#workspace(workspaceId);
|
|
51
|
+
const issueId = workspace.issueIdByInvocation.get(invocationId);
|
|
52
|
+
if (!issueId)
|
|
53
|
+
return null;
|
|
54
|
+
const record = workspace.issues.get(issueId);
|
|
55
|
+
return record ? cloneRecord(record) : null;
|
|
56
|
+
}
|
|
57
|
+
async saveIssue(record, lease) {
|
|
58
|
+
const workspace = this.#workspace(record.workspaceId);
|
|
59
|
+
if (record.workspaceId !== lease.workspaceId || !matchesLiveLease(workspace.lease, lease, this.#now())) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
replaceIssue(workspace, record);
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
#workspace(workspaceId) {
|
|
66
|
+
let workspace = this.#workspaces.get(workspaceId);
|
|
67
|
+
if (!workspace) {
|
|
68
|
+
workspace = { issues: new Map(), issueIdByInvocation: new Map() };
|
|
69
|
+
this.#workspaces.set(workspaceId, workspace);
|
|
70
|
+
}
|
|
71
|
+
return workspace;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Durable-Object-backed hosted state. All lease claims and fenced writes run in
|
|
76
|
+
* storage transactions; storing records without this class's fence checks
|
|
77
|
+
* would reintroduce active/active split brain.
|
|
78
|
+
*/
|
|
79
|
+
export class DurableObjectHostedFactoryStateStore {
|
|
80
|
+
#storage;
|
|
81
|
+
#now;
|
|
82
|
+
#keyPrefix;
|
|
83
|
+
constructor(storage, options = {}) {
|
|
84
|
+
this.#storage = storage;
|
|
85
|
+
this.#now = options.now ?? Date.now;
|
|
86
|
+
this.#keyPrefix = options.keyPrefix ?? 'hosted-factory';
|
|
87
|
+
}
|
|
88
|
+
async claimRunLease(workspaceId, ownerId, ttlMs) {
|
|
89
|
+
return await this.#storage.transaction(async (transaction) => {
|
|
90
|
+
const key = this.#leaseKey(workspaceId);
|
|
91
|
+
const current = await transaction.get(key);
|
|
92
|
+
const nowMs = this.#now();
|
|
93
|
+
if (current && current.expiresAtMs > nowMs && current.ownerId !== ownerId) {
|
|
94
|
+
return { acquired: false, lease: current };
|
|
95
|
+
}
|
|
96
|
+
const lease = {
|
|
97
|
+
workspaceId,
|
|
98
|
+
ownerId,
|
|
99
|
+
// A claim is a new fencing operation even when the caller reuses an
|
|
100
|
+
// owner ID. Renew is the only operation that preserves an epoch.
|
|
101
|
+
epoch: (current?.epoch ?? 0) + 1,
|
|
102
|
+
expiresAtMs: nowMs + validTtl(ttlMs),
|
|
103
|
+
};
|
|
104
|
+
await transaction.put(key, lease);
|
|
105
|
+
return { acquired: true, lease };
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
async renewRunLease(lease, ttlMs) {
|
|
109
|
+
return await this.#storage.transaction(async (transaction) => {
|
|
110
|
+
const key = this.#leaseKey(lease.workspaceId);
|
|
111
|
+
const current = await transaction.get(key);
|
|
112
|
+
const nowMs = this.#now();
|
|
113
|
+
if (!matchesLiveLease(current, lease, nowMs))
|
|
114
|
+
return null;
|
|
115
|
+
const renewed = { ...lease, expiresAtMs: nowMs + validTtl(ttlMs) };
|
|
116
|
+
await transaction.put(key, renewed);
|
|
117
|
+
return renewed;
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
async releaseRunLease(lease) {
|
|
121
|
+
await this.#storage.transaction(async (transaction) => {
|
|
122
|
+
const key = this.#leaseKey(lease.workspaceId);
|
|
123
|
+
const current = await transaction.get(key);
|
|
124
|
+
if (matchesLease(current, lease)) {
|
|
125
|
+
await transaction.put(key, { ...lease, expiresAtMs: 0 });
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
async getIssue(workspaceId, issueId) {
|
|
130
|
+
return await this.#storage.get(this.#issueKey(workspaceId, issueId)) ?? null;
|
|
131
|
+
}
|
|
132
|
+
async listIssues(workspaceId) {
|
|
133
|
+
return [...(await this.#storage.list({
|
|
134
|
+
prefix: this.#issuePrefix(workspaceId),
|
|
135
|
+
})).values()];
|
|
136
|
+
}
|
|
137
|
+
async findIssueByInvocation(workspaceId, invocationId) {
|
|
138
|
+
const issueId = await this.#storage.get(this.#invocationKey(workspaceId, invocationId));
|
|
139
|
+
return issueId ? await this.getIssue(workspaceId, issueId) : null;
|
|
140
|
+
}
|
|
141
|
+
async saveIssue(record, lease) {
|
|
142
|
+
if (record.workspaceId !== lease.workspaceId)
|
|
143
|
+
return false;
|
|
144
|
+
return await this.#storage.transaction(async (transaction) => {
|
|
145
|
+
const currentLease = await transaction.get(this.#leaseKey(record.workspaceId));
|
|
146
|
+
if (!matchesLiveLease(currentLease, lease, this.#now()))
|
|
147
|
+
return false;
|
|
148
|
+
const issueKey = this.#issueKey(record.workspaceId, record.issue.uuid);
|
|
149
|
+
const prior = await transaction.get(issueKey);
|
|
150
|
+
const nextInvocationIds = new Set(record.invocations.map(({ invocationId }) => invocationId));
|
|
151
|
+
for (const invocation of prior?.invocations ?? []) {
|
|
152
|
+
if (!nextInvocationIds.has(invocation.invocationId)) {
|
|
153
|
+
await transaction.delete(this.#invocationKey(record.workspaceId, invocation.invocationId));
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
await transaction.put(issueKey, record);
|
|
157
|
+
for (const invocation of record.invocations) {
|
|
158
|
+
await transaction.put(this.#invocationKey(record.workspaceId, invocation.invocationId), record.issue.uuid);
|
|
159
|
+
}
|
|
160
|
+
return true;
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
#workspacePrefix(workspaceId) {
|
|
164
|
+
return `${this.#keyPrefix}:workspace:${encodeKey(workspaceId)}:`;
|
|
165
|
+
}
|
|
166
|
+
#leaseKey(workspaceId) {
|
|
167
|
+
return `${this.#workspacePrefix(workspaceId)}lease`;
|
|
168
|
+
}
|
|
169
|
+
#issuePrefix(workspaceId) {
|
|
170
|
+
return `${this.#workspacePrefix(workspaceId)}issue:`;
|
|
171
|
+
}
|
|
172
|
+
#issueKey(workspaceId, issueId) {
|
|
173
|
+
return `${this.#issuePrefix(workspaceId)}${encodeKey(issueId)}`;
|
|
174
|
+
}
|
|
175
|
+
#invocationKey(workspaceId, invocationId) {
|
|
176
|
+
return `${this.#workspacePrefix(workspaceId)}invocation:${encodeKey(invocationId)}`;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
function replaceIssue(workspace, record) {
|
|
180
|
+
const prior = workspace.issues.get(record.issue.uuid);
|
|
181
|
+
for (const invocation of prior?.invocations ?? []) {
|
|
182
|
+
workspace.issueIdByInvocation.delete(invocation.invocationId);
|
|
183
|
+
}
|
|
184
|
+
const next = cloneRecord(record);
|
|
185
|
+
workspace.issues.set(record.issue.uuid, next);
|
|
186
|
+
for (const invocation of next.invocations) {
|
|
187
|
+
workspace.issueIdByInvocation.set(invocation.invocationId, record.issue.uuid);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
function matchesLease(current, expected) {
|
|
191
|
+
return current?.workspaceId === expected.workspaceId &&
|
|
192
|
+
current.ownerId === expected.ownerId &&
|
|
193
|
+
current.epoch === expected.epoch;
|
|
194
|
+
}
|
|
195
|
+
function matchesLiveLease(current, expected, nowMs) {
|
|
196
|
+
return matchesLease(current, expected) && current.expiresAtMs > nowMs;
|
|
197
|
+
}
|
|
198
|
+
function validTtl(ttlMs) {
|
|
199
|
+
if (!Number.isFinite(ttlMs) || ttlMs <= 0) {
|
|
200
|
+
throw new Error('hosted Factory lease TTL must be greater than zero');
|
|
201
|
+
}
|
|
202
|
+
return Math.trunc(ttlMs);
|
|
203
|
+
}
|
|
204
|
+
function cloneRecord(record) {
|
|
205
|
+
return structuredClone(record);
|
|
206
|
+
}
|
|
207
|
+
function encodeKey(value) {
|
|
208
|
+
return encodeURIComponent(value);
|
|
209
|
+
}
|
|
210
|
+
//# sourceMappingURL=state-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-store.js","sourceRoot":"","sources":["../../src/hosted/state-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import type { FactoryConfig } from '../config/schema.js';
|
|
2
|
+
import type { AgentSpec, SpawnInput, SpawnResult } from '../ports/fleet.js';
|
|
3
|
+
import type { Logger } from '../ports/system.js';
|
|
4
|
+
import type { LinearIssue, TriageDecision, TriageEngine } from '../types.js';
|
|
5
|
+
export type HostedFactoryInvocationStatus = 'pending' | 'dispatched' | 'completed' | 'failed' | 'cancelled';
|
|
6
|
+
export type HostedFactoryTerminalInvocationStatus = Extract<HostedFactoryInvocationStatus, 'completed' | 'failed' | 'cancelled'>;
|
|
7
|
+
export type HostedFactoryIssuePhase = 'triaging' | 'awaiting-clarification' | 'dispatching' | 'running' | 'merge-gate' | 'complete' | 'blocked';
|
|
8
|
+
export type HostedFactoryLease = {
|
|
9
|
+
workspaceId: string;
|
|
10
|
+
ownerId: string;
|
|
11
|
+
epoch: number;
|
|
12
|
+
expiresAtMs: number;
|
|
13
|
+
};
|
|
14
|
+
export type HostedFactoryLeaseClaim = {
|
|
15
|
+
acquired: true;
|
|
16
|
+
lease: HostedFactoryLease;
|
|
17
|
+
} | {
|
|
18
|
+
acquired: false;
|
|
19
|
+
lease: HostedFactoryLease;
|
|
20
|
+
};
|
|
21
|
+
export type HostedFactoryInvocation = {
|
|
22
|
+
invocationId: string;
|
|
23
|
+
spec: AgentSpec;
|
|
24
|
+
status: HostedFactoryInvocationStatus;
|
|
25
|
+
sessionRef?: string;
|
|
26
|
+
node?: string;
|
|
27
|
+
dispatchedAt?: string;
|
|
28
|
+
completedAt?: string;
|
|
29
|
+
output?: string;
|
|
30
|
+
error?: string;
|
|
31
|
+
};
|
|
32
|
+
export type HostedFactoryMergeGateResult = {
|
|
33
|
+
status: 'pending' | 'ready' | 'blocked';
|
|
34
|
+
reason: string;
|
|
35
|
+
decidedAt?: string;
|
|
36
|
+
metadata?: Record<string, unknown>;
|
|
37
|
+
};
|
|
38
|
+
export type HostedFactoryWritebackRecord = {
|
|
39
|
+
status: 'pending' | 'posted' | 'failed';
|
|
40
|
+
attempts: number;
|
|
41
|
+
postedAt?: string;
|
|
42
|
+
error?: string;
|
|
43
|
+
};
|
|
44
|
+
export type HostedFactoryIssueRecord = {
|
|
45
|
+
workspaceId: string;
|
|
46
|
+
issue: LinearIssue;
|
|
47
|
+
phase: HostedFactoryIssuePhase;
|
|
48
|
+
decision?: TriageDecision;
|
|
49
|
+
invocations: HostedFactoryInvocation[];
|
|
50
|
+
clarificationReason?: string;
|
|
51
|
+
clarificationWriteback?: HostedFactoryWritebackRecord;
|
|
52
|
+
dispatchWriteback?: HostedFactoryWritebackRecord;
|
|
53
|
+
completionWriteback?: HostedFactoryWritebackRecord;
|
|
54
|
+
mergeGate?: HostedFactoryMergeGateResult;
|
|
55
|
+
createdAt: string;
|
|
56
|
+
updatedAt: string;
|
|
57
|
+
};
|
|
58
|
+
export interface HostedFactoryStateStore {
|
|
59
|
+
/** Atomically claim the workspace-wide control-plane lease. */
|
|
60
|
+
claimRunLease(workspaceId: string, ownerId: string, ttlMs: number): Promise<HostedFactoryLeaseClaim>;
|
|
61
|
+
/** Renew only the exact owner+epoch fence while it is still live. */
|
|
62
|
+
renewRunLease(lease: HostedFactoryLease, ttlMs: number): Promise<HostedFactoryLease | null>;
|
|
63
|
+
/** Expire only the exact owner+epoch fence. Epoch history must be retained. */
|
|
64
|
+
releaseRunLease(lease: HostedFactoryLease): Promise<void>;
|
|
65
|
+
getIssue(workspaceId: string, issueId: string): Promise<HostedFactoryIssueRecord | null>;
|
|
66
|
+
listIssues(workspaceId: string): Promise<HostedFactoryIssueRecord[]>;
|
|
67
|
+
findIssueByInvocation(workspaceId: string, invocationId: string): Promise<HostedFactoryIssueRecord | null>;
|
|
68
|
+
/**
|
|
69
|
+
* Persist only while `lease` is the current, unexpired workspace fence.
|
|
70
|
+
* Returning false tells the caller it lost ownership and must stop.
|
|
71
|
+
*/
|
|
72
|
+
saveIssue(record: HostedFactoryIssueRecord, lease: HostedFactoryLease): Promise<boolean>;
|
|
73
|
+
}
|
|
74
|
+
export interface HostedFactoryDiscovery {
|
|
75
|
+
discoverReady(input: {
|
|
76
|
+
workspaceId: string;
|
|
77
|
+
limit: number;
|
|
78
|
+
}): Promise<LinearIssue[]>;
|
|
79
|
+
}
|
|
80
|
+
export interface HostedFactoryFleet {
|
|
81
|
+
/**
|
|
82
|
+
* The invocation ID is the at-least-once dedupe key. Implementations must
|
|
83
|
+
* return the same ID when they include one in the acknowledgement.
|
|
84
|
+
*/
|
|
85
|
+
spawn(input: SpawnInput & {
|
|
86
|
+
invocationId: string;
|
|
87
|
+
}): Promise<SpawnResult & {
|
|
88
|
+
invocationId?: string;
|
|
89
|
+
}>;
|
|
90
|
+
}
|
|
91
|
+
export type HostedFactoryCompletion = {
|
|
92
|
+
invocationId: string;
|
|
93
|
+
status: HostedFactoryInvocationStatus;
|
|
94
|
+
completedAt?: string;
|
|
95
|
+
output?: string;
|
|
96
|
+
error?: string;
|
|
97
|
+
};
|
|
98
|
+
export interface HostedFactoryCompletionSource {
|
|
99
|
+
getInvocation(input: {
|
|
100
|
+
workspaceId: string;
|
|
101
|
+
invocationId: string;
|
|
102
|
+
}): Promise<HostedFactoryCompletion | null>;
|
|
103
|
+
}
|
|
104
|
+
export interface HostedFactoryMergeGate {
|
|
105
|
+
evaluate(input: {
|
|
106
|
+
workspaceId: string;
|
|
107
|
+
record: HostedFactoryIssueRecord;
|
|
108
|
+
}): Promise<HostedFactoryMergeGateResult>;
|
|
109
|
+
}
|
|
110
|
+
export type HostedFactoryWritebackInput = {
|
|
111
|
+
workspaceId: string;
|
|
112
|
+
/** Stable provider-side dedupe key; required because a save can lose its fence after a successful write. */
|
|
113
|
+
idempotencyKey: string;
|
|
114
|
+
record: HostedFactoryIssueRecord;
|
|
115
|
+
};
|
|
116
|
+
export interface HostedFactoryWriteback {
|
|
117
|
+
requestClarification(input: HostedFactoryWritebackInput & {
|
|
118
|
+
reason: string;
|
|
119
|
+
}): Promise<void>;
|
|
120
|
+
dispatched(input: HostedFactoryWritebackInput): Promise<void>;
|
|
121
|
+
completed(input: HostedFactoryWritebackInput & {
|
|
122
|
+
mergeGate: HostedFactoryMergeGateResult;
|
|
123
|
+
}): Promise<void>;
|
|
124
|
+
}
|
|
125
|
+
export type HostedFactoryOptions = {
|
|
126
|
+
workspaceId: string;
|
|
127
|
+
/** Unique per running host/isolate; store-issued epochs fence every new claim. */
|
|
128
|
+
ownerId: string;
|
|
129
|
+
config: FactoryConfig;
|
|
130
|
+
leaseTtlMs?: number;
|
|
131
|
+
maxIssuesPerRun?: number;
|
|
132
|
+
};
|
|
133
|
+
export type HostedFactoryPorts = {
|
|
134
|
+
discovery: HostedFactoryDiscovery;
|
|
135
|
+
state: HostedFactoryStateStore;
|
|
136
|
+
fleet: HostedFactoryFleet;
|
|
137
|
+
completions: HostedFactoryCompletionSource;
|
|
138
|
+
writeback: HostedFactoryWriteback;
|
|
139
|
+
triage?: TriageEngine;
|
|
140
|
+
mergeGate?: HostedFactoryMergeGate;
|
|
141
|
+
logger?: Logger;
|
|
142
|
+
now?: () => Date;
|
|
143
|
+
};
|
|
144
|
+
export type HostedFactoryRunReport = {
|
|
145
|
+
status: 'completed' | 'fenced' | 'lease-lost';
|
|
146
|
+
discovered: number;
|
|
147
|
+
triaged: string[];
|
|
148
|
+
dispatched: string[];
|
|
149
|
+
reconciled: string[];
|
|
150
|
+
awaitingClarification: string[];
|
|
151
|
+
skipped: Array<{
|
|
152
|
+
issueKey: string;
|
|
153
|
+
reason: string;
|
|
154
|
+
}>;
|
|
155
|
+
errors: Array<{
|
|
156
|
+
issueKey?: string;
|
|
157
|
+
message: string;
|
|
158
|
+
}>;
|
|
159
|
+
};
|
|
160
|
+
export type HostedFactoryCompletionResult = {
|
|
161
|
+
status: 'fenced' | 'not-found';
|
|
162
|
+
invocationId: string;
|
|
163
|
+
} | {
|
|
164
|
+
status: 'updated' | 'terminal';
|
|
165
|
+
invocationId: string;
|
|
166
|
+
issueKey: string;
|
|
167
|
+
phase: HostedFactoryIssuePhase;
|
|
168
|
+
};
|
|
169
|
+
export interface HostedFactory {
|
|
170
|
+
runOnce(): Promise<HostedFactoryRunReport>;
|
|
171
|
+
ingestCompletion(completion: HostedFactoryCompletion): Promise<HostedFactoryCompletionResult>;
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hosted/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/hosted/types.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export { linearByStatePath, linearCommentPath, linearIssuePath, } from './consta
|
|
|
10
10
|
export { slackMessagePath, slackReplyPath, } from './constants/slack.js';
|
|
11
11
|
export { agentSpecWithRenderedTask, mergePolicyLine, renderAgentTask, } from './dispatch/templates.js';
|
|
12
12
|
export type { RenderAgentTaskInput, TemplateIssue, TemplateRoute, } from './dispatch/templates.js';
|
|
13
|
+
export * from './featuremap/index.js';
|
|
13
14
|
export { createRelayflowPolicyRegistry, dispatchRelayflowForChangeEvent, dispatchRelayflowForTrigger, RelayflowPolicyRegistry, triggerEventFromChangeEvent, } from './dispatch/relayflow-registry.js';
|
|
14
15
|
export type { DispatchRelayflowOptions, IntegrationTrigger, RelayflowDynamicClient, RelayflowDynamicProviderClient, RelayflowDispatchResult, RelayflowPolicyEntry, TriggerEvent, TriggerInputMapper, TriggerMapperContext, } from './dispatch/relayflow-registry.js';
|
|
15
16
|
export { FACTORY_AGENT_EXIT_TIMEOUT_ENV, createFleet, parseOwnedBrokerAgentExitTimeoutMs, resolveOwnedBrokerAgentExitTimeoutMs, } from './fleet/create-fleet.js';
|
|
@@ -23,22 +24,22 @@ export { RelayfileCloudMountClient, resolveFactoryWorkspace, } from './mount/rel
|
|
|
23
24
|
export { RelayfileGithubConnectionWrite } from './mount/relayfile-github-connection-write.js';
|
|
24
25
|
export { ensureFactoryIntegrations, inspectFactoryIntegration, openIntegrationUrl, } from './mount/relayfile-integration-preflight.js';
|
|
25
26
|
export type { FactoryIntegrationObservation, FactoryIntegrationPreflightIO, } from './mount/relayfile-integration-preflight.js';
|
|
26
|
-
export type { ActiveWorkspaceResolver, RelayFileClientLike, RelayfileCloudMountClientConfig, ResolvedFactoryWorkspace, } from './mount/relayfile-cloud-mount-client.js';
|
|
27
|
+
export type { ActiveWorkspaceResolver, LocalMountHealthEvent, RelayFileClientLike, RelayfileCloudMountClientConfig, ResolvedFactoryWorkspace, } from './mount/relayfile-cloud-mount-client.js';
|
|
27
28
|
export type { GitCommandRunner, RelayfileGithubConnectionWriteConfig, } from './mount/relayfile-github-connection-write.js';
|
|
28
29
|
export { GhCliGithubMergeGate, GithubMergeGate, closeProbePr, defaultGhRunner, evaluateGithubMergeGate, explicitLinkedIssueKey, parseStandaloneBabysitTarget, readStandalonePullRequest, standaloneBabysitterAgentName, } from './github/index.js';
|
|
29
30
|
export type { CloseProbePrInput, CloseProbePrResult, GhRunner, GhRunResult, GithubMergeInput, GithubMergeGateInput, GithubMergeGatePort, GithubMergeResult, GithubMergeGateVerdict, StandaloneBabysitTarget, StandalonePullRequest, } from './github/index.js';
|
|
30
|
-
export { BatchTracker, DEFAULT_FACTORY_LOOP_HEARTBEAT_PATH, DEFAULT_FACTORY_LOOP_REGISTRY_PATH, FactoryReaper, checkFactoryLoopLiveness, createFactory, FactoryLoop, issueKey, isDispatchableIssue, isRealLinearIssue, githubIssuePathParts, parseGithubFactoryIssue, parseLinearIssue, readLinearIssueWithCanonicalFallback, readFactoryInFlightRegistry, readFactoryLoopHeartbeat, reapFactoryOrphansOnce, } from './orchestrator/index.js';
|
|
31
|
-
export type { InFlightIssue, QueuedIssue, TrackedAgent } from './orchestrator/index.js';
|
|
31
|
+
export { BatchTracker, DEFAULT_FACTORY_LOOP_HEARTBEAT_PATH, DEFAULT_FACTORY_LOOP_REGISTRY_PATH, FactoryReaper, checkFactoryLoopLiveness, createFactory, FactoryLoop, dependencyIdentity, findDependencyCycle, issueKey, isDispatchableIssue, isRealLinearIssue, githubIssuePathParts, parseGithubFactoryIssue, parseBlockedBy, parseLinearIssue, readLinearIssueWithCanonicalFallback, readFactoryInFlightRegistry, readFactoryLoopHeartbeat, reapFactoryOrphansOnce, } from './orchestrator/index.js';
|
|
32
|
+
export type { DeclaredDependency, DependencyAdmission, DependencyBlocker, InFlightIssue, ParkedIssue, QueuedIssue, ResolvedDependency, TrackedAgent, } from './orchestrator/index.js';
|
|
32
33
|
export { HeuristicTriage, LlmTriage, TieredTriage, TriageDecisionSchema, } from './triage/index.js';
|
|
33
34
|
export type { HeuristicTriageOptions, LlmTriageOptions, } from './triage/index.js';
|
|
34
|
-
export { GhCliGithubWriteback, linearCommentName, MountGithubRead, MountLinearWriteback, MountSlackWriteback, } from './writeback/index.js';
|
|
35
|
-
export type { GhCliGithubWritebackConfig, LinearCommentPayload, LinearCreateIssuePayload, LinearStateIds, MountLinearWritebackConfig, MountSlackWritebackConfig, } from './writeback/index.js';
|
|
35
|
+
export { GhCliGithubWriteback, FACTORY_MOUNT_HEALTH_PATH, linearCommentName, MountGithubRead, MountLinearWriteback, MountSlackWriteback, publishFactoryMountHealth, } from './writeback/index.js';
|
|
36
|
+
export type { FactoryMountHealthRecord, GhCliGithubWritebackConfig, LinearCommentPayload, LinearCreateIssuePayload, LinearStateIds, MountLinearWritebackConfig, MountSlackWritebackConfig, } from './writeback/index.js';
|
|
36
37
|
export { AGENT_RELAY_FACTORY_NODE_CONFIG_ENV, createFactoryNodeDefinition, DEFAULT_FACTORY_NODE_CONFIG_PATH, FACTORY_NODE_CONFIG_ENV, factoryNodeInventorySync, parseFactoryNodeConfig, readFactoryNodeConfigSync, resolveFactoryNodeConfigPath, runRelayflowsWorkflow, } from './node/factory-node.js';
|
|
37
38
|
export type { FactoryNodeDefinitionOptions, FactoryNodeInventoryAgent, FactoryNodeInventorySync, WorkflowRunner, WorkflowRunnerInput, WorkflowRunnerResult, } from './node/factory-node.js';
|
|
38
39
|
export { assertInFactoryScope, factoryScopeSafety, isInFactoryScope, } from './safety/factory-scope.js';
|
|
39
40
|
export type { FactoryScopeSafety, NormalizedFactoryScopeSafety, } from './safety/factory-scope.js';
|
|
40
|
-
export { canonicalMountPaths, createWorkspaceScopedEventClient, deliveryTargetsFor, eventPathGlobsForIntegration, filesystemEventToChangeEvent, filterLinearPredicateSpecs, globMatchesPath, globSegmentMatches, hasLinearPredicates, integrationRelayFileSyncOptions, isLinearIssueEventPath, linearIssueMatchesPredicates, linearRecordCandidates, linearScopePredicates, normalizeChangePath, relayfileSdkPathFiltersFor, slackListenDms, subscriptionSpecsFor, } from './subscriptions/index.js';
|
|
41
|
-
export type { ConnectedIntegrationLike, DeliveryTargets, FilesystemEventLike, IntegrationRelayFileSyncOptionsInput, LinearPredicateSubscriptionSpec, LinearScopePredicates, LocalMountRoot, RelayfileEventClient, RelayFileSyncFactory, RelayFileSyncLike, SubscriptionSpec, TokenProvider, WatchRegistration, WorkspaceEventClientSource, WorkspaceScopedEventClientOptions, WorkspaceScopedSubscribeOptions, ChangeEvent as SubscriptionChangeEvent, } from './subscriptions/index.js';
|
|
41
|
+
export { canonicalMountPaths, createWorkspaceScopedEventClient, deliveryTargetsFor, eventPathGlobsForIntegration, filesystemEventToChangeEvent, filterLinearPredicateSpecs, filterSlackThreadReplySpecs, globMatchesPath, globSegmentMatches, hasLinearPredicates, integrationRelayFileSyncOptions, isLinearIssueEventPath, isSlackMessageEventPath, linearIssueMatchesPredicates, linearRecordCandidates, linearScopePredicates, normalizeChangePath, relayfileSdkPathFiltersFor, parseSlackThreadReply, slackThreadReplyGlob, slackListenDms, subscriptionSpecsFor, } from './subscriptions/index.js';
|
|
42
|
+
export type { ConnectedIntegrationLike, DeliveryTargets, FilesystemEventLike, IntegrationRelayFileSyncOptionsInput, LinearPredicateSubscriptionSpec, LinearScopePredicates, LocalMountRoot, SlackThreadPredicateSubscriptionSpec, SlackThreadReply, SlackThreadScopePredicates, RelayfileEventClient, RelayFileSyncFactory, RelayFileSyncLike, SubscriptionSpec, TokenProvider, WatchRegistration, WorkspaceEventClientSource, WorkspaceScopedEventClientOptions, WorkspaceScopedSubscribeOptions, ChangeEvent as SubscriptionChangeEvent, } from './subscriptions/index.js';
|
|
42
43
|
export type { Capability, ChangeEvent, Clock, EventPage, GithubConnectionWrite, FactoryIntegrationConnectionStatus, FactoryIntegrationConnections, FactoryIntegrationConnectResult, FactoryIntegrationProvider, GithubPublishPullRequestInput, GithubPublishPullRequestResult, LocalMountOptions, MountClient, ProviderSyncStatus, SubscribeOptions, Subscription, AgentSpec, FleetClient, RestartPolicy, RosterEntry, SendInput, SpawnInput, SpawnResult, GithubRead, GithubIssueStatus, GithubWriteback, LinearWriteback, Logger, SlackWriteback, TelemetrySink, FactoryEventReporter, FactoryEventReportResult, } from './ports/index.js';
|
|
43
44
|
export { FACTORY_CLOUD_EVENT_CONTRACT_V1, FACTORY_CLOUD_EVENT_MAX_BATCH_SIZE, FACTORY_CLOUD_EVENT_MAX_PAYLOAD_BYTES, FACTORY_CLOUD_EVENT_TYPES, FACTORY_CLOUD_CANCELLATION_REASONS_V1, FACTORY_CLOUD_RELEASE_REASONS_V1, FactoryCloudEventAttributesV1Schema, FactoryCloudEventBatchV1Schema, FactoryCloudEventInputV1Schema, FactoryCloudEventV1Schema, FactoryCloudInstanceV1Schema, FactoryCloudSpanIdV1Schema, FactoryCloudTraceIdV1Schema, createFactoryCloudEventV1, factoryCloudReleaseReasonV1, factoryRunTraceIdV1, isCriticalFactoryCloudEvent, } from './observability/events.js';
|
|
44
45
|
export { FileFactoryCloudEventOutbox } from './observability/outbox.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,7 @@ export { resolveFactoryStates, stateResolutionFromIds, } from './linear/state-re
|
|
|
6
6
|
export { linearByStatePath, linearCommentPath, linearIssuePath, } from './constants/linear.js';
|
|
7
7
|
export { slackMessagePath, slackReplyPath, } from './constants/slack.js';
|
|
8
8
|
export { agentSpecWithRenderedTask, mergePolicyLine, renderAgentTask, } from './dispatch/templates.js';
|
|
9
|
+
export * from './featuremap/index.js';
|
|
9
10
|
export { createRelayflowPolicyRegistry, dispatchRelayflowForChangeEvent, dispatchRelayflowForTrigger, RelayflowPolicyRegistry, triggerEventFromChangeEvent, } from './dispatch/relayflow-registry.js';
|
|
10
11
|
export { FACTORY_AGENT_EXIT_TIMEOUT_ENV, createFleet, parseOwnedBrokerAgentExitTimeoutMs, resolveOwnedBrokerAgentExitTimeoutMs, } from './fleet/create-fleet.js';
|
|
11
12
|
export { ensureRelayBroker } from './fleet/ensure-relay-broker.js';
|
|
@@ -15,12 +16,12 @@ export { RelayfileCloudMountClient, resolveFactoryWorkspace, } from './mount/rel
|
|
|
15
16
|
export { RelayfileGithubConnectionWrite } from './mount/relayfile-github-connection-write.js';
|
|
16
17
|
export { ensureFactoryIntegrations, inspectFactoryIntegration, openIntegrationUrl, } from './mount/relayfile-integration-preflight.js';
|
|
17
18
|
export { GhCliGithubMergeGate, GithubMergeGate, closeProbePr, defaultGhRunner, evaluateGithubMergeGate, explicitLinkedIssueKey, parseStandaloneBabysitTarget, readStandalonePullRequest, standaloneBabysitterAgentName, } from './github/index.js';
|
|
18
|
-
export { BatchTracker, DEFAULT_FACTORY_LOOP_HEARTBEAT_PATH, DEFAULT_FACTORY_LOOP_REGISTRY_PATH, FactoryReaper, checkFactoryLoopLiveness, createFactory, FactoryLoop, issueKey, isDispatchableIssue, isRealLinearIssue, githubIssuePathParts, parseGithubFactoryIssue, parseLinearIssue, readLinearIssueWithCanonicalFallback, readFactoryInFlightRegistry, readFactoryLoopHeartbeat, reapFactoryOrphansOnce, } from './orchestrator/index.js';
|
|
19
|
+
export { BatchTracker, DEFAULT_FACTORY_LOOP_HEARTBEAT_PATH, DEFAULT_FACTORY_LOOP_REGISTRY_PATH, FactoryReaper, checkFactoryLoopLiveness, createFactory, FactoryLoop, dependencyIdentity, findDependencyCycle, issueKey, isDispatchableIssue, isRealLinearIssue, githubIssuePathParts, parseGithubFactoryIssue, parseBlockedBy, parseLinearIssue, readLinearIssueWithCanonicalFallback, readFactoryInFlightRegistry, readFactoryLoopHeartbeat, reapFactoryOrphansOnce, } from './orchestrator/index.js';
|
|
19
20
|
export { HeuristicTriage, LlmTriage, TieredTriage, TriageDecisionSchema, } from './triage/index.js';
|
|
20
|
-
export { GhCliGithubWriteback, linearCommentName, MountGithubRead, MountLinearWriteback, MountSlackWriteback, } from './writeback/index.js';
|
|
21
|
+
export { GhCliGithubWriteback, FACTORY_MOUNT_HEALTH_PATH, linearCommentName, MountGithubRead, MountLinearWriteback, MountSlackWriteback, publishFactoryMountHealth, } from './writeback/index.js';
|
|
21
22
|
export { AGENT_RELAY_FACTORY_NODE_CONFIG_ENV, createFactoryNodeDefinition, DEFAULT_FACTORY_NODE_CONFIG_PATH, FACTORY_NODE_CONFIG_ENV, factoryNodeInventorySync, parseFactoryNodeConfig, readFactoryNodeConfigSync, resolveFactoryNodeConfigPath, runRelayflowsWorkflow, } from './node/factory-node.js';
|
|
22
23
|
export { assertInFactoryScope, factoryScopeSafety, isInFactoryScope, } from './safety/factory-scope.js';
|
|
23
|
-
export { canonicalMountPaths, createWorkspaceScopedEventClient, deliveryTargetsFor, eventPathGlobsForIntegration, filesystemEventToChangeEvent, filterLinearPredicateSpecs, globMatchesPath, globSegmentMatches, hasLinearPredicates, integrationRelayFileSyncOptions, isLinearIssueEventPath, linearIssueMatchesPredicates, linearRecordCandidates, linearScopePredicates, normalizeChangePath, relayfileSdkPathFiltersFor, slackListenDms, subscriptionSpecsFor, } from './subscriptions/index.js';
|
|
24
|
+
export { canonicalMountPaths, createWorkspaceScopedEventClient, deliveryTargetsFor, eventPathGlobsForIntegration, filesystemEventToChangeEvent, filterLinearPredicateSpecs, filterSlackThreadReplySpecs, globMatchesPath, globSegmentMatches, hasLinearPredicates, integrationRelayFileSyncOptions, isLinearIssueEventPath, isSlackMessageEventPath, linearIssueMatchesPredicates, linearRecordCandidates, linearScopePredicates, normalizeChangePath, relayfileSdkPathFiltersFor, parseSlackThreadReply, slackThreadReplyGlob, slackListenDms, subscriptionSpecsFor, } from './subscriptions/index.js';
|
|
24
25
|
export { FACTORY_CLOUD_EVENT_CONTRACT_V1, FACTORY_CLOUD_EVENT_MAX_BATCH_SIZE, FACTORY_CLOUD_EVENT_MAX_PAYLOAD_BYTES, FACTORY_CLOUD_EVENT_TYPES, FACTORY_CLOUD_CANCELLATION_REASONS_V1, FACTORY_CLOUD_RELEASE_REASONS_V1, FactoryCloudEventAttributesV1Schema, FactoryCloudEventBatchV1Schema, FactoryCloudEventInputV1Schema, FactoryCloudEventV1Schema, FactoryCloudInstanceV1Schema, FactoryCloudSpanIdV1Schema, FactoryCloudTraceIdV1Schema, createFactoryCloudEventV1, factoryCloudReleaseReasonV1, factoryRunTraceIdV1, isCriticalFactoryCloudEvent, } from './observability/events.js';
|
|
25
26
|
export { FileFactoryCloudEventOutbox } from './observability/outbox.js';
|
|
26
27
|
export { FactoryCloudReporter } from './observability/cloud-reporter.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAGlF,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC1E,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,yBAAyB,CAAA;AAMhC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,gBAAgB,EAChB,cAAc,GACf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,yBAAyB,EACzB,eAAe,EACf,eAAe,GAChB,MAAM,sBAAsB,CAAA;AAM7B,OAAO,EACL,6BAA6B,EAC7B,+BAA+B,EAC/B,2BAA2B,EAC3B,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,+BAA+B,CAAA;AAYtC,OAAO,EACL,8BAA8B,EAC9B,WAAW,EACX,kCAAkC,EAClC,oCAAoC,GACrC,MAAM,sBAAsB,CAAA;AAM7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAE/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAKnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EACL,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAA;AAC1F,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,yCAAyC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { type ActiveWorkspaceDescriptor, type CloudSession, type CloudSessionOptions } from '@agent-relay/cloud';
|
|
2
2
|
import { type ChangeEvent, type DeleteFileInput, type EventFeedResponse, type FileReadResponse, type GetEventsOptions, type ListTreeOptions, type ResourceAtEventResult, type OperationStatusResponse, type Subscription, type TreeResponse, type WriteFileInput, type WriteQueuedResponse } from '@relayfile/sdk';
|
|
3
|
-
import type { EventPage, FactoryIntegrationConnections, FactoryIntegrationProvider, GithubConnectionWrite, LocalMountOptions, MountClient, ProviderSyncStatus, SubscribeOptions } from '../ports/index.js';
|
|
3
|
+
import type { EventPage, FactoryIntegrationConnections, FactoryIntegrationProvider, GithubConnectionWrite, LocalMountOptions, Logger, MountClient, ProviderSyncStatus, SubscribeOptions } from '../ports/index.js';
|
|
4
4
|
import { type RelayfileEventClient, type TokenProvider } from '../subscriptions/index.js';
|
|
5
5
|
import { type EnsureLocalMountOptions } from './local-mount-preflight.js';
|
|
6
|
-
export declare const FACTORY_RELAYFILE_SCOPES: readonly ["relayfile:fs:read:/linear/issues/**", "relayfile:fs:read:/linear/states/**", "relayfile:fs:write:/linear/issues/**", "relayfile:fs:read:/github/repos/**", "relayfile:fs:write:/github/repos/**", "relayfile:fs:read:/slack/channels/**", "relayfile:fs:write:/slack/channels/**", "relayfile:fs:read:/slack/users/**"];
|
|
6
|
+
export declare const FACTORY_RELAYFILE_SCOPES: readonly ["relayfile:fs:read:/linear/issues/**", "relayfile:fs:read:/linear/states/**", "relayfile:fs:write:/linear/issues/**", "relayfile:fs:read:/github/repos/**", "relayfile:fs:write:/github/repos/**", "relayfile:fs:read:/slack/channels/**", "relayfile:fs:write:/slack/channels/**", "relayfile:fs:read:/slack/users/**", "relayfile:fs:read:/factory/observability/**", "relayfile:fs:write:/factory/observability/**"];
|
|
7
7
|
export type CloudSessionProvider = (options?: CloudSessionOptions) => Promise<CloudSession>;
|
|
8
8
|
export type ActiveWorkspaceResolver = (options?: {
|
|
9
9
|
interactive?: boolean;
|
|
@@ -53,6 +53,16 @@ export interface RelayfileWorkspaceHandleLike {
|
|
|
53
53
|
}
|
|
54
54
|
export interface MountedWorkspaceHandleLike {
|
|
55
55
|
stop(): Promise<void>;
|
|
56
|
+
status?(): Promise<{
|
|
57
|
+
ready: boolean;
|
|
58
|
+
}>;
|
|
59
|
+
expiresAt?: string | null;
|
|
60
|
+
suggestedRefreshAt?: string | null;
|
|
61
|
+
}
|
|
62
|
+
export interface LocalMountHealthEvent {
|
|
63
|
+
state: 'degraded' | 'recovered';
|
|
64
|
+
reason: 'mount_stale' | 'mount_refresh_failed';
|
|
65
|
+
degradedMounts: number;
|
|
56
66
|
}
|
|
57
67
|
export interface RelayfileSetupLike {
|
|
58
68
|
joinWorkspace(workspaceId: string, options?: {
|
|
@@ -68,6 +78,7 @@ export interface RelayfileSetupLike {
|
|
|
68
78
|
agentName?: string;
|
|
69
79
|
scopes?: string[];
|
|
70
80
|
verifyProvider?: boolean;
|
|
81
|
+
supervise?: boolean;
|
|
71
82
|
readyTimeoutMs?: number;
|
|
72
83
|
}): Promise<MountedWorkspaceHandleLike>;
|
|
73
84
|
}
|
|
@@ -94,6 +105,12 @@ export interface RelayfileCloudMountClientConfig {
|
|
|
94
105
|
tokenProvider?: TokenProvider;
|
|
95
106
|
baseUrl?: string;
|
|
96
107
|
eventClient?: RelayfileEventClient;
|
|
108
|
+
logger?: Logger;
|
|
109
|
+
onLocalMountHealth?: (event: LocalMountHealthEvent) => Promise<void> | void;
|
|
110
|
+
/** Internal health cadence override for tests. */
|
|
111
|
+
localMountHealthIntervalMs?: number;
|
|
112
|
+
/** Internal mount-work concurrency override for tests. */
|
|
113
|
+
localMountMaxConcurrency?: number;
|
|
97
114
|
isAllowedDraft?: (path: string, content: unknown, opts?: {
|
|
98
115
|
guarded?: boolean;
|
|
99
116
|
}) => boolean | Promise<boolean>;
|
|
@@ -122,6 +139,7 @@ export type RelayFileClientLike = {
|
|
|
122
139
|
getToken?(): Promise<string> | string;
|
|
123
140
|
getBaseUrl?(): string;
|
|
124
141
|
};
|
|
142
|
+
export declare function relayfileWorkspaceTokenProvider(client: RelayFileClientLike, workspace: RelayfileWorkspaceHandleLike): TokenProvider;
|
|
125
143
|
export declare class RelayfileCloudMountClient implements MountClient {
|
|
126
144
|
#private;
|
|
127
145
|
readonly workspaceId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relayfile-cloud-mount-client.d.ts","sourceRoot":"","sources":["../../src/mount/relayfile-cloud-mount-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,yBAAyB,EAC9B,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACzB,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"relayfile-cloud-mount-client.d.ts","sourceRoot":"","sources":["../../src/mount/relayfile-cloud-mount-client.ts"],"names":[],"mappings":"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"}
|