create-agdf 0.31.0 → 0.32.0

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.
Files changed (121) hide show
  1. package/generated/.opencode/agdf-interaction-locales.json +148 -4
  2. package/generated/plugins/agdf/.claude-plugin/plugin.json +1 -1
  3. package/generated/plugins/agdf/.codex-plugin/plugin.json +1 -1
  4. package/generated/plugins/agdf/companion/events.mjs +5 -3
  5. package/generated/plugins/agdf/companion/figure.mjs +241 -110
  6. package/generated/plugins/agdf/companion/localization.mjs +5 -0
  7. package/generated/plugins/agdf/companion/notice.mjs +10 -2
  8. package/generated/plugins/agdf/companion/register.mjs +90 -32
  9. package/generated/plugins/agdf/companion/run-state.mjs +13 -1
  10. package/generated/plugins/agdf/companion/view.mjs +149 -19
  11. package/generated/plugins/agdf/mcp/server/package.json +2 -2
  12. package/generated/plugins/agdf/mcp/server/src/generation-runtime.js +6 -4
  13. package/generated/plugins/agdf/mcp/server/src/generation.js +8 -2
  14. package/generated/plugins/agdf/mcp/server/src/main.js +4 -1
  15. package/generated/plugins/agdf/mcp/server/src/server.js +19 -5
  16. package/generated/plugins/agdf/mcp/server/ui/cockpit.html +130 -33
  17. package/generated/plugins/agdf/mcp/server/ui/decision-manifest.json +3 -3
  18. package/generated/plugins/agdf/mcp/server/ui/decision.html +3 -3
  19. package/generated/plugins/agdf/mcp/server/ui/manifest.json +3 -3
  20. package/generated/plugins/agdf/meta/agdf-interaction-locales.json +148 -4
  21. package/generated/plugins/agdf/meta/agdf-mcp-capability.json +1 -1
  22. package/generated/plugins/agdf/meta/agdf-plugin.definition.json +1 -1
  23. package/generated/plugins/agdf/meta/copilot-payload-baseline.json +3 -3
  24. package/generated/plugins/agdf/meta/distribution-profile-history.json +7 -0
  25. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-interaction-locales.json +148 -4
  26. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-plugin.definition.json +1 -1
  27. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-dispatch-runtime.js +4 -1
  28. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-worker-runtime.js +77 -77
  29. package/generated/plugins/agdf/runtime/create-agdf/package.json +1 -1
  30. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/companion/events.js +4 -1
  31. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/companion/figure-state.js +6 -4
  32. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/companion/journal.js +6 -0
  33. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/companion/run-view.js +54 -11
  34. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/decision-content-placeholder.js +4 -1
  35. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-check.js +5 -1
  36. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-list.js +10 -8
  37. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-session.js +11 -3
  38. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-work.js +4 -2
  39. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit.js +43 -13
  40. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/work-situation.js +25 -0
  41. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/cockpit-worker.js +1 -0
  42. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-create-command.js +6 -1
  43. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-inventory-reader.js +50 -3
  44. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-inventory.js +12 -27
  45. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation-render.js +29 -0
  46. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-title.js +43 -0
  47. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/interaction-catalog-validation.js +2 -1
  48. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/interaction-presentation.js +5 -9
  49. package/generated/plugins/agdf/runtime/runtime-manifest.json +2 -2
  50. package/generated/plugins/agdf/submission/openai/availability.md +1 -1
  51. package/generated/plugins/agdf/submission/openai/capability-matrix.json +1 -1
  52. package/generated/plugins/agdf/submission/openai/release-notes.md +5 -8
  53. package/generated/plugins/agdf/submission/openai/reviewer-cases.json +1 -1
  54. package/generated/plugins/agdf-planning/.codex-plugin/plugin.json +1 -1
  55. package/generated/plugins/agdf-planning/plugin.json +1 -1
  56. package/generated/plugins/copilot/agdf/.agdf-payload-inventory.json +76 -58
  57. package/generated/plugins/copilot/agdf/mcp/server/package.json +2 -2
  58. package/generated/plugins/copilot/agdf/mcp/server/src/generation-runtime.js +6 -4
  59. package/generated/plugins/copilot/agdf/mcp/server/src/generation.js +8 -2
  60. package/generated/plugins/copilot/agdf/mcp/server/src/main.js +4 -1
  61. package/generated/plugins/copilot/agdf/mcp/server/src/server.js +19 -5
  62. package/generated/plugins/copilot/agdf/meta/agdf-plugin.definition.json +1 -1
  63. package/generated/plugins/copilot/agdf/meta/distribution-profile-history.json +7 -0
  64. package/generated/plugins/copilot/agdf/plugin.json +1 -1
  65. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-interaction-locales.json +148 -4
  66. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-plugin.definition.json +1 -1
  67. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-dispatch-runtime.js +4 -1
  68. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-worker-runtime.js +62 -62
  69. package/generated/plugins/copilot/agdf/runtime/create-agdf/package.json +1 -1
  70. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/companion/events.js +4 -1
  71. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/companion/figure-state.js +6 -4
  72. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/companion/journal.js +6 -0
  73. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/companion/run-view.js +54 -11
  74. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/decision-content-placeholder.js +4 -1
  75. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-check.js +5 -1
  76. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/work-situation.js +25 -0
  77. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-create-command.js +6 -1
  78. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-inventory-reader.js +50 -3
  79. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-inventory.js +12 -27
  80. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation-render.js +29 -0
  81. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-title.js +43 -0
  82. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/interaction-catalog-validation.js +2 -1
  83. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/interaction-presentation.js +5 -9
  84. package/generated/plugins/copilot/agdf/runtime/runtime-manifest.json +2 -2
  85. package/generated/plugins/copilot/agdf/skills/agdf-interaction-locales.json +1 -1
  86. package/generated/submissions/openai/agdf/.codex-plugin/plugin.json +1 -1
  87. package/generated/submissions/openai/agdf/meta/agdf-interaction-locales.json +148 -4
  88. package/generated/submissions/openai/agdf/meta/agdf-plugin.definition.json +1 -1
  89. package/generated/submissions/openai/agdf/meta/copilot-payload-baseline.json +3 -3
  90. package/generated/submissions/openai/agdf/meta/distribution-profile-history.json +7 -0
  91. package/generated/submissions/openai/agdf/plugin.json +1 -1
  92. package/generated/submissions/openai/agdf/submission/openai/availability.md +1 -1
  93. package/generated/submissions/openai/agdf/submission/openai/capability-matrix.json +1 -1
  94. package/generated/submissions/openai/agdf/submission/openai/inventory.json +13 -13
  95. package/generated/submissions/openai/agdf/submission/openai/listing.json +1 -1
  96. package/generated/submissions/openai/agdf/submission/openai/readiness.json +2 -2
  97. package/generated/submissions/openai/agdf/submission/openai/readiness.md +2 -2
  98. package/generated/submissions/openai/agdf/submission/openai/release-notes.md +5 -8
  99. package/generated/submissions/openai/agdf/submission/openai/reviewer-cases.json +1 -1
  100. package/lib/mcp-dispatch-runtime.js +4 -1
  101. package/lib/mcp-worker-runtime.js +77 -77
  102. package/package.json +1 -1
  103. package/runtime/core/lib/companion/events.js +4 -1
  104. package/runtime/core/lib/companion/figure-state.js +6 -4
  105. package/runtime/core/lib/companion/journal.js +6 -0
  106. package/runtime/core/lib/companion/run-view.js +54 -11
  107. package/runtime/core/lib/control-evaluation/decision-content-placeholder.js +4 -1
  108. package/runtime/core/lib/control-evaluation/gate-check.js +5 -1
  109. package/runtime/core/lib/control-inspect/cockpit-list.js +10 -8
  110. package/runtime/core/lib/control-inspect/cockpit-session.js +11 -3
  111. package/runtime/core/lib/control-inspect/cockpit-work.js +4 -2
  112. package/runtime/core/lib/control-inspect/cockpit.js +43 -13
  113. package/runtime/core/lib/control-inspect/work-situation.js +25 -0
  114. package/runtime/core/lib/control-read/cockpit-worker.js +1 -0
  115. package/runtime/core/lib/control-state/run-create-command.js +6 -1
  116. package/runtime/core/lib/control-state/run-inventory-reader.js +50 -3
  117. package/runtime/core/lib/control-state/run-inventory.js +12 -27
  118. package/runtime/core/lib/control-state/run-presentation-render.js +29 -0
  119. package/runtime/core/lib/control-state/run-title.js +43 -0
  120. package/runtime/core/lib/interaction-catalog-validation.js +2 -1
  121. package/runtime/core/lib/interaction-presentation.js +5 -9
