ace-swarm 2.0.5 → 2.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/README.md +17 -0
  2. package/assets/.agents/skills/landing-review-watcher/SKILL.md +68 -0
  3. package/assets/.agents/skills/problem-triage/SKILL.md +57 -0
  4. package/assets/.agents/skills/problem-triage/agents/openai.yaml +3 -0
  5. package/assets/.agents/skills/skill-auditor/SKILL.md +52 -0
  6. package/assets/.github/hooks/ace-copilot.json +68 -0
  7. package/assets/agent-state/ACE_WORKFLOW.md +66 -0
  8. package/assets/agent-state/INTERFACE_REGISTRY.md +50 -0
  9. package/assets/agent-state/MODULES/gates/gate-typescript-public-surface.json +7 -0
  10. package/assets/agent-state/MODULES/registry.json +10 -2
  11. package/assets/agent-state/MODULES/schemas/ACE_RUNTIME_PROFILE.schema.json +210 -0
  12. package/assets/agent-state/MODULES/schemas/RUNTIME_EXECUTOR_SESSION_REGISTRY.schema.json +290 -0
  13. package/assets/agent-state/MODULES/schemas/RUNTIME_TOOL_SPEC_REGISTRY.schema.json +144 -0
  14. package/assets/agent-state/MODULES/schemas/TRACKER_SNAPSHOT.schema.json +134 -0
  15. package/assets/agent-state/MODULES/schemas/VERICIFY_BRIDGE_SNAPSHOT.schema.json +157 -0
  16. package/assets/agent-state/MODULES/schemas/VERICIFY_PROCESS_POST_LOG.schema.json +92 -0
  17. package/assets/agent-state/MODULES/schemas/WORKSPACE_SESSION_REGISTRY.schema.json +133 -0
  18. package/assets/agent-state/SKILL_CATALOG.md +48 -0
  19. package/assets/agent-state/runtime-executor-sessions.json +5 -0
  20. package/assets/agent-state/runtime-tool-specs.json +5 -0
  21. package/assets/agent-state/runtime-workspaces.json +5 -0
  22. package/assets/agent-state/tracker-snapshot.json +7 -0
  23. package/assets/agent-state/vericify/ace-bridge.json +60 -0
  24. package/assets/agent-state/vericify/process-posts.json +5 -0
  25. package/assets/scripts/bootstrap-workspace.sh +5 -0
  26. package/assets/scripts/copilot-hook-dispatch.mjs +267 -0
  27. package/dist/helpers.d.ts +1 -0
  28. package/dist/helpers.d.ts.map +1 -1
  29. package/dist/helpers.js +312 -2
  30. package/dist/helpers.js.map +1 -1
  31. package/dist/problem-triage.d.ts +23 -0
  32. package/dist/problem-triage.d.ts.map +1 -0
  33. package/dist/problem-triage.js +429 -0
  34. package/dist/problem-triage.js.map +1 -0
  35. package/dist/prompts.d.ts.map +1 -1
  36. package/dist/prompts.js +46 -0
  37. package/dist/prompts.js.map +1 -1
  38. package/dist/public-surface.d.ts +30 -0
  39. package/dist/public-surface.d.ts.map +1 -0
  40. package/dist/public-surface.js +310 -0
  41. package/dist/public-surface.js.map +1 -0
  42. package/dist/resources.d.ts.map +1 -1
  43. package/dist/resources.js +148 -0
  44. package/dist/resources.js.map +1 -1
  45. package/dist/runtime-command.d.ts +18 -0
  46. package/dist/runtime-command.d.ts.map +1 -0
  47. package/dist/runtime-command.js +76 -0
  48. package/dist/runtime-command.js.map +1 -0
  49. package/dist/runtime-executor.d.ts +104 -0
  50. package/dist/runtime-executor.d.ts.map +1 -0
  51. package/dist/runtime-executor.js +774 -0
  52. package/dist/runtime-executor.js.map +1 -0
  53. package/dist/runtime-profile.d.ts +98 -0
  54. package/dist/runtime-profile.d.ts.map +1 -0
  55. package/dist/runtime-profile.js +441 -0
  56. package/dist/runtime-profile.js.map +1 -0
  57. package/dist/runtime-tool-specs.d.ts +68 -0
  58. package/dist/runtime-tool-specs.d.ts.map +1 -0
  59. package/dist/runtime-tool-specs.js +424 -0
  60. package/dist/runtime-tool-specs.js.map +1 -0
  61. package/dist/schemas.d.ts +6 -0
  62. package/dist/schemas.d.ts.map +1 -1
  63. package/dist/schemas.js +305 -0
  64. package/dist/schemas.js.map +1 -1
  65. package/dist/shared.d.ts +36 -3
  66. package/dist/shared.d.ts.map +1 -1
  67. package/dist/shared.js +36 -3
  68. package/dist/shared.js.map +1 -1
  69. package/dist/skill-auditor.d.ts +26 -0
  70. package/dist/skill-auditor.d.ts.map +1 -0
  71. package/dist/skill-auditor.js +184 -0
  72. package/dist/skill-auditor.js.map +1 -0
  73. package/dist/skill-catalog.d.ts +60 -0
  74. package/dist/skill-catalog.d.ts.map +1 -0
  75. package/dist/skill-catalog.js +263 -0
  76. package/dist/skill-catalog.js.map +1 -0
  77. package/dist/status-events.d.ts.map +1 -1
  78. package/dist/status-events.js +51 -8
  79. package/dist/status-events.js.map +1 -1
  80. package/dist/tools-agent.d.ts.map +1 -1
  81. package/dist/tools-agent.js +869 -0
  82. package/dist/tools-agent.js.map +1 -1
  83. package/dist/tools-files.d.ts.map +1 -1
  84. package/dist/tools-files.js +212 -1
  85. package/dist/tools-files.js.map +1 -1
  86. package/dist/tools-framework.d.ts.map +1 -1
  87. package/dist/tools-framework.js +86 -0
  88. package/dist/tools-framework.js.map +1 -1
  89. package/dist/tools-skills.d.ts +3 -0
  90. package/dist/tools-skills.d.ts.map +1 -0
  91. package/dist/tools-skills.js +104 -0
  92. package/dist/tools-skills.js.map +1 -0
  93. package/dist/tools.d.ts.map +1 -1
  94. package/dist/tools.js +2 -0
  95. package/dist/tools.js.map +1 -1
  96. package/dist/tracker-adapters.d.ts +74 -0
  97. package/dist/tracker-adapters.d.ts.map +1 -0
  98. package/dist/tracker-adapters.js +777 -0
  99. package/dist/tracker-adapters.js.map +1 -0
  100. package/dist/tracker-sync.d.ts +10 -0
  101. package/dist/tracker-sync.d.ts.map +1 -0
  102. package/dist/tracker-sync.js +84 -0
  103. package/dist/tracker-sync.js.map +1 -0
  104. package/dist/vericify-bridge.d.ts +142 -0
  105. package/dist/vericify-bridge.d.ts.map +1 -0
  106. package/dist/vericify-bridge.js +481 -0
  107. package/dist/vericify-bridge.js.map +1 -0
  108. package/dist/workspace-manager.d.ts +103 -0
  109. package/dist/workspace-manager.d.ts.map +1 -0
  110. package/dist/workspace-manager.js +526 -0
  111. package/dist/workspace-manager.js.map +1 -0
  112. package/package.json +1 -1
