@agenticprimitives/devkit 0.0.0-alpha.3 → 0.0.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -56,6 +56,25 @@ a consumer uses the copy bundled in the package.
56
56
  `packages` is the coherent set `ap upgrade` maintains; `rules` the source digests; `doctor` the product's rule
57
57
  config (each section replaces the reference section whole).
58
58
 
59
+ ## Pinned definitions — `ap upgrade` stops for review (398 §10.3)
60
+
61
+ `ap upgrade --pin-definitions <registry> agentic-trust/org-steward,agentic-trust/person-steward` records, in
62
+ `agentic.lock.json#definitions`, each archetype definition's digest and the **authority shape** of every tool (risk,
63
+ action, requirement type, resource and authority args, approval policy, effects, idempotency). Every later `ap upgrade`
64
+ reads the registry first: a wording change is a version bump; a change to any of those fields stops the upgrade with the
65
+ change named per tool (`treasury.payment.execute: authorityArg payer → org`), and `--accept-definitions` re-pins once a
66
+ reviewer has read it. The pin is a reviewer's memory, never a verifier's input.
67
+
68
+ ## The Developer MCP (`ap mcp`)
69
+
70
+ A coding agent's host spawns `ap mcp` (stdio JSON-RPC) and gets a **read-only** server: `packages_list`,
71
+ `package_exports` (the names each entry's `.d.ts` declares), `ontology_term` (T-box IRI, label, comment — what a term
72
+ means and what it is not), `contract_deployments` (addresses per chain), `recipes` (the agent rules and each
73
+ package's spec), `doctor` (the same report, redacted). Everything is answered from the packages installed beside it.
74
+ It is the **third** MCP — not the runtime's private MCP behind admission (ADR-0057), not the Home MCP (spec 397) —
75
+ and its `ap://developer-mcp/doctrine` resource says so first: no signing key, no vault, no authority, no production
76
+ effect (spec 398 §10.4, T23). Claude Code: `claude mcp add ap-dev -- npx ap mcp --root .`
77
+
59
78
  ## What it will not do
60
79
 
61
80
  Hold a key, read a vault, mint authority, invoke a production effect. A doctor finding is a review checkpoint;
package/bin/ap.mjs CHANGED
@@ -3,10 +3,12 @@
3
3
  //
4
4
  // ap doctor [--rule <id>[,<id>]] [--root <dir>] [--verbose] [--json]
5
5
  // ap doctor --rules [--write] [--all] [--source <dir>] project the rules source; report drift by digest
6
- // ap upgrade --canary | --pin <version|tag> [--dry-run] [--no-install] [--json]
6
+ // ap upgrade --canary | --pin <version|tag> [--dry-run] [--no-install] [--accept-definitions] [--json]
7
+ // ap upgrade --pin-definitions <registry> <ctx>/<archetype>[,…] pin the contracts the product relies on (398 §10.3)
7
8
  // ap conform a2a|mcp <url> [--bearer <token>] [--timeout <ms>] [--json]
8
9
  // ap test --live-gates <ledger.json> [--only a,b] [--json]
9
10
  // ap create <dir> --template product-repo [--name <n>] [--pin <version>] [--json]
11
+ // ap mcp [--root <dir>] the read-only Developer MCP on stdio (spec 398 §10.4)
10
12
  //
11
13
  // Exit: 0 clean · 1 findings · 2 usage/config · 3 a rule or dispatch errored.
12
14
  import { spawnSync } from 'node:child_process';
@@ -15,6 +17,7 @@ import { resolve } from 'node:path';
15
17
  import {
16
18
  DevkitError, EXIT, RULE_IDS, runDoctor, formatDoctorReport, loadDoctorConfig, loadRulesCorpus, projectRules, rulesLockEntries,
17
19
  readLock, writeLock, planUpgrade, applyUpgradePlan, formatUpgradePlan, loadConform, loadLiveGatesRunner, loadCreateApp, formatConformanceReport,
20
+ runDeveloperMcpStdio, reviewDefinitions, pinDefinition, definitionKey, formatAuthorityChanges,
18
21
  } from '../dist/index.js';
19
22
 
20
23
  const argv = process.argv.slice(2);
@@ -35,7 +38,7 @@ const fail = (e) => {
35
38
  process.exit(code === 'E_USAGE' || code === 'E_CONFIG' || code === 'E_RULE_UNKNOWN' ? EXIT.USAGE : EXIT.ERROR);
36
39
  };
37
40
 
38
- const USAGE = `ap <doctor|upgrade|conform|test|create> … (see the header of bin/ap.mjs). Rules: ${RULE_IDS.join(', ')}`;
41
+ const USAGE = `ap <doctor|upgrade|conform|test|create|mcp> … (see the header of bin/ap.mjs). Rules: ${RULE_IDS.join(', ')}`;
39
42
 
40
43
  async function doctor() {
41
44
  if (flag('rules')) {
@@ -60,10 +63,56 @@ async function doctor() {
60
63
  process.exit(report.errored ? EXIT.ERROR : report.ok ? EXIT.OK : EXIT.FINDINGS);
61
64
  }
62
65
 
66
+ /** Spec 398 §10.3 — the definitions the lock pins, reviewed against their registries: any authority/effects change is a
67
+ * STOP. `--accept-definitions` records the reviewed shapes; nothing else rewrites a pin. */
68
+ async function reviewPinnedDefinitions() {
69
+ const lock = readLock(root);
70
+ const pins = lock?.definitions ?? {};
71
+ if (Object.keys(pins).length === 0) return { reviews: [], blocked: false, note: 'no definitions pinned — `ap upgrade --pin-definitions <registry> <context>/<archetype>[,…]` records the contracts this product relies on' };
72
+ const reviews = await reviewDefinitions(pins);
73
+ const blocked = reviews.some((r) => r.error || r.changes.length);
74
+ if (blocked && flag('accept-definitions')) {
75
+ for (const r of reviews) { if (!r.error) lock.definitions[r.key] = await pinDefinition(r.pin.registry, r.pin.context, r.pin.archetype); }
76
+ writeLock(root, lock);
77
+ return { reviews, blocked: false, accepted: true };
78
+ }
79
+ return { reviews, blocked };
80
+ }
81
+ function formatDefinitionReviews(reviews) {
82
+ return reviews.map((r) => r.error ? `${r.key}: could not be verified — ${r.error}` : r.changes.length ? formatAuthorityChanges(r.key, r.changes) : `${r.key}: authority unchanged (${r.pin.digest === r.current.digest ? 'same digest' : `digest ${r.pin.digest.slice(0, 12)}… → ${r.current.digest.slice(0, 12)}… — wording or shape only`})`).join('\n');
83
+ }
84
+
63
85
  async function upgrade() {
86
+ // ap upgrade --pin-definitions <registry> <context>/<archetype>[,<context>/<archetype>…] — record what the product relies on
87
+ if (opt('pin-definitions') !== undefined) {
88
+ const registry = opt('pin-definitions');
89
+ const [list] = positional();
90
+ if (!registry || !list) throw new DevkitError('E_USAGE', 'ap upgrade --pin-definitions <registry-url> <context>/<archetype>[,…]');
91
+ const lock = readLock(root) ?? { lockVersion: 1, packages: {}, rules: {} };
92
+ lock.definitions = lock.definitions ?? {};
93
+ const pinned = [];
94
+ for (const ref of list.split(',')) {
95
+ const [context, archetype] = ref.split('/');
96
+ if (!context || !archetype) throw new DevkitError('E_USAGE', `not <context>/<archetype>: ${ref}`);
97
+ const pin = await pinDefinition(registry, context, archetype);
98
+ lock.definitions[definitionKey(context, archetype)] = pin;
99
+ pinned.push({ key: definitionKey(context, archetype), digest: pin.digest, tools: Object.keys(pin.authority).length });
100
+ }
101
+ writeLock(root, lock);
102
+ out({ ok: true, pinned }, `ap upgrade --pin-definitions · ${pinned.map((p) => `${p.key} ${p.digest.slice(0, 12)}… (${p.tools} tools)`).join(' · ')}\n wrote agentic.lock.json#definitions`);
103
+ return;
104
+ }
64
105
  const mode = flag('canary') ? 'canary' : opt('pin') !== undefined ? 'pin' : null;
65
- if (!mode) throw new DevkitError('E_USAGE', 'ap upgrade needs --canary or --pin <version|tag>');
106
+ if (!mode) throw new DevkitError('E_USAGE', 'ap upgrade needs --canary or --pin <version|tag> (or --pin-definitions <registry> <context>/<archetype>)');
107
+ // Spec 398 §10.3 — the contracts first: an upgrade that changes what an act may do is a review, not a version bump.
108
+ const defs = await reviewPinnedDefinitions();
109
+ if (defs.blocked) {
110
+ out({ ok: false, definitions: defs.reviews }, `✗ ap upgrade stopped for review (398 §10.3):\n${formatDefinitionReviews(defs.reviews)}\n Review the changes; then \`ap upgrade … --accept-definitions\` records them and proceeds.`);
111
+ process.exit(EXIT.FINDINGS);
112
+ }
66
113
  const plan = await planUpgrade({ root, mode, pin: opt('pin') });
114
+ if (defs.note) plan.notes.push(defs.note);
115
+ else plan.notes.push(`${defs.reviews.length} pinned definition(s) reviewed: ${defs.accepted ? 'changes accepted and re-pinned' : 'authority unchanged'}`);
67
116
  if (plan.unresolved.length) { out({ ok: false, plan }, formatUpgradePlan(plan)); throw new DevkitError('E_RESOLVE', `${plan.unresolved.length} package(s) could not be resolved`); }
68
117
  if (flag('dry-run')) { out({ ok: true, dryRun: true, plan }, formatUpgradePlan(plan)); return; }
69
118
  const touched = applyUpgradePlan(root, plan, { devkitVersion });
@@ -108,7 +157,11 @@ async function create() {
108
157
  out({ ok: true, result }, `ap create · ${result.dir}\n${(result.files ?? []).map((f) => ` ${f}`).join('\n')}`);
109
158
  }
110
159
 
111
- const commands = { doctor, upgrade, conform, test, create };
160
+ // The Developer MCP (spec 398 §10.4): read-only, on stdio — a coding agent's host spawns `ap mcp`. Nothing but JSON-RPC
161
+ // goes to stdout; the doctrine resource says what this server is and is not.
162
+ async function mcp() { await runDeveloperMcpStdio({ root }); }
163
+
164
+ const commands = { doctor, upgrade, conform, test, create, mcp };
112
165
  try {
113
166
  if (!cmd || flag('help') || cmd === '--help' || !commands[cmd]) {
114
167
  if (json) console.log(JSON.stringify({ ok: !cmd || cmd === '--help', usage: USAGE }));
@@ -0,0 +1,85 @@
1
+ export interface ToolAuthorityShapeV1 {
2
+ risk?: string;
3
+ action?: string;
4
+ requirementType?: string;
5
+ resourceArg?: string;
6
+ authorityArg?: string;
7
+ approvalPolicy?: string;
8
+ /** Spec 360 — what the act promises to leave and to whom. */
9
+ effects?: Array<{
10
+ produces: string;
11
+ recipientArg?: string;
12
+ deliverTo?: string[];
13
+ }>;
14
+ /** Spec 398 §7.2 — repeating semantics; a change here changes what a retry means. */
15
+ idempotency?: string;
16
+ }
17
+ export interface DefinitionPinV1 {
18
+ registry: string;
19
+ context: string;
20
+ archetype: string;
21
+ digest: string;
22
+ version?: string;
23
+ /** Tool id → its authority shape at the pin. */
24
+ authority: Record<string, ToolAuthorityShapeV1>;
25
+ pinnedAt: string;
26
+ }
27
+ /** The subset of a compiled definition tool this module reads (capability-claims `DefinitionToolV1`). */
28
+ export interface DefinitionToolLike {
29
+ id: string;
30
+ risk?: string;
31
+ capability?: {
32
+ id?: string;
33
+ action?: string;
34
+ resourceArg?: string;
35
+ authorityArg?: string;
36
+ requirementType?: string;
37
+ approvalPolicy?: string;
38
+ };
39
+ requirementType?: string;
40
+ approvalPolicy?: string;
41
+ effects?: Array<{
42
+ produces: string;
43
+ recipientArg?: string;
44
+ deliverTo?: string[];
45
+ }>;
46
+ idempotency?: string;
47
+ }
48
+ /** The authority shape of one tool — every field a verifier or an effect resolver reads, nothing a renderer reads. */
49
+ export declare function toolAuthorityShape(t: DefinitionToolLike): ToolAuthorityShapeV1;
50
+ export declare function definitionAuthority(tools: ReadonlyArray<DefinitionToolLike>): Record<string, ToolAuthorityShapeV1>;
51
+ export interface AuthorityChange {
52
+ tool: string;
53
+ field: string;
54
+ from: unknown;
55
+ to: unknown;
56
+ }
57
+ /** What changed, authority-wise, between a pin and the current definition. Added and removed tools are changes too:
58
+ * a new act the playbook may take, or one it no longer takes, is exactly what a reviewer must see. */
59
+ export declare function diffDefinitionAuthority(pinned: Record<string, ToolAuthorityShapeV1>, current: Record<string, ToolAuthorityShapeV1>): AuthorityChange[];
60
+ export declare function formatAuthorityChanges(archetype: string, changes: ReadonlyArray<AuthorityChange>): string;
61
+ export type FetchDefinition = (registry: string, context: string, archetype: string) => Promise<{
62
+ digest: string;
63
+ version?: string;
64
+ tools: DefinitionToolLike[];
65
+ }>;
66
+ /** The registry's definition endpoint (skills-a2a: `/context/contexts/<ctx>/archetypes/<a>/definition`). */
67
+ export declare const fetchDefinitionFromRegistry: FetchDefinition;
68
+ export declare function pinDefinition(registry: string, context: string, archetype: string, fetchDef?: FetchDefinition): Promise<DefinitionPinV1>;
69
+ export interface DefinitionReview {
70
+ key: string;
71
+ pin: DefinitionPinV1;
72
+ current: {
73
+ digest: string;
74
+ version?: string;
75
+ };
76
+ changes: AuthorityChange[];
77
+ error?: string;
78
+ }
79
+ /** Every pinned definition against its registry now. A pin whose registry cannot be read is a review item too
80
+ * (an upgrade that cannot verify its contracts must not proceed as if it had). */
81
+ export declare function reviewDefinitions(pins: Record<string, DefinitionPinV1>, fetchDef?: FetchDefinition): Promise<DefinitionReview[]>;
82
+ /** A stable key for a pin in the lock. */
83
+ export declare const definitionKey: (context: string, archetype: string) => string;
84
+ export declare const shapeDigest: (authority: Record<string, ToolAuthorityShapeV1>) => string;
85
+ //# sourceMappingURL=definitions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../src/definitions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ // THE PINNED DEFINITIONS — spec 398 §10.3/§10.4: `ap upgrade` STOPS FOR REVIEW when a contract's authority or effects
2
+ // change between the pinned set and the target. The lock pins each archetype definition the product relies on (its
3
+ // registry, its context, its digest) together with the AUTHORITY SHAPE of every tool — risk, action, requirement type,
4
+ // the args that name the resource and the acting party, the approval policy, the declared effects. A version bump that
5
+ // changes none of those is a version bump; one that changes any is a review checkpoint, named per tool, and the lock
6
+ // is rewritten only when the reviewer accepts. Nothing here is authority: a pin is a reviewer's memory, not a gate's
7
+ // input — the verifier reads the chain and the mandate, never this file.
8
+ import { createHash } from 'node:crypto';
9
+ const clean = (o) => Object.fromEntries(Object.entries(o).filter(([, v]) => v !== undefined && !(Array.isArray(v) && v.length === 0)));
10
+ /** The authority shape of one tool — every field a verifier or an effect resolver reads, nothing a renderer reads. */
11
+ export function toolAuthorityShape(t) {
12
+ return clean({
13
+ risk: t.risk,
14
+ action: t.capability?.action,
15
+ requirementType: t.capability?.requirementType ?? t.requirementType,
16
+ resourceArg: t.capability?.resourceArg,
17
+ authorityArg: t.capability?.authorityArg,
18
+ approvalPolicy: t.capability?.approvalPolicy ?? t.approvalPolicy,
19
+ effects: t.effects?.map((e) => clean({ produces: e.produces, recipientArg: e.recipientArg, deliverTo: e.deliverTo ? [...e.deliverTo].sort() : undefined })),
20
+ idempotency: t.idempotency,
21
+ });
22
+ }
23
+ export function definitionAuthority(tools) {
24
+ const out = {};
25
+ for (const t of [...tools].sort((a, b) => a.id.localeCompare(b.id)))
26
+ out[t.id] = toolAuthorityShape(t);
27
+ return out;
28
+ }
29
+ /** What changed, authority-wise, between a pin and the current definition. Added and removed tools are changes too:
30
+ * a new act the playbook may take, or one it no longer takes, is exactly what a reviewer must see. */
31
+ export function diffDefinitionAuthority(pinned, current) {
32
+ const changes = [];
33
+ const ids = new Set([...Object.keys(pinned), ...Object.keys(current)]);
34
+ for (const id of [...ids].sort()) {
35
+ const a = pinned[id], b = current[id];
36
+ if (!a) {
37
+ changes.push({ tool: id, field: 'tool', from: undefined, to: 'added' });
38
+ continue;
39
+ }
40
+ if (!b) {
41
+ changes.push({ tool: id, field: 'tool', from: 'present', to: 'removed' });
42
+ continue;
43
+ }
44
+ for (const f of ['risk', 'action', 'requirementType', 'resourceArg', 'authorityArg', 'approvalPolicy', 'idempotency']) {
45
+ if (a[f] !== b[f])
46
+ changes.push({ tool: id, field: f, from: a[f], to: b[f] });
47
+ }
48
+ const ea = JSON.stringify(a.effects ?? []), eb = JSON.stringify(b.effects ?? []);
49
+ if (ea !== eb)
50
+ changes.push({ tool: id, field: 'effects', from: a.effects ?? [], to: b.effects ?? [] });
51
+ }
52
+ return changes;
53
+ }
54
+ export function formatAuthorityChanges(archetype, changes) {
55
+ const line = (c) => ` · ${c.tool}: ${c.field} ${c.field === 'effects' ? `${JSON.stringify(c.from)} → ${JSON.stringify(c.to)}` : `${String(c.from ?? '—')} → ${String(c.to ?? '—')}`}`;
56
+ return `${archetype}: ${changes.length} authority/effects change(s) — review before upgrading\n${changes.map(line).join('\n')}`;
57
+ }
58
+ /** The registry's definition endpoint (skills-a2a: `/context/contexts/<ctx>/archetypes/<a>/definition`). */
59
+ export const fetchDefinitionFromRegistry = async (registry, context, archetype) => {
60
+ const r = await fetch(`${registry.replace(/\/$/, '')}/context/contexts/${encodeURIComponent(context)}/archetypes/${encodeURIComponent(archetype)}/definition`, { headers: { accept: 'application/json' } });
61
+ if (!r.ok)
62
+ throw new Error(`${registry}: ${context}/${archetype} answered ${r.status}`);
63
+ const b = (await r.json());
64
+ if (!b.digest || !b.definition?.tools)
65
+ throw new Error(`${registry}: ${context}/${archetype} served no definition`);
66
+ return { digest: b.digest, ...(b.definition.archetypeVersion ? { version: b.definition.archetypeVersion } : {}), tools: b.definition.tools };
67
+ };
68
+ export async function pinDefinition(registry, context, archetype, fetchDef = fetchDefinitionFromRegistry) {
69
+ const d = await fetchDef(registry, context, archetype);
70
+ return { registry, context, archetype, digest: d.digest, ...(d.version ? { version: d.version } : {}), authority: definitionAuthority(d.tools), pinnedAt: new Date().toISOString() };
71
+ }
72
+ /** Every pinned definition against its registry now. A pin whose registry cannot be read is a review item too
73
+ * (an upgrade that cannot verify its contracts must not proceed as if it had). */
74
+ export async function reviewDefinitions(pins, fetchDef = fetchDefinitionFromRegistry) {
75
+ const out = [];
76
+ for (const [key, pin] of Object.entries(pins)) {
77
+ try {
78
+ const d = await fetchDef(pin.registry, pin.context, pin.archetype);
79
+ out.push({ key, pin, current: { digest: d.digest, ...(d.version ? { version: d.version } : {}) }, changes: diffDefinitionAuthority(pin.authority, definitionAuthority(d.tools)) });
80
+ }
81
+ catch (e) {
82
+ out.push({ key, pin, current: { digest: '' }, changes: [], error: e instanceof Error ? e.message : String(e) });
83
+ }
84
+ }
85
+ return out;
86
+ }
87
+ /** A stable key for a pin in the lock. */
88
+ export const definitionKey = (context, archetype) => `${context}/${archetype}`;
89
+ export const shapeDigest = (authority) => `sha256:${createHash('sha256').update(JSON.stringify(authority)).digest('hex')}`;
90
+ //# sourceMappingURL=definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../src/definitions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { MethodRegistry } from '@agenticprimitives/mcp-protocol';
2
+ import type { JsonRpcResponse } from '@agenticprimitives/mcp-protocol';
3
+ export declare const DEVELOPER_MCP_DOCTRINE: string;
4
+ export interface DeveloperMcpOptions {
5
+ /** The project root — where `node_modules/@agenticprimitives/*` and `agentic.lock.json` are. */
6
+ root: string;
7
+ /** The rules corpus this kit bundles (recipes). Default: the devkit's own `rules/`. */
8
+ rulesDir?: string;
9
+ }
10
+ export declare function createDeveloperMcp(opts: DeveloperMcpOptions): {
11
+ registry: MethodRegistry;
12
+ handle: (raw: string) => Promise<JsonRpcResponse | null>;
13
+ };
14
+ /** The stdio transport: one JSON-RPC message per line on stdin, one per line on stdout; nothing else on stdout. */
15
+ export declare function runDeveloperMcpStdio(opts: DeveloperMcpOptions): Promise<void>;
16
+ //# sourceMappingURL=developer-mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"developer-mcp.d.ts","sourceRoot":"","sources":["../src/developer-mcp.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,cAAc,EAAmI,MAAM,iCAAiC,CAAC;AAClM,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAKvF,eAAO,MAAM,sBAAsB,QAGuF,CAAC;AAK3H,MAAM,WAAW,mBAAmB;IAClC,gGAAgG;IAChG,IAAI,EAAE,MAAM,CAAC;IACb,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAqGD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAA;CAAE,CAoDpJ;AAED,mHAAmH;AACnH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAQnF"}
@@ -0,0 +1,215 @@
1
+ // THE DEVELOPER MCP — spec 398 §10.4 (T23). Read-only, public: it resolves package exports, ontology terms (T-box IRIs
2
+ // and their comments), contract deployments, recipes (the agent rules and each package's spec) and diagnostics (the
3
+ // doctor) for a coding agent. It holds no signing key, reads no vault, mints no authority and invokes no production
4
+ // effect. It is a THIRD MCP, distinct from (a) the runtime's private MCP behind admission (ADR-0057) and (b) the Home
5
+ // MCP (spec 397, a person's entrance to their own agent). Its manifest says so in its first line, because confusing
6
+ // the three is the failure the review warns of.
7
+ //
8
+ // Everything it answers is read from the consumer's INSTALL (`node_modules/@agenticprimitives/*`) and this package's
9
+ // bundled rules — never from a network, never from a vault. A query it cannot answer says so; nothing is guessed.
10
+ import { existsSync, readFileSync, readdirSync } from 'node:fs';
11
+ import { join, resolve } from 'node:path';
12
+ import { createInterface } from 'node:readline';
13
+ import { MethodRegistry, RpcError, RPC_ERROR, parseJsonRpc, parseRequestMeta, negotiateProtocolVersion, SUPPORTED_PROTOCOL_VERSIONS, buildServerDiscover } from '@agenticprimitives/mcp-protocol';
14
+ import { runDoctor } from './doctor.js';
15
+ import { loadDoctorConfig } from './config.js';
16
+ import { redact } from './redact.js';
17
+ export const DEVELOPER_MCP_DOCTRINE = 'This is the DEVELOPER MCP (spec 398 §10.4): read-only, public. It holds no signing key, reads no vault, mints no authority and invokes no production effect. ' +
18
+ 'It is not the runtime MCP (private, behind admission — ADR-0057) and not the Home MCP (spec 397, a person\'s entrance to their own agent). ' +
19
+ 'It answers from the packages installed beside it: exports, ontology terms, contract deployments, recipes, diagnostics.';
20
+ const SERVER_INFO = { name: 'agenticprimitives-developer-mcp', version: '0.1.0', title: 'Agentic Primitives — Developer MCP (read-only)' };
21
+ const CAPABILITIES = { tools: { listChanged: false }, resources: { listChanged: false, subscribe: false } };
22
+ const SCOPE = '@agenticprimitives';
23
+ const text = (p) => { try {
24
+ return readFileSync(p, 'utf8');
25
+ }
26
+ catch {
27
+ return null;
28
+ } };
29
+ const jsonOf = (p) => { const t = text(p); if (t === null)
30
+ return null; try {
31
+ return JSON.parse(t);
32
+ }
33
+ catch {
34
+ return null;
35
+ } };
36
+ function installedPackages(root) {
37
+ const dir = join(root, 'node_modules', SCOPE);
38
+ if (!existsSync(dir))
39
+ return [];
40
+ return readdirSync(dir).flatMap((n) => {
41
+ const d = join(dir, n);
42
+ const pj = jsonOf(join(d, 'package.json'));
43
+ return pj?.name ? [{ name: pj.name, version: pj.version ?? '?', ...(pj.description ? { description: pj.description } : {}), ...(pj.exports ? { exports: pj.exports } : {}), dir: d }] : [];
44
+ }).sort((a, b) => a.name.localeCompare(b.name));
45
+ }
46
+ /** The names a `.d.ts` declares at top level — the export surface a coding agent should not have to guess at. */
47
+ function declaredNames(dts) {
48
+ const out = [];
49
+ const re = /^export (?:declare )?(function|const|class|type|interface|enum|let|var)\s+([A-Za-z_$][\w$]*)/gm;
50
+ for (let m = re.exec(dts); m; m = re.exec(dts))
51
+ out.push({ kind: m[1], name: m[2] });
52
+ const rex = /^export \{([^}]+)\}/gm;
53
+ for (let m = rex.exec(dts); m; m = rex.exec(dts))
54
+ for (const part of m[1].split(',')) {
55
+ const n = part.trim().split(/\s+as\s+/).pop()?.replace(/^type\s+/, '').trim();
56
+ if (n)
57
+ out.push({ kind: 're-export', name: n });
58
+ }
59
+ return out;
60
+ }
61
+ function packageExports(root, name) {
62
+ const pkg = installedPackages(root).find((p) => p.name === name || p.name === `${SCOPE}/${name}`);
63
+ if (!pkg)
64
+ throw new RpcError(RPC_ERROR.INVALID_PARAMS, `${name} is not installed under ${SCOPE} — install it, or ask packages_list for what is`);
65
+ const entries = Object.entries(pkg.exports ?? {}).map(([subpath, target]) => {
66
+ const t = target;
67
+ const types = typeof t === 'object' && t?.types ? t.types : undefined;
68
+ const dts = types ? text(join(pkg.dir, types)) : null;
69
+ return { subpath, ...(typeof t === 'string' ? { target: t } : t), ...(dts ? { declares: declaredNames(dts) } : {}) };
70
+ });
71
+ const readme = text(join(pkg.dir, 'README.md'));
72
+ return { name: pkg.name, version: pkg.version, ...(pkg.description ? { description: pkg.description } : {}), entries, ...(readme ? { readmeHead: readme.split('\n').slice(0, 12).join('\n') } : {}), hasSpec: existsSync(join(pkg.dir, 'spec.md')) };
73
+ }
74
+ /** A best-effort scan of the T-box Turtle: subject blocks with their labels and comments. Not a parser — the
75
+ * ontology package holds the machine-checked form; this is a coding agent's lookup. */
76
+ function ontologyTerms(root, query) {
77
+ const dir = join(root, 'node_modules', SCOPE, 'ontology', 'tbox');
78
+ if (!existsSync(dir))
79
+ throw new RpcError(RPC_ERROR.INVALID_PARAMS, `${SCOPE}/ontology is not installed (its tbox/ is what this answers from)`);
80
+ const q = query.trim().toLowerCase();
81
+ const out = [];
82
+ for (const f of readdirSync(dir).filter((x) => x.endsWith('.ttl'))) {
83
+ const ttl = text(join(dir, f)) ?? '';
84
+ // subject blocks: a line starting at column 0 with a prefixed name or IRI, running to the next such line
85
+ const blocks = ttl.split(/\n(?=(?:[a-zA-Z][\w-]*:[\w-]+|<[^>]+>)\s)/);
86
+ for (const b of blocks) {
87
+ const subject = b.match(/^([a-zA-Z][\w-]*:[\w-]+|<[^>]+>)\s/)?.[1];
88
+ if (!subject)
89
+ continue;
90
+ const label = b.match(/rdfs:label\s+"([^"]*)"/)?.[1];
91
+ const comment = b.match(/rdfs:comment\s+(?:"""([\s\S]*?)"""|"([^"]*)")/);
92
+ const hay = `${subject} ${label ?? ''}`.toLowerCase();
93
+ if (!hay.includes(q))
94
+ continue;
95
+ const types = [...b.matchAll(/(?:^|\s)a\s+([^;.\n]+)/g)].map((m) => m[1].trim()).slice(0, 1).flatMap((t) => t.split(/\s*,\s*/));
96
+ out.push({ iri: subject, file: f, ...(label ? { label } : {}), ...(comment ? { comment: (comment[1] ?? comment[2] ?? '').trim() } : {}), types });
97
+ if (out.length >= 40)
98
+ return out;
99
+ }
100
+ }
101
+ return out;
102
+ }
103
+ function deployments(root, chain) {
104
+ const dir = join(root, 'node_modules', SCOPE, 'contracts');
105
+ if (!existsSync(dir))
106
+ throw new RpcError(RPC_ERROR.INVALID_PARAMS, `${SCOPE}/contracts is not installed`);
107
+ const files = readdirSync(dir).filter((f) => /^deployments-[a-z0-9-]+\.json$/.test(f));
108
+ const chains = files.map((f) => f.replace(/^deployments-/, '').replace(/\.json$/, ''));
109
+ if (!chain)
110
+ return { chains };
111
+ const f = `deployments-${chain}.json`;
112
+ if (!files.includes(f))
113
+ throw new RpcError(RPC_ERROR.INVALID_PARAMS, `no deployments for "${chain}" — known: ${chains.join(', ')}`);
114
+ return { chain, deployments: jsonOf(join(dir, f)) };
115
+ }
116
+ function recipes(rulesDir, root, name) {
117
+ const rules = existsSync(rulesDir) ? readdirSync(rulesDir).filter((f) => f.endsWith('.md')).map((f) => f.replace(/\.md$/, '')) : [];
118
+ const specs = installedPackages(root).filter((p) => existsSync(join(p.dir, 'spec.md'))).map((p) => `${p.name}/spec`);
119
+ if (!name)
120
+ return { rules, specs, note: 'a rule is doctrine (docs/architecture/agent-rules); a spec is a package\'s architect-of-record' };
121
+ if (rules.includes(name))
122
+ return { name, kind: 'rule', text: text(join(rulesDir, `${name}.md`)) };
123
+ const m = name.match(/^(@agenticprimitives\/[\w-]+)\/spec$/);
124
+ if (m) {
125
+ const p = installedPackages(root).find((x) => x.name === m[1]);
126
+ const s = p ? text(join(p.dir, 'spec.md')) : null;
127
+ if (s)
128
+ return { name, kind: 'spec', text: s };
129
+ }
130
+ throw new RpcError(RPC_ERROR.INVALID_PARAMS, `no recipe "${name}" — ask recipes with no name for the list`);
131
+ }
132
+ const TOOLS = [
133
+ { name: 'packages_list', description: 'The @agenticprimitives packages installed in this project: name, version, description, export subpaths.', inputSchema: { type: 'object', properties: {}, additionalProperties: false } },
134
+ { name: 'package_exports', description: 'One package\'s export map with the names each entry declares (from its .d.ts), its README head and whether it ships a spec.', inputSchema: { type: 'object', properties: { name: { type: 'string', description: 'e.g. delegation or @agenticprimitives/delegation' } }, required: ['name'], additionalProperties: false } },
135
+ { name: 'ontology_term', description: 'Look up T-box terms by IRI fragment or label: the IRI, its file, rdfs:label, rdfs:comment (what it means and what it is NOT), its types.', inputSchema: { type: 'object', properties: { query: { type: 'string' } }, required: ['query'], additionalProperties: false } },
136
+ { name: 'contract_deployments', description: 'Deployed contract addresses per chain, from the contracts package. Without a chain: the chains it knows.', inputSchema: { type: 'object', properties: { chain: { type: 'string', description: 'e.g. faithchain, base-sepolia, anvil' } }, additionalProperties: false } },
137
+ { name: 'recipes', description: 'The agent rules this kit bundles and each installed package\'s spec, by name; without a name, the list.', inputSchema: { type: 'object', properties: { name: { type: 'string' } }, additionalProperties: false } },
138
+ { name: 'doctor', description: 'Run the doctrine rules over this project (read-only, redacted): the same report `ap doctor --json` prints.', inputSchema: { type: 'object', properties: { only: { type: 'array', items: { type: 'string' } } }, additionalProperties: false } },
139
+ ];
140
+ const RESOURCES = [
141
+ { uri: 'ap://developer-mcp/doctrine', name: 'What this server is and is not', mimeType: 'text/plain' },
142
+ ];
143
+ export function createDeveloperMcp(opts) {
144
+ const root = resolve(opts.root);
145
+ const rulesDir = opts.rulesDir ?? resolve(new URL('../rules/', import.meta.url).pathname);
146
+ const call = async (name, args) => {
147
+ switch (name) {
148
+ case 'packages_list': return { packages: installedPackages(root).map(({ dir: _d, exports, ...p }) => ({ ...p, subpaths: Object.keys(exports ?? {}) })) };
149
+ case 'package_exports': return packageExports(root, String(args.name ?? ''));
150
+ case 'ontology_term': return { terms: ontologyTerms(root, String(args.query ?? '')) };
151
+ case 'contract_deployments': return deployments(root, typeof args.chain === 'string' ? args.chain : undefined);
152
+ case 'recipes': return recipes(rulesDir, root, typeof args.name === 'string' ? args.name : undefined);
153
+ case 'doctor': {
154
+ const loaded = loadDoctorConfig(root);
155
+ const report = await runDoctor({ root, loaded, ...(Array.isArray(args.only) ? { only: args.only.map(String) } : {}) });
156
+ return JSON.parse(redact(JSON.stringify(report)));
157
+ }
158
+ default: throw new RpcError(RPC_ERROR.INVALID_PARAMS, `unknown tool ${name}`);
159
+ }
160
+ };
161
+ const registry = new MethodRegistry()
162
+ .register('server/discover', () => buildServerDiscover({ serverInfo: SERVER_INFO, capabilities: CAPABILITIES }))
163
+ .register('tools/list', () => ({ tools: TOOLS }))
164
+ .register('resources/list', () => ({ resources: RESOURCES }))
165
+ .register('resources/read', (params) => {
166
+ const uri = String(params?.uri ?? '');
167
+ if (uri !== RESOURCES[0].uri)
168
+ throw new RpcError(RPC_ERROR.INVALID_PARAMS, `unknown resource ${uri}`);
169
+ return { contents: [{ uri, mimeType: 'text/plain', text: DEVELOPER_MCP_DOCTRINE }] };
170
+ })
171
+ .register('tools/call', async (params) => {
172
+ const name = String(params?.name ?? '');
173
+ const args = params?.arguments ?? {};
174
+ try {
175
+ const out = await call(name, args);
176
+ return { content: [{ type: 'text', text: JSON.stringify(out, null, 2) }], structuredContent: out, isError: false };
177
+ }
178
+ catch (e) {
179
+ if (e instanceof RpcError)
180
+ return { content: [{ type: 'text', text: e.message }], isError: true };
181
+ throw e;
182
+ }
183
+ });
184
+ const handle = async (raw) => {
185
+ const parsed = parseJsonRpc(raw);
186
+ if (!parsed.ok)
187
+ return parsed.res;
188
+ const req = parsed.req;
189
+ const meta = parseRequestMeta(req.params?._meta, undefined);
190
+ const requested = typeof req.params?.protocolVersion === 'string' ? req.params.protocolVersion : meta.protocolVersion;
191
+ const version = negotiateProtocolVersion(requested) ?? SUPPORTED_PROTOCOL_VERSIONS[0];
192
+ const id = req.id ?? null;
193
+ if (req.method === 'initialize')
194
+ return { jsonrpc: '2.0', id, result: { protocolVersion: version, capabilities: CAPABILITIES, serverInfo: SERVER_INFO, instructions: DEVELOPER_MCP_DOCTRINE } };
195
+ if (req.method === 'notifications/initialized')
196
+ return null;
197
+ if (req.method === 'ping')
198
+ return { jsonrpc: '2.0', id, result: {} };
199
+ return registry.dispatch(req, { meta, protocolVersion: version, raw });
200
+ };
201
+ return { registry, handle };
202
+ }
203
+ /** The stdio transport: one JSON-RPC message per line on stdin, one per line on stdout; nothing else on stdout. */
204
+ export async function runDeveloperMcpStdio(opts) {
205
+ const { handle } = createDeveloperMcp(opts);
206
+ const rl = createInterface({ input: process.stdin, crlfDelay: Infinity });
207
+ for await (const line of rl) {
208
+ if (!line.trim())
209
+ continue;
210
+ const res = await handle(line);
211
+ if (res)
212
+ process.stdout.write(`${JSON.stringify(res)}\n`);
213
+ }
214
+ }
215
+ //# sourceMappingURL=developer-mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"developer-mcp.js","sourceRoot":"","sources":["../src/developer-mcp.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -21,4 +21,8 @@ export { planUpgrade, applyUpgradePlan, formatUpgradePlan, npmDistTags } from '.
21
21
  export type { UpgradeMode, UpgradeChange, UpgradePlan, DistTagResolver } from './upgrade.js';
22
22
  export { CONFORM_MODULES, LIVE_GATES_MODULE, CREATE_APP_MODULE, loadConform, loadLiveGatesRunner, loadCreateApp, formatConformanceReport } from './dispatch.js';
23
23
  export type { ConformanceCheck, ConformanceReport, ConformFn, LiveGatesRunner } from './dispatch.js';
24
+ export { createDeveloperMcp, runDeveloperMcpStdio, DEVELOPER_MCP_DOCTRINE } from './developer-mcp.js';
25
+ export type { DeveloperMcpOptions } from './developer-mcp.js';
26
+ export { toolAuthorityShape, definitionAuthority, diffDefinitionAuthority, formatAuthorityChanges, pinDefinition, reviewDefinitions, definitionKey, fetchDefinitionFromRegistry } from './definitions.js';
27
+ export type { ToolAuthorityShapeV1, DefinitionPinV1, AuthorityChange, DefinitionReview, FetchDefinition, DefinitionToolLike } from './definitions.js';
24
28
  //# sourceMappingURL=index.d.ts.map
@@ -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;AAChK,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,SAAS,EAAE,eAAe,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,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAChK,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
@@ -16,4 +16,8 @@ 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
18
  export { CONFORM_MODULES, LIVE_GATES_MODULE, CREATE_APP_MODULE, loadConform, loadLiveGatesRunner, loadCreateApp, formatConformanceReport } from './dispatch.js';
19
+ // Spec 398 §10.4 — the read-only Developer MCP (the THIRD MCP; never the runtime's, never the Home's).
20
+ export { createDeveloperMcp, runDeveloperMcpStdio, DEVELOPER_MCP_DOCTRINE } from './developer-mcp.js';
21
+ // Spec 398 §10.3 — the pinned definitions and the review `ap upgrade` stops for.
22
+ export { toolAuthorityShape, definitionAuthority, diffDefinitionAuthority, formatAuthorityChanges, pinDefinition, reviewDefinitions, definitionKey, fetchDefinitionFromRegistry } from './definitions.js';
19
23
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,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,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAEhK,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/dist/lock.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { DoctorConfigOverrides } from './config.js';
2
+ import type { DefinitionPinV1 } from './definitions.js';
2
3
  export interface AgenticLockV1 {
3
4
  lockVersion: 1;
4
5
  /** Exact @agenticprimitives/* versions the product pins — one coherent set. */
@@ -12,6 +13,9 @@ export interface AgenticLockV1 {
12
13
  revision: string;
13
14
  };
14
15
  doctor?: DoctorConfigOverrides;
16
+ /** Spec 398 §10.3/§10.4 — the archetype definitions the product relies on, each with the authority shape of every tool
17
+ * at the pin; `ap upgrade` stops for review when any of it changes. Key: `<context>/<archetype>`. */
18
+ definitions?: Record<string, DefinitionPinV1>;
15
19
  }
16
20
  export declare function readLock(root: string): AgenticLockV1 | null;
17
21
  export declare function writeLock(root: string, lock: AgenticLockV1): void;
@@ -1 +1 @@
1
- {"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../src/lock.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,CAAC,CAAC;IACf,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,MAAM,CAAC,EAAE,qBAAqB,CAAC;CAChC;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAI3D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAEjE"}
1
+ {"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../src/lock.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,CAAC,CAAC;IACf,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B;0GACsG;IACtG,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC/C;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAI3D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAEjE"}
package/dist/lock.js CHANGED
@@ -1,6 +1,7 @@
1
1
  // `agentic.lock.json` — what a package-manager lock cannot pin (398 §10.4): the @agenticprimitives/* version set,
2
2
  // the rules-source digests, the template revision, and the doctor config the product carries. W0 binds the first
3
- // three; contract deployments, ontology closures and definition digests are later fields on the same document.
3
+ // three; definition digests + authority shapes came with G3 (`definitions`); contract deployments and ontology closures
4
+ // are later fields on the same document.
4
5
  import { existsSync, readFileSync, writeFileSync } from 'node:fs';
5
6
  import { join } from 'node:path';
6
7
  export function readLock(root) {
package/dist/lock.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lock.js","sourceRoot":"","sources":["../src/lock.ts"],"names":[],"mappings":"AAAA,kHAAkH;AAClH,iHAAiH;AACjH,+GAA+G;AAC/G,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAejC,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAC1C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAkB,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,IAAmB;IACzD,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACvF,CAAC"}
1
+ {"version":3,"file":"lock.js","sourceRoot":"","sources":["../src/lock.ts"],"names":[],"mappings":"AAAA,kHAAkH;AAClH,iHAAiH;AACjH,wHAAwH;AACxH,yCAAyC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAmBjC,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAC1C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAkB,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,IAAmB;IACzD,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACvF,CAAC"}
package/dist/upgrade.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // `ap upgrade --canary | --pin <version|tag>` — spec 399 §3.1 / §5.2. Rewrites every @agenticprimitives/* dependency
2
2
  // across the workspace manifests to ONE coherent exact set, then the caller installs, dedupes and runs doctor.
3
3
  // Planning is pure over an injected resolver; applying writes manifests and the lock. Stopping for review when a
4
- // contract's authority or effects change (398 §10.3) is NOT implemented in W0 — see CLAUDE.md, it is named there.
4
+ // contract's authority or effects change (398 §10.3) is `src/definitions.ts` + the CLI's definitions review, G3.
5
5
  import { readFileSync, writeFileSync } from 'node:fs';
6
6
  import { join } from 'node:path';
7
7
  import { execFileSync } from 'node:child_process';
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../src/upgrade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../src/upgrade.ts"],"names":[],"mappings":"AAAA,qHAAqH;AACrH,+GAA+G;AAC/G,iHAAiH;AACjH,iHAAiH;AACjH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAsB,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAwB,MAAM,gBAAgB,CAAC;AAoB1E,MAAM,CAAC,MAAM,WAAW,GAAoB,KAAK,EAAE,GAAG,EAAE,EAAE;IACxD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/H,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA2B,CAAC;IACnD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,WAAW,CAAC,WAAW,CAAC,SAAS,EAAE,YAAY,GAAG,sBAAuB,CAAW,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3H,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,KAAK,GAAG,mCAAmC,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAA6I;IAC7K,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,qBAAqB,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;IAClE,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,uEAAuE,CAAC,CAAC;IACxJ,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC;IACpD,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,SAAS;QAAE,KAAK,MAAM,KAAK,IAAI,CAAC,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,CAAU,EAAE,CAAC;YACxI,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC9D,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC;oBAAE,SAAS;gBACrC,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB;oBAAE,SAAS;gBAC7E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC;QACH,CAAC;IACD,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;YAAC,SAAS;QAAC,CAAC;QACpF,IAAI,IAA4B,CAAC;QACjC,IAAI,CAAC;YAAC,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YAAC,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QAC9G,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,IAAI,CAAC,CAAC,EAAE,CAAC;YAAC,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,MAAM,mBAAmB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QACzH,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,KAAK,MAAM,CAAC,IAAI,SAAS;QAAE,KAAK,MAAM,KAAK,IAAI,CAAC,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,CAAU,EAAE,CAAC;YACxI,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC9D,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACzB,IAAI,CAAC,EAAE,IAAI,IAAI,KAAK,EAAE;oBAAE,SAAS;gBACjC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACD,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnG,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,4BAA4B,IAAI,CAAC,IAAI,0HAA0H,CAAC,CAAC;IAC7L,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACrF,CAAC;AAED,wGAAwG;AACxG,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,IAAiB,EAAE,OAAmC,EAAE;IACrG,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,UAAU,GAAG,IAAI,GAAG,EAA2B,CAAC;IACtD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO;QAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrG,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,UAAU,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAoB,CAAC;QACtE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAuC,CAAC;YACpE,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,SAAS;gBAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACrE,CAAC;QACD,aAAa,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,GAAkB,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC1F,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IACvD,IAAI,IAAI,CAAC,aAAa;QAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;IACzD,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAiB;IACjD,MAAM,KAAK,GAAG,CAAC,gBAAgB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,eAAe,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,uBAAuB,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3Q,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtG,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU;QAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACnE,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agenticprimitives/devkit",
3
- "version": "0.0.0-alpha.3",
3
+ "version": "0.0.0-alpha.5",
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
5
  "license": "MIT",
6
6
  "repository": {
@@ -32,12 +32,12 @@
32
32
  "access": "public"
33
33
  },
34
34
  "dependencies": {
35
- "@agenticprimitives/capability-claims": "0.0.0-alpha.20"
35
+ "@agenticprimitives/capability-claims": "0.0.0-alpha.22",
36
+ "@agenticprimitives/mcp-protocol": "0.0.0-alpha.3"
36
37
  },
37
38
  "peerDependencies": {
38
- "@agenticprimitives/a2a": "0.0.0-alpha.21",
39
- "@agenticprimitives/evaluation": "0.0.0-alpha.2",
40
- "@agenticprimitives/mcp-protocol": "0.0.0-alpha.2"
39
+ "@agenticprimitives/a2a": "0.0.0-alpha.22",
40
+ "@agenticprimitives/evaluation": "0.0.0-alpha.3"
41
41
  },
42
42
  "peerDependenciesMeta": {
43
43
  "@agenticprimitives/a2a": {
@@ -45,9 +45,6 @@
45
45
  },
46
46
  "@agenticprimitives/evaluation": {
47
47
  "optional": true
48
- },
49
- "@agenticprimitives/mcp-protocol": {
50
- "optional": true
51
48
  }
52
49
  },
53
50
  "devDependencies": {