@@ -3,7 +3,9 @@
3
3
  // Callers pass validity findings from the full parser; this module never validates receipts.
4
4
  import { scalarFields, sectionTableRows, projectRunFacts } from "./run-state-document.js";
5
5
  import { RUN_ID_PATTERN } from "./run-identity.js";
6
- import { isDecisionContentPlaceholder } from "../control-evaluation/decision-content-placeholder.js";
6
+ import { normalizedRunTitle, runIdentity } from "./run-title.js";
7
+
8
+ export { normalizedRunTitle };
7
9
 
8
10
  export const RUN_INVENTORY_SCHEMA_VERSION = "1";
9
11
  export const RUN_INVENTORY_LIFECYCLES = Object.freeze(["active", "completed", "superseded", "abandoned"]);
@@ -42,29 +44,10 @@ const ISO_TIME = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/u;
42
44
  const plain = value => String(value ?? "").replace(/`/gu, "").trim();
43
45
  const clip = text => (text.length > TITLE_LIMIT ? `${text.slice(0, TITLE_LIMIT - 1)}…` : text);
44
46
 
45
- // The run-ID title every reader shows when no authored title exists.
46
- export function normalizedRunTitle(runId) {
47
- const words = String(runId ?? "").replace(/[._-]+/g, " ").replace(/\s+/g, " ").trim();
48
- return words ? words.replace(/\b\p{L}/gu, (letter) => letter.toUpperCase()) : "AGDF run";
49
- }
50
-
51
- // Lines of one level-two section up to the next heading; an empty section stays empty.
52
- function sectionLines(text, heading) {
53
- const lines = text.split("\n"), start = lines.findIndex(line => line.trimEnd() === `## ${heading}`);
54
- if (start < 0) return [];
55
- const rest = lines.slice(start + 1), end = rest.findIndex(line => /^#{1,2} /u.test(line));
56
- return end < 0 ? rest : rest.slice(0, end);
57
- }
58
-
59
- function objectiveTitle(text, runId) {
60
- // The first paragraph, so hard-wrapped objectives stay whole.
61
- const lines = sectionLines(text, "Objective").map(value => value.trim()), first = lines.findIndex(Boolean);
62
- const paragraph = first < 0 ? [] : lines.slice(first), end = paragraph.indexOf("");
63
- const line = (end < 0 ? paragraph : paragraph.slice(0, end)).join(" ");
64
- const stripped = line.replace(/^(?:[-*>]|#+|\d+\.)\s+/u, "").replace(/\*\*|__|`/gu, "").replace(/\s+/gu, " ").trim();
65
- return isDecisionContentPlaceholder(stripped)
66
- ? { title: normalizedRunTitle(runId), title_source: "run_id" }
67
- : { title: clip(stripped), title_source: "objective" };
47
+ // The inventory reads no UR document, so its title source is the Objective or the Run ID.
48
+ function titleFacts(text, runId) {
49
+ const { title, title_source, objective } = runIdentity({ runId, runContent: text });
50
+ return { title: clip(title), title_source, objective: objective === null ? null : clip(objective) };
68
51
  }
69
52
 
70
53
  // Base64url receipt cells decoded for display facts only; undecodable cells are skipped.
@@ -126,17 +109,19 @@ function entryOf(source, language) {
126
109
  const gateResult = facts?.artefacts.get(gate === 'Quick Task Execution' ? 'CR' : gate)?.status ?? null;
127
110
  const presentationDecision = source.observation?.presentation_decision === true;
128
111
  const missing = source.observation?.missing === 'none' ? '' : source.observation?.missing ?? '';
129
- const attention = runAttention({ lifecycle, valid, decision, gateResult, presentationDecision, missing });
112
+ const situation = source.observation?.work_situation;
113
+ const attention = situation?.code ?? runAttention({ lifecycle, valid, decision, gateResult, presentationDecision, missing });
130
114
  const revision = /^[1-9]\d*$/u.test(meta.get("revision") ?? "") ? Number(meta.get("revision")) : null;
131
115
  const index = languageIndex(language);
132
116
  return {
133
117
  run_id: runId,
134
- ...(text ? objectiveTitle(text, runId) : { title: normalizedRunTitle(runId), title_source: "run_id" }),
118
+ ...titleFacts(text, runId),
119
+ ...(source.presentation ? { presentation: source.presentation } : {}),
135
120
  valid,
136
121
  lifecycle: valid ? lifecycle : null,
137
122
  current_gate: gate,
138
123
  decision,
139
- attention: { code: attention, label: LABELS[attention][index] },
124
+ attention: { code: attention, label: situation ? (index === 1 ? situation.de : situation.en) : LABELS[attention][index] },
140
125
  basis: revision === null ? TEXT.basisUnknown[index]() : TEXT.basis[index](revision),
141
126
  last_activity: text ? lastActivity(decoded) : { at: null, source: "none", precision: null },
142
127
  revision,
@@ -355,6 +355,35 @@ function artifactSummary(gate, markdown, { runId, revisionId, language, sourceLa
355
355
  return { markdown: summary, digest: hash(summary) };
356
356
  }
357
357
 
358
+ // Cockpit presentation reuses the same language and summary owner as authoring checks.
359
+ // The structured rows are derived from that summary; no second content authority is created.
360
+ export function projectCockpitSummary(gate, markdown, languages, context = {}) {
361
+ if (!['UR', 'PRD', 'SD', 'TP'].includes(gate)) return null;
362
+ try {
363
+ const readiness = evaluateApprovalSummaryReadiness(gate, markdown, languages, { path: context.artefactPath });
364
+ if (!readiness.ready) return null;
365
+ const summary = artifactSummary(gate, markdown, { ...context, language: languages.presentation_language, sourceLanguage: languages.artifact_language });
366
+ const priorities = {
367
+ UR: [/^(?:Ziel|Goal)$/iu, /^(?:Umfang|Scope)$/iu, /^(?:Abnahme|Abnahmesignal|Acceptance)$/iu],
368
+ PRD: [/^(?:Ziel|Nutzerziel|Goal|User intent)$/iu, /^(?:Umfang|Produktumfang|Scope|Product scope)$/iu, /^(?:AC-[A-Z0-9-]+)$/iu],
369
+ SD: [/^(?:Lösung|Solution)$/iu, /^(?:Verantwortung|Ownership)$/iu, /^(?:Entscheidungen|Design decisions)$/iu],
370
+ TP: [/^(?:Aufgaben|Tasks)$/iu, /^(?:Tests)$/iu, /^(?:Risiken|Risks)$/iu],
371
+ };
372
+ const rows = summary.markdown.split(/\r?\n/u).flatMap(line => {
373
+ const match = line.match(/^[-*]\s+([^:\n]{1,80}):\s*(\S.*)$/u);
374
+ return match && match[2].length <= 1200 ? [{ label: match[1].trim(), text: match[2].trim() }] : [];
375
+ });
376
+ const items = priorities[gate].flatMap(pattern => {
377
+ const matches = rows.filter(row => pattern.test(row.label));
378
+ return matches.length === 1 ? matches : [];
379
+ });
380
+ return { state: 'available', gate, items, markdown: summary.markdown, authorizes: false };
381
+ } catch (error) {
382
+ if (String(error.message).startsWith('approval_summary_')) return null;
383
+ throw error;
384
+ }
385
+ }
386
+
358
387
  // A compact decision brief is a projection of the already validated, source-
359
388
  // authored summary. Missing authored fields stay absent; no agent/UI paraphrase.
360
389
  export function decisionBriefFromSummary(summary, language) {
@@ -0,0 +1,43 @@
1
+ // One owner for a Run's human title and orienting Objective. Pure: no `node:` import, so the run
2
+ // inventory, the cockpit, the companion run view and the status card share exactly this rule.
3
+ // Precedence: registered UR heading, then the authored Objective, then the normalized Run ID.
4
+ import { isDecisionContentPlaceholder } from "../control-evaluation/decision-content-placeholder.js";
5
+
6
+ // The run-ID title every reader shows when no authored title exists.
7
+ export function normalizedRunTitle(runId) {
8
+ const words = String(runId ?? "").replace(/[._-]+/g, " ").replace(/\s+/g, " ").trim();
9
+ return words ? words.replace(/\b\p{L}/gu, (letter) => letter.toUpperCase()) : "AGDF run";
10
+ }
11
+
12
+ // A heading as display text: no leading hashes and no inline Markdown marks.
13
+ export function plainHeading(value) {
14
+ return String(value ?? "").replace(/^#+\s*/u, "").replace(/[`*_]/gu, "").replace(/\s+/gu, " ").trim();
15
+ }
16
+
17
+ // Lines of one level-two section up to the next heading; an empty section stays empty.
18
+ function sectionLines(text, heading) {
19
+ const lines = text.split("\n"), start = lines.findIndex(line => line.trimEnd() === `## ${heading}`);
20
+ if (start < 0) return [];
21
+ const rest = lines.slice(start + 1), end = rest.findIndex(line => /^#{1,2} /u.test(line));
22
+ return end < 0 ? rest : rest.slice(0, end);
23
+ }
24
+
25
+ // The first paragraph of the Objective, so hard-wrapped objectives stay whole. A template prompt,
26
+ // a status word or a bare generated Run ID is no orientation and yields null.
27
+ export function authoredObjective(runContent) {
28
+ const text = String(runContent ?? "").replace(/^/u, "").replace(/\r\n?/gu, "\n");
29
+ const lines = sectionLines(text, "Objective").map(value => value.trim()), first = lines.findIndex(Boolean);
30
+ if (first < 0) return null;
31
+ const paragraph = lines.slice(first), end = paragraph.indexOf("");
32
+ const value = (end < 0 ? paragraph : paragraph.slice(0, end)).join(" ")
33
+ .replace(/^(?:[-*>]|#+|\d+\.)\s+/u, "").replace(/\*\*|__|`/gu, "").replace(/\s+/gu, " ").trim();
34
+ return isDecisionContentPlaceholder(value) ? null : value;
35
+ }
36
+
37
+ // `urHeading` is the registered UR document heading without its "UR:" prefix, when the caller read it.
38
+ export function runIdentity({ runId, runContent, urHeading } = {}) {
39
+ const objective = authoredObjective(runContent), ur = plainHeading(urHeading);
40
+ if (ur) return { title: ur, title_source: "ur", objective };
41
+ if (objective) return { title: objective, title_source: "objective", objective };
42
+ return { title: normalizedRunTitle(runId), title_source: "run_id", objective: null };
43
+ }
@@ -20,7 +20,8 @@ export function validateInteractionCatalog(registry) {
20
20
  check(`${language}.decisionCard`, pack.decisionCard, DECISION_CARD_LABEL_KEYS);
21
21
  check(`${language}.flowEvidence`, pack.flowEvidence, FLOW_EVIDENCE_LABEL_KEYS);
22
22
  check(`${language}.companion.states`, pack.companion?.states, COMPANION_MOODS);
23
- check(`${language}.companion.statusStates`, pack.companion?.statusStates, [...COMPANION_MOODS, "unreadable"]);
23
+ // Beside the moods the status line names a run view that cannot be read and a project without AGDF.
24
+ check(`${language}.companion.statusStates`, pack.companion?.statusStates, [...COMPANION_MOODS, "unreadable", "notSetUp"]);
24
25
  const unreadable = pack.companion?.unreadable;
25
26
  check(`${language}.companion.unreadable`, unreadable && Object.fromEntries(COMPANION_UNREADABLE_REASONS.map(key => [key, unreadable[key]])), COMPANION_UNREADABLE_REASONS);
26
27
  }
@@ -1,5 +1,6 @@
1
1
  import { RUN_ID_PATTERN } from "./control-state/run-identity.js";
2
- import { normalizedRunTitle, runInventoryHistoryLine } from "./control-state/run-inventory.js";
2
+ import { runInventoryHistoryLine } from "./control-state/run-inventory.js";
3
+ import { authoredObjective, normalizedRunTitle, plainHeading, runIdentity } from "./control-state/run-title.js";
3
4
  import { DISPATCH_RECOVERY_CODES, DECISION_CARD_COPY_BUDGETS } from "./interaction-catalog.js";
4
5
  import { TASK_TARGET_SOURCES, TASK_TARGET_UNRESOLVED_REASONS } from "./task-target-resolution.js";
5
6
 
@@ -229,16 +230,11 @@ function stripMarkdown(value) {
229
230
  .trim();
230
231
  }
231
232
 
232
- function section(content, heading) {
233
- const escaped = heading.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
234
- return content.match(new RegExp(`(?:^|\\n)## ${escaped}\\s*\\n([\\s\\S]*?)(?=\\n## |$)`))?.[1]?.trim() ?? "";
235
- }
236
-
237
233
  export { normalizedRunTitle };
238
234
 
235
+ // The current artefact heading names the card's document; otherwise the shared Run title rule applies.
239
236
  export function resolveHumanRunTitle({ currentArtefactHeading, urHeading, runContent, runId }) {
240
- const objective = section(String(runContent ?? ""), "Objective").split(/\r?\n/).map(stripMarkdown).find(Boolean) ?? "";
241
- return [currentArtefactHeading, urHeading, objective].map(stripMarkdown).find(Boolean) || normalizedRunTitle(runId);
237
+ return plainHeading(currentArtefactHeading) || runIdentity({ runId, runContent, urHeading }).title;
242
238
  }
243
239
 
244
240
  function displaySafeTitle(value, fallback) {
@@ -271,7 +267,7 @@ export function buildRunCandidates(runs) {
271
267
  return {
272
268
  run_id: run.run_id,
273
269
  display_title: displaySafeTitle(title, normalizedRunTitle(run.run_id)),
274
- objective: displaySafeObjective(section(String(run.content ?? ""), "Objective"), normalizedRunTitle(run.run_id)),
270
+ objective: displaySafeObjective(authoredObjective(run.content), normalizedRunTitle(run.run_id)),
275
271
  current_gate: currentGate,
276
272
  decision: String(run.control_state?.decision || "unknown").replaceAll("`", "").trim() || "unknown",
277
273
  next_allowed_action: String(run.control_state?.next_allowed_action ?? "").trim(),
@@ -2,7 +2,7 @@
2
2
  "schema_version": "1",
3
3
  "generated": true,
4
4
  "source": "create-agdf/cli",
5
- "version": "0.31.0",
5
+ "version": "0.32.0",
6
6
  "entrypoint": "create-agdf/bin/agdf-validator.js",
7
- "digest": "93293ccf661c5a70c9e5b1789f8bc51d2f94712803f777090bf36bf49d977c3d"
7
+ "digest": "099a479ca7d980e1af5f3294867cb0a490bdf953e41dd7af98bf7e8a9e800ad0"
8
8
  }
@@ -1,6 +1,6 @@
1
1
  # Availability Decision Record
2
2
 
3
- - release: `0.31.0`
3
+ - release: `0.32.0`
4
4
  - decision_state: `pending`
5
5
  - decision_owner: verified publisher
6
6
  - countries: not selected
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "releaseVersion": "0.31.0",
3
+ "releaseVersion": "0.32.0",
4
4
  "evidenceStates": [
5
5
  "common",
6
6
  "codex-specific",
@@ -1,12 +1,9 @@
1
- # AGDF 0.31.0 — Skills-only Candidate
1
+ # AGDF 0.32.0 — Skills-only Candidate
2
2
 
3
- The [full 0.31.0 release notes](https://github.com/ArndtGold/ai-native-governance-delivery-framework/blob/main/docs/releases/0.31.0.md)
4
- cover Companion Core, brand-guided UX criteria and MCP delivery continuation since 0.30.0.
5
- The public Skills-only profile provides workflow guidance. When a project supplies an
6
- authoritative brand source, the design guidance connects it to observable acceptance criteria.
7
- Companion runtime, MCP continuation and project initialization belong to the runtime-bearing
8
- distributions. This source record establishes the intended package scope and leaves publication
9
- and exact-candidate native qualification to their separate checks.
3
+ The [full 0.32.0 release notes](https://github.com/ArndtGold/ai-native-governance-delivery-framework/blob/main/docs/releases/0.32.0.md)
4
+ cover clearer work views in Cockpit and the Claude Companion, access to registered evidence, and
5
+ UI checks in Guardrails. Cockpit and Companion are features of the runtime-bearing distributions.
6
+ Publication and exact-candidate native qualification have separate checks.
10
7
 
11
8
  This candidate packages the canonical AGDF workflow skills for public discovery in ChatGPT and
12
9
  Codex. It helps users assess delivery fit, preserve explicit human approvals, inspect existing-system
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "releaseVersion": "0.31.0",
3
+ "releaseVersion": "0.32.0",
4
4
  "cases": [
5
5
  {
6
6
  "id": "positive-proportional-fit",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agdf-planning",
3
- "version": "0.31.0",
3
+ "version": "0.32.0",
4
4
  "description": "Clarify and organize planned URs through AGDF Core.",
5
5
  "author": {
6
6
  "name": "Arndt Gold",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
3
3
  "name": "agdf-planning",
4
- "version": "0.31.0",
4
+ "version": "0.32.0",
5
5
  "description": "Clarify and organize planned URs through AGDF Core.",
6
6
  "author": {
7
7
  "name": "Arndt Gold",
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "schema_version": 1,
3
3
  "profile_id": "copilot-runtime-plugin",
4
- "version": "0.31.0",
4
+ "version": "0.32.0",
5
5
  "baseline": {
6
- "max_files": 457,
7
- "max_bytes": 4791833
6
+ "max_files": 459,
7
+ "max_bytes": 4820971
8
8
  },
9
9
  "stats": {
10
- "files": 457,
11
- "bytes": 4791833
10
+ "files": 459,
11
+ "bytes": 4820971
12
12
  },
13
13
  "entries": [
14
14
  {
@@ -29,7 +29,7 @@
29
29
  "rule": "render_copilot_hook",
30
30
  "requirement": "consent-bound session start check",
31
31
  "source": "plugins/agdf/meta/agdf-plugin.definition.json",
32
- "source_digest": "10741f0b5c28d8d4fd2c60dc8e272e7e70e309ee8b46e4e3fbae3bad230e8e80",
32
+ "source_digest": "36e550557db59c2d168539787d90622cc1f16b7d0e52de3b6ebf5492020c5830",
33
33
  "digest": "60d7cd31d6c9483c720c5e775c10d94ba7fd214a0b15b046703ced3953bd489f",
34
34
  "bytes": 273
35
35
  },
@@ -278,7 +278,7 @@
278
278
  "owner": "scripts/sync-plugin-mcp.js",
279
279
  "rule": "generated_exact_mcp_runtime",
280
280
  "requirement": "plugin-managed MCP runtime",
281
- "digest": "d9bbb85f08ce587f369b0efdd81bc267bad7a7470ee85e3fcb76dc86b4c82f6b",
281
+ "digest": "2199162bb82aa4242c0c37e55714b4c7648ae91bced3301ac23cca142a188da6",
282
282
  "bytes": 3312
283
283
  },
284
284
  {
@@ -314,8 +314,8 @@
314
314
  "owner": "scripts/sync-plugin-mcp.js",
315
315
  "rule": "generated_exact_mcp_runtime",
316
316
  "requirement": "plugin-managed MCP runtime",
317
- "digest": "5a957ef5639049f033b23d5133fdb83146d30f8d133f12cb77a8bc7f02256226",
318
- "bytes": 7322
317
+ "digest": "35606576312029ebf3f347692ee4e142dcd43f5dd5ff8b45171b9fa6e46d4e44",
318
+ "bytes": 7639
319
319
  },
320
320
  {
321
321
  "destination": "mcp/server/src/generation-thread-entry.js",
@@ -332,8 +332,8 @@
332
332
  "owner": "scripts/sync-plugin-mcp.js",
333
333
  "rule": "generated_exact_mcp_runtime",
334
334
  "requirement": "plugin-managed MCP runtime",
335
- "digest": "6fbe876490a424e6aafe118778aa3a05e0d03e3fbb3b3f504e45af3695a933d9",
336
- "bytes": 19852
335
+ "digest": "edb3be3918d6b54fd21c1372e09a4a6e0b8f0a24bb7a2c039ff50c9bfc4c407a",
336
+ "bytes": 20151
337
337
  },
338
338
  {
339
339
  "destination": "mcp/server/src/main.js",
@@ -341,8 +341,8 @@
341
341
  "owner": "scripts/sync-plugin-mcp.js",
342
342
  "rule": "generated_exact_mcp_runtime",
343
343
  "requirement": "plugin-managed MCP runtime",
344
- "digest": "5385f0399d78abc309cd4b84504ffd72233a7366e2505aaab69335661f74aa62",
345
- "bytes": 5562
344
+ "digest": "d8fe9e80ffafe814d8afbbbb74b11b10138e23d834668118b6826d1385a742ae",
345
+ "bytes": 5678
346
346
  },
347
347
  {
348
348
  "destination": "mcp/server/src/next-action.js",
@@ -377,8 +377,8 @@
377
377
  "owner": "scripts/sync-plugin-mcp.js",
378
378
  "rule": "generated_exact_mcp_runtime",
379
379
  "requirement": "plugin-managed MCP runtime",
380
- "digest": "9742055871ac54baa8f99be9e0d3705de3e36b1d522db1972eb197726b88d920",
381
- "bytes": 20966
380
+ "digest": "9efa59ce9ecd9ef6f5ddf144c42c59b02a4e4cbd0160782bfb134c7af7e74ca9",
381
+ "bytes": 21949
382
382
  },
383
383
  {
384
384
  "destination": "mcp/server/src/stdio-output.js",
@@ -454,8 +454,8 @@
454
454
  "rule": "copy",
455
455
  "requirement": "local validator and session orientation dependency",
456
456
  "source": "plugins/agdf/meta/agdf-plugin.definition.json",
457
- "source_digest": "10741f0b5c28d8d4fd2c60dc8e272e7e70e309ee8b46e4e3fbae3bad230e8e80",
458
- "digest": "10741f0b5c28d8d4fd2c60dc8e272e7e70e309ee8b46e4e3fbae3bad230e8e80",
457
+ "source_digest": "36e550557db59c2d168539787d90622cc1f16b7d0e52de3b6ebf5492020c5830",
458
+ "digest": "36e550557db59c2d168539787d90622cc1f16b7d0e52de3b6ebf5492020c5830",
459
459
  "bytes": 20427
460
460
  },
461
461
  {
@@ -476,9 +476,9 @@
476
476
  "rule": "copy",
477
477
  "requirement": "local validator and session orientation dependency",
478
478
  "source": "plugins/agdf/meta/distribution-profile-history.json",
479
- "source_digest": "afd45edbcc28e1d7c1b4108f2efc33c42b62d19a85f685b3335bff35cd7d99e6",
480
- "digest": "afd45edbcc28e1d7c1b4108f2efc33c42b62d19a85f685b3335bff35cd7d99e6",
481
- "bytes": 5683
479
+ "source_digest": "b61de47188ca7c18bb0e1230a1f3cab966a286accdf99f8e1080c2ab223a24a3",
480
+ "digest": "b61de47188ca7c18bb0e1230a1f3cab966a286accdf99f8e1080c2ab223a24a3",
481
+ "bytes": 5940
482
482
  },
483
483
  {
484
484
  "destination": "plugin.json",
@@ -487,8 +487,8 @@
487
487
  "rule": "render_copilot_manifest",
488
488
  "requirement": "Copilot plugin discovery",
489
489
  "source": "plugins/agdf/meta/agdf-plugin.definition.json",
490
- "source_digest": "10741f0b5c28d8d4fd2c60dc8e272e7e70e309ee8b46e4e3fbae3bad230e8e80",
491
- "digest": "11189c7438c8928e71a6e24d2e8fded24e149b618cccf0867cc6b1a30b901a68",
490
+ "source_digest": "36e550557db59c2d168539787d90622cc1f16b7d0e52de3b6ebf5492020c5830",
491
+ "digest": "48fd40c505f76a6b5a3b049d87f370c659984f8f1edde5f61254e7833bceeb85",
492
492
  "bytes": 526
493
493
  },
494
494
  {
@@ -551,8 +551,8 @@
551
551
  "owner": "scripts/sync-plugin-runtime.js",
552
552
  "rule": "generated_exact_runtime",
553
553
  "requirement": "offline exact-version validator and session check",
554
- "digest": "c0242a3c93c0d0d67ae290462b012171858daceac48953e41b108af6f34b8e46",
555
- "bytes": 200858
554
+ "digest": "0a6a41685df5f05361ac9d404bc1270790eee05f245b9418d02cb860ef5d401f",
555
+ "bytes": 206368
556
556
  },
557
557
  {
558
558
  "destination": "runtime/create-agdf/generated/plugins/agdf/meta/agdf-plugin.definition.json",
@@ -560,7 +560,7 @@
560
560
  "owner": "scripts/sync-plugin-runtime.js",
561
561
  "rule": "generated_exact_runtime",
562
562
  "requirement": "offline exact-version validator and session check",
563
- "digest": "10741f0b5c28d8d4fd2c60dc8e272e7e70e309ee8b46e4e3fbae3bad230e8e80",
563
+ "digest": "36e550557db59c2d168539787d90622cc1f16b7d0e52de3b6ebf5492020c5830",
564
564
  "bytes": 20427
565
565
  },
566
566
  {
@@ -974,8 +974,8 @@
974
974
  "owner": "scripts/sync-plugin-runtime.js",
975
975
  "rule": "generated_exact_runtime",
976
976
  "requirement": "offline exact-version validator and session check",
977
- "digest": "e2518ab9e7043902050e85c634b7d4b0b3114d2b027b17c68a6e0a804f5bdf3f",
978
- "bytes": 12766
977
+ "digest": "5b34503ccc1fdcc07f74826584d4635314ce934d8e742430ecc14d43ea9f30ca",
978
+ "bytes": 13061
979
979
  },
980
980
  {
981
981
  "destination": "runtime/create-agdf/lib/mcp-lifecycle/facade-entry.js",
@@ -1082,8 +1082,8 @@
1082
1082
  "owner": "scripts/sync-plugin-runtime.js",
1083
1083
  "rule": "generated_exact_runtime",
1084
1084
  "requirement": "offline exact-version validator and session check",
1085
- "digest": "b54250b41638d430129bcad4da00ac742fdc1d14da4357f8c2d439e35e5bed9a",
1086
- "bytes": 654063
1085
+ "digest": "f61cd3b1d0f6b03cb4b1341a6566a71ec455ecb7ce49345ff5413fa1d1007341",
1086
+ "bytes": 657975
1087
1087
  },
1088
1088
  {
1089
1089
  "destination": "runtime/create-agdf/lib/npm-invocation.js",
@@ -1199,7 +1199,7 @@
1199
1199
  "owner": "scripts/sync-plugin-runtime.js",
1200
1200
  "rule": "generated_exact_runtime",
1201
1201
  "requirement": "offline exact-version validator and session check",
1202
- "digest": "46e8ee59ea529bf617416952e376297e92abf7ff72a39c17ff572390aec07ea8",
1202
+ "digest": "afd2b48726c5f96b28ebc42fa70a2774396224b49da7442c8933a5cf035eb7e0",
1203
1203
  "bytes": 357
1204
1204
  },
1205
1205
  {
@@ -1208,8 +1208,8 @@
1208
1208
  "owner": "scripts/sync-plugin-runtime.js",
1209
1209
  "rule": "generated_exact_runtime",
1210
1210
  "requirement": "offline exact-version validator and session check",
1211
- "digest": "3fda9144c8d092254ada535c9ed36fc22919caead1205713eb50d08b06ea884e",
1212
- "bytes": 7998
1211
+ "digest": "484d068b4b10d6aa6dde8c5faa2c48b0070788e93724c7d8e6f5d04d5ec070a1",
1212
+ "bytes": 8255
1213
1213
  },
1214
1214
  {
1215
1215
  "destination": "runtime/create-agdf/runtime/core/lib/companion/figure-state.js",
@@ -1217,8 +1217,8 @@
1217
1217
  "owner": "scripts/sync-plugin-runtime.js",
1218
1218
  "rule": "generated_exact_runtime",
1219
1219
  "requirement": "offline exact-version validator and session check",
1220
- "digest": "b8310e6a6f05181a5ea9145ff9fffbfdbaa2bfaee592476a0738da70c884e07d",
1221
- "bytes": 2859
1220
+ "digest": "7dfd38fbc5bc0c84c869f67bb4151ab869d08c8966b784e75b7457783613a690",
1221
+ "bytes": 3152
1222
1222
  },
1223
1223
  {
1224
1224
  "destination": "runtime/create-agdf/runtime/core/lib/companion/journal.js",
@@ -1226,8 +1226,8 @@
1226
1226
  "owner": "scripts/sync-plugin-runtime.js",
1227
1227
  "rule": "generated_exact_runtime",
1228
1228
  "requirement": "offline exact-version validator and session check",
1229
- "digest": "645b8e65011952ca8cc54e57f38af9013ad7e7df46c11909812af4b8a7f79cc7",
1230
- "bytes": 9838
1229
+ "digest": "47745091f2e6ff577e68de0ba34acfdad10e99248f0fef8d4f04b424e7595958",
1230
+ "bytes": 10174
1231
1231
  },
1232
1232
  {
1233
1233
  "destination": "runtime/create-agdf/runtime/core/lib/companion/run-view.js",
@@ -1235,8 +1235,8 @@
1235
1235
  "owner": "scripts/sync-plugin-runtime.js",
1236
1236
  "rule": "generated_exact_runtime",
1237
1237
  "requirement": "offline exact-version validator and session check",
1238
- "digest": "02155d078d7e527a11326ee4d8841783193db97e34067601e4b29f393f8710cd",
1239
- "bytes": 11201
1238
+ "digest": "7b35c1924473652c1f756dfb593a35bfa0d5aa9481bec3793dea148e34256c8b",
1239
+ "bytes": 14492
1240
1240
  },
1241
1241
  {
1242
1242
  "destination": "runtime/create-agdf/runtime/core/lib/control-evaluation/acceptance-criteria.js",
@@ -1271,8 +1271,8 @@
1271
1271
  "owner": "scripts/sync-plugin-runtime.js",
1272
1272
  "rule": "generated_exact_runtime",
1273
1273
  "requirement": "offline exact-version validator and session check",
1274
- "digest": "e6438ee9052090e703ac5d1a0545287b1a5eff4f5b5f869f85b7b87e7fd409af",
1275
- "bytes": 786
1274
+ "digest": "94fbea4e5b3f49443f58d7d0802bed4d63946b84a97d32a4bf4e1f8cb111e060",
1275
+ "bytes": 1002
1276
1276
  },
1277
1277
  {
1278
1278
  "destination": "runtime/create-agdf/runtime/core/lib/control-evaluation/decision-content-readiness.js",
@@ -1325,8 +1325,8 @@
1325
1325
  "owner": "scripts/sync-plugin-runtime.js",
1326
1326
  "rule": "generated_exact_runtime",
1327
1327
  "requirement": "offline exact-version validator and session check",
1328
- "digest": "35c3a715683a3b5acc5818ee3dda646a5414d07f05c66b362f32e3f6000d4a84",
1329
- "bytes": 46173
1328
+ "digest": "41d18dc8f77e86b2015fb5c109bfe239a93b4189665a3a609aa6aa629ac14261",
1329
+ "bytes": 46540
1330
1330
  },
1331
1331
  {
1332
1332
  "destination": "runtime/create-agdf/runtime/core/lib/control-evaluation/gate-policy-inputs.js",
@@ -1643,6 +1643,15 @@
1643
1643
  "digest": "8910e8496981a19571e9d0796e66f04548168ac975b4d4e0bbe0e38cace1d641",
1644
1644
  "bytes": 32324
1645
1645
  },
1646
+ {
1647
+ "destination": "runtime/create-agdf/runtime/core/lib/control-inspect/work-situation.js",
1648
+ "component": "runtime",
1649
+ "owner": "scripts/sync-plugin-runtime.js",
1650
+ "rule": "generated_exact_runtime",
1651
+ "requirement": "offline exact-version validator and session check",
1652
+ "digest": "52cfb160d2c24e46a596ec1a6431825fac1dd51ecde42f97f300988017ec4905",
1653
+ "bytes": 1829
1654
+ },
1646
1655
  {
1647
1656
  "destination": "runtime/create-agdf/runtime/core/lib/control-maintenance/compatibility.js",
1648
1657
  "component": "runtime",
@@ -2063,8 +2072,8 @@
2063
2072
  "owner": "scripts/sync-plugin-runtime.js",
2064
2073
  "rule": "generated_exact_runtime",
2065
2074
  "requirement": "offline exact-version validator and session check",
2066
- "digest": "c73b52586928e8057b92db7b565ee020e6cc52c95be5b3c8b08f350bdcaab2a4",
2067
- "bytes": 4057
2075
+ "digest": "77e283e5696d7dc51b3cb46ab4c1e197ec2053578b0cbd3fc02cf10e2e1dd285",
2076
+ "bytes": 4454
2068
2077
  },
2069
2078
  {
2070
2079
  "destination": "runtime/create-agdf/runtime/core/lib/control-state/run-identity.d.ts",
@@ -2099,8 +2108,8 @@
2099
2108
  "owner": "scripts/sync-plugin-runtime.js",
2100
2109
  "rule": "generated_exact_runtime",
2101
2110
  "requirement": "offline exact-version validator and session check",
2102
- "digest": "7f9ae77a8fe505d8e0e0ca62ace056feca263d22024df643be9efc80991a13db",
2103
- "bytes": 2297
2111
+ "digest": "1624c256ab15ff9c8b5e7f90f65e1fc44b91277cc81bcfd16822a771a2ef2ca3",
2112
+ "bytes": 5663
2104
2113
  },
2105
2114
  {
2106
2115
  "destination": "runtime/create-agdf/runtime/core/lib/control-state/run-inventory.js",
@@ -2108,8 +2117,8 @@
2108
2117
  "owner": "scripts/sync-plugin-runtime.js",
2109
2118
  "rule": "generated_exact_runtime",
2110
2119
  "requirement": "offline exact-version validator and session check",
2111
- "digest": "2cbf8e7e71dd3674c63ff5d035f5b8fc28caabf3cb32f9a2aae0146c80fbad0f",
2112
- "bytes": 10855
2120
+ "digest": "f1f5007a62d8f5b6eb386dda67f9b8f9f4afa0508555ee6e4ab42512011bbbe3",
2121
+ "bytes": 9932
2113
2122
  },
2114
2123
  {
2115
2124
  "destination": "runtime/create-agdf/runtime/core/lib/control-state/run-material.js",
@@ -2189,8 +2198,8 @@
2189
2198
  "owner": "scripts/sync-plugin-runtime.js",
2190
2199
  "rule": "generated_exact_runtime",
2191
2200
  "requirement": "offline exact-version validator and session check",
2192
- "digest": "64ae4a3a23eb09aa717331dc0b465acc74a4105de17456e09c487a1863595eb3",
2193
- "bytes": 34247
2201
+ "digest": "d99c0b13520f91f319228bcd26c97c0832687e615f363cba8a90bb9eae7012f8",
2202
+ "bytes": 36004
2194
2203
  },
2195
2204
  {
2196
2205
  "destination": "runtime/create-agdf/runtime/core/lib/control-state/run-presentation.js",
@@ -2372,6 +2381,15 @@
2372
2381
  "digest": "722e6153398232d8e39bb444d1ca946ab2d80893ca1fd8d00e35014d28643d0b",
2373
2382
  "bytes": 314
2374
2383
  },
2384
+ {
2385
+ "destination": "runtime/create-agdf/runtime/core/lib/control-state/run-title.js",
2386
+ "component": "runtime",
2387
+ "owner": "scripts/sync-plugin-runtime.js",
2388
+ "rule": "generated_exact_runtime",
2389
+ "requirement": "offline exact-version validator and session check",
2390
+ "digest": "55e0c57b72dca24b4e243a8223d5081615ce3fe75cf8297bf1a2f6e5bc476f53",
2391
+ "bytes": 2565
2392
+ },
2375
2393
  {
2376
2394
  "destination": "runtime/create-agdf/runtime/core/lib/control-state/run-verified-change.js",
2377
2395
  "component": "runtime",
@@ -2486,8 +2504,8 @@
2486
2504
  "owner": "scripts/sync-plugin-runtime.js",
2487
2505
  "rule": "generated_exact_runtime",
2488
2506
  "requirement": "offline exact-version validator and session check",
2489
- "digest": "a100e133723cb675a16c54ee3780c19f4be071b28700f9c03832c7a584c2295d",
2490
- "bytes": 2148
2507
+ "digest": "6bc79dae47f22e187105135465bd54b5fb07a7f15d3f73bf5e78b4ee15490e18",
2508
+ "bytes": 2265
2491
2509
  },
2492
2510
  {
2493
2511
  "destination": "runtime/create-agdf/runtime/core/lib/interaction-catalog.js",
@@ -2504,8 +2522,8 @@
2504
2522
  "owner": "scripts/sync-plugin-runtime.js",
2505
2523
  "rule": "generated_exact_runtime",
2506
2524
  "requirement": "offline exact-version validator and session check",
2507
- "digest": "78280c5c164216ce596ccc861ec518f8a14c0b696c1a595f4d843e945b5a6b45",
2508
- "bytes": 71115
2525
+ "digest": "4b5b9eaaa1af961eb385aa7ef29d26e4e4ca0dfdcb52db4482a0baf0d2c4d3f3",
2526
+ "bytes": 70938
2509
2527
  },
2510
2528
  {
2511
2529
  "destination": "runtime/create-agdf/runtime/core/lib/mcp-input-hints.js",
@@ -3899,7 +3917,7 @@
3899
3917
  "owner": "scripts/sync-plugin-runtime.js",
3900
3918
  "rule": "generated_exact_runtime",
3901
3919
  "requirement": "offline exact-version validator and session check",
3902
- "digest": "1a7cc25f5c2c2d005738964dcbcca2405c9ad17f533dc2f6c4c44d59455d987b",
3920
+ "digest": "44da92b3d54f61d8bd1610e988b17430cc04c3ef919a8f02190a8e3250a94b7a",
3903
3921
  "bytes": 236
3904
3922
  },
3905
3923
  {
@@ -3975,9 +3993,9 @@
3975
3993
  "rule": "compact_json",
3976
3994
  "requirement": "localized interaction presentation",
3977
3995
  "source": "plugins/agdf/meta/agdf-interaction-locales.json",
3978
- "source_digest": "c0242a3c93c0d0d67ae290462b012171858daceac48953e41b108af6f34b8e46",
3979
- "digest": "dee3dbb7863302cdcb4c9064df4a54f61dde9b7a7c726eff55162b89bc8e4c70",
3980
- "bytes": 168752
3996
+ "source_digest": "0a6a41685df5f05361ac9d404bc1270790eee05f245b9418d02cb860ef5d401f",
3997
+ "digest": "6492e78527188465ad475f675d053c75e1ebd8a7e67549be48052e9080c8f80d",
3998
+ "bytes": 172510
3981
3999
  },
3982
4000
  {
3983
4001
  "destination": "skills/agdf-prd-definition/SKILL.md",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agdf/mcp-server",
3
- "version": "0.31.0",
3
+ "version": "0.32.0",
4
4
  "description": "Local MCP adapter for version-matched AGDF dispatch and control inspection.",
5
5
  "type": "module",
6
6
  "files": [
@@ -36,7 +36,7 @@
36
36
  },
37
37
  "dependencies": {
38
38
  "@modelcontextprotocol/server": "2.0.0",
39
- "create-agdf": "0.31.0"
39
+ "create-agdf": "0.32.0"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@modelcontextprotocol/client": "2.0.0"