package/README.md CHANGED
@@ -43,12 +43,29 @@ npx -y ace-swarm init --project "My Project"
43
43
  This writes:
44
44
 
45
45
  - `agent-state/*`
46
+ - `.github/hooks/*.json`
46
47
  - `.agents/ACE/*` and `.agents/skills/*`
47
48
  - `tasks/*`
48
49
  - `scripts/ace/*`
49
50
  - `.vscode/mcp.json`
50
51
  - `.mcp-config/{codex.config.toml,vscode.mcp.json,claude_desktop_config.json,cursor.mcp.json,antigravity.mcp.json}`
51
52
 
53
+ ### VS Code Copilot Hooks (Preview)
54
+
55
+ `ace init` / `ace turnkey` now scaffolds a VS Code Copilot hook layer for this workspace:
56
+
57
+ - `.github/hooks/ace-copilot.json`
58
+ - `scripts/ace/copilot-hook-dispatch.mjs`
59
+
60
+ The hook policy is Copilot-focused and currently does four things:
61
+
62
+ - injects ACE workspace context on `SessionStart` and `SubagentStart`
63
+ - blocks destructive terminal commands in `PreToolUse`
64
+ - requires confirmation before editing hook/config control-plane files
65
+ - adds verification reminders after file mutations in `PostToolUse`
66
+
67
+ VS Code loads `.github/hooks/*.json` by default, so no extra workspace setting is required for the default Copilot hook path.
68
+
52
69
  ### Turnkey with Ollama (Local Models)
