@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,467 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* scripts/cli.ts
|
|
4
|
+
*
|
|
5
|
+
* nexus-core CLI — subcommand dispatcher.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* nexus-core <command> [flags]
|
|
9
|
+
* bun run scripts/cli.ts <command> [flags]
|
|
10
|
+
*
|
|
11
|
+
* Commands:
|
|
12
|
+
* sync Build agents + hooks (build-agents + build-hooks pipeline)
|
|
13
|
+
* init Copy plugin template to a target directory
|
|
14
|
+
* list List agents, skills, and hooks from assets/
|
|
15
|
+
* validate Validate frontmatter and YAML assets
|
|
16
|
+
* mcp Start the MCP stdio server (same as nexus-mcp)
|
|
17
|
+
*
|
|
18
|
+
* Flags:
|
|
19
|
+
* --help, -h Show help for the current command
|
|
20
|
+
*/
|
|
21
|
+
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
22
|
+
import { join, resolve, dirname } from "node:path";
|
|
23
|
+
import { fileURLToPath } from "node:url";
|
|
24
|
+
import { parse as parseYaml } from "yaml";
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
// Constants
|
|
27
|
+
// ---------------------------------------------------------------------------
|
|
28
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
29
|
+
export const ROOT = resolve(__dirname, "..");
|
|
30
|
+
export const ASSETS_DIR = join(ROOT, "assets");
|
|
31
|
+
export function parseFlags(argv) {
|
|
32
|
+
const flags = {
|
|
33
|
+
dryRun: false,
|
|
34
|
+
force: false,
|
|
35
|
+
strict: false,
|
|
36
|
+
help: false,
|
|
37
|
+
remaining: [],
|
|
38
|
+
};
|
|
39
|
+
for (const arg of argv) {
|
|
40
|
+
if (arg === "--help" || arg === "-h") {
|
|
41
|
+
flags.help = true;
|
|
42
|
+
}
|
|
43
|
+
else if (arg.startsWith("--harness=")) {
|
|
44
|
+
flags.harness = arg.slice("--harness=".length);
|
|
45
|
+
}
|
|
46
|
+
else if (arg.startsWith("--target=")) {
|
|
47
|
+
flags.target = resolve(arg.slice("--target=".length));
|
|
48
|
+
}
|
|
49
|
+
else if (arg === "--dry-run") {
|
|
50
|
+
flags.dryRun = true;
|
|
51
|
+
}
|
|
52
|
+
else if (arg === "--force") {
|
|
53
|
+
flags.force = true;
|
|
54
|
+
}
|
|
55
|
+
else if (arg === "--strict") {
|
|
56
|
+
flags.strict = true;
|
|
57
|
+
}
|
|
58
|
+
else if (arg.startsWith("--only=")) {
|
|
59
|
+
flags.only = arg.slice("--only=".length);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
flags.remaining.push(arg);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return flags;
|
|
66
|
+
}
|
|
67
|
+
// ---------------------------------------------------------------------------
|
|
68
|
+
// Help messages
|
|
69
|
+
// ---------------------------------------------------------------------------
|
|
70
|
+
const HELP_MAIN = `
|
|
71
|
+
nexus-core — Nexus ecosystem CLI
|
|
72
|
+
|
|
73
|
+
Usage:
|
|
74
|
+
nexus-core <command> [flags]
|
|
75
|
+
|
|
76
|
+
Commands:
|
|
77
|
+
sync Build agents + hooks (runs build-agents + build-hooks pipelines)
|
|
78
|
+
init Copy plugin template to a target directory
|
|
79
|
+
list List agents, skills, and hooks from assets/
|
|
80
|
+
validate Validate frontmatter and YAML assets
|
|
81
|
+
mcp Start the MCP stdio server (same as nexus-mcp)
|
|
82
|
+
|
|
83
|
+
Flags:
|
|
84
|
+
--help, -h Show help for the current command
|
|
85
|
+
|
|
86
|
+
Run \`nexus-core <command> --help\` for command-specific flags.
|
|
87
|
+
`.trim();
|
|
88
|
+
const HELP_SYNC = `
|
|
89
|
+
nexus-core sync — Build agents + hooks
|
|
90
|
+
|
|
91
|
+
Usage:
|
|
92
|
+
nexus-core sync [flags]
|
|
93
|
+
|
|
94
|
+
Flags:
|
|
95
|
+
--harness=<claude|opencode|codex> Restrict to one harness (default: all)
|
|
96
|
+
--target=<dir> Output directory (default: dist/)
|
|
97
|
+
--dry-run Print affected files, no writes
|
|
98
|
+
--force Force template file overwrite
|
|
99
|
+
--strict Error if managed output has untracked modifications
|
|
100
|
+
--only=<name> Restrict to a single agent or skill name
|
|
101
|
+
`.trim();
|
|
102
|
+
const HELP_INIT = `
|
|
103
|
+
nexus-core init — Copy plugin template to target directory
|
|
104
|
+
|
|
105
|
+
Usage:
|
|
106
|
+
nexus-core init [flags]
|
|
107
|
+
|
|
108
|
+
Flags:
|
|
109
|
+
--harness=<claude|opencode|codex> Harness template to copy (default: claude)
|
|
110
|
+
--target=<dir> Destination directory (required)
|
|
111
|
+
`.trim();
|
|
112
|
+
const HELP_LIST = `
|
|
113
|
+
nexus-core list — List assets from assets/
|
|
114
|
+
|
|
115
|
+
Usage:
|
|
116
|
+
nexus-core list [flags]
|
|
117
|
+
|
|
118
|
+
Flags:
|
|
119
|
+
(none currently)
|
|
120
|
+
|
|
121
|
+
Prints agents, skills, and hooks with their descriptions.
|
|
122
|
+
`.trim();
|
|
123
|
+
const HELP_VALIDATE = `
|
|
124
|
+
nexus-core validate — Validate frontmatter and YAML assets
|
|
125
|
+
|
|
126
|
+
Usage:
|
|
127
|
+
nexus-core validate [flags]
|
|
128
|
+
|
|
129
|
+
Flags:
|
|
130
|
+
(none currently)
|
|
131
|
+
|
|
132
|
+
Validates:
|
|
133
|
+
- assets/agents/*/body.md frontmatter (required fields: id, name, category, model_tier)
|
|
134
|
+
- assets/skills/*/body.md frontmatter (required fields: id, name)
|
|
135
|
+
- assets/capability-matrix.yml YAML parse
|
|
136
|
+
- assets/tools/tool-name-map.yml YAML parse
|
|
137
|
+
`.trim();
|
|
138
|
+
const HELP_MCP = `
|
|
139
|
+
nexus-core mcp — Start the MCP stdio server
|
|
140
|
+
|
|
141
|
+
Usage:
|
|
142
|
+
nexus-core mcp
|
|
143
|
+
|
|
144
|
+
Starts the nexus-core MCP server on stdio. Equivalent to running nexus-mcp directly.
|
|
145
|
+
`.trim();
|
|
146
|
+
// ---------------------------------------------------------------------------
|
|
147
|
+
// Subcommand: sync
|
|
148
|
+
// ---------------------------------------------------------------------------
|
|
149
|
+
export async function runSync(argv) {
|
|
150
|
+
const flags = parseFlags(argv);
|
|
151
|
+
if (flags.help) {
|
|
152
|
+
console.log(HELP_SYNC);
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
// Build argv for build-agents: reconstruct flags as process.argv-style
|
|
156
|
+
// build-agents.parseArgs expects process.argv (slices [2:])
|
|
157
|
+
const fakeArgv = ["node", "build-agents.ts"];
|
|
158
|
+
if (flags.harness)
|
|
159
|
+
fakeArgv.push(`--harness=${flags.harness}`);
|
|
160
|
+
if (flags.target)
|
|
161
|
+
fakeArgv.push(`--target=${flags.target}`);
|
|
162
|
+
if (flags.dryRun)
|
|
163
|
+
fakeArgv.push("--dry-run");
|
|
164
|
+
if (flags.force)
|
|
165
|
+
fakeArgv.push("--force");
|
|
166
|
+
if (flags.strict)
|
|
167
|
+
fakeArgv.push("--strict");
|
|
168
|
+
if (flags.only)
|
|
169
|
+
fakeArgv.push(`--only=${flags.only}`);
|
|
170
|
+
const { buildAgents, parseArgs: parseAgentArgs } = await import("./build-agents.js");
|
|
171
|
+
const agentOpts = parseAgentArgs(fakeArgv);
|
|
172
|
+
await buildAgents(agentOpts);
|
|
173
|
+
if (flags.dryRun) {
|
|
174
|
+
console.log(`[nexus-core sync] --dry-run: skipping buildHooks (no writes)`);
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
const { buildHooks } = await import("./build-hooks.js");
|
|
178
|
+
await buildHooks();
|
|
179
|
+
}
|
|
180
|
+
// ---------------------------------------------------------------------------
|
|
181
|
+
// Subcommand: init
|
|
182
|
+
// ---------------------------------------------------------------------------
|
|
183
|
+
export async function runInit(argv) {
|
|
184
|
+
const flags = parseFlags(argv);
|
|
185
|
+
if (flags.help) {
|
|
186
|
+
console.log(HELP_INIT);
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
const harness = flags.harness ?? "claude";
|
|
190
|
+
const target = flags.target;
|
|
191
|
+
if (!target) {
|
|
192
|
+
process.stderr.write(`[nexus-core init] --target=<dir> is required\n`);
|
|
193
|
+
process.exit(1);
|
|
194
|
+
}
|
|
195
|
+
const templateDir = join(ROOT, "docs", "plugin-template", harness);
|
|
196
|
+
if (!existsSync(templateDir)) {
|
|
197
|
+
process.stderr.write(`[nexus-core init] Template not yet available for harness "${harness}".\n` +
|
|
198
|
+
` Expected path: ${templateDir}\n` +
|
|
199
|
+
` Templates are generated by the T5 phase. Use "nexus-core sync" to build dist/ first.\n`);
|
|
200
|
+
process.exit(1);
|
|
201
|
+
}
|
|
202
|
+
// Copy template directory to target using recursive copy
|
|
203
|
+
const { cpSync } = await import("node:fs");
|
|
204
|
+
cpSync(templateDir, target, { recursive: true });
|
|
205
|
+
console.log(`[nexus-core init] Initialized ${harness} plugin template → ${target}`);
|
|
206
|
+
}
|
|
207
|
+
// ---------------------------------------------------------------------------
|
|
208
|
+
// Frontmatter parsing (lightweight, no dependency on build-agents)
|
|
209
|
+
// ---------------------------------------------------------------------------
|
|
210
|
+
const FRONTMATTER_RE = /^---\n([\s\S]*?)\n---\n?([\s\S]*)$/;
|
|
211
|
+
function parseFrontmatterRaw(raw) {
|
|
212
|
+
const match = FRONTMATTER_RE.exec(raw);
|
|
213
|
+
if (!match)
|
|
214
|
+
return null;
|
|
215
|
+
try {
|
|
216
|
+
return parseYaml(match[1]);
|
|
217
|
+
}
|
|
218
|
+
catch {
|
|
219
|
+
return null;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
export function collectListEntries() {
|
|
223
|
+
const entries = [];
|
|
224
|
+
// Agents
|
|
225
|
+
const agentsDir = join(ASSETS_DIR, "agents");
|
|
226
|
+
if (existsSync(agentsDir)) {
|
|
227
|
+
for (const entry of readdirSync(agentsDir, { withFileTypes: true })) {
|
|
228
|
+
if (!entry.isDirectory())
|
|
229
|
+
continue;
|
|
230
|
+
const bodyPath = join(agentsDir, entry.name, "body.md");
|
|
231
|
+
if (!existsSync(bodyPath))
|
|
232
|
+
continue;
|
|
233
|
+
const fm = parseFrontmatterRaw(readFileSync(bodyPath, "utf-8"));
|
|
234
|
+
entries.push({
|
|
235
|
+
kind: "agent",
|
|
236
|
+
name: entry.name,
|
|
237
|
+
description: typeof fm?.description === "string" ? fm.description : "",
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
// Skills
|
|
242
|
+
const skillsDir = join(ASSETS_DIR, "skills");
|
|
243
|
+
if (existsSync(skillsDir)) {
|
|
244
|
+
for (const entry of readdirSync(skillsDir, { withFileTypes: true })) {
|
|
245
|
+
if (!entry.isDirectory())
|
|
246
|
+
continue;
|
|
247
|
+
const bodyPath = join(skillsDir, entry.name, "body.md");
|
|
248
|
+
if (!existsSync(bodyPath))
|
|
249
|
+
continue;
|
|
250
|
+
const fm = parseFrontmatterRaw(readFileSync(bodyPath, "utf-8"));
|
|
251
|
+
entries.push({
|
|
252
|
+
kind: "skill",
|
|
253
|
+
name: entry.name,
|
|
254
|
+
description: typeof fm?.description === "string" ? fm.description : "",
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
// Hooks
|
|
259
|
+
const hooksDir = join(ASSETS_DIR, "hooks");
|
|
260
|
+
if (existsSync(hooksDir)) {
|
|
261
|
+
for (const entry of readdirSync(hooksDir, { withFileTypes: true })) {
|
|
262
|
+
if (!entry.isDirectory())
|
|
263
|
+
continue;
|
|
264
|
+
const metaPath = join(hooksDir, entry.name, "meta.yml");
|
|
265
|
+
if (!existsSync(metaPath))
|
|
266
|
+
continue;
|
|
267
|
+
let description = "";
|
|
268
|
+
try {
|
|
269
|
+
const meta = parseYaml(readFileSync(metaPath, "utf-8"));
|
|
270
|
+
description = typeof meta?.description === "string" ? meta.description : "";
|
|
271
|
+
}
|
|
272
|
+
catch {
|
|
273
|
+
// ignore parse errors in list
|
|
274
|
+
}
|
|
275
|
+
entries.push({ kind: "hook", name: entry.name, description });
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
return entries;
|
|
279
|
+
}
|
|
280
|
+
export async function runList(argv) {
|
|
281
|
+
const flags = parseFlags(argv);
|
|
282
|
+
if (flags.help) {
|
|
283
|
+
console.log(HELP_LIST);
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
const entries = collectListEntries();
|
|
287
|
+
const agents = entries.filter((e) => e.kind === "agent");
|
|
288
|
+
const skills = entries.filter((e) => e.kind === "skill");
|
|
289
|
+
const hooks = entries.filter((e) => e.kind === "hook");
|
|
290
|
+
console.log(`Agents (${agents.length}):`);
|
|
291
|
+
for (const e of agents) {
|
|
292
|
+
console.log(` ${e.name.padEnd(20)} ${e.description}`);
|
|
293
|
+
}
|
|
294
|
+
console.log(`\nSkills (${skills.length}):`);
|
|
295
|
+
for (const e of skills) {
|
|
296
|
+
console.log(` ${e.name.padEnd(20)} ${e.description}`);
|
|
297
|
+
}
|
|
298
|
+
console.log(`\nHooks (${hooks.length}):`);
|
|
299
|
+
for (const e of hooks) {
|
|
300
|
+
console.log(` ${e.name.padEnd(20)} ${e.description}`);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
export function runValidateSync() {
|
|
304
|
+
const errors = [];
|
|
305
|
+
const warnings = [];
|
|
306
|
+
let checked = 0;
|
|
307
|
+
// Validate agents
|
|
308
|
+
const agentsDir = join(ASSETS_DIR, "agents");
|
|
309
|
+
if (existsSync(agentsDir)) {
|
|
310
|
+
for (const entry of readdirSync(agentsDir, { withFileTypes: true })) {
|
|
311
|
+
if (!entry.isDirectory())
|
|
312
|
+
continue;
|
|
313
|
+
const bodyPath = join(agentsDir, entry.name, "body.md");
|
|
314
|
+
if (!existsSync(bodyPath)) {
|
|
315
|
+
errors.push(`agents/${entry.name}: missing body.md`);
|
|
316
|
+
continue;
|
|
317
|
+
}
|
|
318
|
+
checked++;
|
|
319
|
+
const raw = readFileSync(bodyPath, "utf-8");
|
|
320
|
+
const fm = parseFrontmatterRaw(raw);
|
|
321
|
+
if (!fm) {
|
|
322
|
+
errors.push(`agents/${entry.name}/body.md: missing or malformed frontmatter`);
|
|
323
|
+
continue;
|
|
324
|
+
}
|
|
325
|
+
for (const field of ["id", "name", "category", "model_tier"]) {
|
|
326
|
+
if (!fm[field]) {
|
|
327
|
+
errors.push(`agents/${entry.name}/body.md: missing required field "${field}"`);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
// Validate skills
|
|
333
|
+
const skillsDir = join(ASSETS_DIR, "skills");
|
|
334
|
+
if (existsSync(skillsDir)) {
|
|
335
|
+
for (const entry of readdirSync(skillsDir, { withFileTypes: true })) {
|
|
336
|
+
if (!entry.isDirectory())
|
|
337
|
+
continue;
|
|
338
|
+
const bodyPath = join(skillsDir, entry.name, "body.md");
|
|
339
|
+
if (!existsSync(bodyPath)) {
|
|
340
|
+
errors.push(`skills/${entry.name}: missing body.md`);
|
|
341
|
+
continue;
|
|
342
|
+
}
|
|
343
|
+
checked++;
|
|
344
|
+
const raw = readFileSync(bodyPath, "utf-8");
|
|
345
|
+
const fm = parseFrontmatterRaw(raw);
|
|
346
|
+
if (!fm) {
|
|
347
|
+
errors.push(`skills/${entry.name}/body.md: missing or malformed frontmatter`);
|
|
348
|
+
continue;
|
|
349
|
+
}
|
|
350
|
+
for (const field of ["id", "name"]) {
|
|
351
|
+
if (!fm[field]) {
|
|
352
|
+
errors.push(`skills/${entry.name}/body.md: missing required field "${field}"`);
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
// Validate capability-matrix.yml
|
|
358
|
+
const capMatrixPath = join(ASSETS_DIR, "capability-matrix.yml");
|
|
359
|
+
if (!existsSync(capMatrixPath)) {
|
|
360
|
+
warnings.push(`capability-matrix.yml: not found at ${capMatrixPath}`);
|
|
361
|
+
}
|
|
362
|
+
else {
|
|
363
|
+
checked++;
|
|
364
|
+
try {
|
|
365
|
+
const parsed = parseYaml(readFileSync(capMatrixPath, "utf-8"));
|
|
366
|
+
if (!parsed?.capabilities) {
|
|
367
|
+
errors.push(`capability-matrix.yml: missing 'capabilities' top-level key`);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
catch (err) {
|
|
371
|
+
errors.push(`capability-matrix.yml: YAML parse error — ${String(err)}`);
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
// Validate tools/tool-name-map.yml
|
|
375
|
+
const toolMapPath = join(ASSETS_DIR, "tools", "tool-name-map.yml");
|
|
376
|
+
if (!existsSync(toolMapPath)) {
|
|
377
|
+
warnings.push(`tool-name-map.yml: not found at ${toolMapPath}`);
|
|
378
|
+
}
|
|
379
|
+
else {
|
|
380
|
+
checked++;
|
|
381
|
+
try {
|
|
382
|
+
const parsed = parseYaml(readFileSync(toolMapPath, "utf-8"));
|
|
383
|
+
if (!parsed?.tools && !parsed?.invocations) {
|
|
384
|
+
warnings.push(`tool-name-map.yml: neither 'tools' nor 'invocations' top-level key found`);
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
catch (err) {
|
|
388
|
+
errors.push(`tool-name-map.yml: YAML parse error — ${String(err)}`);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
return { ok: errors.length === 0, errors, warnings, checked };
|
|
392
|
+
}
|
|
393
|
+
export async function runValidate(argv) {
|
|
394
|
+
const flags = parseFlags(argv);
|
|
395
|
+
if (flags.help) {
|
|
396
|
+
console.log(HELP_VALIDATE);
|
|
397
|
+
return;
|
|
398
|
+
}
|
|
399
|
+
const result = runValidateSync();
|
|
400
|
+
console.log(`[nexus-core validate] Checked ${result.checked} assets`);
|
|
401
|
+
for (const w of result.warnings) {
|
|
402
|
+
process.stderr.write(` WARN ${w}\n`);
|
|
403
|
+
}
|
|
404
|
+
if (result.ok) {
|
|
405
|
+
console.log(` OK — no errors found`);
|
|
406
|
+
}
|
|
407
|
+
else {
|
|
408
|
+
for (const e of result.errors) {
|
|
409
|
+
process.stderr.write(` ERROR ${e}\n`);
|
|
410
|
+
}
|
|
411
|
+
process.stderr.write(`[nexus-core validate] ${result.errors.length} error(s) found\n`);
|
|
412
|
+
process.exit(1);
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
// ---------------------------------------------------------------------------
|
|
416
|
+
// Subcommand: mcp
|
|
417
|
+
// ---------------------------------------------------------------------------
|
|
418
|
+
export async function runMcp(argv) {
|
|
419
|
+
const flags = parseFlags(argv);
|
|
420
|
+
if (flags.help) {
|
|
421
|
+
console.log(HELP_MCP);
|
|
422
|
+
return;
|
|
423
|
+
}
|
|
424
|
+
// Forward to MCP server main()
|
|
425
|
+
const { main } = await import("../src/mcp/server.js");
|
|
426
|
+
await main();
|
|
427
|
+
}
|
|
428
|
+
// ---------------------------------------------------------------------------
|
|
429
|
+
// Main dispatcher
|
|
430
|
+
// ---------------------------------------------------------------------------
|
|
431
|
+
export async function main(argv) {
|
|
432
|
+
const cmd = argv[0];
|
|
433
|
+
const rest = argv.slice(1);
|
|
434
|
+
switch (cmd) {
|
|
435
|
+
case "sync":
|
|
436
|
+
return runSync(rest);
|
|
437
|
+
case "init":
|
|
438
|
+
return runInit(rest);
|
|
439
|
+
case "list":
|
|
440
|
+
return runList(rest);
|
|
441
|
+
case "validate":
|
|
442
|
+
return runValidate(rest);
|
|
443
|
+
case "mcp":
|
|
444
|
+
return runMcp(rest);
|
|
445
|
+
case "--help":
|
|
446
|
+
case "-h":
|
|
447
|
+
case undefined:
|
|
448
|
+
console.log(HELP_MAIN);
|
|
449
|
+
return;
|
|
450
|
+
default:
|
|
451
|
+
process.stderr.write(`[nexus-core] Unknown command: ${cmd}\n`);
|
|
452
|
+
process.stderr.write(`Run \`nexus-core --help\` for available commands.\n`);
|
|
453
|
+
process.exit(1);
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
// ---------------------------------------------------------------------------
|
|
457
|
+
// Direct execution
|
|
458
|
+
// ---------------------------------------------------------------------------
|
|
459
|
+
if (import.meta.url === `file://${process.argv[1]}` ||
|
|
460
|
+
process.argv[1]?.endsWith("cli.ts") ||
|
|
461
|
+
process.argv[1]?.endsWith("cli.js")) {
|
|
462
|
+
main(process.argv.slice(2)).catch((err) => {
|
|
463
|
+
process.stderr.write(`[nexus-core] FATAL: ${String(err)}\n`);
|
|
464
|
+
process.exit(1);
|
|
465
|
+
});
|
|
466
|
+
}
|
|
467
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../scripts/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenCode plugin adapter — mounts nexus hooks into OpenCode's plugin API.
|
|
3
|
+
*
|
|
4
|
+
* 결정 참조: plan.json Issue #1 (3-레이어 책임 분담),
|
|
5
|
+
* Issue #3 (OpenCode 2단 처리 — SubagentStart/Stop, agent-tracker),
|
|
6
|
+
* Issue #6 (additional_context 주입 우회 — SubagentStop output.output append)
|
|
7
|
+
*/
|
|
8
|
+
export interface OpenCodeHookManifestEntry {
|
|
9
|
+
name: string;
|
|
10
|
+
/** Nexus standard event names (PascalCase). */
|
|
11
|
+
events: string[];
|
|
12
|
+
/** Glob/regex pattern matched against tool_name or source. */
|
|
13
|
+
matcher: string;
|
|
14
|
+
/** Absolute path to the compiled handler .js shell wrapper. */
|
|
15
|
+
handlerPath: string;
|
|
16
|
+
priority: number;
|
|
17
|
+
/** Timeout in seconds; defaults to 30. */
|
|
18
|
+
timeout?: number;
|
|
19
|
+
}
|
|
20
|
+
export interface OpenCodeHookManifest {
|
|
21
|
+
hooks: OpenCodeHookManifestEntry[];
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Mount nexus hooks into OpenCode's plugin API.
|
|
25
|
+
*
|
|
26
|
+
* Returns an object whose keys are OpenCode plugin hook names. Each value is
|
|
27
|
+
* the async handler function OpenCode calls when the corresponding event fires.
|
|
28
|
+
*
|
|
29
|
+
* @param pluginCtx OpenCode plugin context (must expose `.directory: string`)
|
|
30
|
+
* @param manifest Hook manifest produced by build-hooks.ts
|
|
31
|
+
*/
|
|
32
|
+
export declare function mountHooks(pluginCtx: {
|
|
33
|
+
directory: string;
|
|
34
|
+
}, manifest: OpenCodeHookManifest): Record<string, (...args: unknown[]) => Promise<void>>;
|
|
35
|
+
//# sourceMappingURL=opencode-mount.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-mount.d.ts","sourceRoot":"","sources":["../../../src/hooks/opencode-mount.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,yBAAyB,EAAE,CAAC;CACpC;AAuBD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,EAChC,QAAQ,EAAE,oBAAoB,GAC7B,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAoKvD"}
|