@agenticprimitives/service-host 0.0.0-alpha.1 → 0.0.0-alpha.11
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/cloudflare/index.d.ts +35 -6
- package/dist/cloudflare/index.d.ts.map +1 -1
- package/dist/cloudflare/index.js +53 -7
- package/dist/cloudflare/index.js.map +1 -1
- package/dist/host.d.ts +50 -0
- package/dist/host.d.ts.map +1 -0
- package/dist/host.js +36 -0
- package/dist/host.js.map +1 -0
- package/dist/index.d.ts +22 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/provenance-sink.d.ts +48 -0
- package/dist/provenance-sink.d.ts.map +1 -0
- package/dist/provenance-sink.js +98 -0
- package/dist/provenance-sink.js.map +1 -0
- package/dist/routes.d.ts +64 -0
- package/dist/routes.d.ts.map +1 -0
- package/dist/routes.js +186 -0
- package/dist/routes.js.map +1 -0
- package/dist/run-store.d.ts +21 -1
- package/dist/run-store.d.ts.map +1 -1
- package/dist/run-store.js +18 -0
- package/dist/run-store.js.map +1 -1
- package/dist/run.d.ts +110 -0
- package/dist/run.d.ts.map +1 -0
- package/dist/run.js +135 -0
- package/dist/run.js.map +1 -0
- package/dist/storage.d.ts +58 -1
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +102 -2
- package/dist/storage.js.map +1 -1
- package/dist/surface.d.ts +27 -0
- package/dist/surface.d.ts.map +1 -0
- package/dist/surface.js +76 -0
- package/dist/surface.js.map +1 -0
- package/dist/tools/external.d.ts +28 -0
- package/dist/tools/external.d.ts.map +1 -0
- package/dist/tools/external.js +75 -0
- package/dist/tools/external.js.map +1 -0
- package/dist/tools/find.d.ts +39 -0
- package/dist/tools/find.d.ts.map +1 -0
- package/dist/tools/find.js +95 -0
- package/dist/tools/find.js.map +1 -0
- package/dist/tools/index.d.ts +8 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +5 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/inspect.d.ts +6 -0
- package/dist/tools/inspect.d.ts.map +1 -0
- package/dist/tools/inspect.js +43 -0
- package/dist/tools/inspect.js.map +1 -0
- package/dist/tools/invoke.d.ts +59 -0
- package/dist/tools/invoke.d.ts.map +1 -0
- package/dist/tools/invoke.js +92 -0
- package/dist/tools/invoke.js.map +1 -0
- package/dist/wire-admission.d.ts +52 -0
- package/dist/wire-admission.d.ts.map +1 -0
- package/dist/wire-admission.js +49 -0
- package/dist/wire-admission.js.map +1 -0
- package/package.json +7 -4
package/dist/routes.js
ADDED
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { traceContextOf } from '@agenticprimitives/orchestration';
|
|
2
|
+
import { runTurn } from './run.js';
|
|
3
|
+
import { exportRunProvenance, provenanceJsonLdOf, hasProvenanceRef, provenanceProvNOf, provenanceViewOf } from './provenance-sink.js';
|
|
4
|
+
import { isExpired } from './run-store.js';
|
|
5
|
+
import { projectRunState } from '@agenticprimitives/harness';
|
|
6
|
+
const json = (b, status = 200) => Response.json(b, { status });
|
|
7
|
+
const lower = (a) => (typeof a === 'string' && /^0x[0-9a-fA-F]{40}$/.test(a) ? a.toLowerCase() : null);
|
|
8
|
+
/** WHO IS ASKING — the one order, no fallback between mechanisms (ADR-0013): an `A2A-Session` header is judged as a wire
|
|
9
|
+
* and never as a session; a `session` in the body is judged as a session; neither ⇒ public or refused. */
|
|
10
|
+
export async function admit(request, raw, body, ports, self) {
|
|
11
|
+
const auth = request.headers.get('authorization') ?? '';
|
|
12
|
+
if (/^A2A-Session\s/i.test(auth)) {
|
|
13
|
+
if (!ports.wire)
|
|
14
|
+
return { ok: false, status: 401, error: 'this host admits no app delegation' };
|
|
15
|
+
const p = await ports.wire(request, raw).catch(() => null);
|
|
16
|
+
return p ? { ok: true, who: { agent: p.agent.toLowerCase(), credential: { kind: 'app-delegation', authorization: auth, body: raw } } } : { ok: false, status: 401, error: 'the app delegation did not verify' };
|
|
17
|
+
}
|
|
18
|
+
if (body?.session) {
|
|
19
|
+
if (!ports.bearer)
|
|
20
|
+
return { ok: false, status: 401, error: 'this host admits no Home session' };
|
|
21
|
+
const p = await ports.bearer(String(body.session)).catch(() => null);
|
|
22
|
+
return p ? { ok: true, who: { agent: p.agent.toLowerCase(), credential: { kind: 'home-session' } } } : { ok: false, status: 401, error: 'the session did not verify' };
|
|
23
|
+
}
|
|
24
|
+
if (ports.public)
|
|
25
|
+
return { ok: true, who: { agent: self, credential: { kind: 'public' } } };
|
|
26
|
+
return { ok: false, status: 400, error: 'session (or an A2A-Session app delegation) is required' };
|
|
27
|
+
}
|
|
28
|
+
/** `/harness/ask` — one turn. Also `/harness/run` (POST: the same, kept for callers that name it so). */
|
|
29
|
+
export async function askRoute(request, deps) {
|
|
30
|
+
const receivedAt = Date.now();
|
|
31
|
+
const raw = await request.text();
|
|
32
|
+
const body = (() => { try {
|
|
33
|
+
return JSON.parse(raw);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return null;
|
|
37
|
+
} })();
|
|
38
|
+
if (!body)
|
|
39
|
+
return json({ ok: false, error: 'a JSON body is required' }, 400);
|
|
40
|
+
const addressee = lower(body.addressee) ?? deps.agent;
|
|
41
|
+
if (addressee !== deps.agent)
|
|
42
|
+
return json({ ok: false, error: `this host answers for ${deps.agent}, not ${String(body.addressee)}` }, 404);
|
|
43
|
+
const message = String(body.message ?? '').trim();
|
|
44
|
+
const runRef = typeof body.runRef === 'string' && body.runRef ? body.runRef : undefined;
|
|
45
|
+
if (!message && !runRef)
|
|
46
|
+
return json({ ok: false, error: 'message is required' }, 400);
|
|
47
|
+
const a = await admit(request, raw, body, deps.admission, deps.agent);
|
|
48
|
+
if (!a.ok)
|
|
49
|
+
return json({ ok: false, error: a.error }, a.status);
|
|
50
|
+
const input = {
|
|
51
|
+
agent: deps.agent, asker: a.who.agent, credential: a.who.credential, message,
|
|
52
|
+
...(body.intent && typeof body.intent === 'object' ? { intent: body.intent } : {}),
|
|
53
|
+
...(body.plan && typeof body.plan === 'object' ? { plan: body.plan } : {}),
|
|
54
|
+
...(body.presented !== undefined ? { presented: body.presented } : {}),
|
|
55
|
+
...(Array.isArray(body.supplied) ? { supplied: body.supplied } : {}),
|
|
56
|
+
...(runRef ? { runRef } : {}),
|
|
57
|
+
traceContext: traceContextOf(request.headers) ?? null, receivedAt,
|
|
58
|
+
};
|
|
59
|
+
const turnDeps = await deps.turnDeps({ asker: a.who, raw });
|
|
60
|
+
const out = await runTurn(input, { ...turnDeps, runStore: deps.runStore });
|
|
61
|
+
// The durable half, off the run's path: provenance into the agent's vault; the report back onto the record.
|
|
62
|
+
if (out.record && deps.provenance) {
|
|
63
|
+
const rec = out.record;
|
|
64
|
+
const exported = exportRunProvenance(rec, deps.agent, deps.provenance)
|
|
65
|
+
.then((report) => deps.runStore.putRecord(deps.agent, { ...rec, export: report }))
|
|
66
|
+
.catch((e) => deps.log?.(`[harness/ask] export failed: ${e instanceof Error ? e.message : String(e)}`));
|
|
67
|
+
if (deps.waitUntil)
|
|
68
|
+
deps.waitUntil(exported);
|
|
69
|
+
else
|
|
70
|
+
await exported;
|
|
71
|
+
}
|
|
72
|
+
const envelope = { ...out.envelope, ...(out.record && deps.provenance?.store ? { hasProvenance: hasProvenanceRef(deps.agent, out.runRef) } : {}) };
|
|
73
|
+
return json(envelope, out.envelope.ok ? 200 : 200);
|
|
74
|
+
}
|
|
75
|
+
/** The read routes share one admission: the asker, or a steward of the agent, sees the agent's runs. */
|
|
76
|
+
async function reader(request, deps) {
|
|
77
|
+
const raw = await request.text();
|
|
78
|
+
const body = (() => { try {
|
|
79
|
+
return JSON.parse(raw);
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
return null;
|
|
83
|
+
} })();
|
|
84
|
+
const a = await admit(request, raw, (body ?? {}), { ...deps.admission, public: false }, deps.agent);
|
|
85
|
+
if (!a.ok)
|
|
86
|
+
return a;
|
|
87
|
+
return { ok: true, who: a.who.agent, raw, body: body ?? {} };
|
|
88
|
+
}
|
|
89
|
+
/** `/harness/runs` — the unfinished runs this person may pick up: their own; every run when they oversee the agent. */
|
|
90
|
+
export async function runsRoute(request, deps) {
|
|
91
|
+
const r = await reader(request, deps);
|
|
92
|
+
if (!r.ok)
|
|
93
|
+
return json({ ok: false, error: r.error }, r.status);
|
|
94
|
+
const oversees = r.who === deps.agent || (await deps.mayOversee?.(r.who).catch(() => false)) === true;
|
|
95
|
+
const now = Date.now();
|
|
96
|
+
const runs = (await deps.runStore.list(deps.agent)).filter((x) => oversees || x.asker.toLowerCase() === r.who)
|
|
97
|
+
.map((x) => ({ ...x, expired: isExpired(x, now), state: projectRunState({ kind: 'suspended', awaiting: x.awaiting?.kind, expired: isExpired(x, now) }).state }));
|
|
98
|
+
return json({ ok: true, runs });
|
|
99
|
+
}
|
|
100
|
+
/** `/harness/records` — what this agent did (a week), listed without mandates; `/harness/run` GET-shaped read of one. */
|
|
101
|
+
export async function recordsRoute(request, deps) {
|
|
102
|
+
const r = await reader(request, deps);
|
|
103
|
+
if (!r.ok)
|
|
104
|
+
return json({ ok: false, error: r.error }, r.status);
|
|
105
|
+
const oversees = r.who === deps.agent || (await deps.mayOversee?.(r.who).catch(() => false)) === true;
|
|
106
|
+
if (typeof r.body.runRef === 'string' && r.body.runRef) {
|
|
107
|
+
const rec = await deps.runStore.getRecord(deps.agent, r.body.runRef);
|
|
108
|
+
if (!rec)
|
|
109
|
+
return json({ ok: false, error: 'no such run here' }, 404);
|
|
110
|
+
const asker = String(rec.asker ?? rec.intent?.context?.asker ?? '').toLowerCase();
|
|
111
|
+
if (!oversees && asker && asker !== r.who)
|
|
112
|
+
return json({ ok: false, error: 'no such run here' }, 404);
|
|
113
|
+
const { presented: _p, ...safe } = rec;
|
|
114
|
+
return json({ ok: true, record: safe });
|
|
115
|
+
}
|
|
116
|
+
const { records, retention } = await deps.runStore.listRecords(deps.agent, { full: r.body.full === true });
|
|
117
|
+
return json({ ok: true, records: oversees ? records : records.filter((x) => String(x.asker ?? '').toLowerCase() === r.who), retention });
|
|
118
|
+
}
|
|
119
|
+
/** `/harness/progress` — the run's lines after `after`, for the asker only (the store gates it). */
|
|
120
|
+
export async function progressRoute(request, deps) {
|
|
121
|
+
const r = await reader(request, deps);
|
|
122
|
+
if (!r.ok)
|
|
123
|
+
return json({ ok: false, error: r.error }, r.status);
|
|
124
|
+
const runRef = String(r.body.runRef ?? '');
|
|
125
|
+
if (!runRef)
|
|
126
|
+
return json({ ok: false, error: 'runRef is required' }, 400);
|
|
127
|
+
try {
|
|
128
|
+
const out = await deps.runStore.readProgress(deps.agent, runRef, r.who, Number(r.body.after ?? 0));
|
|
129
|
+
return json({ ok: true, ...out });
|
|
130
|
+
}
|
|
131
|
+
catch (e) {
|
|
132
|
+
return json({ ok: false, error: e instanceof Error ? e.message : String(e) }, 403);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/** `/harness/provenance` — the run's PROV-O record, projected from the record this object holds (the vault copy is the
|
|
136
|
+
* document of record; this is the same projection, served to whoever may see the run). */
|
|
137
|
+
export async function provenanceRoute(request, deps) {
|
|
138
|
+
const r = await reader(request, deps);
|
|
139
|
+
if (!r.ok)
|
|
140
|
+
return json({ ok: false, error: r.error }, r.status);
|
|
141
|
+
const runRef = String(r.body.runRef ?? '');
|
|
142
|
+
if (!runRef)
|
|
143
|
+
return json({ ok: false, error: 'runRef is required' }, 400);
|
|
144
|
+
const rec = await deps.runStore.getRecord(deps.agent, runRef);
|
|
145
|
+
if (!rec)
|
|
146
|
+
return json({ ok: false, error: 'no such run here' }, 404);
|
|
147
|
+
const oversees = r.who === deps.agent || (await deps.mayOversee?.(r.who).catch(() => false)) === true;
|
|
148
|
+
const asker = String(rec.asker ?? '').toLowerCase();
|
|
149
|
+
if (!oversees && asker && asker !== r.who)
|
|
150
|
+
return json({ ok: false, error: 'no such run here' }, 404);
|
|
151
|
+
if (!deps.provenance)
|
|
152
|
+
return json({ ok: false, error: 'this host projects no provenance' }, 503);
|
|
153
|
+
// The formats a Home reads (the runtime serves the same four): the JSON-LD graph (default), PROV-N text, the inspector's
|
|
154
|
+
// RECORD form (what the run left, decided, spent authority on, cost — `provenanceViewOf`), and the measurements the sink
|
|
155
|
+
// wrote beside the record when a measurer was bound. A Home's Inspect asked `format: 'record'` here and got the graph —
|
|
156
|
+
// "the run could not be read back" (2026-10-09).
|
|
157
|
+
const format = String(r.body.format ?? 'jsonld');
|
|
158
|
+
const ref = hasProvenanceRef(deps.agent, runRef);
|
|
159
|
+
const exported = rec.export;
|
|
160
|
+
if (format === 'record')
|
|
161
|
+
return json({ ok: true, hasProvenance: ref, record: await provenanceViewOf(rec, deps.agent, deps.provenance), export: exported?.provenance ?? null });
|
|
162
|
+
if (format === 'prov-n')
|
|
163
|
+
return json({ ok: true, hasProvenance: ref, provN: await provenanceProvNOf(rec, deps.agent, deps.provenance), export: exported?.provenance ?? null });
|
|
164
|
+
if (format === 'measures')
|
|
165
|
+
return json({ ok: true, hasProvenance: ref, measures: exported?.measures ?? null, export: exported?.provenance ?? null });
|
|
166
|
+
const doc = await provenanceJsonLdOf(rec, deps.agent, deps.provenance);
|
|
167
|
+
return json({ ok: true, hasProvenance: ref, provenance: doc, export: exported?.provenance ?? null });
|
|
168
|
+
}
|
|
169
|
+
/** The whole `/harness/*` surface as one handler; `null` for any other path so the host's router continues. */
|
|
170
|
+
export async function harnessRoutes(request, deps) {
|
|
171
|
+
const path = new URL(request.url).pathname;
|
|
172
|
+
if (!path.startsWith('/harness/'))
|
|
173
|
+
return null;
|
|
174
|
+
if (request.method !== 'POST')
|
|
175
|
+
return json({ ok: false, error: 'POST' }, 405);
|
|
176
|
+
switch (path) {
|
|
177
|
+
case '/harness/ask':
|
|
178
|
+
case '/harness/run': return askRoute(request, deps);
|
|
179
|
+
case '/harness/runs': return runsRoute(request, deps);
|
|
180
|
+
case '/harness/records': return recordsRoute(request, deps);
|
|
181
|
+
case '/harness/progress': return progressRoute(request, deps);
|
|
182
|
+
case '/harness/provenance': return provenanceRoute(request, deps);
|
|
183
|
+
default: return json({ ok: false, error: `no such route: ${path}` }, 404);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"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"}
|
package/dist/run-store.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { SuppliedInputV1, Plan, StepReceipt, CommitmentRefV1, RunRecordV1 }
|
|
|
2
2
|
import type { DelegationWireV1 } from '@agenticprimitives/a2a';
|
|
3
3
|
import type { Address, Hex } from '@agenticprimitives/types';
|
|
4
4
|
import type { ProgressLineV1 } from './progress.js';
|
|
5
|
+
import type { DayCountersV1, RunRecordListingV1 } from './storage.js';
|
|
5
6
|
/** Spec 384 W3 — a campaign's selection, carried on a run's origin: the provider the step is handed to and the offer the
|
|
6
7
|
* mandate must name. Shapes the plan; no verifier reads it — the verifier reads the mandate. */
|
|
7
8
|
export interface SelectedOfferBindingV1 {
|
|
@@ -141,6 +142,25 @@ export interface RunStore {
|
|
|
141
142
|
lines: ProgressLineV1[];
|
|
142
143
|
terminal: boolean;
|
|
143
144
|
}>;
|
|
145
|
+
/** Spec 370 P6 — the run RECORD on the agent's own object (a week; listed without mandates). */
|
|
146
|
+
putRecord(addressee: Address, record: RunRecordV1): Promise<void>;
|
|
147
|
+
getRecord(addressee: Address, runRef: string): Promise<RunRecordV1 | null>;
|
|
148
|
+
listRecords(addressee: Address, opts?: {
|
|
149
|
+
full?: boolean;
|
|
150
|
+
}): Promise<{
|
|
151
|
+
records: RunRecordListingV1[];
|
|
152
|
+
retention: {
|
|
153
|
+
doDays: number;
|
|
154
|
+
vaultRecord: string;
|
|
155
|
+
};
|
|
156
|
+
}>;
|
|
157
|
+
/** P1.4 — the day's counters. */
|
|
158
|
+
budgetAsk(addressee: Address, day?: string): Promise<void>;
|
|
159
|
+
budgetGet(addressee: Address, days?: number): Promise<DayCountersV1[]>;
|
|
160
|
+
/** Spec 372 S3c — spend a caller assertion once, on the agent's single writer. */
|
|
161
|
+
claimAssertion(addressee: Address, digest: string, expiresAt?: number): Promise<{
|
|
162
|
+
claimed: boolean;
|
|
163
|
+
}>;
|
|
144
164
|
}
|
|
145
165
|
/** Spec 400 W2 (B3) — THE OPEN RUN ON A THREAD: the newest unexpired run on `thread` that waits for DATA. A run waiting
|
|
146
166
|
* on a signature, a commitment or authority is not resumable by words, and a mention leaves it where it is. */
|
|
@@ -201,7 +221,7 @@ export declare function canceledRecord(existing: RunRecordV1 | null, stored: Pic
|
|
|
201
221
|
}): RunRecordV1 & {
|
|
202
222
|
canceled: NonNullable<RunRecordV1['canceled']>;
|
|
203
223
|
};
|
|
204
|
-
export type RunStoreOp = 'save' | 'load' | 'drop' | 'list' | 'progress-append' | 'progress-read';
|
|
224
|
+
export type RunStoreOp = 'save' | 'load' | 'drop' | 'list' | 'progress-append' | 'progress-read' | 'record-put' | 'record-get' | 'record-list' | 'budget-ask' | 'budget-get' | 'assertion-claim';
|
|
205
225
|
/** One call to the agent's own store: the Cloudflare adapter sends it to the agent's DO stub; a Node binding to its own
|
|
206
226
|
* process. The core never names the transport. */
|
|
207
227
|
export type RunStoreCall = (agent: Address, op: RunStoreOp, body: Record<string, unknown>) => Promise<Record<string, unknown>>;
|
package/dist/run-store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-store.d.ts","sourceRoot":"","sources":["../src/run-store.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACzH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"run-store.d.ts","sourceRoot":"","sources":["../src/run-store.ts"],"names":[],"mappings":"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"}
|
package/dist/run-store.js
CHANGED
|
@@ -127,6 +127,24 @@ export function runStoreOver(call) {
|
|
|
127
127
|
const out = await call(addressee, 'progress-read', { runRef, asker, after });
|
|
128
128
|
return { known: out.known === true, lines: out.lines ?? [], terminal: out.terminal === true };
|
|
129
129
|
},
|
|
130
|
+
async putRecord(addressee, record) { await call(addressee, 'record-put', { record }); },
|
|
131
|
+
async getRecord(addressee, runRef) {
|
|
132
|
+
const out = await call(addressee, 'record-get', { runRef });
|
|
133
|
+
return out.record ?? null;
|
|
134
|
+
},
|
|
135
|
+
async listRecords(addressee, opts = {}) {
|
|
136
|
+
const out = await call(addressee, 'record-list', opts.full ? { full: true } : {});
|
|
137
|
+
return { records: out.records ?? [], retention: out.retention ?? { doDays: 7, vaultRecord: 'run.provenance:<runRef>' } };
|
|
138
|
+
},
|
|
139
|
+
async budgetAsk(addressee, day) { await call(addressee, 'budget-ask', day ? { day } : {}); },
|
|
140
|
+
async budgetGet(addressee, days) {
|
|
141
|
+
const out = await call(addressee, 'budget-get', days === undefined ? {} : { days });
|
|
142
|
+
return out.days ?? [];
|
|
143
|
+
},
|
|
144
|
+
async claimAssertion(addressee, digest, expiresAt) {
|
|
145
|
+
const out = await call(addressee, 'assertion-claim', { digest, ...(expiresAt === undefined ? {} : { expiresAt }) });
|
|
146
|
+
return { claimed: out.claimed === true };
|
|
147
|
+
},
|
|
130
148
|
};
|
|
131
149
|
}
|
|
132
150
|
//# sourceMappingURL=run-store.js.map
|
package/dist/run-store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-store.js","sourceRoot":"","sources":["../src/run-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-store.js","sourceRoot":"","sources":["../src/run-store.ts"],"names":[],"mappings":"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"}
|
package/dist/run.d.ts
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { type Intent, type Planner, type ToolSpec, type ToolInvoker, type RunResult, type RunEvent, type OrchestrationPorts, type SuppliedInputV1, type RunRecordV1, type TraceContextV1 } from '@agenticprimitives/orchestration';
|
|
2
|
+
import { type PlaybookView } from '@agenticprimitives/harness';
|
|
3
|
+
import type { DelegationWireV1 } from '@agenticprimitives/a2a';
|
|
4
|
+
import type { Address } from '@agenticprimitives/types';
|
|
5
|
+
import { type RunStore } from './run-store.js';
|
|
6
|
+
/** The `/harness/ask` envelope — the shape `readSubjectReply` (the asker's runtime) and `subjectEnvelopeOf` read. */
|
|
7
|
+
export interface AskReplyEnvelopeV1 {
|
|
8
|
+
ok: boolean;
|
|
9
|
+
error?: string;
|
|
10
|
+
runRef: string;
|
|
11
|
+
reply?: {
|
|
12
|
+
kind: 'answer' | 'done' | 'prompt' | 'authority_required' | 'refused';
|
|
13
|
+
runRef: string;
|
|
14
|
+
text: string;
|
|
15
|
+
summary?: string;
|
|
16
|
+
results?: Array<{
|
|
17
|
+
toolId: string;
|
|
18
|
+
result: unknown;
|
|
19
|
+
}>;
|
|
20
|
+
prompt?: RunResult['prompt'];
|
|
21
|
+
required?: RunResult['required'];
|
|
22
|
+
/** The receipts of this turn, by step (stepRef · capability · status) — evidence the asker's record cites. */
|
|
23
|
+
receipts?: Array<{
|
|
24
|
+
stepRef: string;
|
|
25
|
+
capability?: string;
|
|
26
|
+
status: string;
|
|
27
|
+
}>;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/** Who asked, as admission established it. Display and audit; the loop reads `presented`, never this. */
|
|
31
|
+
export type TurnCredentialV1 = {
|
|
32
|
+
kind: 'home-session';
|
|
33
|
+
token?: string;
|
|
34
|
+
} | {
|
|
35
|
+
kind: 'app-delegation';
|
|
36
|
+
authorization: string;
|
|
37
|
+
body: string;
|
|
38
|
+
} | {
|
|
39
|
+
kind: 'agent';
|
|
40
|
+
agent: Address;
|
|
41
|
+
} | {
|
|
42
|
+
kind: 'public';
|
|
43
|
+
};
|
|
44
|
+
export interface TurnInput {
|
|
45
|
+
/** The agent this turn runs AT — whose playbook, whose store, whose authority is spent. */
|
|
46
|
+
agent: Address;
|
|
47
|
+
/** The admitted asker. For a public read, the agent itself. */
|
|
48
|
+
asker: Address;
|
|
49
|
+
credential: TurnCredentialV1;
|
|
50
|
+
/** The sentence. */
|
|
51
|
+
message: string;
|
|
52
|
+
/** The full intent when the run was entered with one — a resume or a durable run; else built from the message. */
|
|
53
|
+
intent?: Intent;
|
|
54
|
+
/** Spec 361 I4 — a caller-supplied plan: deterministic, no planner turn. */
|
|
55
|
+
plan?: {
|
|
56
|
+
steps: Array<{
|
|
57
|
+
toolId: string;
|
|
58
|
+
args: Record<string, unknown>;
|
|
59
|
+
id?: string;
|
|
60
|
+
}>;
|
|
61
|
+
};
|
|
62
|
+
/** The mandate(s) this turn presents — a keyring grows across turns (`mergeTurn`). */
|
|
63
|
+
presented?: DelegationWireV1 | DelegationWireV1[] | null;
|
|
64
|
+
/** Answers to prompts earlier turns raised. */
|
|
65
|
+
supplied?: SuppliedInputV1[];
|
|
66
|
+
/** A resume names the run it continues. */
|
|
67
|
+
runRef?: string;
|
|
68
|
+
traceContext?: TraceContextV1 | null;
|
|
69
|
+
receivedAt?: number;
|
|
70
|
+
}
|
|
71
|
+
export interface TurnDeps {
|
|
72
|
+
/** The playbook pinned by digest (`loadPlaybook`); absent ⇒ the bare harness offers every built-in (spec 354 §4.3). */
|
|
73
|
+
playbook?: PlaybookView | null;
|
|
74
|
+
/** The tools this host offers before the playbook narrows them. */
|
|
75
|
+
tools: ReadonlyArray<ToolSpec>;
|
|
76
|
+
/** One invoker per tool id — the app's work. A tool with no invoker is refused at the step, never guessed. */
|
|
77
|
+
invokers: Readonly<Record<string, ToolInvoker>>;
|
|
78
|
+
/** The planner port. Required when no plan is supplied. */
|
|
79
|
+
planner?: Planner;
|
|
80
|
+
/** Spec 350 — the authority ports the host binds (verifier · ladder · approvals · receipts · effects). */
|
|
81
|
+
ports?: Omit<OrchestrationPorts, 'events'>;
|
|
82
|
+
/** The agent's own store: checkpoint, progress, record. */
|
|
83
|
+
runStore: RunStore;
|
|
84
|
+
/** The receipt's reference for a presented wire — the delegation hash in a deployment. Default: a stable key. */
|
|
85
|
+
mandateRef?: (wire: DelegationWireV1) => string;
|
|
86
|
+
/** One sentence from a finished run — the host's composer, or the default (the last step's words). */
|
|
87
|
+
say?: (result: RunResult, tools: ReadonlyArray<ToolSpec>) => Promise<string> | string;
|
|
88
|
+
/** The capability's plain words for progress lines ("create organizations"). */
|
|
89
|
+
words?: (capabilityId: string) => string | undefined;
|
|
90
|
+
/** How many steps / re-plans a turn may take (loop defaults otherwise). */
|
|
91
|
+
maxSteps?: number;
|
|
92
|
+
maxReplans?: number;
|
|
93
|
+
now?: () => number;
|
|
94
|
+
log?: (line: string) => void;
|
|
95
|
+
/** A fresh run reference when none is given. */
|
|
96
|
+
newRunRef?: () => string;
|
|
97
|
+
}
|
|
98
|
+
export interface TurnOutcome {
|
|
99
|
+
envelope: AskReplyEnvelopeV1;
|
|
100
|
+
result: RunResult;
|
|
101
|
+
record: RunRecordV1 | null;
|
|
102
|
+
events: RunEvent[];
|
|
103
|
+
runRef: string;
|
|
104
|
+
}
|
|
105
|
+
/** A planner that returns the supplied plan once and nothing after — a deterministic turn costs no planner call. */
|
|
106
|
+
export declare function suppliedPlanner(plan: NonNullable<TurnInput['plan']>): Planner;
|
|
107
|
+
/** The default sentence: the last successful step's `text` / `said` / `observation`, else a one-line count. */
|
|
108
|
+
export declare function defaultSay(result: RunResult): string;
|
|
109
|
+
export declare function runTurn(input: TurnInput, deps: TurnDeps): Promise<TurnOutcome>;
|
|
110
|
+
//# sourceMappingURL=run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|
package/dist/run.js
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
// THE TURN — spec 433 W1 step 3 (census §1): one `/harness/ask` from admission to envelope, promoted from the ap-home
|
|
2
|
+
// runtime's `askReplyForInner` + `harnessInvoker` with the Home's tool universe left behind. What stays is what every
|
|
3
|
+
// service agent's turn is made of: the playbook pinned by digest decides what is OFFERED; a supplied plan or the planner
|
|
4
|
+
// port proposes; the orchestration loop judges each step under the mandate verifier and the ladder; the app's
|
|
5
|
+
// INVOKERS act; receipts land in the sink; a run that stops to ask a person is checkpointed in the agent's own store;
|
|
6
|
+
// a finished run leaves its record there (and its provenance in the vault, `provenance-sink.ts`); the reply is the
|
|
7
|
+
// `/harness/ask`-shaped envelope every asker's runtime reads (`readSubjectReply`, `subjectEnvelopeOf`).
|
|
8
|
+
//
|
|
9
|
+
// Intelligence may be probabilistic. Authority must not be. Nothing here decides authority: the verifier the host binds
|
|
10
|
+
// does, per step, inside the loop (spec 350).
|
|
11
|
+
import { runIntent, recordOf } from '@agenticprimitives/orchestration';
|
|
12
|
+
import { composeOfferedTools } from '@agenticprimitives/harness';
|
|
13
|
+
import { mergeTurn, expiryFor, completedStepsOf } from './run-store.js';
|
|
14
|
+
import { progressLine } from './progress.js';
|
|
15
|
+
const stableRef = (w) => `${String(w.delegator).toLowerCase()}:${String(w.delegate).toLowerCase()}:${String(w.salt)}`;
|
|
16
|
+
const randomRunRef = () => `run-${crypto.randomUUID()}`;
|
|
17
|
+
/** A planner that returns the supplied plan once and nothing after — a deterministic turn costs no planner call. */
|
|
18
|
+
export function suppliedPlanner(plan) {
|
|
19
|
+
return { async plan() { return { steps: plan.steps.map((s, i) => ({ id: s.id ?? `s${i + 1}`, toolId: s.toolId, args: s.args })) }; } };
|
|
20
|
+
}
|
|
21
|
+
/** The default sentence: the last successful step's `text` / `said` / `observation`, else a one-line count. */
|
|
22
|
+
export function defaultSay(result) {
|
|
23
|
+
for (let i = result.steps.length - 1; i >= 0; i--) {
|
|
24
|
+
const r = result.steps[i]?.result;
|
|
25
|
+
if (typeof r === 'string' && r.trim())
|
|
26
|
+
return r.trim();
|
|
27
|
+
if (r && typeof r === 'object')
|
|
28
|
+
for (const k of ['text', 'said', 'observation', 'answer']) {
|
|
29
|
+
const v = r[k];
|
|
30
|
+
if (typeof v === 'string' && v.trim())
|
|
31
|
+
return v.trim();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return result.outcome === 'completed' ? `Done — ${result.steps.length} step(s).` : (result.error ?? result.outcome);
|
|
35
|
+
}
|
|
36
|
+
/** What kind of awaiting a suspended run records — from the prompt it raised. */
|
|
37
|
+
function awaitingOf(result) {
|
|
38
|
+
if (result.outcome === 'authority-required' && result.required)
|
|
39
|
+
return { kind: 'authority', prompt: `${result.required.toolId} needs a mandate`, stepRef: result.required.stepRef };
|
|
40
|
+
const p = result.prompt;
|
|
41
|
+
if (!p)
|
|
42
|
+
return undefined;
|
|
43
|
+
const kind = ['data', 'signature', 'confirmation', 'commitment', 'authority'].includes(p.kind) ? p.kind : 'data';
|
|
44
|
+
return { kind, prompt: p.prompt ?? '', stepRef: p.stepRef ?? '' };
|
|
45
|
+
}
|
|
46
|
+
export async function runTurn(input, deps) {
|
|
47
|
+
const now = deps.now ?? Date.now;
|
|
48
|
+
const log = deps.log ?? (() => { });
|
|
49
|
+
const agent = input.agent.toLowerCase();
|
|
50
|
+
const asker = input.asker.toLowerCase();
|
|
51
|
+
const stored = input.runRef ? await deps.runStore.load(agent, input.runRef) : null;
|
|
52
|
+
if (input.runRef && stored && stored.asker.toLowerCase() !== asker) {
|
|
53
|
+
return refusal(input.runRef, 'this run was asked by someone else — only they may resume it');
|
|
54
|
+
}
|
|
55
|
+
const merged = mergeTurn(stored, { message: input.message, presented: input.presented, supplied: input.supplied });
|
|
56
|
+
if ('error' in merged)
|
|
57
|
+
return refusal(input.runRef ?? (deps.newRunRef ?? randomRunRef)(), merged.error);
|
|
58
|
+
const runRef = input.runRef ?? (deps.newRunRef ?? randomRunRef)();
|
|
59
|
+
const intent = stored?.intent ?? input.intent ?? { goal: merged.message };
|
|
60
|
+
const tools = composeOfferedTools([...deps.tools], deps.playbook ?? null, (d) => log(`[turn] contract disagreement: ${JSON.stringify(d)}`));
|
|
61
|
+
const plan = input.plan ?? stored?.plan;
|
|
62
|
+
const planner = plan ? suppliedPlanner(plan) : deps.planner;
|
|
63
|
+
if (!planner)
|
|
64
|
+
return refusal(runRef, 'no plan was supplied and this host has no planner — a deterministic ask names its steps');
|
|
65
|
+
const presented = merged.presented.map((w) => ({ ref: (deps.mandateRef ?? stableRef)(w), wire: w }));
|
|
66
|
+
const events = [];
|
|
67
|
+
const invoke = async (toolId, args, ctx) => {
|
|
68
|
+
const fn = deps.invokers[toolId];
|
|
69
|
+
if (!fn)
|
|
70
|
+
throw new Error(`no invoker for ${toolId} — this host does not perform it`);
|
|
71
|
+
return fn(toolId, args, ctx);
|
|
72
|
+
};
|
|
73
|
+
const result = await runIntent(intent, {
|
|
74
|
+
planner, tools, invoke, runRef, presented,
|
|
75
|
+
ports: { ...(deps.ports ?? {}), events: (e) => { events.push(e); } },
|
|
76
|
+
...(deps.maxSteps !== undefined ? { maxSteps: deps.maxSteps } : {}),
|
|
77
|
+
...(deps.maxReplans !== undefined ? { maxReplans: deps.maxReplans } : {}),
|
|
78
|
+
...(stored?.executed ? { resume: stored.executed } : {}),
|
|
79
|
+
});
|
|
80
|
+
// Progress — one sentence per event, for a surface that watches (best-effort, never the turn's failure).
|
|
81
|
+
for (const e of events) {
|
|
82
|
+
const line = progressLine(e, tools, deps.words ?? (() => undefined));
|
|
83
|
+
if (line)
|
|
84
|
+
await deps.runStore.appendProgress(agent, runRef, asker, line).catch(() => undefined);
|
|
85
|
+
}
|
|
86
|
+
const t = now();
|
|
87
|
+
const terminal = result.outcome === 'completed' || result.outcome === 'failed' || result.outcome === 'denied';
|
|
88
|
+
if (!terminal) {
|
|
89
|
+
// THE CHECKPOINT: what the person already gave, what ran, what it waits for. A rebuild, never the record.
|
|
90
|
+
const awaiting = awaitingOf(result);
|
|
91
|
+
const checkpoint = {
|
|
92
|
+
runRef, message: merged.message, intent, addressee: agent, asker, presented: merged.presented, supplied: merged.supplied,
|
|
93
|
+
...(plan ? { plan } : {}), ...(awaiting ? { awaiting } : {}),
|
|
94
|
+
executed: { plan: result.plan, completed: completedStepsOf(result) },
|
|
95
|
+
expiresAt: expiryFor(awaiting, t), createdAt: stored?.createdAt ?? t, updatedAt: t,
|
|
96
|
+
};
|
|
97
|
+
await deps.runStore.save(checkpoint);
|
|
98
|
+
}
|
|
99
|
+
else if (stored) {
|
|
100
|
+
await deps.runStore.drop(agent, runRef).catch(() => undefined);
|
|
101
|
+
}
|
|
102
|
+
const record = terminal || result.outcome === 'authority-required' || result.outcome === 'suspended'
|
|
103
|
+
? { ...recordOf({ runRef, intent, result, events, presented, now: t, ...(input.traceContext ? { traceContext: input.traceContext } : {}), ...(input.receivedAt ? { receivedAt: input.receivedAt } : {}) }), asker, credential: input.credential.kind }
|
|
104
|
+
: null;
|
|
105
|
+
if (record && terminal)
|
|
106
|
+
await deps.runStore.putRecord(agent, record).catch((e) => log(`[turn] record not kept: ${e instanceof Error ? e.message : String(e)}`));
|
|
107
|
+
await deps.runStore.appendProgress(agent, runRef, asker, { type: 'ReplyReady', said: terminal ? 'Replied.' : 'Waiting on you.', terminal: true }).catch(() => undefined);
|
|
108
|
+
const receipts = result.receipts.map((r) => ({ stepRef: r.stepRef, ...(r.capability?.id ? { capability: r.capability.id } : {}), status: r.status }));
|
|
109
|
+
const envelope = await envelopeOf(runRef, result, tools, deps, receipts);
|
|
110
|
+
return { envelope, result, record, events, runRef };
|
|
111
|
+
}
|
|
112
|
+
async function envelopeOf(runRef, result, tools, deps, receipts) {
|
|
113
|
+
const results = result.steps.filter((s) => s.ok).map((s) => ({ toolId: s.step.toolId, result: s.result }));
|
|
114
|
+
switch (result.outcome) {
|
|
115
|
+
case 'completed': {
|
|
116
|
+
const text = await (deps.say ? deps.say(result, tools) : defaultSay(result));
|
|
117
|
+
// An ACT ran when any completed step's tool declares a capability; a turn of reads is an answer.
|
|
118
|
+
const acted = result.steps.some((s) => s.ok && tools.find((t) => t.id === s.step.toolId)?.capability);
|
|
119
|
+
return { ok: true, runRef, reply: { kind: acted ? 'done' : 'answer', runRef, text, results, receipts } };
|
|
120
|
+
}
|
|
121
|
+
case 'suspended':
|
|
122
|
+
return { ok: true, runRef, reply: { kind: 'prompt', runRef, text: String(result.prompt?.prompt ?? 'More is needed.'), prompt: result.prompt, results, receipts } };
|
|
123
|
+
case 'authority-required':
|
|
124
|
+
return { ok: true, runRef, reply: { kind: 'authority_required', runRef, text: `${result.required?.toolId ?? 'this step'} needs a mandate`, required: result.required, results, receipts } };
|
|
125
|
+
case 'denied':
|
|
126
|
+
case 'failed':
|
|
127
|
+
default:
|
|
128
|
+
return { ok: false, runRef, error: result.error ?? result.outcome, reply: { kind: 'refused', runRef, text: result.error ?? result.outcome, results, receipts } };
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
function refusal(runRef, error) {
|
|
132
|
+
const result = { outcome: 'failed', plan: { steps: [] }, steps: [], error, runRef, receipts: [] };
|
|
133
|
+
return { envelope: { ok: false, runRef, error, reply: { kind: 'refused', runRef, text: error, results: [], receipts: [] } }, result, record: null, events: [], runRef };
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=run.js.map
|
package/dist/run.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|