53
70
 
54
71
  Bootstrap ACE + local model profile in one command:
@@ -0,0 +1,68 @@
1
+ ---
2
+ name: landing-review-watcher
3
+ description:
4
+ Watch review, CI, and landing loops for a change and use when the user needs a durable merge-readiness procedure rather than a one-off PR check.
5
+ ---
6
+
7
+ # Landing Review Watcher
8
+
9
+ ## Purpose
10
+
11
+ Make code-review and landing work observable, repeatable, and operator-safe.
12
+ This skill does not own the release decision itself; it owns the watch loop that turns "waiting on review/CI/merge" into a deterministic procedure with artifacts.
13
+
14
+ ## Canonical Use Cases
15
+
16
+ 1. A change is open for review and someone needs a stable loop for comments, CI state, and merge blockers.
17
+ 2. A release candidate is waiting to land and the team wants a written handoff-safe landing procedure.
18
+ 3. A long-running review thread needs explicit acknowledgement, blocker tracking, and final landing evidence.
19
+
20
+ ## Inputs
21
+
22
+ - active branch / change identifier
23
+ - review comments or requested changes
24
+ - CI status / failing checks
25
+ - merge policy constraints
26
+ - rollout or release artifact pointers when applicable
27
+
28
+ ## Workflow
29
+
30
+ 1. Define the watch target:
31
+ branch, PR, merge queue item, or review thread.
32
+ 2. Capture the current state:
33
+ reviewers, open comments, requested changes, CI state, merge policy, and known blockers.
34
+ 3. Classify the loop:
35
+ `reviewing`, `changes_requested`, `waiting_on_ci`, `ready_to_land`, or `blocked`.
36
+ 4. Write or update `agent-state/LANDING_REVIEW_WATCH.md` with:
37
+ owner, blockers, next checks, evidence refs, and explicit exit criteria.
38
+ 5. On every cycle, acknowledge new review input explicitly:
39
+ accepted, rebutted, deferred, or blocked with reason.
40
+ 6. If CI fails, route the failure to the responsible owner and record the remediation checkpoint.
41
+ 7. If merge is safe, hand off to [$release-sentry](/Users/voy/Desktop/dev-ace/.agents/skills/release-sentry/SKILL.md) for the actual approve/hold decision.
42
+ 8. After landing, record the final result, landing timestamp, and rollback pointer if one exists.
43
+
44
+ ## Outputs
45
+
46
+ - `agent-state/LANDING_REVIEW_WATCH.md`
47
+ - updated evidence pointer in `agent-state/EVIDENCE_LOG.md`
48
+ - optional release routing note to `release-sentry`
49
+
50
+ ## Validation
51
+
52
+ - Verify every open reviewer/blocker has an owner or explicit waiting reason.
53
+ - Verify CI state is current and tied to a specific run/check reference.
54
+ - Verify landing state is one of:
55
+ `reviewing`, `changes_requested`, `waiting_on_ci`, `ready_to_land`, `blocked`, `landed`.
56
+ - Verify the watch artifact names the next action instead of only summarizing history.
57
+
58
+ ## Compatibility
59
+
60
+ - `SKILL.md` is the portable source of truth for this workflow.
61
+ - The skill remains useful without provider-specific PR adapters; branch names, plain-text review notes, and CI summaries are enough.
62
+ - Client overlays may add launch shortcuts, but must not redefine the watch-state model.
63
+
64
+ ## Failure Policy
65
+
66
+ - Do not claim a change is ready to land if requested changes or failing CI remain unresolved.
67
+ - Do not collapse review feedback into a vague summary; every new blocker or accepted fix must be acknowledged explicitly.
68
+ - If the change cannot be tied to a concrete watch target, stop and create the target definition first.
@@ -0,0 +1,57 @@
1
+ ---
2
+ name: problem-triage
3
+ description:
4
+ Classify a new request as one of: existing skill fits, existing skill needs patching, new skill warranted, missing tool or permission, or one-off task. Use when the user asks whether something should become a skill, how to route a skill-system request, or what the right next building block is.
5
+ ---
6
+
7
+ # Problem Triage
8
+
9
+ Use this skill before creating or patching ACE skills. Its job is to stop duplicate or premature skill creation by turning a vague request into a concrete route decision.
10
+
11
+ ## Canonical Use Cases
12
+
13
+ 1. A user asks whether a repeated workflow deserves a new skill.
14
+ 2. A request overlaps an existing skill, but the current skill may need metadata, structure, or validation fixes.
15
+ 3. The real blocker is missing tooling, permissions, or runtime setup rather than the absence of a skill.
16
+
17
+ ## Inputs
18
+
19
+ - The raw user request or workflow description.
20
+ - The current skill catalog, including discoverable workspace and package-default skills.
21
+ - Any visible blockers such as missing MCP servers, approvals, credentials, or network access.
22
+
23
+ ## Workflow
24
+
25
+ 1. Read the request for reusable-workflow signals, patch signals, and blocker signals.
26
+ 2. Compare the request against existing skill names, descriptions, and headings.
27
+ 3. Classify the request into exactly one route:
28
+ - existing skill fits
29
+ - existing skill needs patching
30
+ - new skill warranted
31
+ - missing tool or permission
32
+ - one-off task
33
+ 4. Write `agent-state/PROBLEM_TRIAGE.md` with confidence, rationale, top matches, and next steps.
34
+
35
+ ## Outputs
36
+
37
+ - `agent-state/PROBLEM_TRIAGE.md`
38
+ - A route decision with confidence, rationale, and top skill matches
39
+ - Suggested next steps for the next ACE module or skill-building pass
40
+
41
+ ## Validation
42
+
43
+ - Run the `problem_triage` MCP tool with a known request and verify that it writes `agent-state/PROBLEM_TRIAGE.md`.
44
+ - Verify that requests mentioning client overlays or portability do not require `agents/openai.yaml` to classify correctly.
45
+ - Check that repeated-workflow requests route to either `existing skill needs patching` or `new skill warranted`, never silently to one-off when reusable signals are strong.
46
+
47
+ ## Compatibility
48
+
49
+ - `SKILL.md` is the canonical portable source of truth.
50
+ - Any files under `agents/` are optional client overlays only and must not redefine the core route semantics.
51
+ - The skill should remain understandable and executable in Claude, Cursor, Codex, Antigravity, and similar environments even when no adapter file exists.
52
+
53
+ ## Failure Policy
54
+
55
+ - If catalog evidence is weak or ambiguous, lower confidence and surface the ambiguity explicitly.
56
+ - If a tool, permission, or credential blocker is present, route to `missing tool or permission` instead of recommending skill creation.
57
+ - Do not create a new skill when an existing skill can be patched to cover the request.
@@ -0,0 +1,3 @@
1
+ display_name: "Problem Triage"
2
+ short_description: "Classify whether a request fits, patches, or warrants a skill."
3
+ default_prompt: "Use the problem-triage skill to classify this request and write agent-state/PROBLEM_TRIAGE.md."
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: skill-auditor
3
+ description:
4
+ Audit discoverable ACE skills against the portable skill contract, validation expectations, and progressive-disclosure rules. Use when the user asks which skills are production-ready, what is missing from the skill catalog, or how to verify portability across Claude, Cursor, Codex, Antigravity, and similar clients.
5
+ ---
6
+
7
+ # Skill Auditor
8
+
9
+ Use this skill to inspect the current ACE skill catalog before a remediation pass, release gate, or new skill rollout. Its job is to turn vague quality concerns into a concrete audit report and prioritized backlog.
10
+
11
+ ## Canonical Use Cases
12
+
13
+ 1. A user asks which existing skills are not yet production-ready.
14
+ 2. The team needs a readiness rubric before hardening trigger metadata or validation canaries.
15
+ 3. A portability change lands and someone needs to verify that `SKILL.md` remains canonical while any client overlays stay optional.
16
+
17
+ ## Inputs
18
+
19
+ - The discoverable skill catalog from workspace and package-default skills.
20
+ - Each skill's `SKILL.md`, optional `agents/` overlays, and supporting `references/` directory if present.
21
+ - The current readiness criteria for trigger descriptions, core sections, validation, and portability.
22
+
23
+ ## Workflow
24
+
25
+ 1. Enumerate the discoverable skills and inspect each portable skill contract.
26
+ 2. Check frontmatter, trigger-aware description quality, canonical use cases, inputs/workflow/outputs/failure sections, validation surface, portability notes, and progressive-disclosure discipline.
27
+ 3. Record per-skill findings as pass, warn, or fail, keeping optional adapter overlays as neutral inventory rather than required readiness.
28
+ 4. Write `agent-state/SKILL_AUDIT_REPORT.md` with summary counts, per-skill findings, and rollout backlog items.
29
+
30
+ ## Outputs
31
+
32
+ - `agent-state/SKILL_AUDIT_REPORT.md`
33
+ - Per-skill pass/warn/fail findings with concrete remediation notes
34
+ - A rollout backlog for validation, portability, and progressive-disclosure gaps
35
+
36
+ ## Validation
37
+
38
+ - Run the `skill_audit` MCP tool and verify that it writes `agent-state/SKILL_AUDIT_REPORT.md`.
39
+ - Confirm that a skill missing required sections is flagged as `fail`.
40
+ - Confirm that a skill with optional client overlays but no portability note is flagged as `warn`, not as a hard failure for missing `openai.yaml`.
41
+
42
+ ## Compatibility
43
+
44
+ - `SKILL.md` is the canonical source of truth for the audit.
45
+ - Files under `agents/` are optional overlays only and should be audited for parity, not treated as mandatory.
46
+ - The audit must stay meaningful even if no client-specific adapters exist at all.
47
+
48
+ ## Failure Policy
49
+
50
+ - If the catalog cannot be read, stop and surface the specific filesystem problem.
51
+ - If a skill is ambiguous, lower confidence through `warn` findings instead of silently passing it.
52
+ - Do not treat the absence of a specific client adapter file as a failure unless the portable contract itself depends on it.
@@ -0,0 +1,68 @@
1
+ {
2
+ "hooks": {
3
+ "SessionStart": [
4
+ {
5
+ "type": "command",
6
+ "command": "node ./scripts/ace/copilot-hook-dispatch.mjs",
7
+ "windows": "node .\\\\scripts\\\\ace\\\\copilot-hook-dispatch.mjs",
8
+ "timeout": 10
9
+ }
10
+ ],
11
+ "UserPromptSubmit": [
12
+ {
13
+ "type": "command",
14
+ "command": "node ./scripts/ace/copilot-hook-dispatch.mjs",
15
+ "windows": "node .\\\\scripts\\\\ace\\\\copilot-hook-dispatch.mjs",
16
+ "timeout": 10
17
+ }
18
+ ],
19
+ "PreToolUse": [
20
+ {
21
+ "type": "command",
22
+ "command": "node ./scripts/ace/copilot-hook-dispatch.mjs",
23
+ "windows": "node .\\\\scripts\\\\ace\\\\copilot-hook-dispatch.mjs",
24
+ "timeout": 10
25
+ }
26
+ ],
27
+ "PostToolUse": [
28
+ {
29
+ "type": "command",
30
+ "command": "node ./scripts/ace/copilot-hook-dispatch.mjs",
31
+ "windows": "node .\\\\scripts\\\\ace\\\\copilot-hook-dispatch.mjs",
32
+ "timeout": 10
33
+ }
34
+ ],
35
+ "PreCompact": [
36
+ {
37
+ "type": "command",
38
+ "command": "node ./scripts/ace/copilot-hook-dispatch.mjs",
39
+ "windows": "node .\\\\scripts\\\\ace\\\\copilot-hook-dispatch.mjs",
40
+ "timeout": 10
41
+ }
42
+ ],
43
+ "SubagentStart": [
44
+ {
45
+ "type": "command",
46
+ "command": "node ./scripts/ace/copilot-hook-dispatch.mjs",
47
+ "windows": "node .\\\\scripts\\\\ace\\\\copilot-hook-dispatch.mjs",
48
+ "timeout": 10
49
+ }
50
+ ],
51
+ "SubagentStop": [
52
+ {
53
+ "type": "command",
54
+ "command": "node ./scripts/ace/copilot-hook-dispatch.mjs",
55
+ "windows": "node .\\\\scripts\\\\ace\\\\copilot-hook-dispatch.mjs",
56
+ "timeout": 10
57
+ }
58
+ ],
59
+ "Stop": [
60
+ {
61
+ "type": "command",
62
+ "command": "node ./scripts/ace/copilot-hook-dispatch.mjs",
63
+ "windows": "node .\\\\scripts\\\\ace\\\\copilot-hook-dispatch.mjs",
64
+ "timeout": 10
65
+ }
66
+ ]
67
+ }
68
+ }
@@ -0,0 +1,66 @@
1
+ ---
2
+ ace_runtime_version: "1.0.0"
3
+ runtime:
4
+ mode: "interactive"
5
+ profile_name: "default"
6
+ workspace:
7
+ root: ".ace/workspaces"
8
+ retention: "delete"
9
+ hooks:
10
+ after_create: null
11
+ before_run: null
12
+ after_run: null
13
+ before_remove: null
14
+ executor:
15
+ command: null
16
+ approval_policy: "on-request"
17
+ thread_sandbox: "workspace-write"
18
+ turn_sandbox_policy: null
19
+ max_turns: 6
20
+ turn_timeout_ms: 300000
21
+ tools:
22
+ registry_path: "agent-state/runtime-tool-specs.json"
23
+ tracker:
24
+ kind: "none"
25
+ config: {}
26
+ observability:
27
+ http_enabled: false
28
+ http_port: null
29
+ vericify_bridge:
30
+ enabled: false
31
+ bridge_path: "agent-state/vericify/ace-bridge.json"
32
+ process_post_path: "agent-state/vericify/process-posts.json"
33
+ ---
34
+ # ACE Runtime Prompt Template
35
+
36
+ Operate under ACE runtime profile `{{runtime.profile_name}}` in `{{runtime.mode}}` mode.
37
+
38
+ ## Task
39
+ {{task}}
40
+
41
+ ## Workspace
42
+ - Managed root: `{{workspace.root}}`
43
+ - Retention: `{{workspace.retention}}`
44
+
45
+ ## Executor
46
+ - Command: `{{executor.command}}`
47
+ - Approval policy: `{{executor.approval_policy}}`
48
+ - Thread sandbox: `{{executor.thread_sandbox}}`
49
+ - Max turns: `{{executor.max_turns}}`
50
+ - Turn timeout ms: `{{executor.turn_timeout_ms}}`
51
+
52
+ ## Runtime Tools
53
+ - Registry: `{{tools.registry_path}}`
54
+
55
+ ## Tracker
56
+ - Kind: `{{tracker.kind}}`
57
+
58
+ ## Sidecars
59
+ - Vericify bridge enabled: `{{observability.vericify_bridge.enabled}}`
60
+ - Vericify bridge path: `{{observability.vericify_bridge.bridge_path}}`
61
+ - Vericify process-post path: `{{observability.vericify_bridge.process_post_path}}`
62
+
63
+ ## Notes
64
+ - Preserve ACE state artifacts as the durable source of truth.
65
+ - Treat Vericify as an optional sidecar, not a required ACE runtime dependency.
66
+ - Treat this template as additive execution guidance for future unattended flows.
@@ -6,6 +6,56 @@
6
6
  - `MODULES/schemas/STATUS_EVENT.schema.json`
