@openwop/openwop 1.1.2 → 1.1.5
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/dist/client.d.ts +76 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +195 -0
- package/dist/client.js.map +1 -1
- package/dist/envelope-directive.d.ts +77 -0
- package/dist/envelope-directive.d.ts.map +1 -0
- package/dist/envelope-directive.js +89 -0
- package/dist/envelope-directive.js.map +1 -0
- package/dist/event-helpers.d.ts +4 -1
- package/dist/event-helpers.d.ts.map +1 -1
- package/dist/event-helpers.js +7 -0
- package/dist/event-helpers.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -1
- package/dist/index.js.map +1 -1
- package/dist/parse-refusal.d.ts +114 -0
- package/dist/parse-refusal.d.ts.map +1 -0
- package/dist/parse-refusal.js +216 -0
- package/dist/parse-refusal.js.map +1 -0
- package/dist/types.d.ts +161 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
- package/src/client.ts +203 -0
- package/src/envelope-directive.ts +110 -0
- package/src/event-helpers.ts +13 -0
- package/src/index.ts +28 -0
- package/src/parse-refusal.ts +311 -0
- package/src/types.ts +162 -0
package/dist/client.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* ../../auth.md for credential format.
|
|
9
9
|
*/
|
|
10
10
|
import { type EventsStreamOptions } from './sse.js';
|
|
11
|
-
import { type AuditVerifyResult, type BulkCancelRunsRequest, type BulkCancelRunsResponse, type Capabilities, type CancelRunRequest, type CancelRunResponse, type CreateRunRequest, type CreateRunResponse, type ForkRunRequest, type ForkRunResponse, type GetPromptRequest, type InterruptByTokenInspection, type DebugBundle, type DebugBundleOptions, type ListPromptsRequest, type ListPromptsResponse, type PromptTemplate, type RegisterWebhookRequest, type RegisterWebhookResponse, type PauseRunRequest, type PauseRunResponse, type PollEventsResponse, type RenderPromptRequest, type RenderPromptResponse, type ResolveInterruptByTokenResponse, type ResolveInterruptRequest, type ResolveInterruptResponse, type ResumeRunRequest, type ResumeRunResponse, type RunEventDoc, type RunSnapshot } from './types.js';
|
|
11
|
+
import { type AuditVerifyResult, type BulkCancelRunsRequest, type BulkCancelRunsResponse, type Capabilities, type CancelRunRequest, type CancelRunResponse, type CreateRunRequest, type CreateRunResponse, type ForkRunRequest, type ForkRunResponse, type Annotation, type CreateAnnotationRequest, type WorkspaceFile, type PutWorkspaceFileRequest, type GetPromptRequest, type InterruptByTokenInspection, type DebugBundle, type DebugBundleOptions, type ListPromptsRequest, type ListPromptsResponse, type PromptTemplate, type RegisterWebhookRequest, type RegisterWebhookResponse, type PauseRunRequest, type PauseRunResponse, type PollEventsResponse, type RenderPromptRequest, type RenderPromptResponse, type ResolveInterruptByTokenResponse, type ResolveInterruptRequest, type ResolveInterruptResponse, type ResumeRunRequest, type ResumeRunResponse, type RunAncestryResponse, type RunDiffResponse, type RunEventDoc, type RunSnapshot, type AgentInventoryEntry, type AgentInventoryResponse } from './types.js';
|
|
12
12
|
export interface OpenwopClientOptions {
|
|
13
13
|
/** Base URL of the openwop server, e.g., `https://api.example.com`. Trailing slash optional. */
|
|
14
14
|
readonly baseUrl: string;
|
|
@@ -65,6 +65,40 @@ export declare class OpenwopClient {
|
|
|
65
65
|
*/
|
|
66
66
|
bulkCancel: (body: BulkCancelRunsRequest, opts?: MutationOptions) => Promise<BulkCancelRunsResponse>;
|
|
67
67
|
fork: (runId: string, body: ForkRunRequest, opts?: MutationOptions) => Promise<ForkRunResponse>;
|
|
68
|
+
/**
|
|
69
|
+
* RFC 0056 — record a non-blocking quality annotation (rating / correction
|
|
70
|
+
* / label / flag) on a run/event/node. Returns the persisted `Annotation`.
|
|
71
|
+
* Throws on non-2xx (`501` when the host doesn't advertise
|
|
72
|
+
* `capabilities.feedback.supported`).
|
|
73
|
+
*/
|
|
74
|
+
createAnnotation: (runId: string, body: CreateAnnotationRequest, opts?: MutationOptions) => Promise<Annotation>;
|
|
75
|
+
/**
|
|
76
|
+
* RFC 0056 — list a run's annotations (tenant-scoped). Returns `null` when
|
|
77
|
+
* the host doesn't advertise `capabilities.feedback` (404/501), so callers
|
|
78
|
+
* can branch on capability discovery without try/catch.
|
|
79
|
+
*/
|
|
80
|
+
listAnnotations: (runId: string) => Promise<readonly Annotation[] | null>;
|
|
81
|
+
/**
|
|
82
|
+
* RFC 0040 §C — fetch the run's immediate parent in the cross-host
|
|
83
|
+
* composition chain. Returns `parent: null` for top-level runs;
|
|
84
|
+
* `parent.wellKnownUrl` is set when the parent is on a different
|
|
85
|
+
* host, so callers walk the chain one hop at a time.
|
|
86
|
+
*
|
|
87
|
+
* Returns `null` when the host doesn't advertise
|
|
88
|
+
* `capabilities.multiAgent.executionModel.crossHostCausation.ancestryEndpointSupported: true`
|
|
89
|
+
* (the endpoint returns 404 in that case per
|
|
90
|
+
* `spec/v1/multi-agent-execution.md` §"GET /v1/runs/{runId}/ancestry").
|
|
91
|
+
*/
|
|
92
|
+
ancestry: (runId: string) => Promise<RunAncestryResponse | null>;
|
|
93
|
+
/**
|
|
94
|
+
* RFC 0054 — deterministic, replay-aware structured diff of two runs
|
|
95
|
+
* (typically a run and its `:fork`). Requires `runs:read` on BOTH
|
|
96
|
+
* `runId` and `against`. Returns `null` when the host doesn't
|
|
97
|
+
* implement the endpoint (404 per `spec/v1/rest-endpoints.md`
|
|
98
|
+
* §`GET /v1/runs/{runId}:diff`). `divergedAtSeq` is null + `eventDiffs`
|
|
99
|
+
* empty when the two logs are identical.
|
|
100
|
+
*/
|
|
101
|
+
diff: (runId: string, against: string) => Promise<RunDiffResponse | null>;
|
|
68
102
|
pollEvents: (runId: string, params?: {
|
|
69
103
|
lastSequence?: number;
|
|
70
104
|
timeoutSeconds?: number;
|
|
@@ -76,6 +110,10 @@ export declare class OpenwopClient {
|
|
|
76
110
|
*/
|
|
77
111
|
events: (runId: string, opts?: EventsStreamOptions) => AsyncGenerator<RunEventDoc, void, void>;
|
|
78
112
|
};
|
|
113
|
+
readonly agents: {
|
|
114
|
+
list: () => Promise<AgentInventoryResponse | null>;
|
|
115
|
+
get: (agentId: string) => Promise<AgentInventoryEntry | null>;
|
|
116
|
+
};
|
|
79
117
|
readonly interrupts: {
|
|
80
118
|
resolveByRun: (runId: string, nodeId: string, body: ResolveInterruptRequest, opts?: MutationOptions) => Promise<ResolveInterruptResponse>;
|
|
81
119
|
/**
|
|
@@ -171,5 +209,42 @@ export declare class OpenwopClient {
|
|
|
171
209
|
*/
|
|
172
210
|
verify: (fromSeq: number, toSeq: number) => Promise<AuditVerifyResult>;
|
|
173
211
|
};
|
|
212
|
+
readonly workspace: {
|
|
213
|
+
/**
|
|
214
|
+
* RFC 0059 — list workspace file metadata (no bodies) for the caller's
|
|
215
|
+
* `{tenant, workspace}`. Optional `prefix` filters the flat `path`
|
|
216
|
+
* namespace. Returns `null` when the host doesn't advertise
|
|
217
|
+
* `capabilities.workspace.supported` (501), so callers can branch on
|
|
218
|
+
* capability discovery without try/catch.
|
|
219
|
+
*/
|
|
220
|
+
listFiles: (opts?: {
|
|
221
|
+
prefix?: string;
|
|
222
|
+
}) => Promise<readonly WorkspaceFile[] | null>;
|
|
223
|
+
/**
|
|
224
|
+
* RFC 0059 — read one workspace file. Pass `version` for a historical
|
|
225
|
+
* snapshot when `capabilities.workspace.versioned`. Returns `null` when
|
|
226
|
+
* the file is absent (404) or the host doesn't advertise the capability
|
|
227
|
+
* (501).
|
|
228
|
+
*/
|
|
229
|
+
getFile: (path: string, opts?: {
|
|
230
|
+
version?: number;
|
|
231
|
+
}) => Promise<WorkspaceFile | null>;
|
|
232
|
+
/**
|
|
233
|
+
* RFC 0059 — atomic create/replace of a workspace file. Pass `ifMatch`
|
|
234
|
+
* (the file's current `etag`) for optimistic concurrency; a stale token
|
|
235
|
+
* throws a `WopError` with status `409` (`workspace_conflict`). Content
|
|
236
|
+
* beyond `capabilities.workspace.maxFileBytes` throws `413`
|
|
237
|
+
* (`workspace_too_large`). Returns the persisted `WorkspaceFile`.
|
|
238
|
+
*/
|
|
239
|
+
putFile: (path: string, body: PutWorkspaceFileRequest, opts?: MutationOptions & {
|
|
240
|
+
ifMatch?: string;
|
|
241
|
+
}) => Promise<WorkspaceFile>;
|
|
242
|
+
/**
|
|
243
|
+
* RFC 0059 — delete a workspace file. Returns `true` on success (`204`),
|
|
244
|
+
* `false` when the file is absent (404) or the host doesn't advertise the
|
|
245
|
+
* capability (501).
|
|
246
|
+
*/
|
|
247
|
+
deleteFile: (path: string, opts?: MutationOptions) => Promise<boolean>;
|
|
248
|
+
};
|
|
174
249
|
}
|
|
175
250
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EAEtB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,0BAA0B,EAC/B,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,+BAA+B,EACpC,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -116,6 +116,82 @@ export class OpenwopClient {
|
|
|
116
116
|
body,
|
|
117
117
|
headers: this.#mutationHeaders(opts),
|
|
118
118
|
}),
|
|
119
|
+
/**
|
|
120
|
+
* RFC 0056 — record a non-blocking quality annotation (rating / correction
|
|
121
|
+
* / label / flag) on a run/event/node. Returns the persisted `Annotation`.
|
|
122
|
+
* Throws on non-2xx (`501` when the host doesn't advertise
|
|
123
|
+
* `capabilities.feedback.supported`).
|
|
124
|
+
*/
|
|
125
|
+
createAnnotation: (runId, body, opts = {}) => this.#request({
|
|
126
|
+
method: 'POST',
|
|
127
|
+
path: `/v1/runs/${encodeURIComponent(runId)}/annotations`,
|
|
128
|
+
body,
|
|
129
|
+
headers: this.#mutationHeaders(opts),
|
|
130
|
+
}),
|
|
131
|
+
/**
|
|
132
|
+
* RFC 0056 — list a run's annotations (tenant-scoped). Returns `null` when
|
|
133
|
+
* the host doesn't advertise `capabilities.feedback` (404/501), so callers
|
|
134
|
+
* can branch on capability discovery without try/catch.
|
|
135
|
+
*/
|
|
136
|
+
listAnnotations: async (runId) => {
|
|
137
|
+
try {
|
|
138
|
+
const res = await this.#request({
|
|
139
|
+
method: 'GET',
|
|
140
|
+
path: `/v1/runs/${encodeURIComponent(runId)}/annotations`,
|
|
141
|
+
});
|
|
142
|
+
return res.annotations;
|
|
143
|
+
}
|
|
144
|
+
catch (err) {
|
|
145
|
+
if (err instanceof Error && /\b(404|501)\b/.test(err.message))
|
|
146
|
+
return null;
|
|
147
|
+
throw err;
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
/**
|
|
151
|
+
* RFC 0040 §C — fetch the run's immediate parent in the cross-host
|
|
152
|
+
* composition chain. Returns `parent: null` for top-level runs;
|
|
153
|
+
* `parent.wellKnownUrl` is set when the parent is on a different
|
|
154
|
+
* host, so callers walk the chain one hop at a time.
|
|
155
|
+
*
|
|
156
|
+
* Returns `null` when the host doesn't advertise
|
|
157
|
+
* `capabilities.multiAgent.executionModel.crossHostCausation.ancestryEndpointSupported: true`
|
|
158
|
+
* (the endpoint returns 404 in that case per
|
|
159
|
+
* `spec/v1/multi-agent-execution.md` §"GET /v1/runs/{runId}/ancestry").
|
|
160
|
+
*/
|
|
161
|
+
ancestry: async (runId) => {
|
|
162
|
+
try {
|
|
163
|
+
return await this.#request({
|
|
164
|
+
method: 'GET',
|
|
165
|
+
path: `/v1/runs/${encodeURIComponent(runId)}/ancestry`,
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
catch (err) {
|
|
169
|
+
if (err instanceof Error && /\b404\b/.test(err.message))
|
|
170
|
+
return null;
|
|
171
|
+
throw err;
|
|
172
|
+
}
|
|
173
|
+
},
|
|
174
|
+
/**
|
|
175
|
+
* RFC 0054 — deterministic, replay-aware structured diff of two runs
|
|
176
|
+
* (typically a run and its `:fork`). Requires `runs:read` on BOTH
|
|
177
|
+
* `runId` and `against`. Returns `null` when the host doesn't
|
|
178
|
+
* implement the endpoint (404 per `spec/v1/rest-endpoints.md`
|
|
179
|
+
* §`GET /v1/runs/{runId}:diff`). `divergedAtSeq` is null + `eventDiffs`
|
|
180
|
+
* empty when the two logs are identical.
|
|
181
|
+
*/
|
|
182
|
+
diff: async (runId, against) => {
|
|
183
|
+
try {
|
|
184
|
+
return await this.#request({
|
|
185
|
+
method: 'GET',
|
|
186
|
+
path: `/v1/runs/${encodeURIComponent(runId)}:diff?against=${encodeURIComponent(against)}`,
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
catch (err) {
|
|
190
|
+
if (err instanceof Error && /\b404\b/.test(err.message))
|
|
191
|
+
return null;
|
|
192
|
+
throw err;
|
|
193
|
+
}
|
|
194
|
+
},
|
|
119
195
|
pollEvents: (runId, params = {}) => {
|
|
120
196
|
const search = new URLSearchParams();
|
|
121
197
|
if (params.lastSequence !== undefined) {
|
|
@@ -137,6 +213,36 @@ export class OpenwopClient {
|
|
|
137
213
|
*/
|
|
138
214
|
events: (runId, opts = {}) => streamEvents({ baseUrl: this.#baseUrl, apiKey: this.#apiKey }, runId, opts),
|
|
139
215
|
};
|
|
216
|
+
// ── Manifest-agent inventory (RFC 0072 §A) ───────────────────────────
|
|
217
|
+
// Read-only. Gated on `capabilities.agents.manifestRuntime`; both methods
|
|
218
|
+
// return `null` when the host doesn't advertise it (the endpoints 404).
|
|
219
|
+
// Dispatch is not here: a manifest agent runs as a `runs.create` whose
|
|
220
|
+
// workflow node pins it via `WorkflowNode.agent` (RFC 0072 §B).
|
|
221
|
+
agents = {
|
|
222
|
+
list: async () => {
|
|
223
|
+
try {
|
|
224
|
+
return await this.#request({ method: 'GET', path: '/v1/agents' });
|
|
225
|
+
}
|
|
226
|
+
catch (err) {
|
|
227
|
+
if (err instanceof Error && /\b404\b/.test(err.message))
|
|
228
|
+
return null;
|
|
229
|
+
throw err;
|
|
230
|
+
}
|
|
231
|
+
},
|
|
232
|
+
get: async (agentId) => {
|
|
233
|
+
try {
|
|
234
|
+
return await this.#request({
|
|
235
|
+
method: 'GET',
|
|
236
|
+
path: `/v1/agents/${encodeURIComponent(agentId)}`,
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
catch (err) {
|
|
240
|
+
if (err instanceof Error && /\b404\b/.test(err.message))
|
|
241
|
+
return null;
|
|
242
|
+
throw err;
|
|
243
|
+
}
|
|
244
|
+
},
|
|
245
|
+
};
|
|
140
246
|
// ── HITL interrupts (run-scoped + signed-token) ──────────────────────
|
|
141
247
|
interrupts = {
|
|
142
248
|
resolveByRun: (runId, nodeId, body, opts = {}) => this.#request({
|
|
@@ -336,6 +442,95 @@ export class OpenwopClient {
|
|
|
336
442
|
});
|
|
337
443
|
},
|
|
338
444
|
};
|
|
445
|
+
// ── Agent workspace files (RFC 0059; gated on capabilities.workspace) ──
|
|
446
|
+
workspace = {
|
|
447
|
+
/**
|
|
448
|
+
* RFC 0059 — list workspace file metadata (no bodies) for the caller's
|
|
449
|
+
* `{tenant, workspace}`. Optional `prefix` filters the flat `path`
|
|
450
|
+
* namespace. Returns `null` when the host doesn't advertise
|
|
451
|
+
* `capabilities.workspace.supported` (501), so callers can branch on
|
|
452
|
+
* capability discovery without try/catch.
|
|
453
|
+
*/
|
|
454
|
+
listFiles: async (opts = {}) => {
|
|
455
|
+
const search = new URLSearchParams();
|
|
456
|
+
if (opts.prefix !== undefined)
|
|
457
|
+
search.set('prefix', opts.prefix);
|
|
458
|
+
const qs = search.toString();
|
|
459
|
+
try {
|
|
460
|
+
const res = await this.#request({
|
|
461
|
+
method: 'GET',
|
|
462
|
+
path: `/v1/host/workspace/files${qs ? `?${qs}` : ''}`,
|
|
463
|
+
});
|
|
464
|
+
return res.files;
|
|
465
|
+
}
|
|
466
|
+
catch (err) {
|
|
467
|
+
if (err instanceof Error && /\b501\b/.test(err.message))
|
|
468
|
+
return null;
|
|
469
|
+
throw err;
|
|
470
|
+
}
|
|
471
|
+
},
|
|
472
|
+
/**
|
|
473
|
+
* RFC 0059 — read one workspace file. Pass `version` for a historical
|
|
474
|
+
* snapshot when `capabilities.workspace.versioned`. Returns `null` when
|
|
475
|
+
* the file is absent (404) or the host doesn't advertise the capability
|
|
476
|
+
* (501).
|
|
477
|
+
*/
|
|
478
|
+
getFile: async (path, opts = {}) => {
|
|
479
|
+
const search = new URLSearchParams();
|
|
480
|
+
if (opts.version !== undefined)
|
|
481
|
+
search.set('version', String(opts.version));
|
|
482
|
+
const qs = search.toString();
|
|
483
|
+
try {
|
|
484
|
+
return await this.#request({
|
|
485
|
+
method: 'GET',
|
|
486
|
+
path: `/v1/host/workspace/files/${encodeURIComponent(path)}${qs ? `?${qs}` : ''}`,
|
|
487
|
+
});
|
|
488
|
+
}
|
|
489
|
+
catch (err) {
|
|
490
|
+
if (err instanceof Error && /\b(404|501)\b/.test(err.message))
|
|
491
|
+
return null;
|
|
492
|
+
throw err;
|
|
493
|
+
}
|
|
494
|
+
},
|
|
495
|
+
/**
|
|
496
|
+
* RFC 0059 — atomic create/replace of a workspace file. Pass `ifMatch`
|
|
497
|
+
* (the file's current `etag`) for optimistic concurrency; a stale token
|
|
498
|
+
* throws a `WopError` with status `409` (`workspace_conflict`). Content
|
|
499
|
+
* beyond `capabilities.workspace.maxFileBytes` throws `413`
|
|
500
|
+
* (`workspace_too_large`). Returns the persisted `WorkspaceFile`.
|
|
501
|
+
*/
|
|
502
|
+
putFile: (path, body, opts = {}) => {
|
|
503
|
+
const headers = this.#mutationHeaders(opts);
|
|
504
|
+
if (opts.ifMatch !== undefined)
|
|
505
|
+
headers['If-Match'] = opts.ifMatch;
|
|
506
|
+
return this.#request({
|
|
507
|
+
method: 'PUT',
|
|
508
|
+
path: `/v1/host/workspace/files/${encodeURIComponent(path)}`,
|
|
509
|
+
body,
|
|
510
|
+
headers,
|
|
511
|
+
});
|
|
512
|
+
},
|
|
513
|
+
/**
|
|
514
|
+
* RFC 0059 — delete a workspace file. Returns `true` on success (`204`),
|
|
515
|
+
* `false` when the file is absent (404) or the host doesn't advertise the
|
|
516
|
+
* capability (501).
|
|
517
|
+
*/
|
|
518
|
+
deleteFile: async (path, opts = {}) => {
|
|
519
|
+
try {
|
|
520
|
+
await this.#request({
|
|
521
|
+
method: 'DELETE',
|
|
522
|
+
path: `/v1/host/workspace/files/${encodeURIComponent(path)}`,
|
|
523
|
+
headers: this.#mutationHeaders(opts),
|
|
524
|
+
});
|
|
525
|
+
return true;
|
|
526
|
+
}
|
|
527
|
+
catch (err) {
|
|
528
|
+
if (err instanceof Error && /\b(404|501)\b/.test(err.message))
|
|
529
|
+
return false;
|
|
530
|
+
throw err;
|
|
531
|
+
}
|
|
532
|
+
},
|
|
533
|
+
};
|
|
339
534
|
// ── Internals ────────────────────────────────────────────────────────
|
|
340
535
|
#mutationHeaders(opts) {
|
|
341
536
|
const h = {};
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* envelopeDirective — RFC 0030 §A `reasoning`-field prompt directive synthesis.
|
|
3
|
+
*
|
|
4
|
+
* Hosts that advertise `capabilities.envelopes.reasoning.supported: true`
|
|
5
|
+
* with `promptDirective: "advisory"` or `"mandatory"` inject a system-prompt
|
|
6
|
+
* directive instructing the model to populate the OPTIONAL `reasoning` field
|
|
7
|
+
* on envelope payload schemas that carry it. The directive is informational
|
|
8
|
+
* — hosts MUST NOT reject envelopes where `reasoning` is absent regardless
|
|
9
|
+
* of `promptDirective` strength (RFC 0030 §A).
|
|
10
|
+
*
|
|
11
|
+
* The directive fires only when the envelope's `responseSchema` declares a
|
|
12
|
+
* top-level `reasoning` property. Schemas without `reasoning` (e.g.,
|
|
13
|
+
* `schema.response` per RFC 0030 §A) do NOT receive the directive.
|
|
14
|
+
*
|
|
15
|
+
* Honest separation of concerns:
|
|
16
|
+
* - This module decides WHEN to inject (schema has `reasoning`).
|
|
17
|
+
* - The caller decides WHETHER to inject (read `promptDirective` from
|
|
18
|
+
* the host's discovery advertisement).
|
|
19
|
+
* - The model decides whether to ACTUALLY populate the field (the spec
|
|
20
|
+
* forbids rejecting envelopes where `reasoning` is absent).
|
|
21
|
+
*
|
|
22
|
+
* **Operational note on `"mandatory"`** (per RFC 0030 §A 2026-05-21
|
|
23
|
+
* amendment). Strict-output models may honor the mandatory wording
|
|
24
|
+
* literally and refuse mid-emission when reasoning would be vacuous.
|
|
25
|
+
* Hosts SHOULD prefer `"advisory"` unless empirical testing against the
|
|
26
|
+
* active model class confirms `"mandatory"` doesn't trigger refusals.
|
|
27
|
+
*
|
|
28
|
+
* @see RFCS/0030-envelope-reasoning-and-tier-one-subset.md §A
|
|
29
|
+
* @see spec/v1/ai-envelope.md §"Reasoning field (normative)"
|
|
30
|
+
*/
|
|
31
|
+
/**
|
|
32
|
+
* The strength of the host's `reasoning`-directive prompt injection.
|
|
33
|
+
*
|
|
34
|
+
* `"off"` — no directive injected. Caller skips this module entirely.
|
|
35
|
+
* `"advisory"` — directive is suggestive ("populate `reasoning` with your
|
|
36
|
+
* analytical process if the schema permits it"). The
|
|
37
|
+
* spec-recommended default per RFC 0030 §C.
|
|
38
|
+
* `"mandatory"` — directive is firm ("you MUST populate `reasoning` before
|
|
39
|
+
* emitting the structured fields"). Hosts SHOULD prefer
|
|
40
|
+
* `"advisory"` unless model-class-specific testing shows
|
|
41
|
+
* `"mandatory"` is safe.
|
|
42
|
+
*
|
|
43
|
+
* Both `"advisory"` and `"mandatory"` are prompt-injection postures, NOT
|
|
44
|
+
* wire-level refusal contracts — the host accepts envelopes regardless of
|
|
45
|
+
* whether `reasoning` is populated (RFC 0030 §A normative MUST NOT).
|
|
46
|
+
*/
|
|
47
|
+
export type ReasoningDirectiveStrength = 'off' | 'advisory' | 'mandatory';
|
|
48
|
+
/**
|
|
49
|
+
* Build the directive string to append to the system prompt, OR `null` if
|
|
50
|
+
* the schema does not declare a top-level `reasoning` property.
|
|
51
|
+
*
|
|
52
|
+
* Callers append the returned string to the existing system prompt with a
|
|
53
|
+
* separating newline. When `strength === 'off'`, callers SHOULD short-circuit
|
|
54
|
+
* before invoking this helper (returning `null` here is treated as "no
|
|
55
|
+
* applicable schema," not "directive disabled").
|
|
56
|
+
*
|
|
57
|
+
* The helper inspects only the top-level `properties.reasoning` slot.
|
|
58
|
+
* Nested `reasoning` fields (e.g., inside an `anyOf` branch's payload) are
|
|
59
|
+
* not auto-detected — vendor-kind authors who want per-branch directives
|
|
60
|
+
* synthesize their own.
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```ts
|
|
64
|
+
* import { buildReasoningDirective } from '@openwop/openwop';
|
|
65
|
+
*
|
|
66
|
+
* const directive = buildReasoningDirective(
|
|
67
|
+
* { type: 'object', properties: { reasoning: { type: 'string' }, ... } },
|
|
68
|
+
* 'advisory',
|
|
69
|
+
* );
|
|
70
|
+
* // directive is a string ~80 words; null when schema lacks `reasoning`
|
|
71
|
+
* const systemPrompt = [originalSystemPrompt, schemaHint, directive]
|
|
72
|
+
* .filter((s): s is string => Boolean(s))
|
|
73
|
+
* .join('\n\n');
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
export declare function buildReasoningDirective(responseSchema: unknown, strength: ReasoningDirectiveStrength): string | null;
|
|
77
|
+
//# sourceMappingURL=envelope-directive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"envelope-directive.d.ts","sourceRoot":"","sources":["../src/envelope-directive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,0BAA0B,GAAG,KAAK,GAAG,UAAU,GAAG,WAAW,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,OAAO,EACvB,QAAQ,EAAE,0BAA0B,GACnC,MAAM,GAAG,IAAI,CA6Bf"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* envelopeDirective — RFC 0030 §A `reasoning`-field prompt directive synthesis.
|
|
3
|
+
*
|
|
4
|
+
* Hosts that advertise `capabilities.envelopes.reasoning.supported: true`
|
|
5
|
+
* with `promptDirective: "advisory"` or `"mandatory"` inject a system-prompt
|
|
6
|
+
* directive instructing the model to populate the OPTIONAL `reasoning` field
|
|
7
|
+
* on envelope payload schemas that carry it. The directive is informational
|
|
8
|
+
* — hosts MUST NOT reject envelopes where `reasoning` is absent regardless
|
|
9
|
+
* of `promptDirective` strength (RFC 0030 §A).
|
|
10
|
+
*
|
|
11
|
+
* The directive fires only when the envelope's `responseSchema` declares a
|
|
12
|
+
* top-level `reasoning` property. Schemas without `reasoning` (e.g.,
|
|
13
|
+
* `schema.response` per RFC 0030 §A) do NOT receive the directive.
|
|
14
|
+
*
|
|
15
|
+
* Honest separation of concerns:
|
|
16
|
+
* - This module decides WHEN to inject (schema has `reasoning`).
|
|
17
|
+
* - The caller decides WHETHER to inject (read `promptDirective` from
|
|
18
|
+
* the host's discovery advertisement).
|
|
19
|
+
* - The model decides whether to ACTUALLY populate the field (the spec
|
|
20
|
+
* forbids rejecting envelopes where `reasoning` is absent).
|
|
21
|
+
*
|
|
22
|
+
* **Operational note on `"mandatory"`** (per RFC 0030 §A 2026-05-21
|
|
23
|
+
* amendment). Strict-output models may honor the mandatory wording
|
|
24
|
+
* literally and refuse mid-emission when reasoning would be vacuous.
|
|
25
|
+
* Hosts SHOULD prefer `"advisory"` unless empirical testing against the
|
|
26
|
+
* active model class confirms `"mandatory"` doesn't trigger refusals.
|
|
27
|
+
*
|
|
28
|
+
* @see RFCS/0030-envelope-reasoning-and-tier-one-subset.md §A
|
|
29
|
+
* @see spec/v1/ai-envelope.md §"Reasoning field (normative)"
|
|
30
|
+
*/
|
|
31
|
+
/**
|
|
32
|
+
* Build the directive string to append to the system prompt, OR `null` if
|
|
33
|
+
* the schema does not declare a top-level `reasoning` property.
|
|
34
|
+
*
|
|
35
|
+
* Callers append the returned string to the existing system prompt with a
|
|
36
|
+
* separating newline. When `strength === 'off'`, callers SHOULD short-circuit
|
|
37
|
+
* before invoking this helper (returning `null` here is treated as "no
|
|
38
|
+
* applicable schema," not "directive disabled").
|
|
39
|
+
*
|
|
40
|
+
* The helper inspects only the top-level `properties.reasoning` slot.
|
|
41
|
+
* Nested `reasoning` fields (e.g., inside an `anyOf` branch's payload) are
|
|
42
|
+
* not auto-detected — vendor-kind authors who want per-branch directives
|
|
43
|
+
* synthesize their own.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* import { buildReasoningDirective } from '@openwop/openwop';
|
|
48
|
+
*
|
|
49
|
+
* const directive = buildReasoningDirective(
|
|
50
|
+
* { type: 'object', properties: { reasoning: { type: 'string' }, ... } },
|
|
51
|
+
* 'advisory',
|
|
52
|
+
* );
|
|
53
|
+
* // directive is a string ~80 words; null when schema lacks `reasoning`
|
|
54
|
+
* const systemPrompt = [originalSystemPrompt, schemaHint, directive]
|
|
55
|
+
* .filter((s): s is string => Boolean(s))
|
|
56
|
+
* .join('\n\n');
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export function buildReasoningDirective(responseSchema, strength) {
|
|
60
|
+
if (strength === 'off')
|
|
61
|
+
return null;
|
|
62
|
+
if (!responseSchema || typeof responseSchema !== 'object')
|
|
63
|
+
return null;
|
|
64
|
+
const schema = responseSchema;
|
|
65
|
+
const properties = schema.properties;
|
|
66
|
+
if (!properties || typeof properties !== 'object')
|
|
67
|
+
return null;
|
|
68
|
+
const reasoningProp = properties.reasoning;
|
|
69
|
+
if (!reasoningProp || typeof reasoningProp !== 'object')
|
|
70
|
+
return null;
|
|
71
|
+
if (strength === 'mandatory') {
|
|
72
|
+
return [
|
|
73
|
+
'BEFORE emitting the structured fields, populate the `reasoning` property with your analytical',
|
|
74
|
+
'process — explain how you derived each structured field, what assumptions you made, and what',
|
|
75
|
+
'risks or alternative interpretations you considered. The `reasoning` field is REQUIRED in your',
|
|
76
|
+
'output; do not skip it. (Note: the host accepts envelopes where `reasoning` is absent per',
|
|
77
|
+
'RFC 0030 §A, but for this dispatch the host expects it populated.)',
|
|
78
|
+
].join(' ');
|
|
79
|
+
}
|
|
80
|
+
// strength === 'advisory'
|
|
81
|
+
return [
|
|
82
|
+
'If your response schema declares a `reasoning` property, populate it as the first field with',
|
|
83
|
+
'your analytical process — explain how you derived each structured field. Per Tam et al. (arXiv',
|
|
84
|
+
"2408.02442), models constrained to strict JSON output suffer reasoning-quality collapse when",
|
|
85
|
+
'no reasoning slot exists; use this field to think before emitting the structured payload. The',
|
|
86
|
+
'host accepts envelopes where `reasoning` is absent — populate it when it improves clarity.',
|
|
87
|
+
].join(' ');
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=envelope-directive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"envelope-directive.js","sourceRoot":"","sources":["../src/envelope-directive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAoBH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,uBAAuB,CACrC,cAAuB,EACvB,QAAoC;IAEpC,IAAI,QAAQ,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,CAAC,cAAc,IAAI,OAAO,cAAc,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAEvE,MAAM,MAAM,GAAG,cAA0C,CAAC;IAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACrC,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE/D,MAAM,aAAa,GAAI,UAAsC,CAAC,SAAS,CAAC;IACxE,IAAI,CAAC,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAErE,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC7B,OAAO;YACL,+FAA+F;YAC/F,8FAA8F;YAC9F,gGAAgG;YAChG,2FAA2F;YAC3F,oEAAoE;SACrE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACd,CAAC;IAED,0BAA0B;IAC1B,OAAO;QACL,8FAA8F;QAC9F,gGAAgG;QAChG,8FAA8F;QAC9F,+FAA+F;QAC/F,4FAA4F;KAC7F,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC"}
|
package/dist/event-helpers.d.ts
CHANGED
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
* @see RFCS/0024-agent-reasoning-streaming.md
|
|
28
28
|
*/
|
|
29
29
|
import { type EventsStreamContext, type EventsStreamOptions } from './sse.js';
|
|
30
|
-
import type { AgentDecidedPayload, AgentHandoffPayload, AgentReasonedPayload, AgentReasoningDeltaPayload, AgentToolCalledPayload, AgentToolReturnedPayload, RunEventDoc, TypedRunEvent } from './types.js';
|
|
30
|
+
import type { AgentDecidedPayload, AgentHandoffPayload, AgentReasonedPayload, AgentReasoningDeltaPayload, AgentToolCalledPayload, AgentToolReturnedPayload, MemoryWrittenPayload, RunEventDoc, TypedRunEvent } from './types.js';
|
|
31
31
|
/** `agent.reasoned` (RFC 0002 §B). Narrows when `type` matches AND
|
|
32
32
|
* payload carries the required `agentId` + `reasoning` strings. */
|
|
33
33
|
export declare function isAgentReasoned(ev: RunEventDoc): ev is TypedRunEvent<AgentReasonedPayload>;
|
|
@@ -48,6 +48,9 @@ export declare function isAgentHandoff(ev: RunEventDoc): ev is TypedRunEvent<Age
|
|
|
48
48
|
* schema (host-specific shape); guard only validates `agentId` +
|
|
49
49
|
* the presence of a `decision` key. */
|
|
50
50
|
export declare function isAgentDecided(ev: RunEventDoc): ev is TypedRunEvent<AgentDecidedPayload>;
|
|
51
|
+
/** `memory.written` (RFC 0057). Narrows when `type` matches AND the payload
|
|
52
|
+
* carries the required `memoryRef` + `memoryId` identifier strings. */
|
|
53
|
+
export declare function isMemoryWritten(ev: RunEventDoc): ev is TypedRunEvent<MemoryWrittenPayload>;
|
|
51
54
|
/** Returned by {@link subscribeToAgentReasoning}. Call to cancel the
|
|
52
55
|
* underlying SSE subscription. Idempotent — repeated calls are no-ops. */
|
|
53
56
|
export type Unsubscribe = () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-helpers.d.ts","sourceRoot":"","sources":["../src/event-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAgB,KAAK,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC5F,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,wBAAwB,EACxB,WAAW,EACX,aAAa,EACd,MAAM,YAAY,CAAC;AAepB;oEACoE;AACpE,wBAAgB,eAAe,CAC7B,EAAE,EAAE,WAAW,GACd,EAAE,IAAI,aAAa,CAAC,oBAAoB,CAAC,CAM3C;AAED;;kBAEkB;AAClB,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,WAAW,GACd,EAAE,IAAI,aAAa,CAAC,0BAA0B,CAAC,CAMjD;AAED,wCAAwC;AACxC,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,WAAW,GACd,EAAE,IAAI,aAAa,CAAC,sBAAsB,CAAC,CAO7C;AAED;;oEAEoE;AACpE,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,WAAW,GACd,EAAE,IAAI,aAAa,CAAC,wBAAwB,CAAC,CAO/C;AAED;2DAC2D;AAC3D,wBAAgB,cAAc,CAC5B,EAAE,EAAE,WAAW,GACd,EAAE,IAAI,aAAa,CAAC,mBAAmB,CAAC,CAM1C;AAED;;wCAEwC;AACxC,wBAAgB,cAAc,CAC5B,EAAE,EAAE,WAAW,GACd,EAAE,IAAI,aAAa,CAAC,mBAAmB,CAAC,CAQ1C;AAID;2EAC2E;AAC3E,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;AAErC;;;iEAGiE;AACjE,MAAM,WAAW,uBAAuB;IACtC;;2CAEuC;IACvC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,0BAA0B,EAAE,EAAE,EAAE,aAAa,CAAC,0BAA0B,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvH;;4CAEwC;IACxC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,EAAE,EAAE,EAAE,aAAa,CAAC,oBAAoB,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5G;oCACgC;IAChC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB;;;gBAGY;IACZ,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,mBAAmB,EACxB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,uBAAuB,EAClC,OAAO,GAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAM,GAChD,WAAW,CAqDb"}
|
|
1
|
+
{"version":3,"file":"event-helpers.d.ts","sourceRoot":"","sources":["../src/event-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAgB,KAAK,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC5F,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,WAAW,EACX,aAAa,EACd,MAAM,YAAY,CAAC;AAepB;oEACoE;AACpE,wBAAgB,eAAe,CAC7B,EAAE,EAAE,WAAW,GACd,EAAE,IAAI,aAAa,CAAC,oBAAoB,CAAC,CAM3C;AAED;;kBAEkB;AAClB,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,WAAW,GACd,EAAE,IAAI,aAAa,CAAC,0BAA0B,CAAC,CAMjD;AAED,wCAAwC;AACxC,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,WAAW,GACd,EAAE,IAAI,aAAa,CAAC,sBAAsB,CAAC,CAO7C;AAED;;oEAEoE;AACpE,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,WAAW,GACd,EAAE,IAAI,aAAa,CAAC,wBAAwB,CAAC,CAO/C;AAED;2DAC2D;AAC3D,wBAAgB,cAAc,CAC5B,EAAE,EAAE,WAAW,GACd,EAAE,IAAI,aAAa,CAAC,mBAAmB,CAAC,CAM1C;AAED;;wCAEwC;AACxC,wBAAgB,cAAc,CAC5B,EAAE,EAAE,WAAW,GACd,EAAE,IAAI,aAAa,CAAC,mBAAmB,CAAC,CAQ1C;AAED;wEACwE;AACxE,wBAAgB,eAAe,CAC7B,EAAE,EAAE,WAAW,GACd,EAAE,IAAI,aAAa,CAAC,oBAAoB,CAAC,CAM3C;AAID;2EAC2E;AAC3E,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;AAErC;;;iEAGiE;AACjE,MAAM,WAAW,uBAAuB;IACtC;;2CAEuC;IACvC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,0BAA0B,EAAE,EAAE,EAAE,aAAa,CAAC,0BAA0B,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvH;;4CAEwC;IACxC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,EAAE,EAAE,EAAE,aAAa,CAAC,oBAAoB,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5G;oCACgC;IAChC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB;;;gBAGY;IACZ,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,mBAAmB,EACxB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,uBAAuB,EAClC,OAAO,GAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAM,GAChD,WAAW,CAqDb"}
|
package/dist/event-helpers.js
CHANGED
|
@@ -86,6 +86,13 @@ export function isAgentDecided(ev) {
|
|
|
86
86
|
typeof ev.payload === 'object' &&
|
|
87
87
|
'decision' in ev.payload);
|
|
88
88
|
}
|
|
89
|
+
/** `memory.written` (RFC 0057). Narrows when `type` matches AND the payload
|
|
90
|
+
* carries the required `memoryRef` + `memoryId` identifier strings. */
|
|
91
|
+
export function isMemoryWritten(ev) {
|
|
92
|
+
return (ev.type === 'memory.written' &&
|
|
93
|
+
hasStringField(ev.payload, 'memoryRef') &&
|
|
94
|
+
hasStringField(ev.payload, 'memoryId'));
|
|
95
|
+
}
|
|
89
96
|
/**
|
|
90
97
|
* Subscribe to the reasoning event sub-stream for a single run.
|
|
91
98
|
* Convenience wrapper over `streamEvents()` that dispatches the two
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-helpers.js","sourceRoot":"","sources":["../src/event-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,YAAY,EAAsD,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"event-helpers.js","sourceRoot":"","sources":["../src/event-helpers.ts"],"names":[],"mappings":"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"}
|