ace-swarm 2.0.6 → 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.
- package/README.md +17 -0
- package/assets/.agents/skills/landing-review-watcher/SKILL.md +68 -0
- package/assets/.agents/skills/problem-triage/SKILL.md +57 -0
- package/assets/.agents/skills/problem-triage/agents/openai.yaml +3 -0
- package/assets/.agents/skills/skill-auditor/SKILL.md +52 -0
- package/assets/.github/hooks/ace-copilot.json +68 -0
- package/assets/agent-state/ACE_WORKFLOW.md +66 -0
- package/assets/agent-state/INTERFACE_REGISTRY.md +50 -0
- package/assets/agent-state/MODULES/gates/gate-typescript-public-surface.json +7 -0
- package/assets/agent-state/MODULES/registry.json +10 -2
- package/assets/agent-state/MODULES/schemas/ACE_RUNTIME_PROFILE.schema.json +210 -0
- package/assets/agent-state/MODULES/schemas/RUNTIME_EXECUTOR_SESSION_REGISTRY.schema.json +290 -0
- package/assets/agent-state/MODULES/schemas/RUNTIME_TOOL_SPEC_REGISTRY.schema.json +144 -0
- package/assets/agent-state/MODULES/schemas/TRACKER_SNAPSHOT.schema.json +134 -0
- package/assets/agent-state/MODULES/schemas/VERICIFY_BRIDGE_SNAPSHOT.schema.json +157 -0
- package/assets/agent-state/MODULES/schemas/VERICIFY_PROCESS_POST_LOG.schema.json +92 -0
- package/assets/agent-state/MODULES/schemas/WORKSPACE_SESSION_REGISTRY.schema.json +133 -0
- package/assets/agent-state/SKILL_CATALOG.md +48 -0
- package/assets/agent-state/runtime-executor-sessions.json +5 -0
- package/assets/agent-state/runtime-tool-specs.json +5 -0
- package/assets/agent-state/runtime-workspaces.json +5 -0
- package/assets/agent-state/tracker-snapshot.json +7 -0
- package/assets/agent-state/vericify/ace-bridge.json +60 -0
- package/assets/agent-state/vericify/process-posts.json +5 -0
- package/assets/scripts/copilot-hook-dispatch.mjs +267 -0
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +284 -1
- package/dist/helpers.js.map +1 -1
- package/dist/problem-triage.d.ts +23 -0
- package/dist/problem-triage.d.ts.map +1 -0
- package/dist/problem-triage.js +429 -0
- package/dist/problem-triage.js.map +1 -0
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +46 -0
- package/dist/prompts.js.map +1 -1
- package/dist/public-surface.d.ts +30 -0
- package/dist/public-surface.d.ts.map +1 -0
- package/dist/public-surface.js +310 -0
- package/dist/public-surface.js.map +1 -0
- package/dist/resources.d.ts.map +1 -1
- package/dist/resources.js +148 -0
- package/dist/resources.js.map +1 -1
- package/dist/runtime-command.d.ts +18 -0
- package/dist/runtime-command.d.ts.map +1 -0
- package/dist/runtime-command.js +76 -0
- package/dist/runtime-command.js.map +1 -0
- package/dist/runtime-executor.d.ts +104 -0
- package/dist/runtime-executor.d.ts.map +1 -0
- package/dist/runtime-executor.js +774 -0
- package/dist/runtime-executor.js.map +1 -0
- package/dist/runtime-profile.d.ts +98 -0
- package/dist/runtime-profile.d.ts.map +1 -0
- package/dist/runtime-profile.js +441 -0
- package/dist/runtime-profile.js.map +1 -0
- package/dist/runtime-tool-specs.d.ts +68 -0
- package/dist/runtime-tool-specs.d.ts.map +1 -0
- package/dist/runtime-tool-specs.js +424 -0
- package/dist/runtime-tool-specs.js.map +1 -0
- package/dist/schemas.d.ts +6 -0
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +305 -0
- package/dist/schemas.js.map +1 -1
- package/dist/shared.d.ts +36 -3
- package/dist/shared.d.ts.map +1 -1
- package/dist/shared.js +36 -3
- package/dist/shared.js.map +1 -1
- package/dist/skill-auditor.d.ts +26 -0
- package/dist/skill-auditor.d.ts.map +1 -0
- package/dist/skill-auditor.js +184 -0
- package/dist/skill-auditor.js.map +1 -0
- package/dist/skill-catalog.d.ts +60 -0
- package/dist/skill-catalog.d.ts.map +1 -0
- package/dist/skill-catalog.js +263 -0
- package/dist/skill-catalog.js.map +1 -0
- package/dist/status-events.d.ts.map +1 -1
- package/dist/status-events.js +51 -8
- package/dist/status-events.js.map +1 -1
- package/dist/tools-agent.d.ts.map +1 -1
- package/dist/tools-agent.js +869 -0
- package/dist/tools-agent.js.map +1 -1
- package/dist/tools-files.d.ts.map +1 -1
- package/dist/tools-files.js +212 -1
- package/dist/tools-files.js.map +1 -1
- package/dist/tools-framework.d.ts.map +1 -1
- package/dist/tools-framework.js +86 -0
- package/dist/tools-framework.js.map +1 -1
- package/dist/tools-skills.d.ts +3 -0
- package/dist/tools-skills.d.ts.map +1 -0
- package/dist/tools-skills.js +104 -0
- package/dist/tools-skills.js.map +1 -0
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +2 -0
- package/dist/tools.js.map +1 -1
- package/dist/tracker-adapters.d.ts +74 -0
- package/dist/tracker-adapters.d.ts.map +1 -0
- package/dist/tracker-adapters.js +777 -0
- package/dist/tracker-adapters.js.map +1 -0
- package/dist/tracker-sync.d.ts +10 -0
- package/dist/tracker-sync.d.ts.map +1 -0
- package/dist/tracker-sync.js +84 -0
- package/dist/tracker-sync.js.map +1 -0
- package/dist/vericify-bridge.d.ts +142 -0
- package/dist/vericify-bridge.d.ts.map +1 -0
- package/dist/vericify-bridge.js +481 -0
- package/dist/vericify-bridge.js.map +1 -0
- package/dist/workspace-manager.d.ts +103 -0
- package/dist/workspace-manager.d.ts.map +1 -0
- package/dist/workspace-manager.js +526 -0
- package/dist/workspace-manager.js.map +1 -0
- 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,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
|
+
}
|