7
7
  - `MODULES/schemas/ARTIFACT_MANIFEST.schema.json`
8
8
  - `MODULES/schemas/SWARM_HANDOFF.schema.json`
9
+ - `MODULES/schemas/ACE_RUNTIME_PROFILE.schema.json`
10
+ - `MODULES/schemas/WORKSPACE_SESSION_REGISTRY.schema.json`
11
+ - `MODULES/schemas/RUNTIME_TOOL_SPEC_REGISTRY.schema.json`
12
+ - `MODULES/schemas/RUNTIME_EXECUTOR_SESSION_REGISTRY.schema.json`
13
+ - `MODULES/schemas/TRACKER_SNAPSHOT.schema.json`
14
+ - `MODULES/schemas/VERICIFY_BRIDGE_SNAPSHOT.schema.json`
15
+ - `MODULES/schemas/VERICIFY_PROCESS_POST_LOG.schema.json`
16
+
17
+ ## Runtime Contract
18
+
19
+ - `ACE_WORKFLOW.md` is the canonical workspace runtime profile artifact.
20
+ - Its YAML front matter must validate against `MODULES/schemas/ACE_RUNTIME_PROFILE.schema.json`.
21
+ - The markdown body after the closing front matter boundary is the active runtime prompt template.
22
+
23
+ ## Workspace Session Contract
24
+
25
+ - `runtime-workspaces.json` is the canonical managed workspace/session registry.
26
+ - It must validate against `MODULES/schemas/WORKSPACE_SESSION_REGISTRY.schema.json`.
27
+ - Removal only applies to registry-backed managed workspace paths under the configured runtime root.
28
+
29
+ ## Runtime Tool Contract
30
+
31
+ - `runtime-tool-specs.json` is the canonical runtime-configured external tool registry.
32
+ - It must validate against `MODULES/schemas/RUNTIME_TOOL_SPEC_REGISTRY.schema.json`.
33
+ - Unattended executor and direct runtime-tool execution must validate input/output payloads against the declared tool schemas.
34
+
35
+ ## Runtime Executor Contract
36
+
37
+ - `runtime-executor-sessions.json` is the canonical unattended execution session registry.
38
+ - It must validate against `MODULES/schemas/RUNTIME_EXECUTOR_SESSION_REGISTRY.schema.json`.
39
+ - Session turns must record request/response paths, summaries, and tool-call outcomes without mutating existing HANDOFF or STATUS_EVENT schema versions.
40
+
41
+ ## Tracker Snapshot Contract
42
+
43
+ - `tracker-snapshot.json` is the canonical normalized tracker snapshot artifact.
44
+ - It must validate against `MODULES/schemas/TRACKER_SNAPSHOT.schema.json`.
45
+ - Scheduler and future executor consumers must use normalized item/comment fields only; provider-specific detail belongs under `metadata`.
46
+
47
+ ## Vericify Sidecar Contract
48
+
49
+ - `vericify/ace-bridge.json` is an optional sidecar bridge snapshot for Vericify-style read-model consumers.
50
+ - It must validate against `MODULES/schemas/VERICIFY_BRIDGE_SNAPSHOT.schema.json`.
51
+ - `vericify/process-posts.json` is an optional structured process-post log and must validate against `MODULES/schemas/VERICIFY_PROCESS_POST_LOG.schema.json`.
52
+ - Vericify remains optional; ACE must not require the Vericify package to read or write these artifacts.
53
+
54
+ ## Public Surface Gate
55
+
56
+ - `audit_public_surface` is the canonical TypeScript public-surface gate for MCP tools, resources, prompts, and registered event names.
57
+ - `PUBLIC_SURFACE_REPORT.md` is the durable audit artifact written by that gate.
58
+ - `MODULES/gates/gate-typescript-public-surface.json` is the executable gate manifest for CI or operator use.
9
59
 
