@agenticprimitives/devkit 0.0.0-alpha.5 → 0.0.0-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -0
- package/bin/ap.mjs +96 -4
- package/dist/config.js +1 -1
- package/dist/dispatch.d.ts +69 -0
- package/dist/dispatch.d.ts.map +1 -1
- package/dist/dispatch.js +26 -0
- package/dist/dispatch.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +25 -7
package/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# @agenticprimitives/devkit
|
|
2
2
|
|
|
3
|
+
> Part of **[Agentic Primitives](https://agenticprimitives.dev)** — the open-source trust substrate for agentic applications: identity that can sign, authority checked at act time, evidence the owner carries. [Developer kit](https://github.com/agentictrustlabs/agentic-primitives) · [All packages](https://agenticprimitives.dev/developers)
|
|
4
|
+
|
|
3
5
|
The Developer Kit core — `ap`, the CLI that is the packages' own front door (spec 398 §10, spec 399 §3, ADR-0063).
|
|
4
6
|
|
|
5
7
|
```
|
|
@@ -75,6 +77,35 @@ It is the **third** MCP — not the runtime's private MCP behind admission (ADR-
|
|
|
75
77
|
and its `ap://developer-mcp/doctrine` resource says so first: no signing key, no vault, no authority, no production
|
|
76
78
|
effect (spec 398 §10.4, T23). Claude Code: `claude mcp add ap-dev -- npx ap mcp --root .`
|
|
77
79
|
|
|
80
|
+
## `ap generate client|cli|parity` — the fourth and fifth surfaces of one contract (398 §7.2)
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
ap generate client --registry https://<skills-registry> --definition agentic-trust/person-steward --only web.search,person.memory.remember --out src/lib/agent-client.ts
|
|
84
|
+
ap generate cli --registry … --definition agentic-trust/org-steward --only treasury.payment.execute
|
|
85
|
+
ap generate parity --registry … --definition agentic-trust/org-steward --json
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Projected FROM the compiled definition (the registry's, or `--file <definition.json>`) by `@agenticprimitives/harness`'s
|
|
89
|
+
pure `generateCapabilityClient` / `cliArgumentSchema` / `generateParityCases` — the kit dispatches to the consumer's
|
|
90
|
+
install (absent ⇒ `E_MODULE_ABSENT`). The client's every operation posts an intent to the app's `/harness/run` boundary
|
|
91
|
+
through an injected port and carries no authority; the parity cases are the positive pair (screen intent vs Ask
|
|
92
|
+
sentence → the same normalized plan digest) and the negative pair (a forged `surface`, a changed party after approval).
|
|
93
|
+
Regenerate after `ap upgrade` moves a pinned definition.
|
|
94
|
+
|
|
95
|
+
## `ap eval` — cases as data against a live Home (398 §10 / P1.3)
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
ap eval evals/faithnet.eval.json --home https://www.faithnet.me --persona alice --report live-gates-reports/eval-faithnet-latest.json
|
|
99
|
+
ap eval --from-runs --home https://www.faithnet.me --persona alice --out evals/from-runs.eval.json
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
A case is `{ id, incident, persona | (the --session bearer), addressee?, message, plan?, truth?, checks[] }`; a check is
|
|
103
|
+
one of the deterministic judges by name (`answered`, `replyKindIs`, `neverClaims`, `claimsRequire`, `falseEmptiness`,
|
|
104
|
+
`emptinessCarriesReason`, `evidenceFromTool`, `evidenceCountAgrees`, `noPlaceholderLeaks`, `textIncludes`,
|
|
105
|
+
`textExcludes`, `evidenceNoneFrom`). An act's correct outcome in a case is `authority_required` — the twin, as a test;
|
|
106
|
+
an eval never signs. An unrunnable case is a FAILING case. `--from-runs` turns an agent's live run records into case
|
|
107
|
+
skeletons to edit. Exit 1 on any failing case.
|
|
108
|
+
|
|
78
109
|
## What it will not do
|
|
79
110
|
|
|
80
111
|
Hold a key, read a vault, mint authority, invoke a production effect. A doctor finding is a review checkpoint;
|
package/bin/ap.mjs
CHANGED
|
@@ -9,6 +9,12 @@
|
|
|
9
9
|
// ap test --live-gates <ledger.json> [--only a,b] [--json]
|
|
10
10
|
// ap create <dir> --template product-repo [--name <n>] [--pin <version>] [--json]
|
|
11
11
|
// ap mcp [--root <dir>] the read-only Developer MCP on stdio (spec 398 §10.4)
|
|
12
|
+
// ap runtime join|run|mcp|status … an outside ACP runtime as a workspace member (spec 400 W1)
|
|
13
|
+
// ap eval <cases.eval.json> --home <url> [--persona <handle> [--client <id>] | --session <bearer>] [--report out.json] [--json]
|
|
14
|
+
// cases as data against a live Home; deterministic judge; exit 1 on a failing case
|
|
15
|
+
// ap eval --from-runs --home <url> --persona <handle> [--addressee <name|0x>] [--out cases.eval.json] a dataset from the agent's live runs
|
|
16
|
+
// ap generate client|cli|parity --registry <url> --definition <ctx>/<archetype> | --file <definition.json> [--out <path>] [--only a,b]
|
|
17
|
+
// the typed client / CLI schema / parity cases FROM the compiled contract (spec 398 §7.2)
|
|
12
18
|
//
|
|
13
19
|
// Exit: 0 clean · 1 findings · 2 usage/config · 3 a rule or dispatch errored.
|
|
14
20
|
import { spawnSync } from 'node:child_process';
|
|
@@ -16,8 +22,8 @@ import { existsSync, readFileSync } from 'node:fs';
|
|
|
16
22
|
import { resolve } from 'node:path';
|
|
17
23
|
import {
|
|
18
24
|
DevkitError, EXIT, RULE_IDS, runDoctor, formatDoctorReport, loadDoctorConfig, loadRulesCorpus, projectRules, rulesLockEntries,
|
|
19
|
-
readLock, writeLock, planUpgrade, applyUpgradePlan, formatUpgradePlan, loadConform, loadLiveGatesRunner, loadCreateApp, formatConformanceReport,
|
|
20
|
-
runDeveloperMcpStdio, reviewDefinitions, pinDefinition, definitionKey, formatAuthorityChanges,
|
|
25
|
+
readLock, writeLock, planUpgrade, applyUpgradePlan, formatUpgradePlan, loadConform, loadLiveGatesRunner, loadCreateApp, loadRuntimeCli, formatConformanceReport,
|
|
26
|
+
runDeveloperMcpStdio, reviewDefinitions, pinDefinition, definitionKey, formatAuthorityChanges, loadHarnessProjections, fetchDefinitionFromRegistry, loadEval,
|
|
21
27
|
} from '../dist/index.js';
|
|
22
28
|
|
|
23
29
|
const argv = process.argv.slice(2);
|
|
@@ -38,7 +44,7 @@ const fail = (e) => {
|
|
|
38
44
|
process.exit(code === 'E_USAGE' || code === 'E_CONFIG' || code === 'E_RULE_UNKNOWN' ? EXIT.USAGE : EXIT.ERROR);
|
|
39
45
|
};
|
|
40
46
|
|
|
41
|
-
const USAGE = `ap <doctor|upgrade|conform|test|create|mcp> … (see the header of bin/ap.mjs). Rules: ${RULE_IDS.join(', ')}`;
|
|
47
|
+
const USAGE = `ap <doctor|upgrade|conform|test|create|mcp|runtime|generate|eval> … (see the header of bin/ap.mjs). Rules: ${RULE_IDS.join(', ')}`;
|
|
42
48
|
|
|
43
49
|
async function doctor() {
|
|
44
50
|
if (flag('rules')) {
|
|
@@ -161,7 +167,93 @@ async function create() {
|
|
|
161
167
|
// goes to stdout; the doctrine resource says what this server is and is not.
|
|
162
168
|
async function mcp() { await runDeveloperMcpStdio({ root }); }
|
|
163
169
|
|
|
164
|
-
|
|
170
|
+
// Spec 400 W1 — an outside ACP runtime (Claude Code, goose, Codex) as a workspace MEMBER: join · run · mcp · status.
|
|
171
|
+
// Dispatched to @agenticprimitives/runtime-member from the consumer's install; every act it takes in the workspace is
|
|
172
|
+
// one wire-signed A2A request as the runtime itself, and a write parks for the steward's mandate.
|
|
173
|
+
async function runtime() {
|
|
174
|
+
const fn = await loadRuntimeCli();
|
|
175
|
+
process.exit(await fn(process.argv.slice(3)));
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// Spec 398 §7.2 — the fourth and fifth surfaces of ONE contract: a typed client operation, a CLI argument schema, and
|
|
179
|
+
// the parity cases — projected from a compiled definition (the registry's, or a file), never authored beside it.
|
|
180
|
+
async function generate() {
|
|
181
|
+
const [what] = positional();
|
|
182
|
+
if (!what || !['client', 'cli', 'parity'].includes(what)) throw new DevkitError('E_USAGE', 'ap generate client|cli|parity --registry <url> --definition <ctx>/<archetype> | --file <definition.json> [--out <path>] [--only a,b]');
|
|
183
|
+
let definition;
|
|
184
|
+
if (opt('file')) {
|
|
185
|
+
const raw = JSON.parse(readFileSync(resolve(root, opt('file')), 'utf8'));
|
|
186
|
+
definition = raw.definition ?? raw;
|
|
187
|
+
} else {
|
|
188
|
+
const registry = opt('registry'); const def = opt('definition');
|
|
189
|
+
if (!registry || !def || !def.includes('/')) throw new DevkitError('E_USAGE', '--registry <url> and --definition <context>/<archetype> (or --file <definition.json>) are required');
|
|
190
|
+
const [context, archetype] = def.split('/');
|
|
191
|
+
const r = await fetch(`${registry.replace(/\/$/, '')}/context/contexts/${encodeURIComponent(context)}/archetypes/${encodeURIComponent(archetype)}/definition`, { headers: { accept: 'application/json', 'user-agent': 'ap-devkit' } });
|
|
192
|
+
if (!r.ok) throw new DevkitError('E_INPUT_MISSING', `${registry}: ${def} answered ${r.status}`);
|
|
193
|
+
const b = await r.json();
|
|
194
|
+
if (!b.definition?.tools) throw new DevkitError('E_INPUT_MISSING', `${registry}: ${def} served no definition`);
|
|
195
|
+
definition = b.definition;
|
|
196
|
+
}
|
|
197
|
+
const only = opt('only') ? new Set(opt('only').split(',').map((s) => s.trim()).filter(Boolean)) : undefined;
|
|
198
|
+
const p = await loadHarnessProjections();
|
|
199
|
+
let text; let obj;
|
|
200
|
+
if (what === 'client') { const c = p.generateCapabilityClient(definition, only ? { only } : {}); text = c.source; obj = { ok: true, operations: c.operations, source: c.source }; }
|
|
201
|
+
else if (what === 'cli') { const tools = (definition.tools ?? []).filter((t) => !only || only.has(t.capability?.id ?? t.id)); obj = { ok: true, schemas: tools.map((t) => p.cliArgumentSchema(t)) }; text = JSON.stringify(obj.schemas, null, 2); }
|
|
202
|
+
else { const cases = p.generateParityCases(definition, only ? { only } : {}); obj = { ok: true, cases }; text = JSON.stringify(cases, null, 2); }
|
|
203
|
+
if (opt('out')) { const { writeFileSync, mkdirSync } = await import('node:fs'); const { dirname } = await import('node:path'); const outPath = resolve(root, opt('out')); mkdirSync(dirname(outPath), { recursive: true }); writeFileSync(outPath, text.endsWith('\n') ? text : `${text}\n`); out({ ...obj, out: outPath }, `ap generate ${what} → ${outPath}`); }
|
|
204
|
+
else out(obj, text);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
// Spec 398 §10 / P1.3 — EVALS AS A PRODUCT. Cases are data; the ask goes to a live Home as a persona (a development
|
|
208
|
+
// estate's demo-signin) or a session bearer the developer holds; the judge is deterministic. An eval never signs: an
|
|
209
|
+
// act's right outcome is `authority_required`, asserted as a check.
|
|
210
|
+
async function evalCmd() {
|
|
211
|
+
const home = (opt('home') ?? process.env.HOME_URL ?? '').replace(/\/$/, '');
|
|
212
|
+
if (!home) throw new DevkitError('E_USAGE', '--home <url> (or HOME_URL) is required');
|
|
213
|
+
const ev = await loadEval();
|
|
214
|
+
const j = async (r) => { const t = await r.text(); try { return JSON.parse(t); } catch { return { _raw: t.slice(0, 200), _status: r.status }; } };
|
|
215
|
+
const sessions = new Map();
|
|
216
|
+
const signin = async (handle) => {
|
|
217
|
+
if (sessions.has(handle)) return sessions.get(handle);
|
|
218
|
+
const s = await j(await fetch(`${home}/connect/demo-signin`, { method: 'POST', headers: { 'content-type': 'application/json' }, body: JSON.stringify({ handle, client_id: opt('client') ?? 'demo-jp' }) }));
|
|
219
|
+
if (!s.homeSession) throw new DevkitError('E_INPUT_MISSING', `${home} did not sign ${handle} in (a persona path exists on development estates only): ${JSON.stringify(s).slice(0, 160)}`);
|
|
220
|
+
const v = { token: String(s.homeSession), agent: String(s.agent).toLowerCase() }; sessions.set(handle, v); return v;
|
|
221
|
+
};
|
|
222
|
+
const sessionOf = async (persona) => (opt('session') ? { token: opt('session'), agent: '' } : signin(persona ?? opt('persona') ?? 'alice'));
|
|
223
|
+
const csrfRes = await fetch(`${home}/a2a/auth/csrf`, { headers: { origin: home } });
|
|
224
|
+
const csrf = await j(csrfRes);
|
|
225
|
+
const H = { 'content-type': 'application/json', origin: home, cookie: (csrfRes.headers.get('set-cookie') ?? '').split(';')[0] ?? '', 'x-csrf-token': csrf.token ?? '' };
|
|
226
|
+
const resolve = async (name, fallback) => {
|
|
227
|
+
if (!name) return fallback; if (/^0x[0-9a-fA-F]{40}$/.test(name)) return name.toLowerCase();
|
|
228
|
+
const r = await j(await fetch(`${home}/connect/name-info?name=${encodeURIComponent(name)}`)); if (!r.agent) throw new DevkitError('E_INPUT_MISSING', `${name} does not resolve at ${home}`); return String(r.agent).toLowerCase();
|
|
229
|
+
};
|
|
230
|
+
if (flag('from-runs')) {
|
|
231
|
+
const s = await sessionOf(opt('persona'));
|
|
232
|
+
const addressee = await resolve(opt('addressee'), s.agent);
|
|
233
|
+
const out = await j(await fetch(`${home}/a2a/harness/records`, { method: 'POST', headers: H, body: JSON.stringify({ session: s.token, addressee }) }));
|
|
234
|
+
const file = ev.casesFromRunRecords(out.records ?? [], { persona: opt('persona') ?? 'alice', addressee: opt('addressee') });
|
|
235
|
+
const text = JSON.stringify(file, null, 2);
|
|
236
|
+
if (opt('out')) { const { writeFileSync } = await import('node:fs'); writeFileSync(resolve_(opt('out')), `${text}\n`); out_({ ok: true, cases: file.cases.length, out: resolve_(opt('out')) }, `ap eval --from-runs → ${file.cases.length} case skeleton(s) in ${opt('out')} — edit the checks to what must hold`); }
|
|
237
|
+
else console.log(text);
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
const [path] = positional();
|
|
241
|
+
if (!path) throw new DevkitError('E_USAGE', 'ap eval <cases.eval.json> --home <url> [--persona <handle> | --session <bearer>] [--report out.json]');
|
|
242
|
+
const file = ev.parseEvalFile(JSON.parse(readFileSync(resolve_(path), 'utf8')));
|
|
243
|
+
const report = await ev.runEvalFile(file, async (c) => {
|
|
244
|
+
const s = await sessionOf(c.persona);
|
|
245
|
+
const addressee = await resolve(c.addressee, s.agent);
|
|
246
|
+
const r = await j(await fetch(`${home}/a2a/harness/ask`, { method: 'POST', headers: H, body: JSON.stringify({ session: s.token, addressee, message: c.message, ...(c.plan ? { plan: c.plan } : {}), runRef: `eval-${Date.now().toString(36)}` }) }));
|
|
247
|
+
return ev.outcomeOfReply(r.reply ?? r);
|
|
248
|
+
});
|
|
249
|
+
if (opt('report')) { const { writeFileSync } = await import('node:fs'); writeFileSync(resolve_(opt('report')), `${JSON.stringify({ file: file.name ?? path, home, at: new Date().toISOString(), ...report }, null, 2)}\n`); }
|
|
250
|
+
out_({ ok: report.failed === 0, passed: report.passed, failed: report.failed, results: report.results.map((r) => ({ id: r.id, passed: r.passed, failures: r.failures, ms: r.ms, kind: r.outcome?.kind })) }, `ap eval · ${file.name ?? path} · ${home}\n${ev.formatTruthReport(report)}`);
|
|
251
|
+
process.exit(report.failed ? EXIT.FINDINGS : EXIT.OK);
|
|
252
|
+
}
|
|
253
|
+
const resolve_ = (p) => resolve(root, p);
|
|
254
|
+
const out_ = out;
|
|
255
|
+
|
|
256
|
+
const commands = { doctor, upgrade, conform, test, create, mcp, runtime, generate, eval: evalCmd };
|
|
165
257
|
try {
|
|
166
258
|
if (!cmd || flag('help') || cmd === '--help' || !commands[cmd]) {
|
|
167
259
|
if (json) console.log(JSON.stringify({ ok: !cmd || cmd === '--help', usage: USAGE }));
|
package/dist/config.js
CHANGED
|
@@ -48,7 +48,7 @@ export const RING0_DOCTOR_CONFIG = {
|
|
|
48
48
|
{ name: 'A2A_INTERACTIONS_SESSION_PRIVATE_KEY', why: 'workstation-only InteractionsDO session signer when no Cloud KMS is present' },
|
|
49
49
|
],
|
|
50
50
|
},
|
|
51
|
-
noHmacHomeBridge: { dir: 'apps/demo-sso-next', hmacCall: 'bridgeInteractions', sessionRpcCall: 'callInteractions', ceilings: { hmac: 0, total:
|
|
51
|
+
noHmacHomeBridge: { dir: 'apps/demo-sso-next', hmacCall: 'bridgeInteractions', sessionRpcCall: 'callInteractions', ceilings: { hmac: 0, total: 47 } },
|
|
52
52
|
noCrossSubjectVaultReads: { roots: ['packages/context/src', 'apps/demo-a2a/src'], exemptFiles: ['self-only.ts'], gate: 'subjectOfRead|routedSubjectFor' },
|
|
53
53
|
failOpenKnobs: {
|
|
54
54
|
roots: ['apps'],
|
package/dist/dispatch.d.ts
CHANGED
|
@@ -41,4 +41,73 @@ export declare const CREATE_APP_MODULE: {
|
|
|
41
41
|
};
|
|
42
42
|
export declare function loadCreateApp(): Promise<(opts: Record<string, unknown>) => Promise<unknown>>;
|
|
43
43
|
export declare function formatConformanceReport(r: ConformanceReport): string;
|
|
44
|
+
/** Spec 400 W1 — `ap runtime join|run|mcp|status`: an outside ACP runtime as a workspace member. The kit carries no
|
|
45
|
+
* protocol package; the consumer installs `@agenticprimitives/runtime-member` (absent ⇒ E_MODULE_ABSENT, never a fallback). */
|
|
46
|
+
export declare const RUNTIME_MODULE: {
|
|
47
|
+
readonly spec: "@agenticprimitives/runtime-member";
|
|
48
|
+
readonly fn: "runtimeCli";
|
|
49
|
+
};
|
|
50
|
+
export type RuntimeCli = (argv: string[]) => Promise<number>;
|
|
51
|
+
export declare function loadRuntimeCli(): Promise<RuntimeCli>;
|
|
52
|
+
/** Spec 398 §7.2 (3)+(4) — the typed client / CLI schema and the parity cases are projected FROM a compiled definition by
|
|
53
|
+
* `@agenticprimitives/harness` (pure functions); the kit dispatches to the consumer's install (absent ⇒ E_MODULE_ABSENT). */
|
|
54
|
+
export declare const HARNESS_PROJECTIONS_MODULE: {
|
|
55
|
+
readonly spec: "@agenticprimitives/harness";
|
|
56
|
+
readonly client: "generateCapabilityClient";
|
|
57
|
+
readonly cli: "cliArgumentSchema";
|
|
58
|
+
readonly parity: "generateParityCases";
|
|
59
|
+
};
|
|
60
|
+
export interface HarnessProjections {
|
|
61
|
+
generateCapabilityClient: (definition: unknown, opts?: Record<string, unknown>) => {
|
|
62
|
+
source: string;
|
|
63
|
+
operations: unknown[];
|
|
64
|
+
} & Record<string, unknown>;
|
|
65
|
+
cliArgumentSchema: (tool: unknown) => unknown;
|
|
66
|
+
generateParityCases: (definition: unknown, opts?: Record<string, unknown>) => unknown;
|
|
67
|
+
}
|
|
68
|
+
export declare function loadHarnessProjections(): Promise<HarnessProjections>;
|
|
69
|
+
/** Spec 398 §10 / P1.3 — `ap eval`: cases as data judged by `@agenticprimitives/evaluation` (the consumer's install). */
|
|
70
|
+
export declare const EVAL_MODULE: {
|
|
71
|
+
readonly spec: "@agenticprimitives/evaluation";
|
|
72
|
+
};
|
|
73
|
+
export interface EvalModule {
|
|
74
|
+
parseEvalFile: (raw: unknown) => {
|
|
75
|
+
version: 1;
|
|
76
|
+
name?: string;
|
|
77
|
+
home?: string;
|
|
78
|
+
cases: Array<{
|
|
79
|
+
id: string;
|
|
80
|
+
persona?: string;
|
|
81
|
+
addressee?: string;
|
|
82
|
+
message: string;
|
|
83
|
+
plan?: unknown;
|
|
84
|
+
truth?: Record<string, unknown>;
|
|
85
|
+
checks: unknown[];
|
|
86
|
+
}>;
|
|
87
|
+
};
|
|
88
|
+
runEvalFile: (file: unknown, ask: (c: {
|
|
89
|
+
id: string;
|
|
90
|
+
persona?: string;
|
|
91
|
+
addressee?: string;
|
|
92
|
+
message: string;
|
|
93
|
+
plan?: unknown;
|
|
94
|
+
}) => Promise<unknown>) => Promise<{
|
|
95
|
+
results: Array<{
|
|
96
|
+
id: string;
|
|
97
|
+
passed: boolean;
|
|
98
|
+
failures: string[];
|
|
99
|
+
ms: number;
|
|
100
|
+
outcome?: {
|
|
101
|
+
kind: string;
|
|
102
|
+
text: string;
|
|
103
|
+
};
|
|
104
|
+
}>;
|
|
105
|
+
passed: number;
|
|
106
|
+
failed: number;
|
|
107
|
+
}>;
|
|
108
|
+
formatTruthReport: (report: unknown) => string;
|
|
109
|
+
outcomeOfReply: (rep: Record<string, unknown>) => unknown;
|
|
110
|
+
casesFromRunRecords: (records: unknown[], opts?: Record<string, unknown>) => unknown;
|
|
111
|
+
}
|
|
112
|
+
export declare function loadEval(): Promise<EvalModule>;
|
|
44
113
|
//# sourceMappingURL=dispatch.d.ts.map
|
package/dist/dispatch.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,gBAAgB;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAAC,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;AAChH,MAAM,WAAW,iBAAiB;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,gBAAgB,EAAE,CAAA;CAAE;AAC9F,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEpH,MAAM,WAAW,eAAe;IAC9B,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC,CAAC;CACjG;AAoBD,eAAO,MAAM,eAAe;;;;;;;;;CAA6J,CAAC;AAE1L,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,OAAO,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAGxF;AAED,eAAO,MAAM,iBAAiB;;;CAAyE,CAAC;AAExG,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,eAAe,CAAC,CAEpE;AAED,eAAO,MAAM,iBAAiB;;;CAAsE,CAAC;AAErG,wBAAsB,aAAa,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAElG;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAIpE"}
|
|
1
|
+
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,gBAAgB;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAAC,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;AAChH,MAAM,WAAW,iBAAiB;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,gBAAgB,EAAE,CAAA;CAAE;AAC9F,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEpH,MAAM,WAAW,eAAe;IAC9B,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC,CAAC;CACjG;AAoBD,eAAO,MAAM,eAAe;;;;;;;;;CAA6J,CAAC;AAE1L,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,OAAO,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAGxF;AAED,eAAO,MAAM,iBAAiB;;;CAAyE,CAAC;AAExG,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,eAAe,CAAC,CAEpE;AAED,eAAO,MAAM,iBAAiB;;;CAAsE,CAAC;AAErG,wBAAsB,aAAa,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAElG;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAIpE;AAED;gIACgI;AAChI,eAAO,MAAM,cAAc;;;CAA2E,CAAC;AACvG,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7D,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,CAE1D;AAED;8HAC8H;AAC9H,eAAO,MAAM,0BAA0B;;;;;CAA+I,CAAC;AACvL,MAAM,WAAW,kBAAkB;IACjC,wBAAwB,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,EAAE,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvJ,iBAAiB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC;IAC9C,mBAAmB,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;CACvF;AACD,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAO1E;AAED,yHAAyH;AACzH,eAAO,MAAM,WAAW;;CAAqD,CAAC;AAC9E,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK;QAAE,OAAO,EAAE,CAAC,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,OAAO,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAAC,MAAM,EAAE,OAAO,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IACvO,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,OAAO,CAAC;YAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;YAAC,EAAE,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5T,iBAAiB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC;IAC/C,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;IAC1D,mBAAmB,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;CACtF;AACD,wBAAsB,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,CAMpD"}
|
package/dist/dispatch.js
CHANGED
|
@@ -40,4 +40,30 @@ export function formatConformanceReport(r) {
|
|
|
40
40
|
lines.push(` ${c.ok ? '✓' : c.level === 'MUST' ? '✗' : '⚠'} ${c.level.padEnd(6)} ${c.id}${c.detail ? ` — ${c.detail}` : ''}`);
|
|
41
41
|
return lines.join('\n');
|
|
42
42
|
}
|
|
43
|
+
/** Spec 400 W1 — `ap runtime join|run|mcp|status`: an outside ACP runtime as a workspace member. The kit carries no
|
|
44
|
+
* protocol package; the consumer installs `@agenticprimitives/runtime-member` (absent ⇒ E_MODULE_ABSENT, never a fallback). */
|
|
45
|
+
export const RUNTIME_MODULE = { spec: '@agenticprimitives/runtime-member', fn: 'runtimeCli' };
|
|
46
|
+
export async function loadRuntimeCli() {
|
|
47
|
+
return pick(await loadModule(RUNTIME_MODULE.spec, 'ap runtime'), RUNTIME_MODULE.fn, RUNTIME_MODULE.spec);
|
|
48
|
+
}
|
|
49
|
+
/** Spec 398 §7.2 (3)+(4) — the typed client / CLI schema and the parity cases are projected FROM a compiled definition by
|
|
50
|
+
* `@agenticprimitives/harness` (pure functions); the kit dispatches to the consumer's install (absent ⇒ E_MODULE_ABSENT). */
|
|
51
|
+
export const HARNESS_PROJECTIONS_MODULE = { spec: '@agenticprimitives/harness', client: 'generateCapabilityClient', cli: 'cliArgumentSchema', parity: 'generateParityCases' };
|
|
52
|
+
export async function loadHarnessProjections() {
|
|
53
|
+
const m = await loadModule(HARNESS_PROJECTIONS_MODULE.spec, 'ap generate');
|
|
54
|
+
return {
|
|
55
|
+
generateCapabilityClient: pick(m, HARNESS_PROJECTIONS_MODULE.client, HARNESS_PROJECTIONS_MODULE.spec),
|
|
56
|
+
cliArgumentSchema: pick(m, HARNESS_PROJECTIONS_MODULE.cli, HARNESS_PROJECTIONS_MODULE.spec),
|
|
57
|
+
generateParityCases: pick(m, HARNESS_PROJECTIONS_MODULE.parity, HARNESS_PROJECTIONS_MODULE.spec),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/** Spec 398 §10 / P1.3 — `ap eval`: cases as data judged by `@agenticprimitives/evaluation` (the consumer's install). */
|
|
61
|
+
export const EVAL_MODULE = { spec: '@agenticprimitives/evaluation' };
|
|
62
|
+
export async function loadEval() {
|
|
63
|
+
const m = await loadModule(EVAL_MODULE.spec, 'ap eval');
|
|
64
|
+
return {
|
|
65
|
+
parseEvalFile: pick(m, 'parseEvalFile', EVAL_MODULE.spec), runEvalFile: pick(m, 'runEvalFile', EVAL_MODULE.spec), formatTruthReport: pick(m, 'formatTruthReport', EVAL_MODULE.spec),
|
|
66
|
+
outcomeOfReply: pick(m, 'outcomeOfReply', EVAL_MODULE.spec), casesFromRunRecords: pick(m, 'casesFromRunRecords', EVAL_MODULE.spec),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
43
69
|
//# sourceMappingURL=dispatch.js.map
|
package/dist/dispatch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -19,7 +19,8 @@ export { workspaceGlobs, workspaceManifests } from './workspace.js';
|
|
|
19
19
|
export type { PackageManifest, WorkspaceManifest } from './workspace.js';
|
|
20
20
|
export { planUpgrade, applyUpgradePlan, formatUpgradePlan, npmDistTags } from './upgrade.js';
|
|
21
21
|
export type { UpgradeMode, UpgradeChange, UpgradePlan, DistTagResolver } from './upgrade.js';
|
|
22
|
-
export { CONFORM_MODULES, LIVE_GATES_MODULE, CREATE_APP_MODULE, loadConform, loadLiveGatesRunner, loadCreateApp, formatConformanceReport } from './dispatch.js';
|
|
22
|
+
export { CONFORM_MODULES, LIVE_GATES_MODULE, CREATE_APP_MODULE, RUNTIME_MODULE, loadConform, loadLiveGatesRunner, loadCreateApp, loadRuntimeCli, loadHarnessProjections, loadEval, formatConformanceReport } from './dispatch.js';
|
|
23
|
+
export type { RuntimeCli } from './dispatch.js';
|
|
23
24
|
export type { ConformanceCheck, ConformanceReport, ConformFn, LiveGatesRunner } from './dispatch.js';
|
|
24
25
|
export { createDeveloperMcp, runDeveloperMcpStdio, DEVELOPER_MCP_DOCTRINE } from './developer-mcp.js';
|
|
25
26
|
export type { DeveloperMcpOptions } from './developer-mcp.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY,EAAG,2BAAoC,CAAC;AACjE,eAAO,MAAM,cAAc,EAAG,yBAAkC,CAAC;AACjE,eAAO,MAAM,QAAQ,EAAG,uCAAgD,CAAC;AAEzE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC7D,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACvF,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnI,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAClH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC1D,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC7E,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACL,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EACrD,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,GAC9H,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvI,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAChD,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC7F,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY,EAAG,2BAAoC,CAAC;AACjE,eAAO,MAAM,cAAc,EAAG,yBAAkC,CAAC;AACjE,eAAO,MAAM,QAAQ,EAAG,uCAAgD,CAAC;AAEzE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC7D,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACvF,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnI,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAClH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC1D,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC7E,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACL,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EACrD,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,GAC9H,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvI,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAChD,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC7F,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAAE,sBAAsB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAClO,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErG,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACtG,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC1M,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,7 @@ export { BUNDLED_RULES_DIR, RULES_BLOCK_START, RULES_BLOCK_END, ruleDigest, extr
|
|
|
15
15
|
export { readLock, writeLock } from './lock.js';
|
|
16
16
|
export { workspaceGlobs, workspaceManifests } from './workspace.js';
|
|
17
17
|
export { planUpgrade, applyUpgradePlan, formatUpgradePlan, npmDistTags } from './upgrade.js';
|
|
18
|
-
export { CONFORM_MODULES, LIVE_GATES_MODULE, CREATE_APP_MODULE, loadConform, loadLiveGatesRunner, loadCreateApp, formatConformanceReport } from './dispatch.js';
|
|
18
|
+
export { CONFORM_MODULES, LIVE_GATES_MODULE, CREATE_APP_MODULE, RUNTIME_MODULE, loadConform, loadLiveGatesRunner, loadCreateApp, loadRuntimeCli, loadHarnessProjections, loadEval, formatConformanceReport } from './dispatch.js';
|
|
19
19
|
// Spec 398 §10.4 — the read-only Developer MCP (the THIRD MCP; never the runtime's, never the Home's).
|
|
20
20
|
export { createDeveloperMcp, runDeveloperMcpStdio, DEVELOPER_MCP_DOCTRINE } from './developer-mcp.js';
|
|
21
21
|
// Spec 398 §10.3 — the pinned definitions and the review `ap upgrade` stops for.
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mHAAmH;AACnH,+GAA+G;AAC/G,0GAA0G;AAC1G,+GAA+G;AAC/G,yFAAyF;AACzF,MAAM,CAAC,MAAM,YAAY,GAAG,2BAAoC,CAAC;AACjE,MAAM,CAAC,MAAM,cAAc,GAAG,yBAAkC,CAAC;AACjE,MAAM,CAAC,MAAM,QAAQ,GAAG,uCAAgD,CAAC;AAEzE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGvF,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,EACL,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EACrD,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,GAC9H,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE7F,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mHAAmH;AACnH,+GAA+G;AAC/G,0GAA0G;AAC1G,+GAA+G;AAC/G,yFAAyF;AACzF,MAAM,CAAC,MAAM,YAAY,GAAG,2BAAoC,CAAC;AACjE,MAAM,CAAC,MAAM,cAAc,GAAG,yBAAkC,CAAC;AACjE,MAAM,CAAC,MAAM,QAAQ,GAAG,uCAAgD,CAAC;AAEzE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGvF,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,EACL,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EACrD,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,GAC9H,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE7F,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAAE,sBAAsB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAGlO,uGAAuG;AACvG,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEtG,iFAAiF;AACjF,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agenticprimitives/devkit",
|
|
3
|
-
"version": "0.0.0-alpha.
|
|
3
|
+
"version": "0.0.0-alpha.7",
|
|
4
4
|
"description": "The Developer Kit core (spec 398 §10 / spec 399 §3): `ap doctor` runs the doctrine gates as data + pure rules over any tree, `ap doctor --rules` projects one pinned rules source into AGENTS.md / CLAUDE.md / .cursor/rules by digest, `ap upgrade` rewrites every @agenticprimitives/* pin to one coherent exact set, and `ap conform` / `ap test` dispatch to the packages that own conformance and live gates.",
|
|
5
|
+
"homepage": "https://agenticprimitives.dev",
|
|
6
|
+
"bugs": {
|
|
7
|
+
"url": "https://github.com/agentictrustlabs/agenticprimitives/issues"
|
|
8
|
+
},
|
|
9
|
+
"author": {
|
|
10
|
+
"name": "Agentic Trust Labs",
|
|
11
|
+
"url": "https://agenticprimitives.dev"
|
|
12
|
+
},
|
|
5
13
|
"license": "MIT",
|
|
6
14
|
"repository": {
|
|
7
15
|
"type": "git",
|
|
@@ -32,12 +40,13 @@
|
|
|
32
40
|
"access": "public"
|
|
33
41
|
},
|
|
34
42
|
"dependencies": {
|
|
35
|
-
"@agenticprimitives/capability-claims": "0.0.0-alpha.
|
|
36
|
-
"@agenticprimitives/mcp-protocol": "0.0.0-alpha.
|
|
43
|
+
"@agenticprimitives/capability-claims": "0.0.0-alpha.24",
|
|
44
|
+
"@agenticprimitives/mcp-protocol": "0.0.0-alpha.4"
|
|
37
45
|
},
|
|
38
46
|
"peerDependencies": {
|
|
39
|
-
"@agenticprimitives/a2a": "0.0.0-alpha.
|
|
40
|
-
"@agenticprimitives/evaluation": "0.0.0-alpha.
|
|
47
|
+
"@agenticprimitives/a2a": "0.0.0-alpha.24",
|
|
48
|
+
"@agenticprimitives/evaluation": "0.0.0-alpha.4",
|
|
49
|
+
"@agenticprimitives/harness": "0.0.0-alpha.6"
|
|
41
50
|
},
|
|
42
51
|
"peerDependenciesMeta": {
|
|
43
52
|
"@agenticprimitives/a2a": {
|
|
@@ -45,10 +54,14 @@
|
|
|
45
54
|
},
|
|
46
55
|
"@agenticprimitives/evaluation": {
|
|
47
56
|
"optional": true
|
|
57
|
+
},
|
|
58
|
+
"@agenticprimitives/harness": {
|
|
59
|
+
"optional": true
|
|
48
60
|
}
|
|
49
61
|
},
|
|
50
62
|
"devDependencies": {
|
|
51
|
-
"vitest": "^4.1.8"
|
|
63
|
+
"vitest": "^4.1.8",
|
|
64
|
+
"@agenticprimitives/harness": "0.0.0-alpha.6"
|
|
52
65
|
},
|
|
53
66
|
"keywords": [
|
|
54
67
|
"agentic",
|
|
@@ -56,7 +69,12 @@
|
|
|
56
69
|
"devkit",
|
|
57
70
|
"doctor",
|
|
58
71
|
"developer-kit",
|
|
59
|
-
"cli"
|
|
72
|
+
"cli",
|
|
73
|
+
"agentic-primitives",
|
|
74
|
+
"agenticprimitives",
|
|
75
|
+
"ai-agents",
|
|
76
|
+
"agent-authority",
|
|
77
|
+
"agentic-trust"
|
|
60
78
|
],
|
|
61
79
|
"scripts": {
|
|
62
80
|
"sync-rules": "node scripts/sync-rules.mjs",
|