@moreih29/nexus-core 0.12.0 → 0.14.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.
- package/README.md +76 -57
- package/assets/agents/architect/body.ko.md +177 -0
- package/{agents → assets/agents}/architect/body.md +16 -0
- package/assets/agents/designer/body.ko.md +125 -0
- package/{agents → assets/agents}/designer/body.md +16 -0
- package/assets/agents/engineer/body.ko.md +106 -0
- package/{agents → assets/agents}/engineer/body.md +14 -0
- package/assets/agents/lead/body.ko.md +70 -0
- package/assets/agents/lead/body.md +70 -0
- package/assets/agents/postdoc/body.ko.md +122 -0
- package/{agents → assets/agents}/postdoc/body.md +16 -0
- package/assets/agents/researcher/body.ko.md +137 -0
- package/{agents → assets/agents}/researcher/body.md +15 -0
- package/assets/agents/reviewer/body.ko.md +138 -0
- package/{agents → assets/agents}/reviewer/body.md +15 -0
- package/assets/agents/strategist/body.ko.md +116 -0
- package/{agents → assets/agents}/strategist/body.md +16 -0
- package/assets/agents/tester/body.ko.md +195 -0
- package/{agents → assets/agents}/tester/body.md +15 -0
- package/assets/agents/writer/body.ko.md +122 -0
- package/{agents → assets/agents}/writer/body.md +14 -0
- package/assets/capability-matrix.yml +198 -0
- package/assets/hooks/agent-bootstrap/handler.test.ts +368 -0
- package/assets/hooks/agent-bootstrap/handler.ts +119 -0
- package/assets/hooks/agent-bootstrap/meta.yml +10 -0
- package/assets/hooks/agent-finalize/handler.test.ts +368 -0
- package/assets/hooks/agent-finalize/handler.ts +76 -0
- package/assets/hooks/agent-finalize/meta.yml +10 -0
- package/assets/hooks/capability-matrix.yml +313 -0
- package/assets/hooks/post-tool-telemetry/handler.test.ts +302 -0
- package/assets/hooks/post-tool-telemetry/handler.ts +49 -0
- package/assets/hooks/post-tool-telemetry/meta.yml +11 -0
- package/assets/hooks/prompt-router/handler.test.ts +801 -0
- package/assets/hooks/prompt-router/handler.ts +261 -0
- package/assets/hooks/prompt-router/meta.yml +11 -0
- package/assets/hooks/session-init/handler.test.ts +274 -0
- package/assets/hooks/session-init/handler.ts +30 -0
- package/assets/hooks/session-init/meta.yml +9 -0
- package/assets/lsp-servers.json +55 -0
- package/assets/schema/lsp-servers.schema.json +67 -0
- package/assets/skills/nx-init/body.ko.md +197 -0
- package/{skills → assets/skills}/nx-init/body.md +11 -0
- package/assets/skills/nx-plan/body.ko.md +361 -0
- package/{skills → assets/skills}/nx-plan/body.md +13 -0
- package/assets/skills/nx-run/body.ko.md +161 -0
- package/{skills → assets/skills}/nx-run/body.md +11 -0
- package/assets/skills/nx-sync/body.ko.md +92 -0
- package/{skills → assets/skills}/nx-sync/body.md +10 -0
- package/assets/tools/tool-name-map.yml +353 -0
- package/dist/assets/hooks/agent-bootstrap/handler.d.ts +4 -0
- package/dist/assets/hooks/agent-bootstrap/handler.d.ts.map +1 -0
- package/dist/assets/hooks/agent-bootstrap/handler.js +100 -0
- package/dist/assets/hooks/agent-bootstrap/handler.js.map +1 -0
- package/dist/assets/hooks/agent-finalize/handler.d.ts +4 -0
- package/dist/assets/hooks/agent-finalize/handler.d.ts.map +1 -0
- package/dist/assets/hooks/agent-finalize/handler.js +63 -0
- package/dist/assets/hooks/agent-finalize/handler.js.map +1 -0
- package/dist/assets/hooks/post-tool-telemetry/handler.d.ts +4 -0
- package/dist/assets/hooks/post-tool-telemetry/handler.d.ts.map +1 -0
- package/dist/assets/hooks/post-tool-telemetry/handler.js +40 -0
- package/dist/assets/hooks/post-tool-telemetry/handler.js.map +1 -0
- package/dist/assets/hooks/prompt-router/handler.d.ts +4 -0
- package/dist/assets/hooks/prompt-router/handler.d.ts.map +1 -0
- package/dist/assets/hooks/prompt-router/handler.js +204 -0
- package/dist/assets/hooks/prompt-router/handler.js.map +1 -0
- package/dist/assets/hooks/session-init/handler.d.ts +4 -0
- package/dist/assets/hooks/session-init/handler.d.ts.map +1 -0
- package/dist/assets/hooks/session-init/handler.js +23 -0
- package/dist/assets/hooks/session-init/handler.js.map +1 -0
- package/dist/hooks/agent-bootstrap.js +105 -0
- package/dist/hooks/agent-finalize.js +164 -0
- package/dist/hooks/post-tool-telemetry.js +55 -0
- package/dist/hooks/prompt-router.js +7300 -0
- package/dist/hooks/session-init.js +21 -0
- package/dist/manifests/claude-hooks.json +52 -0
- package/dist/manifests/codex-hooks.json +28 -0
- package/dist/manifests/opencode-manifest.json +44 -0
- package/dist/manifests/portability-report.json +87 -0
- package/dist/scripts/build-agents.d.ts +157 -0
- package/dist/scripts/build-agents.d.ts.map +1 -0
- package/dist/scripts/build-agents.js +737 -0
- package/dist/scripts/build-agents.js.map +1 -0
- package/dist/scripts/build-hooks.d.ts +16 -0
- package/dist/scripts/build-hooks.d.ts.map +1 -0
- package/dist/scripts/build-hooks.js +388 -0
- package/dist/scripts/build-hooks.js.map +1 -0
- package/dist/scripts/cli.d.ts +54 -0
- package/dist/scripts/cli.d.ts.map +1 -0
- package/dist/scripts/cli.js +467 -0
- package/dist/scripts/cli.js.map +1 -0
- package/dist/src/hooks/opencode-mount.d.ts +35 -0
- package/dist/src/hooks/opencode-mount.d.ts.map +1 -0
- package/dist/src/hooks/opencode-mount.js +352 -0
- package/dist/src/hooks/opencode-mount.js.map +1 -0
- package/dist/src/hooks/runtime.d.ts +37 -0
- package/dist/src/hooks/runtime.d.ts.map +1 -0
- package/dist/src/hooks/runtime.js +274 -0
- package/dist/src/hooks/runtime.js.map +1 -0
- package/dist/src/hooks/types.d.ts +196 -0
- package/dist/src/hooks/types.d.ts.map +1 -0
- package/dist/src/hooks/types.js +85 -0
- package/dist/src/hooks/types.js.map +1 -0
- package/dist/src/lsp/cache.d.ts +9 -0
- package/dist/src/lsp/cache.d.ts.map +1 -0
- package/dist/src/lsp/cache.js +216 -0
- package/dist/src/lsp/cache.js.map +1 -0
- package/dist/src/lsp/client.d.ts +24 -0
- package/dist/src/lsp/client.d.ts.map +1 -0
- package/dist/src/lsp/client.js +166 -0
- package/dist/src/lsp/client.js.map +1 -0
- package/dist/src/lsp/detect.d.ts +77 -0
- package/dist/src/lsp/detect.d.ts.map +1 -0
- package/dist/src/lsp/detect.js +116 -0
- package/dist/src/lsp/detect.js.map +1 -0
- package/dist/src/mcp/server.d.ts +5 -0
- package/dist/src/mcp/server.d.ts.map +1 -0
- package/dist/src/mcp/server.js +34 -0
- package/dist/src/mcp/server.js.map +1 -0
- package/dist/src/mcp/tools/artifact.d.ts +4 -0
- package/dist/src/mcp/tools/artifact.d.ts.map +1 -0
- package/dist/src/mcp/tools/artifact.js +36 -0
- package/dist/src/mcp/tools/artifact.js.map +1 -0
- package/dist/src/mcp/tools/history.d.ts +3 -0
- package/dist/src/mcp/tools/history.d.ts.map +1 -0
- package/dist/src/mcp/tools/history.js +29 -0
- package/dist/src/mcp/tools/history.js.map +1 -0
- package/dist/src/mcp/tools/lsp.d.ts +13 -0
- package/dist/src/mcp/tools/lsp.d.ts.map +1 -0
- package/dist/src/mcp/tools/lsp.js +225 -0
- package/dist/src/mcp/tools/lsp.js.map +1 -0
- package/dist/src/mcp/tools/plan.d.ts +3 -0
- package/dist/src/mcp/tools/plan.d.ts.map +1 -0
- package/dist/src/mcp/tools/plan.js +317 -0
- package/dist/src/mcp/tools/plan.js.map +1 -0
- package/dist/src/mcp/tools/task.d.ts +3 -0
- package/dist/src/mcp/tools/task.d.ts.map +1 -0
- package/dist/src/mcp/tools/task.js +252 -0
- package/dist/src/mcp/tools/task.js.map +1 -0
- package/dist/src/shared/invocations.d.ts +74 -0
- package/dist/src/shared/invocations.d.ts.map +1 -0
- package/dist/src/shared/invocations.js +247 -0
- package/dist/src/shared/invocations.js.map +1 -0
- package/dist/src/shared/json-store.d.ts +37 -0
- package/dist/src/shared/json-store.d.ts.map +1 -0
- package/dist/src/shared/json-store.js +163 -0
- package/dist/src/shared/json-store.js.map +1 -0
- package/dist/src/shared/mcp-utils.d.ts +3 -0
- package/dist/src/shared/mcp-utils.d.ts.map +1 -0
- package/dist/src/shared/mcp-utils.js +6 -0
- package/dist/src/shared/mcp-utils.js.map +1 -0
- package/dist/src/shared/paths.d.ts +21 -0
- package/dist/src/shared/paths.d.ts.map +1 -0
- package/dist/src/shared/paths.js +81 -0
- package/dist/src/shared/paths.js.map +1 -0
- package/dist/src/shared/tool-log.d.ts +8 -0
- package/dist/src/shared/tool-log.d.ts.map +1 -0
- package/dist/src/shared/tool-log.js +22 -0
- package/dist/src/shared/tool-log.js.map +1 -0
- package/dist/src/types/state.d.ts +862 -0
- package/dist/src/types/state.d.ts.map +1 -0
- package/dist/src/types/state.js +66 -0
- package/dist/src/types/state.js.map +1 -0
- package/docs/consuming/codex-lead-merge.md +106 -0
- package/docs/plugin-guide.md +396 -0
- package/docs/plugin-template/claude/.github/workflows/build.yml +60 -0
- package/docs/plugin-template/claude/README.md +110 -0
- package/docs/plugin-template/claude/package.json +16 -0
- package/docs/plugin-template/codex/.github/workflows/build.yml +51 -0
- package/docs/plugin-template/codex/README.md +147 -0
- package/docs/plugin-template/codex/package.json +17 -0
- package/docs/plugin-template/opencode/.github/workflows/build.yml +61 -0
- package/docs/plugin-template/opencode/README.md +121 -0
- package/docs/plugin-template/opencode/package.json +25 -0
- package/package.json +36 -28
- package/agents/architect/meta.yml +0 -13
- package/agents/designer/meta.yml +0 -13
- package/agents/engineer/meta.yml +0 -11
- package/agents/postdoc/meta.yml +0 -13
- package/agents/researcher/meta.yml +0 -12
- package/agents/reviewer/meta.yml +0 -12
- package/agents/strategist/meta.yml +0 -13
- package/agents/tester/meta.yml +0 -12
- package/agents/writer/meta.yml +0 -11
- package/conformance/README.md +0 -311
- package/conformance/examples/plan.extension.schema.example.json +0 -25
- package/conformance/lifecycle/README.md +0 -48
- package/conformance/lifecycle/agent-complete.json +0 -44
- package/conformance/lifecycle/agent-resume.json +0 -43
- package/conformance/lifecycle/agent-spawn.json +0 -36
- package/conformance/lifecycle/memory-access-record.json +0 -27
- package/conformance/lifecycle/session-end.json +0 -48
- package/conformance/scenarios/full-plan-cycle.json +0 -147
- package/conformance/scenarios/task-deps-ordering.json +0 -95
- package/conformance/schema/fixture.schema.json +0 -354
- package/conformance/state-schemas/agent-tracker.schema.json +0 -63
- package/conformance/state-schemas/history.schema.json +0 -134
- package/conformance/state-schemas/memory-access.schema.json +0 -36
- package/conformance/state-schemas/plan.schema.json +0 -77
- package/conformance/state-schemas/tasks.schema.json +0 -98
- package/conformance/tools/artifact-write.json +0 -97
- package/conformance/tools/context.json +0 -172
- package/conformance/tools/history-search.json +0 -219
- package/conformance/tools/plan-decide.json +0 -139
- package/conformance/tools/plan-start.json +0 -81
- package/conformance/tools/plan-status.json +0 -127
- package/conformance/tools/plan-update.json +0 -341
- package/conformance/tools/task-add.json +0 -156
- package/conformance/tools/task-close.json +0 -161
- package/conformance/tools/task-list.json +0 -177
- package/conformance/tools/task-update.json +0 -167
- package/docs/behavioral-contracts.md +0 -145
- package/docs/consumer-implementation-guide.md +0 -840
- package/docs/memory-lifecycle-contract.md +0 -119
- package/docs/nexus-layout.md +0 -224
- package/docs/nexus-outputs-contract.md +0 -344
- package/docs/nexus-state-overview.md +0 -170
- package/docs/nexus-tools-contract.md +0 -438
- package/manifest.json +0 -448
- package/schema/README.md +0 -69
- package/schema/agent.schema.json +0 -23
- package/schema/common.schema.json +0 -17
- package/schema/manifest.schema.json +0 -78
- package/schema/memory-policy.schema.json +0 -98
- package/schema/skill.schema.json +0 -54
- package/schema/task-exceptions.schema.json +0 -40
- package/schema/vocabulary.schema.json +0 -167
- package/scripts/.gitkeep +0 -0
- package/scripts/conformance-coverage.ts +0 -466
- package/scripts/import-from-claude-nexus.ts +0 -403
- package/scripts/lib/frontmatter.ts +0 -71
- package/scripts/lib/lint.ts +0 -348
- package/scripts/lib/structure.ts +0 -159
- package/scripts/lib/validate.ts +0 -796
- package/scripts/validate.ts +0 -90
- package/skills/nx-init/meta.yml +0 -8
- package/skills/nx-plan/meta.yml +0 -10
- package/skills/nx-run/meta.yml +0 -8
- package/skills/nx-sync/meta.yml +0 -7
- package/vocabulary/capabilities.yml +0 -65
- package/vocabulary/categories.yml +0 -11
- package/vocabulary/invocations.yml +0 -147
- package/vocabulary/memory_policy.yml +0 -88
- package/vocabulary/resume-tiers.yml +0 -11
- package/vocabulary/tags.yml +0 -60
- package/vocabulary/task-exceptions.yml +0 -29
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// assets/hooks/session-init/handler.ts
|
|
2
|
+
import { mkdirSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { join, basename } from "node:path";
|
|
4
|
+
var handler = async (input) => {
|
|
5
|
+
if (input.hook_event_name !== "SessionStart")
|
|
6
|
+
return;
|
|
7
|
+
const safeSid = basename(input.session_id);
|
|
8
|
+
if (!safeSid || safeSid.startsWith(".") || safeSid.includes("/")) {
|
|
9
|
+
process.stderr.write(`[session-init] invalid session_id: ${input.session_id}
|
|
10
|
+
`);
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const sessionDir = join(input.cwd, ".nexus/state", safeSid);
|
|
14
|
+
mkdirSync(sessionDir, { recursive: true });
|
|
15
|
+
writeFileSync(join(sessionDir, "agent-tracker.json"), "[]");
|
|
16
|
+
writeFileSync(join(sessionDir, "tool-log.jsonl"), "");
|
|
17
|
+
};
|
|
18
|
+
var handler_default = handler;
|
|
19
|
+
export {
|
|
20
|
+
handler_default as default
|
|
21
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hooks": {
|
|
3
|
+
"SessionStart": [
|
|
4
|
+
{
|
|
5
|
+
"matcher": "*",
|
|
6
|
+
"hooks": [
|
|
7
|
+
{
|
|
8
|
+
"type": "command",
|
|
9
|
+
"command": "node ${CLAUDE_PLUGIN_ROOT}/dist/hooks/session-init.js",
|
|
10
|
+
"timeout": 10
|
|
11
|
+
}
|
|
12
|
+
]
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"UserPromptSubmit": [
|
|
16
|
+
{
|
|
17
|
+
"matcher": "*",
|
|
18
|
+
"hooks": [
|
|
19
|
+
{
|
|
20
|
+
"type": "command",
|
|
21
|
+
"command": "node ${CLAUDE_PLUGIN_ROOT}/dist/hooks/prompt-router.js",
|
|
22
|
+
"timeout": 10
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"SubagentStop": [
|
|
28
|
+
{
|
|
29
|
+
"matcher": "*",
|
|
30
|
+
"hooks": [
|
|
31
|
+
{
|
|
32
|
+
"type": "command",
|
|
33
|
+
"command": "node ${CLAUDE_PLUGIN_ROOT}/dist/hooks/agent-finalize.js",
|
|
34
|
+
"timeout": 10
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"SubagentStart": [
|
|
40
|
+
{
|
|
41
|
+
"matcher": "*",
|
|
42
|
+
"hooks": [
|
|
43
|
+
{
|
|
44
|
+
"type": "command",
|
|
45
|
+
"command": "node ${CLAUDE_PLUGIN_ROOT}/dist/hooks/agent-bootstrap.js",
|
|
46
|
+
"timeout": 10
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hooks": {
|
|
3
|
+
"SessionStart": [
|
|
4
|
+
{
|
|
5
|
+
"command": "node ${CLAUDE_PLUGIN_ROOT}/dist/hooks/session-init.js",
|
|
6
|
+
"timeout": 10
|
|
7
|
+
}
|
|
8
|
+
],
|
|
9
|
+
"UserPromptSubmit": [
|
|
10
|
+
{
|
|
11
|
+
"command": "node ${CLAUDE_PLUGIN_ROOT}/dist/hooks/prompt-router.js",
|
|
12
|
+
"timeout": 10
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"SubagentStop": [
|
|
16
|
+
{
|
|
17
|
+
"command": "node ${CLAUDE_PLUGIN_ROOT}/dist/hooks/agent-finalize.js",
|
|
18
|
+
"timeout": 10
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"SubagentStart": [
|
|
22
|
+
{
|
|
23
|
+
"command": "node ${CLAUDE_PLUGIN_ROOT}/dist/hooks/agent-bootstrap.js",
|
|
24
|
+
"timeout": 10
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hooks": [
|
|
3
|
+
{
|
|
4
|
+
"name": "session-init",
|
|
5
|
+
"events": [
|
|
6
|
+
"SessionStart"
|
|
7
|
+
],
|
|
8
|
+
"matcher": "*",
|
|
9
|
+
"handlerPath": "../assets/hooks/session-init/handler.js",
|
|
10
|
+
"priority": 0,
|
|
11
|
+
"timeout": 10
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"name": "prompt-router",
|
|
15
|
+
"events": [
|
|
16
|
+
"UserPromptSubmit"
|
|
17
|
+
],
|
|
18
|
+
"matcher": "*",
|
|
19
|
+
"handlerPath": "../assets/hooks/prompt-router/handler.js",
|
|
20
|
+
"priority": 0,
|
|
21
|
+
"timeout": 10
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"name": "agent-finalize",
|
|
25
|
+
"events": [
|
|
26
|
+
"SubagentStop"
|
|
27
|
+
],
|
|
28
|
+
"matcher": "*",
|
|
29
|
+
"handlerPath": "../assets/hooks/agent-finalize/handler.js",
|
|
30
|
+
"priority": 0,
|
|
31
|
+
"timeout": 10
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "agent-bootstrap",
|
|
35
|
+
"events": [
|
|
36
|
+
"SubagentStart"
|
|
37
|
+
],
|
|
38
|
+
"matcher": "*",
|
|
39
|
+
"handlerPath": "../assets/hooks/agent-bootstrap/handler.js",
|
|
40
|
+
"priority": 0,
|
|
41
|
+
"timeout": 10
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
{
|
|
2
|
+
"post-tool-telemetry": {
|
|
3
|
+
"tier": "experimental",
|
|
4
|
+
"registered_in": [],
|
|
5
|
+
"excluded_from": [
|
|
6
|
+
{
|
|
7
|
+
"harness": "claude",
|
|
8
|
+
"missing": [
|
|
9
|
+
"event.post_tool_use.bash_parsed"
|
|
10
|
+
],
|
|
11
|
+
"reason": "Codex-specific capability: the nexus wrapper parses Bash commands to derive equivalent nexus tool_name values"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"harness": "codex",
|
|
15
|
+
"missing": [
|
|
16
|
+
"event.post_tool_use.read",
|
|
17
|
+
"event.post_tool_use.edit"
|
|
18
|
+
],
|
|
19
|
+
"reason": "Codex has no independent Read tool; file reads use shell (cat/head/tail); Codex: apply_patch does not emit PostToolUse — same constraint as event.pre_tool_use.edit"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"harness": "opencode",
|
|
23
|
+
"missing": [
|
|
24
|
+
"event.post_tool_use.bash_parsed"
|
|
25
|
+
],
|
|
26
|
+
"reason": "Codex-specific capability: the nexus wrapper parses Bash commands to derive equivalent nexus tool_name values"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"capabilities_required": [
|
|
30
|
+
"event.post_tool_use.read",
|
|
31
|
+
"event.post_tool_use.edit",
|
|
32
|
+
"event.post_tool_use.bash_parsed"
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
"session-init": {
|
|
36
|
+
"tier": "core",
|
|
37
|
+
"registered_in": [
|
|
38
|
+
"claude",
|
|
39
|
+
"codex",
|
|
40
|
+
"opencode"
|
|
41
|
+
],
|
|
42
|
+
"excluded_from": [],
|
|
43
|
+
"capabilities_required": [
|
|
44
|
+
"event.session_start"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
"prompt-router": {
|
|
48
|
+
"tier": "core",
|
|
49
|
+
"registered_in": [
|
|
50
|
+
"claude",
|
|
51
|
+
"codex",
|
|
52
|
+
"opencode"
|
|
53
|
+
],
|
|
54
|
+
"excluded_from": [],
|
|
55
|
+
"capabilities_required": [
|
|
56
|
+
"event.user_prompt_submit",
|
|
57
|
+
"output.additional_context.user_prompt",
|
|
58
|
+
"output.decision_block"
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
"agent-finalize": {
|
|
62
|
+
"tier": "core",
|
|
63
|
+
"registered_in": [
|
|
64
|
+
"claude",
|
|
65
|
+
"codex",
|
|
66
|
+
"opencode"
|
|
67
|
+
],
|
|
68
|
+
"excluded_from": [],
|
|
69
|
+
"capabilities_required": [
|
|
70
|
+
"event.subagent_stop",
|
|
71
|
+
"output.additional_context.subagent_stop"
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
"agent-bootstrap": {
|
|
75
|
+
"tier": "core",
|
|
76
|
+
"registered_in": [
|
|
77
|
+
"claude",
|
|
78
|
+
"codex",
|
|
79
|
+
"opencode"
|
|
80
|
+
],
|
|
81
|
+
"excluded_from": [],
|
|
82
|
+
"capabilities_required": [
|
|
83
|
+
"event.subagent_start",
|
|
84
|
+
"output.additional_context.session_start"
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* scripts/build-agents.ts
|
|
3
|
+
*
|
|
4
|
+
* Build pipeline for nexus agents and skills.
|
|
5
|
+
*
|
|
6
|
+
* Inputs:
|
|
7
|
+
* assets/agents/<n>/body.md × 9 agents
|
|
8
|
+
* assets/skills/<n>/body.md × 4 skills
|
|
9
|
+
* assets/capability-matrix.yml
|
|
10
|
+
* assets/tools/tool-name-map.yml (invocations section)
|
|
11
|
+
*
|
|
12
|
+
* Outputs per harness:
|
|
13
|
+
* dist/claude/
|
|
14
|
+
* .claude-plugin/plugin.json (Template — skip if exists, --force to overwrite)
|
|
15
|
+
* .claude-plugin/marketplace.json (Template — skip if exists, --force to overwrite)
|
|
16
|
+
* agents/<n>.md × N
|
|
17
|
+
* skills/<n>/SKILL.md × 4
|
|
18
|
+
* settings.json (Managed — primary agent injection, omitted if no primary)
|
|
19
|
+
*
|
|
20
|
+
* dist/opencode/
|
|
21
|
+
* package.json (Template — skip if exists)
|
|
22
|
+
* opencode.json.fragment (Managed — always overwrite)
|
|
23
|
+
* src/index.ts (Managed — always overwrite)
|
|
24
|
+
* src/agents/<n>.ts × N (Managed — always overwrite, mode:primary gets mode field)
|
|
25
|
+
* .opencode/skills/<n>/SKILL.md × 4 (Managed)
|
|
26
|
+
*
|
|
27
|
+
* dist/codex/
|
|
28
|
+
* plugin/.codex-plugin/plugin.json (Managed)
|
|
29
|
+
* plugin/skills/<n>/SKILL.md × 4 (Managed)
|
|
30
|
+
* agents/<n>.toml × N (Managed)
|
|
31
|
+
* prompts/<n>.md × N (Managed)
|
|
32
|
+
* install/config.fragment.toml (Managed)
|
|
33
|
+
* install/AGENTS.fragment.md (Managed — primary agents only, omitted if none)
|
|
34
|
+
*
|
|
35
|
+
* Overwrite policy:
|
|
36
|
+
* Managed paths — always overwrite (unless --dry-run)
|
|
37
|
+
* Template paths — skip if file exists (overwrite only with --force)
|
|
38
|
+
*
|
|
39
|
+
* CLI flags:
|
|
40
|
+
* --harness=claude|opencode|codex (default: all)
|
|
41
|
+
* --target=<dir> (default: dist/)
|
|
42
|
+
* --dry-run print affected files, no writes
|
|
43
|
+
* --force force Template file overwrite
|
|
44
|
+
* --strict error if Managed output has untracked modifications
|
|
45
|
+
* --only=<agent|skill name> restrict to a single asset
|
|
46
|
+
*/
|
|
47
|
+
import type { InvocationsMap, Harness } from "../src/shared/invocations.js";
|
|
48
|
+
export declare const ROOT: string;
|
|
49
|
+
export declare const AGENTS_DIR: string;
|
|
50
|
+
export declare const SKILLS_DIR: string;
|
|
51
|
+
export declare const CAPABILITY_MATRIX_PATH: string;
|
|
52
|
+
export declare const TOOL_NAME_MAP_PATH: string;
|
|
53
|
+
export interface AgentFrontmatter {
|
|
54
|
+
name: string;
|
|
55
|
+
description: string;
|
|
56
|
+
task?: string;
|
|
57
|
+
alias_ko?: string;
|
|
58
|
+
category: "how" | "do" | "check" | "lead";
|
|
59
|
+
mode?: "primary" | "subagent" | "all";
|
|
60
|
+
resume_tier?: "persistent" | "bounded" | "ephemeral";
|
|
61
|
+
model_tier: "high" | "standard" | "low";
|
|
62
|
+
capabilities: string[];
|
|
63
|
+
id: string;
|
|
64
|
+
summary?: string;
|
|
65
|
+
triggers?: string[];
|
|
66
|
+
manual_only?: boolean;
|
|
67
|
+
harness_docs_refs?: string[];
|
|
68
|
+
}
|
|
69
|
+
export interface AssetEntry {
|
|
70
|
+
type: "agent" | "skill";
|
|
71
|
+
name: string;
|
|
72
|
+
frontmatter: AgentFrontmatter;
|
|
73
|
+
body: string;
|
|
74
|
+
bodyPath: string;
|
|
75
|
+
}
|
|
76
|
+
export interface CapabilityMatrixEntry {
|
|
77
|
+
claude?: {
|
|
78
|
+
disallowedTools?: string[];
|
|
79
|
+
};
|
|
80
|
+
opencode?: {
|
|
81
|
+
permission?: Record<string, string>;
|
|
82
|
+
};
|
|
83
|
+
codex?: {
|
|
84
|
+
sandbox_mode?: string | null;
|
|
85
|
+
disabled_tools?: string[];
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
export interface CapabilityMatrix {
|
|
89
|
+
capabilities: Record<string, CapabilityMatrixEntry>;
|
|
90
|
+
model_tier: Record<string, {
|
|
91
|
+
claude: string;
|
|
92
|
+
codex: string;
|
|
93
|
+
opencode: string | null;
|
|
94
|
+
}>;
|
|
95
|
+
}
|
|
96
|
+
export interface ToolNameMapInvocations {
|
|
97
|
+
invocations: InvocationsMap;
|
|
98
|
+
}
|
|
99
|
+
export interface BuildOptions {
|
|
100
|
+
harnesses: Harness[];
|
|
101
|
+
targetDir: string;
|
|
102
|
+
dryRun: boolean;
|
|
103
|
+
force: boolean;
|
|
104
|
+
strict: boolean;
|
|
105
|
+
only?: string;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Split a body.md file into frontmatter object and body text.
|
|
109
|
+
* Throws on YAML parse failure.
|
|
110
|
+
*/
|
|
111
|
+
export declare function parseFrontmatter(raw: string, filePath: string): {
|
|
112
|
+
fm: AgentFrontmatter;
|
|
113
|
+
body: string;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Load all agents and skills from assets/, whitelisting only body.md.
|
|
117
|
+
*/
|
|
118
|
+
export declare function loadAssets(opts?: {
|
|
119
|
+
only?: string;
|
|
120
|
+
}): AssetEntry[];
|
|
121
|
+
export declare function loadCapabilityMatrix(): CapabilityMatrix;
|
|
122
|
+
export declare function loadInvocations(): InvocationsMap;
|
|
123
|
+
/**
|
|
124
|
+
* Collect all Claude disallowedTools for an agent based on its capabilities[].
|
|
125
|
+
*/
|
|
126
|
+
export declare function resolveClaudeDisallowedTools(capabilities: string[], capMatrix: CapabilityMatrix): string[];
|
|
127
|
+
/**
|
|
128
|
+
* Collect merged OpenCode permission block for an agent.
|
|
129
|
+
*/
|
|
130
|
+
export declare function resolveOpencodePermissions(capabilities: string[], capMatrix: CapabilityMatrix): Record<string, string>;
|
|
131
|
+
/**
|
|
132
|
+
* Resolve codex sandbox_mode and disabled_tools for an agent.
|
|
133
|
+
* sandbox_mode: take the most restrictive non-null value ("read-only" wins).
|
|
134
|
+
*/
|
|
135
|
+
export declare function resolveCodexConfig(capabilities: string[], capMatrix: CapabilityMatrix): {
|
|
136
|
+
sandbox_mode: string | null;
|
|
137
|
+
disabled_tools: string[];
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* Resolve model slug for a given model_tier and harness.
|
|
141
|
+
*/
|
|
142
|
+
export declare function resolveModel(modelTier: string, harness: Harness, capMatrix: CapabilityMatrix): string | null;
|
|
143
|
+
/**
|
|
144
|
+
* Write a file according to the managed/template overwrite policy.
|
|
145
|
+
*
|
|
146
|
+
* Managed: always overwrite (unless --dry-run)
|
|
147
|
+
* Template: skip if exists (overwrite only with --force)
|
|
148
|
+
* --dry-run: record path, no write
|
|
149
|
+
* --strict: error if Managed path has untracked git modifications
|
|
150
|
+
*/
|
|
151
|
+
export declare function applyOverwritePolicy(filePath: string, content: string, isManaged: boolean, opts: BuildOptions): void;
|
|
152
|
+
export declare function buildForClaude(assets: AssetEntry[], capMatrix: CapabilityMatrix, invocations: InvocationsMap, opts: BuildOptions): void;
|
|
153
|
+
export declare function buildForOpencode(assets: AssetEntry[], capMatrix: CapabilityMatrix, invocations: InvocationsMap, opts: BuildOptions): void;
|
|
154
|
+
export declare function buildForCodex(assets: AssetEntry[], capMatrix: CapabilityMatrix, invocations: InvocationsMap, opts: BuildOptions): void;
|
|
155
|
+
export declare function parseArgs(argv: string[]): BuildOptions;
|
|
156
|
+
export declare function buildAgents(opts: BuildOptions): Promise<void>;
|
|
157
|
+
//# sourceMappingURL=build-agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-agents.d.ts","sourceRoot":"","sources":["../../scripts/build-agents.ts"],"names":[],"mappings":"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"}
|