10
60
  ## Provenance Contract
11
61
 
@@ -0,0 +1,7 @@
1
+ {
2
+ "id": "gate-typescript-public-surface",
3
+ "type": "executable",
4
+ "invariant": "Exported MCP tools, resources, prompts, and public status events stay registered, described, schema-backed where required, and covered by the audit gate",
5
+ "command": "node --input-type=module -e \"import('./dist/public-surface.js').then(async (m) => { const result = await m.auditPublicSurface({ write_artifact: false }); if (!result.ok) { console.error(result.failures.join('\\n')); process.exit(1); } console.log(JSON.stringify(result.summary)); })\"",
6
+ "evidence_requirement": "PUBLIC_SURFACE_REPORT.md + passing public-surface audit"
7
+ }
@@ -23,11 +23,19 @@
23
23
  "gate-autonomy",
24
24
  "gate-security",
25
25
  "gate-operability",
26
- "gate-evaluation"
26
+ "gate-evaluation",
27
+ "gate-typescript-public-surface"
27
28
  ],
28
29
  "schemas": [
29
30
  "STATUS_EVENT.schema.json",
30
31
  "HANDOFF.schema.json",
31
- "ARTIFACT_MANIFEST.schema.json"
32
+ "ARTIFACT_MANIFEST.schema.json",
33
+ "ACE_RUNTIME_PROFILE.schema.json",
34
+ "WORKSPACE_SESSION_REGISTRY.schema.json",
35
+ "RUNTIME_TOOL_SPEC_REGISTRY.schema.json",
36
+ "RUNTIME_EXECUTOR_SESSION_REGISTRY.schema.json",
37
+ "TRACKER_SNAPSHOT.schema.json",
38
+ "VERICIFY_BRIDGE_SNAPSHOT.schema.json",
39
+ "VERICIFY_PROCESS_POST_LOG.schema.json"
32
40
  ]
