@fabric-harness/client 2.1.2 → 2.2.1
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/NOTICE +4 -0
- package/README.md +11 -1
- package/dist/conformance.d.ts +36 -0
- package/dist/conformance.d.ts.map +1 -0
- package/dist/conformance.js +81 -0
- package/dist/conformance.js.map +1 -0
- package/dist/index.d.ts +62 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +79 -7
- package/dist/index.js.map +1 -1
- package/package.json +7 -5
package/NOTICE
ADDED
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Typed HTTP client for [Fabric Harness](https://github.com/Fabric-Pro/fabric-harness) servers.
|
|
4
4
|
|
|
5
|
-
Agent interactions ride the durable submission lifecycle: `send` is fire-and-forget (202 + submission id + offset-addressed stream), `wait` polls the submission until it settles, `history`/`observe` read the conversation stream by offset (catch-up + live tail), `abort` records a durable abort, and `prompt` is the synchronous convenience.
|
|
5
|
+
Agent interactions ride the durable submission lifecycle: `send` is fire-and-forget (202 + submission id + offset-addressed stream), `wait` polls the submission until it settles, `history`/`observe` read the conversation stream by offset (catch-up + live tail), `abort` records a durable abort, and `prompt` is the synchronous convenience. Finite jobs support synchronous results and durable run receipts.
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
npm install @fabric-harness/client
|
|
@@ -29,6 +29,16 @@ for await (const record of client.agents.observe({ agent: 'support', id: 'user-4
|
|
|
29
29
|
const { result } = await client.agents.prompt({ agent: 'support', id: 'user-42', message: 'status?' });
|
|
30
30
|
const jobResult = await client.jobs.invoke('daily-report', { day: '2026-07-08' });
|
|
31
31
|
|
|
32
|
+
// Durable finite run: admit, inspect/observe, and abort without a long HTTP request.
|
|
33
|
+
const run = await client.jobs.invoke(
|
|
34
|
+
'daily-report',
|
|
35
|
+
{ day: '2026-07-08' },
|
|
36
|
+
{ wait: false, idempotencyKey: 'daily-report:2026-07-08' },
|
|
37
|
+
);
|
|
38
|
+
const status = await client.runs.get(run.runId);
|
|
39
|
+
for await (const event of client.runs.observe(run.runId)) console.log(event);
|
|
40
|
+
await client.runs.abort(run.runId);
|
|
41
|
+
|
|
32
42
|
// Durable abort for everything unsettled on the instance session.
|
|
33
43
|
await client.agents.abort({ agent: 'support', id: 'user-42' });
|
|
34
44
|
```
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export interface DeploymentConformanceOptions {
|
|
2
|
+
target: 'node' | 'temporal' | 'cloudflare' | 'databricks-app' | string;
|
|
3
|
+
baseUrl: string;
|
|
4
|
+
headers?: Record<string, string>;
|
|
5
|
+
job?: {
|
|
6
|
+
name: string;
|
|
7
|
+
input?: unknown;
|
|
8
|
+
};
|
|
9
|
+
agent?: {
|
|
10
|
+
name: string;
|
|
11
|
+
instanceId?: string;
|
|
12
|
+
session?: string;
|
|
13
|
+
message?: string;
|
|
14
|
+
};
|
|
15
|
+
timeoutMs?: number;
|
|
16
|
+
fetch?: typeof globalThis.fetch;
|
|
17
|
+
}
|
|
18
|
+
export interface DeploymentConformanceCheck {
|
|
19
|
+
name: string;
|
|
20
|
+
status: 'passed' | 'failed';
|
|
21
|
+
durationMs: number;
|
|
22
|
+
detail?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface DeploymentConformanceResult {
|
|
25
|
+
schemaVersion: 1;
|
|
26
|
+
target: string;
|
|
27
|
+
baseUrl: string;
|
|
28
|
+
startedAt: string;
|
|
29
|
+
completedAt: string;
|
|
30
|
+
passed: boolean;
|
|
31
|
+
checks: DeploymentConformanceCheck[];
|
|
32
|
+
}
|
|
33
|
+
/** One black-box HTTP contract for every Fabric Harness deployment target. */
|
|
34
|
+
export declare function runDeploymentConformance(options: DeploymentConformanceOptions): Promise<DeploymentConformanceResult>;
|
|
35
|
+
export declare function assertDeploymentConformance(options: DeploymentConformanceOptions): Promise<DeploymentConformanceResult>;
|
|
36
|
+
//# sourceMappingURL=conformance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conformance.d.ts","sourceRoot":"","sources":["../src/conformance.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,YAAY,GAAG,gBAAgB,GAAG,MAAM,CAAC;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,GAAG,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACxC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,2BAA2B;IAC1C,aAAa,EAAE,CAAC,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,0BAA0B,EAAE,CAAC;CACtC;AAED,8EAA8E;AAC9E,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAyC1H;AAED,wBAAsB,2BAA2B,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAI7H"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { createFabricClient } from './index.js';
|
|
2
|
+
/** One black-box HTTP contract for every Fabric Harness deployment target. */
|
|
3
|
+
export async function runDeploymentConformance(options) {
|
|
4
|
+
const startedAt = new Date().toISOString();
|
|
5
|
+
const checks = [];
|
|
6
|
+
const fetchImpl = options.fetch ?? globalThis.fetch;
|
|
7
|
+
const baseUrl = options.baseUrl.replace(/\/+$/u, '');
|
|
8
|
+
const client = createFabricClient({ baseUrl, ...(options.headers ? { headers: options.headers } : {}), fetch: fetchImpl });
|
|
9
|
+
const timeoutMs = options.timeoutMs ?? 60_000;
|
|
10
|
+
const check = async (name, operation) => {
|
|
11
|
+
const started = Date.now();
|
|
12
|
+
try {
|
|
13
|
+
await operation();
|
|
14
|
+
checks.push({ name, status: 'passed', durationMs: Date.now() - started });
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
checks.push({ name, status: 'failed', durationMs: Date.now() - started, detail: safeError(error) });
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
await check('health', async () => { await requireOk(fetchImpl, `${baseUrl}/health`, options.headers); });
|
|
21
|
+
await check('readiness', async () => {
|
|
22
|
+
const response = await requireOk(fetchImpl, `${baseUrl}/ready`, options.headers);
|
|
23
|
+
const body = await response.json();
|
|
24
|
+
if (body.ok !== true)
|
|
25
|
+
throw new Error('Target readiness body did not report ok=true.');
|
|
26
|
+
});
|
|
27
|
+
const job = options.job;
|
|
28
|
+
if (job) {
|
|
29
|
+
await check('finite-job-lifecycle', async () => {
|
|
30
|
+
const receipt = await client.jobs.invoke(job.name, job.input ?? {}, { wait: false, idempotencyKey: `conformance-${Date.now()}` });
|
|
31
|
+
const run = await poll(async () => client.runs.get(receipt.runId), (value) => ['completed', 'failed', 'aborted'].includes(value.status), timeoutMs);
|
|
32
|
+
if (run.status !== 'completed')
|
|
33
|
+
throw new Error(`Job run settled as ${run.status}.`);
|
|
34
|
+
const events = await client.runs.events(receipt.runId, { offset: '0', limit: 100 });
|
|
35
|
+
if (!Array.isArray(events.events) || typeof events.nextOffset !== 'string')
|
|
36
|
+
throw new Error('Run events do not satisfy the offset contract.');
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
const agentTarget = options.agent;
|
|
40
|
+
if (agentTarget) {
|
|
41
|
+
await check('persistent-agent-lifecycle', async () => {
|
|
42
|
+
const address = { agent: agentTarget.name, id: agentTarget.instanceId ?? `conformance-${Date.now()}`, ...(agentTarget.session ? { session: agentTarget.session } : {}) };
|
|
43
|
+
const receipt = await client.agents.send({ ...address, message: agentTarget.message ?? 'Reply with the word ready.' });
|
|
44
|
+
const settled = await client.agents.wait({ ...address, submissionId: receipt.submissionId }, { timeoutMs, pollIntervalMs: 50 });
|
|
45
|
+
if (settled.status !== 'settled' || settled.outcome !== 'completed')
|
|
46
|
+
throw new Error(`Agent submission settled as ${settled.status}/${settled.outcome ?? 'unknown'}.`);
|
|
47
|
+
const page = await client.agents.read({ ...address, offset: '0', limit: 100 });
|
|
48
|
+
if (!Array.isArray(page.batches) || typeof page.nextOffset !== 'string')
|
|
49
|
+
throw new Error('Conversation does not satisfy the offset contract.');
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return { schemaVersion: 1, target: options.target, baseUrl, startedAt, completedAt: new Date().toISOString(), passed: checks.every((item) => item.status === 'passed'), checks };
|
|
53
|
+
}
|
|
54
|
+
export async function assertDeploymentConformance(options) {
|
|
55
|
+
const result = await runDeploymentConformance(options);
|
|
56
|
+
if (!result.passed)
|
|
57
|
+
throw new Error(`Deployment conformance failed for ${options.target}: ${result.checks.filter((check) => check.status === 'failed').map((check) => `${check.name}: ${check.detail}`).join('; ')}`);
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
60
|
+
async function requireOk(fetchImpl, url, headers) {
|
|
61
|
+
const response = await fetchImpl(url, { ...(headers ? { headers } : {}) });
|
|
62
|
+
if (!response.ok)
|
|
63
|
+
throw new Error(`${new URL(url).pathname} returned HTTP ${response.status}.`);
|
|
64
|
+
return response;
|
|
65
|
+
}
|
|
66
|
+
async function poll(read, terminal, timeoutMs) {
|
|
67
|
+
const deadline = Date.now() + timeoutMs;
|
|
68
|
+
while (true) {
|
|
69
|
+
const value = await read();
|
|
70
|
+
if (terminal(value))
|
|
71
|
+
return value;
|
|
72
|
+
if (Date.now() >= deadline)
|
|
73
|
+
throw new Error(`Timed out after ${timeoutMs}ms.`);
|
|
74
|
+
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function safeError(error) {
|
|
78
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
79
|
+
return message.replace(/Bearer\s+\S+/giu, 'Bearer [REDACTED]').replace(/([?&](?:token|key|secret)=)[^&\s]+/giu, '$1[REDACTED]').slice(0, 500);
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=conformance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conformance.js","sourceRoot":"","sources":["../src/conformance.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -66,10 +66,51 @@ export interface ObserveOptions {
|
|
|
66
66
|
pollIntervalMs?: number;
|
|
67
67
|
signal?: AbortSignal;
|
|
68
68
|
}
|
|
69
|
+
export interface JobInvokeOptions {
|
|
70
|
+
/** Return immediately with a run receipt instead of waiting for output. */
|
|
71
|
+
wait: false;
|
|
72
|
+
idempotencyKey?: string;
|
|
73
|
+
parentRunId?: string;
|
|
74
|
+
}
|
|
75
|
+
export interface JobRunReceipt {
|
|
76
|
+
runId: string;
|
|
77
|
+
status: 'queued' | 'running' | 'completed' | 'failed' | 'aborted';
|
|
78
|
+
statusUrl: string;
|
|
79
|
+
eventsUrl: string;
|
|
80
|
+
deduped?: boolean;
|
|
81
|
+
}
|
|
82
|
+
export interface JobRun<TOutput = unknown> {
|
|
83
|
+
runId: string;
|
|
84
|
+
job: string;
|
|
85
|
+
status: 'queued' | 'running' | 'completed' | 'failed' | 'aborted';
|
|
86
|
+
createdAt: string;
|
|
87
|
+
updatedAt: string;
|
|
88
|
+
startedAt?: string;
|
|
89
|
+
completedAt?: string;
|
|
90
|
+
output?: TOutput;
|
|
91
|
+
error?: {
|
|
92
|
+
type: string;
|
|
93
|
+
message: string;
|
|
94
|
+
};
|
|
95
|
+
tenantId?: string;
|
|
96
|
+
parentRunId?: string;
|
|
97
|
+
}
|
|
98
|
+
export interface JobRunEventPage {
|
|
99
|
+
events: Array<Record<string, unknown>>;
|
|
100
|
+
nextOffset: string;
|
|
101
|
+
upToDate: boolean;
|
|
102
|
+
}
|
|
69
103
|
export declare class FabricClientError extends Error {
|
|
70
104
|
readonly status: number;
|
|
71
105
|
readonly body: unknown;
|
|
72
|
-
|
|
106
|
+
readonly code?: string;
|
|
107
|
+
readonly retryable: boolean;
|
|
108
|
+
readonly details?: Record<string, unknown>;
|
|
109
|
+
constructor(message: string, status: number, body: unknown, options?: {
|
|
110
|
+
code?: string;
|
|
111
|
+
retryable?: boolean;
|
|
112
|
+
details?: Record<string, unknown>;
|
|
113
|
+
});
|
|
73
114
|
}
|
|
74
115
|
export interface FabricClient {
|
|
75
116
|
agents: {
|
|
@@ -85,11 +126,11 @@ export interface FabricClient {
|
|
|
85
126
|
submissionId?: string;
|
|
86
127
|
}>;
|
|
87
128
|
/** Current status of a submission; includes the outcome once settled. */
|
|
88
|
-
status(request:
|
|
129
|
+
status(request: AgentAddress & {
|
|
89
130
|
submissionId: string;
|
|
90
131
|
}): Promise<SubmissionStatus>;
|
|
91
132
|
/** Poll until the submission settles; resolves with its terminal status. */
|
|
92
|
-
wait(request:
|
|
133
|
+
wait(request: AgentAddress & {
|
|
93
134
|
submissionId: string;
|
|
94
135
|
}, options?: WaitOptions): Promise<SubmissionStatus>;
|
|
95
136
|
/** One offset-based page of the conversation stream. */
|
|
@@ -108,8 +149,25 @@ export interface FabricClient {
|
|
|
108
149
|
};
|
|
109
150
|
jobs: {
|
|
110
151
|
/** Invoke a finite job and return its result. */
|
|
111
|
-
invoke(name: string, payload?: unknown): Promise<
|
|
152
|
+
invoke<TOutput = unknown>(name: string, payload?: unknown): Promise<TOutput>;
|
|
153
|
+
/** Admit a finite job and return a durable run receipt without waiting. */
|
|
154
|
+
invoke(name: string, payload: unknown, options: JobInvokeOptions): Promise<JobRunReceipt>;
|
|
155
|
+
};
|
|
156
|
+
runs: {
|
|
157
|
+
get<TOutput = unknown>(runId: string): Promise<JobRun<TOutput>>;
|
|
158
|
+
events(runId: string, options?: {
|
|
159
|
+
offset?: string;
|
|
160
|
+
limit?: number;
|
|
161
|
+
}): Promise<JobRunEventPage>;
|
|
162
|
+
observe(runId: string, options?: ObserveOptions): AsyncGenerator<Record<string, unknown>>;
|
|
163
|
+
abort(runId: string): Promise<{
|
|
164
|
+
runId: string;
|
|
165
|
+
aborted: boolean;
|
|
166
|
+
status: JobRun['status'];
|
|
167
|
+
}>;
|
|
112
168
|
};
|
|
113
169
|
}
|
|
114
170
|
export declare function createFabricClient(options: FabricClientOptions): FabricClient;
|
|
171
|
+
export { assertDeploymentConformance, runDeploymentConformance } from './conformance.js';
|
|
172
|
+
export type { DeploymentConformanceCheck, DeploymentConformanceOptions, DeploymentConformanceResult } from './conformance.js';
|
|
115
173
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEtF,MAAM,WAAW,mBAAmB;IAClC,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,oDAAoD;IACpD,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,eAAe,GAAG,SAAS,CAAC;IAC3D,OAAO,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,wBAAwB,EAAE,CAAA;KAAE,CAAC,CAAC;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -20,22 +20,31 @@
|
|
|
20
20
|
export class FabricClientError extends Error {
|
|
21
21
|
status;
|
|
22
22
|
body;
|
|
23
|
-
|
|
23
|
+
code;
|
|
24
|
+
retryable;
|
|
25
|
+
details;
|
|
26
|
+
constructor(message, status, body, options = {}) {
|
|
24
27
|
super(message);
|
|
25
28
|
this.name = 'FabricClientError';
|
|
26
29
|
this.status = status;
|
|
27
30
|
this.body = body;
|
|
31
|
+
if (options.code !== undefined)
|
|
32
|
+
this.code = options.code;
|
|
33
|
+
this.retryable = options.retryable ?? false;
|
|
34
|
+
if (options.details !== undefined)
|
|
35
|
+
this.details = options.details;
|
|
28
36
|
}
|
|
29
37
|
}
|
|
30
38
|
export function createFabricClient(options) {
|
|
31
39
|
const baseUrl = options.baseUrl.replace(/\/+$/, '');
|
|
32
40
|
const fetchImpl = options.fetch ?? fetch;
|
|
33
|
-
async function request(method, path, body) {
|
|
41
|
+
async function request(method, path, body, headers) {
|
|
34
42
|
const response = await fetchImpl(`${baseUrl}${path}`, {
|
|
35
43
|
method,
|
|
36
44
|
headers: {
|
|
37
45
|
...(body !== undefined ? { 'content-type': 'application/json' } : {}),
|
|
38
46
|
...options.headers,
|
|
47
|
+
...headers,
|
|
39
48
|
},
|
|
40
49
|
...(body !== undefined ? { body: JSON.stringify(body) } : {}),
|
|
41
50
|
});
|
|
@@ -48,12 +57,24 @@ export function createFabricClient(options) {
|
|
|
48
57
|
parsed = text;
|
|
49
58
|
}
|
|
50
59
|
if (!response.ok) {
|
|
60
|
+
const envelope = parsed && typeof parsed === 'object' && 'error' in parsed && typeof parsed.error === 'object'
|
|
61
|
+
? parsed.error
|
|
62
|
+
: undefined;
|
|
51
63
|
const message = parsed && typeof parsed === 'object' && 'error' in parsed
|
|
52
64
|
? typeof parsed.error === 'string'
|
|
53
65
|
? (parsed.error)
|
|
54
66
|
: (parsed.error.message ?? `HTTP ${response.status}`)
|
|
55
67
|
: `HTTP ${response.status}`;
|
|
56
|
-
|
|
68
|
+
const errorOptions = {};
|
|
69
|
+
const code = typeof envelope?.code === 'string' ? envelope.code : typeof envelope?.type === 'string' ? envelope.type : undefined;
|
|
70
|
+
if (code !== undefined)
|
|
71
|
+
errorOptions.code = code;
|
|
72
|
+
if (typeof envelope?.retryable === 'boolean')
|
|
73
|
+
errorOptions.retryable = envelope.retryable;
|
|
74
|
+
if (envelope?.details && typeof envelope.details === 'object' && !Array.isArray(envelope.details)) {
|
|
75
|
+
errorOptions.details = envelope.details;
|
|
76
|
+
}
|
|
77
|
+
throw new FabricClientError(message, response.status, parsed, errorOptions);
|
|
57
78
|
}
|
|
58
79
|
return parsed;
|
|
59
80
|
}
|
|
@@ -75,7 +96,10 @@ export function createFabricClient(options) {
|
|
|
75
96
|
return request('GET', `${agentBase(address)}/conversation${query}`);
|
|
76
97
|
}
|
|
77
98
|
async function status(requestAddress) {
|
|
78
|
-
|
|
99
|
+
const query = requestAddress.session
|
|
100
|
+
? `?${new URLSearchParams({ session: requestAddress.session }).toString()}`
|
|
101
|
+
: '';
|
|
102
|
+
return request('GET', `${agentBase(requestAddress)}/submissions/${encodeURIComponent(requestAddress.submissionId)}${query}`);
|
|
79
103
|
}
|
|
80
104
|
const sleep = (ms, signal) => new Promise((resolve, reject) => {
|
|
81
105
|
const timer = setTimeout(() => {
|
|
@@ -88,6 +112,16 @@ export function createFabricClient(options) {
|
|
|
88
112
|
};
|
|
89
113
|
signal?.addEventListener('abort', onAbort, { once: true });
|
|
90
114
|
});
|
|
115
|
+
async function invokeJob(name, payload, invokeOptions) {
|
|
116
|
+
if (invokeOptions?.wait === false) {
|
|
117
|
+
return request('POST', `/jobs/${encodeURIComponent(name)}?wait=false`, payload ?? {}, {
|
|
118
|
+
...(invokeOptions.idempotencyKey ? { 'idempotency-key': invokeOptions.idempotencyKey } : {}),
|
|
119
|
+
...(invokeOptions.parentRunId ? { 'x-fabric-parent-run': invokeOptions.parentRunId } : {}),
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
const response = await request('POST', `/jobs/${encodeURIComponent(name)}`, payload ?? {});
|
|
123
|
+
return response.result;
|
|
124
|
+
}
|
|
91
125
|
return {
|
|
92
126
|
agents: {
|
|
93
127
|
async send(sendRequest) {
|
|
@@ -162,11 +196,49 @@ export function createFabricClient(options) {
|
|
|
162
196
|
},
|
|
163
197
|
},
|
|
164
198
|
jobs: {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
199
|
+
invoke: invokeJob,
|
|
200
|
+
},
|
|
201
|
+
runs: {
|
|
202
|
+
async get(runId) {
|
|
203
|
+
return request('GET', `/runs/${encodeURIComponent(runId)}`);
|
|
204
|
+
},
|
|
205
|
+
async events(runId, eventOptions = {}) {
|
|
206
|
+
const params = new URLSearchParams();
|
|
207
|
+
if (eventOptions.offset !== undefined)
|
|
208
|
+
params.set('offset', eventOptions.offset);
|
|
209
|
+
if (eventOptions.limit !== undefined)
|
|
210
|
+
params.set('limit', String(eventOptions.limit));
|
|
211
|
+
const query = params.size > 0 ? `?${params.toString()}` : '';
|
|
212
|
+
return request('GET', `/runs/${encodeURIComponent(runId)}/events${query}`);
|
|
213
|
+
},
|
|
214
|
+
async *observe(runId, observeOptions = {}) {
|
|
215
|
+
let offset = observeOptions.offset ?? '0';
|
|
216
|
+
const pollIntervalMs = observeOptions.pollIntervalMs ?? 500;
|
|
217
|
+
while (!observeOptions.signal?.aborted) {
|
|
218
|
+
const run = await request('GET', `/runs/${encodeURIComponent(runId)}`);
|
|
219
|
+
const terminal = ['completed', 'failed', 'aborted'].includes(run.status);
|
|
220
|
+
let page;
|
|
221
|
+
do {
|
|
222
|
+
page = await request('GET', `/runs/${encodeURIComponent(runId)}/events?offset=${encodeURIComponent(offset)}`);
|
|
223
|
+
for (const event of page.events)
|
|
224
|
+
yield event;
|
|
225
|
+
offset = page.nextOffset;
|
|
226
|
+
} while (!page.upToDate && !observeOptions.signal?.aborted);
|
|
227
|
+
if (terminal)
|
|
228
|
+
return;
|
|
229
|
+
try {
|
|
230
|
+
await sleep(pollIntervalMs, observeOptions.signal);
|
|
231
|
+
}
|
|
232
|
+
catch {
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
},
|
|
237
|
+
async abort(runId) {
|
|
238
|
+
return request('POST', `/runs/${encodeURIComponent(runId)}/abort`, {});
|
|
168
239
|
},
|
|
169
240
|
},
|
|
170
241
|
};
|
|
171
242
|
}
|
|
243
|
+
export { assertDeploymentConformance, runDeploymentConformance } from './conformance.js';
|
|
172
244
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fabric-harness/client",
|
|
3
|
-
"version": "2.1
|
|
3
|
+
"version": "2.2.1",
|
|
4
4
|
"description": "Typed HTTP client for Fabric Harness servers: send durable agent submissions, observe conversations by offset, wait for settlements, invoke jobs.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Fabric",
|
|
@@ -27,20 +27,22 @@
|
|
|
27
27
|
},
|
|
28
28
|
"publishConfig": {
|
|
29
29
|
"registry": "https://registry.npmjs.org",
|
|
30
|
-
"access": "public"
|
|
30
|
+
"access": "public",
|
|
31
|
+
"provenance": false
|
|
31
32
|
},
|
|
32
33
|
"main": "dist/index.js",
|
|
33
34
|
"types": "dist/index.d.ts",
|
|
34
35
|
"files": [
|
|
35
36
|
"dist",
|
|
36
37
|
"README.md",
|
|
37
|
-
"LICENSE"
|
|
38
|
+
"LICENSE",
|
|
39
|
+
"NOTICE"
|
|
38
40
|
],
|
|
39
41
|
"dependencies": {
|
|
40
|
-
"@fabric-harness/sdk": "^2.1
|
|
42
|
+
"@fabric-harness/sdk": "^2.2.1"
|
|
41
43
|
},
|
|
42
44
|
"devDependencies": {
|
|
43
|
-
"@fabric-harness/node": "^2.1
|
|
45
|
+
"@fabric-harness/node": "^2.2.1",
|
|
44
46
|
"@types/node": "^22.15.3",
|
|
45
47
|
"typescript": "^5.8.3",
|
|
46
48
|
"vitest": "^4.1.5"
|