@agenticprimitives/devkit 0.0.0-alpha.6 → 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 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
@@ -10,6 +10,11 @@
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
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)
13
18
  //
14
19
  // Exit: 0 clean · 1 findings · 2 usage/config · 3 a rule or dispatch errored.
15
20
  import { spawnSync } from 'node:child_process';
@@ -18,7 +23,7 @@ import { resolve } from 'node:path';
18
23
  import {
19
24
  DevkitError, EXIT, RULE_IDS, runDoctor, formatDoctorReport, loadDoctorConfig, loadRulesCorpus, projectRules, rulesLockEntries,
20
25
  readLock, writeLock, planUpgrade, applyUpgradePlan, formatUpgradePlan, loadConform, loadLiveGatesRunner, loadCreateApp, loadRuntimeCli, formatConformanceReport,
21
- runDeveloperMcpStdio, reviewDefinitions, pinDefinition, definitionKey, formatAuthorityChanges,
26
+ runDeveloperMcpStdio, reviewDefinitions, pinDefinition, definitionKey, formatAuthorityChanges, loadHarnessProjections, fetchDefinitionFromRegistry, loadEval,
22
27
  } from '../dist/index.js';
23
28
 
24
29
  const argv = process.argv.slice(2);
@@ -39,7 +44,7 @@ const fail = (e) => {
39
44
  process.exit(code === 'E_USAGE' || code === 'E_CONFIG' || code === 'E_RULE_UNKNOWN' ? EXIT.USAGE : EXIT.ERROR);
40
45
  };
41
46
 
42
- const USAGE = `ap <doctor|upgrade|conform|test|create|mcp|runtime> … (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(', ')}`;
43
48
 
44
49
  async function doctor() {
45
50
  if (flag('rules')) {
@@ -170,7 +175,85 @@ async function runtime() {
170
175
  process.exit(await fn(process.argv.slice(3)));
171
176
  }
172
177
 
173
- const commands = { doctor, upgrade, conform, test, create, mcp, runtime };
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 };
174
257
  try {
175
258
  if (!cmd || flag('help') || cmd === '--help' || !commands[cmd]) {
176
259
  if (json) console.log(JSON.stringify({ ok: !cmd || cmd === '--help', usage: USAGE }));
@@ -49,4 +49,65 @@ export declare const RUNTIME_MODULE: {
49
49
  };
50
50
  export type RuntimeCli = (argv: string[]) => Promise<number>;
51
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>;
52
113
  //# sourceMappingURL=dispatch.d.ts.map
@@ -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;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"}
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"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"}
package/dist/dispatch.js CHANGED
@@ -46,4 +46,24 @@ export const RUNTIME_MODULE = { spec: '@agenticprimitives/runtime-member', fn: '
46
46
  export async function loadRuntimeCli() {
47
47
  return pick(await loadModule(RUNTIME_MODULE.spec, 'ap runtime'), RUNTIME_MODULE.fn, RUNTIME_MODULE.spec);
48
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
+ }
49
69
  //# sourceMappingURL=dispatch.js.map
@@ -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,7 @@ 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, RUNTIME_MODULE, loadConform, loadLiveGatesRunner, loadCreateApp, loadRuntimeCli, 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
23
  export type { RuntimeCli } from './dispatch.js';
24
24
  export type { ConformanceCheck, ConformanceReport, ConformFn, LiveGatesRunner } from './dispatch.js';
25
25
  export { createDeveloperMcp, runDeveloperMcpStdio, DEVELOPER_MCP_DOCTRINE } from './developer-mcp.js';
@@ -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,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAChM,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"}
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, RUNTIME_MODULE, loadConform, loadLiveGatesRunner, loadCreateApp, loadRuntimeCli, 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,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAGhM,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"}
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.6",
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.23",
36
- "@agenticprimitives/mcp-protocol": "0.0.0-alpha.3"
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.23",
40
- "@agenticprimitives/evaluation": "0.0.0-alpha.3"
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",