33
41
  }
@@ -0,0 +1,210 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "ace://schemas/runtime-profile/1.0.0",
4
+ "title": "ACE Runtime Profile",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "ace_runtime_version",
9
+ "runtime",
10
+ "workspace",
11
+ "executor",
12
+ "tracker",
13
+ "observability"
14
+ ],
15
+ "properties": {
16
+ "ace_runtime_version": {
17
+ "type": "string",
18
+ "const": "1.0.0"
19
+ },
20
+ "runtime": {
21
+ "type": "object",
22
+ "additionalProperties": false,
23
+ "required": [
24
+ "mode",
25
+ "profile_name"
26
+ ],
27
+ "properties": {
28
+ "mode": {
29
+ "type": "string",
30
+ "enum": [
31
+ "interactive",
32
+ "unattended"
33
+ ]
34
+ },
35
+ "profile_name": {
36
+ "type": "string",
37
+ "minLength": 1
38
+ }
39
+ }
40
+ },
41
+ "workspace": {
42
+ "type": "object",
43
+ "additionalProperties": false,
44
+ "required": [
45
+ "root",
46
+ "retention",
47
+ "hooks"
48
+ ],
49
+ "properties": {
50
+ "root": {
51
+ "type": "string",
52
+ "minLength": 1
53
+ },
54
+ "retention": {
55
+ "type": "string",
56
+ "enum": [
57
+ "delete",
58
+ "archive"
59
+ ]
60
+ },
61
+ "hooks": {
62
+ "type": "object",
63
+ "additionalProperties": false,
64
+ "required": [
65
+ "after_create",
66
+ "before_run",
67
+ "after_run",
68
+ "before_remove"
69
+ ],
70
+ "properties": {
71
+ "after_create": {
72
+ "type": [
73
+ "string",
74
+ "null"
75
+ ]
76
+ },
77
+ "before_run": {
78
+ "type": [
79
+ "string",
80
+ "null"
81
+ ]
82
+ },
83
+ "after_run": {
84
+ "type": [
85
+ "string",
86
+ "null"
87
+ ]
88
+ },
89
+ "before_remove": {
90
+ "type": [
91
+ "string",
92
+ "null"
93
+ ]
94
+ }
95
+ }
96
+ }
97
+ }
98
+ },
99
+ "executor": {
100
+ "type": "object",
101
+ "additionalProperties": false,
102
+ "required": [
103
+ "command",
104
+ "approval_policy",
105
+ "thread_sandbox",
106
+ "turn_sandbox_policy"
107
+ ],
108
+ "properties": {
109
+ "command": {
110
+ "type": [
111
+ "string",
112
+ "null"
113
+ ]
114
+ },
115
+ "approval_policy": {
116
+ "type": [
117
+ "string",
118
+ "object"
119
+ ]
120
+ },
121
+ "thread_sandbox": {
122
+ "type": "string",
123
+ "minLength": 1
124
+ },
125
+ "turn_sandbox_policy": {
126
+ "type": [
127
+ "object",
128
+ "null"
129
+ ]
130
+ },
131
+ "max_turns": {
132
+ "type": "integer",
133
+ "minimum": 1
134
+ },
135
+ "turn_timeout_ms": {
136
+ "type": "integer",
137
+ "minimum": 1
138
+ }
139
+ }
140
+ },
141
+ "tools": {
142
+ "type": "object",
143
+ "additionalProperties": false,
144
+ "properties": {
145
+ "registry_path": {
146
+ "type": "string",
147
+ "minLength": 1
148
+ }
149
+ }
150
+ },
151
+ "tracker": {
152
+ "type": "object",
153
+ "additionalProperties": false,
154
+ "required": [
155
+ "kind",
156
+ "config"
157
+ ],
158
+ "properties": {
159
+ "kind": {
160
+ "type": "string",
161
+ "enum": [
162
+ "none",
163
+ "memory",
164
+ "external"
165
+ ]
166
+ },
167
+ "config": {
168
+ "type": "object"
169
+ }
170
+ }
171
+ },
172
+ "observability": {
173
+ "type": "object",
174
+ "additionalProperties": false,
175
+ "required": [
176
+ "http_enabled",
177
+ "http_port"
178
+ ],
179
+ "properties": {
180
+ "http_enabled": {
181
+ "type": "boolean"
182
+ },
183
+ "http_port": {
184
+ "type": [
185
+ "integer",
186
+ "null"
187
+ ],
188
+ "minimum": 0
189
+ },
190
+ "vericify_bridge": {
191
+ "type": "object",
192
+ "additionalProperties": false,
193
+ "properties": {
194
+ "enabled": {
195
+ "type": "boolean"
196
+ },
197
+ "bridge_path": {
198
+ "type": "string",
199
+ "minLength": 1
200
+ },
201
+ "process_post_path": {
202
+ "type": "string",
203
+ "minLength": 1
204
+ }
205
+ }
206
+ }
207
+ }
208
+ }
209
+ }
210
+ }