@agntk/agent-harness 0.1.7 → 0.1.8
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 +25 -0
- package/defaults/agents/summarizer.md +4 -0
- package/dist/{auto-processor-QIRUOGEI.js → auto-processor-KLEP2NMV.js} +3 -3
- package/dist/{chunk-UXCHAS3Z.js → chunk-2GPXPU6U.js} +4 -4
- package/dist/{chunk-PMFAYKBD.js → chunk-36W2VC3L.js} +2 -2
- package/dist/{chunk-EC42HQQH.js → chunk-44R2VV33.js} +2 -2
- package/dist/{chunk-AN6Y4MDD.js → chunk-5QME3GHF.js} +6 -6
- package/dist/{chunk-QMOIVORH.js → chunk-6DIHJF2A.js} +3 -3
- package/dist/{chunk-IFVCU33I.js → chunk-CKLJTFMV.js} +6 -6
- package/dist/{chunk-5O5OGOOQ.js → chunk-CNOHSYI5.js} +2 -2
- package/dist/{chunk-D7AWV24Z.js → chunk-ESBLYOXU.js} +3 -3
- package/dist/{chunk-4TQQZILG.js → chunk-EXO47RET.js} +4 -2
- package/dist/chunk-EXO47RET.js.map +1 -0
- package/dist/{chunk-LBT43BZA.js → chunk-MASZOYMQ.js} +3 -3
- package/dist/{chunk-7MSZVP7A.js → chunk-NGF7UZY5.js} +4 -4
- package/dist/{chunk-Z4HEHWFM.js → chunk-O2YV52TH.js} +3 -3
- package/dist/{chunk-7GZ4D6V6.js → chunk-P7EFJ7CN.js} +2 -2
- package/dist/{chunk-LACZLSC4.js → chunk-QILHQNSM.js} +4 -4
- package/dist/{chunk-NVC2WY4K.js → chunk-WHRYPI2T.js} +2 -2
- package/dist/{chunk-5CO5JTYT.js → chunk-X47HHTNV.js} +2 -2
- package/dist/{chunk-2UVWCTAY.js → chunk-XPEDVA35.js} +2 -2
- package/dist/{chunk-QU566LZE.js → chunk-XTV7HH5M.js} +29 -5
- package/dist/chunk-XTV7HH5M.js.map +1 -0
- package/dist/cli/index.js +101 -101
- package/dist/{config-PYSS3QY6.js → config-KRGEWBPM.js} +3 -3
- package/dist/context-loader-GKLLIDVC.js +12 -0
- package/dist/{conversation-OKBO4L66.js → conversation-EU47O5MU.js} +6 -6
- package/dist/{delegate-YOGVA3HB.js → delegate-BPTJVYU3.js} +7 -7
- package/dist/{export-GYLWROMB.js → export-OPR3SVVJ.js} +3 -3
- package/dist/graph-VW5GH2FZ.js +13 -0
- package/dist/{harness-NU2UU6J4.js → harness-FZR52COJ.js} +8 -8
- package/dist/{indexer-L5UC6J2V.js → indexer-SEALD6HO.js} +4 -4
- package/dist/{instinct-learner-EECG4L24.js → instinct-learner-MNROY6L4.js} +5 -5
- package/dist/{intake-SVJKFHTL.js → intake-BU2WHPWF.js} +5 -5
- package/dist/{intelligence-BANUEAI4.js → intelligence-TUNH5ZMA.js} +10 -10
- package/dist/{journal-O4SEANIC.js → journal-E2DJGCNS.js} +5 -5
- package/dist/{loader-27PLDCOJ.js → loader-NVVXVFBH.js} +3 -3
- package/dist/{mcp-installer-X2TJ2S2G.js → mcp-installer-4LOYB3PP.js} +3 -3
- package/dist/{primitive-registry-ZMGGXSO5.js → primitive-registry-KQOL7LNU.js} +3 -3
- package/dist/{rule-engine-DM26S77N.js → rule-engine-EPFMNBEG.js} +3 -3
- package/dist/{scaffold-LA54KYKJ.js → scaffold-FBUNVFYQ.js} +4 -4
- package/dist/{scheduler-MFBVGFZQ.js → scheduler-UCFJU4BF.js} +11 -11
- package/dist/{search-6Y6NCOLQ.js → search-7RAQA6UV.js} +3 -3
- package/dist/{semantic-search-FN6FZIXI.js → semantic-search-OSRMCW2H.js} +3 -3
- package/dist/{serve-TQLN4OTP.js → serve-2QUR74CS.js} +9 -9
- package/dist/{telemetry-RS2JZUZP.js → telemetry-R34GXFVW.js} +4 -4
- package/dist/{tool-executor-6I5PHQDY.js → tool-executor-URY2ZB6G.js} +5 -5
- package/dist/{tools-NDFJNVHK.js → tools-2HWMJ5CJ.js} +4 -4
- package/dist/{types-NPJZAI72.js → types-KSGYUZZO.js} +2 -2
- package/dist/{universal-installer-LCAZHFZR.js → universal-installer-ZNA3HA2S.js} +6 -6
- package/dist/validator-JNIHKGWA.js +21 -0
- package/dist/{verification-gate-2O6DF2B7.js → verification-gate-FFKVJN5N.js} +3 -3
- package/dist/{watcher-GZWQSWZ6.js → watcher-L5SJGTZ2.js} +5 -5
- package/dist/{web-server-SJ6NS5IX.js → web-server-N3YIT47Z.js} +8 -8
- package/package.json +1 -1
- package/dist/chunk-4TQQZILG.js.map +0 -1
- package/dist/chunk-QU566LZE.js.map +0 -1
- package/dist/context-loader-RSXXFW5R.js +0 -12
- package/dist/graph-LEEO37L3.js +0 -13
- package/dist/validator-LM7RZWSH.js +0 -21
- /package/dist/{auto-processor-QIRUOGEI.js.map → auto-processor-KLEP2NMV.js.map} +0 -0
- /package/dist/{chunk-UXCHAS3Z.js.map → chunk-2GPXPU6U.js.map} +0 -0
- /package/dist/{chunk-PMFAYKBD.js.map → chunk-36W2VC3L.js.map} +0 -0
- /package/dist/{chunk-EC42HQQH.js.map → chunk-44R2VV33.js.map} +0 -0
- /package/dist/{chunk-AN6Y4MDD.js.map → chunk-5QME3GHF.js.map} +0 -0
- /package/dist/{chunk-QMOIVORH.js.map → chunk-6DIHJF2A.js.map} +0 -0
- /package/dist/{chunk-IFVCU33I.js.map → chunk-CKLJTFMV.js.map} +0 -0
- /package/dist/{chunk-5O5OGOOQ.js.map → chunk-CNOHSYI5.js.map} +0 -0
- /package/dist/{chunk-D7AWV24Z.js.map → chunk-ESBLYOXU.js.map} +0 -0
- /package/dist/{chunk-LBT43BZA.js.map → chunk-MASZOYMQ.js.map} +0 -0
- /package/dist/{chunk-7MSZVP7A.js.map → chunk-NGF7UZY5.js.map} +0 -0
- /package/dist/{chunk-Z4HEHWFM.js.map → chunk-O2YV52TH.js.map} +0 -0
- /package/dist/{chunk-7GZ4D6V6.js.map → chunk-P7EFJ7CN.js.map} +0 -0
- /package/dist/{chunk-LACZLSC4.js.map → chunk-QILHQNSM.js.map} +0 -0
- /package/dist/{chunk-NVC2WY4K.js.map → chunk-WHRYPI2T.js.map} +0 -0
- /package/dist/{chunk-5CO5JTYT.js.map → chunk-X47HHTNV.js.map} +0 -0
- /package/dist/{chunk-2UVWCTAY.js.map → chunk-XPEDVA35.js.map} +0 -0
- /package/dist/{config-PYSS3QY6.js.map → config-KRGEWBPM.js.map} +0 -0
- /package/dist/{context-loader-RSXXFW5R.js.map → context-loader-GKLLIDVC.js.map} +0 -0
- /package/dist/{conversation-OKBO4L66.js.map → conversation-EU47O5MU.js.map} +0 -0
- /package/dist/{delegate-YOGVA3HB.js.map → delegate-BPTJVYU3.js.map} +0 -0
- /package/dist/{export-GYLWROMB.js.map → export-OPR3SVVJ.js.map} +0 -0
- /package/dist/{graph-LEEO37L3.js.map → graph-VW5GH2FZ.js.map} +0 -0
- /package/dist/{harness-NU2UU6J4.js.map → harness-FZR52COJ.js.map} +0 -0
- /package/dist/{indexer-L5UC6J2V.js.map → indexer-SEALD6HO.js.map} +0 -0
- /package/dist/{instinct-learner-EECG4L24.js.map → instinct-learner-MNROY6L4.js.map} +0 -0
- /package/dist/{intake-SVJKFHTL.js.map → intake-BU2WHPWF.js.map} +0 -0
- /package/dist/{intelligence-BANUEAI4.js.map → intelligence-TUNH5ZMA.js.map} +0 -0
- /package/dist/{journal-O4SEANIC.js.map → journal-E2DJGCNS.js.map} +0 -0
- /package/dist/{loader-27PLDCOJ.js.map → loader-NVVXVFBH.js.map} +0 -0
- /package/dist/{mcp-installer-X2TJ2S2G.js.map → mcp-installer-4LOYB3PP.js.map} +0 -0
- /package/dist/{primitive-registry-ZMGGXSO5.js.map → primitive-registry-KQOL7LNU.js.map} +0 -0
- /package/dist/{rule-engine-DM26S77N.js.map → rule-engine-EPFMNBEG.js.map} +0 -0
- /package/dist/{scaffold-LA54KYKJ.js.map → scaffold-FBUNVFYQ.js.map} +0 -0
- /package/dist/{scheduler-MFBVGFZQ.js.map → scheduler-UCFJU4BF.js.map} +0 -0
- /package/dist/{search-6Y6NCOLQ.js.map → search-7RAQA6UV.js.map} +0 -0
- /package/dist/{semantic-search-FN6FZIXI.js.map → semantic-search-OSRMCW2H.js.map} +0 -0
- /package/dist/{serve-TQLN4OTP.js.map → serve-2QUR74CS.js.map} +0 -0
- /package/dist/{telemetry-RS2JZUZP.js.map → telemetry-R34GXFVW.js.map} +0 -0
- /package/dist/{tool-executor-6I5PHQDY.js.map → tool-executor-URY2ZB6G.js.map} +0 -0
- /package/dist/{tools-NDFJNVHK.js.map → tools-2HWMJ5CJ.js.map} +0 -0
- /package/dist/{types-NPJZAI72.js.map → types-KSGYUZZO.js.map} +0 -0
- /package/dist/{universal-installer-LCAZHFZR.js.map → universal-installer-ZNA3HA2S.js.map} +0 -0
- /package/dist/{validator-LM7RZWSH.js.map → validator-JNIHKGWA.js.map} +0 -0
- /package/dist/{verification-gate-2O6DF2B7.js.map → verification-gate-FFKVJN5N.js.map} +0 -0
- /package/dist/{watcher-GZWQSWZ6.js.map → watcher-L5SJGTZ2.js.map} +0 -0
- /package/dist/{web-server-SJ6NS5IX.js.map → web-server-N3YIT47Z.js.map} +0 -0
package/dist/cli/index.js
CHANGED
|
@@ -100,7 +100,7 @@ function askQuestion(rl, question, defaultValue) {
|
|
|
100
100
|
});
|
|
101
101
|
}
|
|
102
102
|
program.command("init [name]").description("Scaffold a new agent harness directory (interactive if no name given)").option("-d, --dir <path>", "Parent directory", ".").option("-t, --template <name>", "Config template (base, claude-opus, gpt4, local)", "base").option("-p, --purpose <description>", "Agent purpose description").option("-i, --interactive", "Force interactive mode", false).option("--generate", "Generate CORE.md using LLM (requires API key)", false).option("--no-discover-mcp", "Skip MCP server auto-discovery").option("--no-discover-env", "Skip environment variable scanning").option("--no-discover-project", "Skip project context detection").option("-y, --yes", "Accept defaults for all prompts (skip MCP confirmation)", false).action(async (name, opts) => {
|
|
103
|
-
const { scaffoldHarness, generateCoreMd, listTemplates } = await import("../scaffold-
|
|
103
|
+
const { scaffoldHarness, generateCoreMd, listTemplates } = await import("../scaffold-FBUNVFYQ.js");
|
|
104
104
|
const isInteractive = !name || opts.interactive;
|
|
105
105
|
let agentName = name ?? "";
|
|
106
106
|
let purpose = opts.purpose ?? "";
|
|
@@ -249,7 +249,7 @@ The agent gets better the more you use it. See README.md inside`);
|
|
|
249
249
|
}
|
|
250
250
|
});
|
|
251
251
|
program.command("run <prompt>").description("Run a prompt through the agent").option("-d, --dir <path>", "Harness directory", ".").option("-s, --stream", "Stream output", false).option("-m, --model <model>", "Model override (or alias: gemma, qwen, glm, claude)").option("-p, --provider <provider>", "Provider override (openrouter, anthropic, openai)").option("-k, --api-key <key>", "API key override (default: from environment)").action(async (prompt, opts) => {
|
|
252
|
-
const { createHarness } = await import("../harness-
|
|
252
|
+
const { createHarness } = await import("../harness-FZR52COJ.js");
|
|
253
253
|
const dir = resolve(opts.dir);
|
|
254
254
|
loadEnvFromDir(dir);
|
|
255
255
|
requireHarness(dir);
|
|
@@ -290,9 +290,9 @@ program.command("run <prompt>").description("Run a prompt through the agent").op
|
|
|
290
290
|
}
|
|
291
291
|
});
|
|
292
292
|
program.command("chat").description("Start an interactive chat session with conversation memory").option("-d, --dir <path>", "Harness directory", ".").option("-m, --model <model>", "Model override").option("-p, --provider <provider>", "Provider override (openrouter, anthropic, openai)").option("-k, --api-key <key>", "API key override (default: from environment)").option("--fresh", "Start fresh (clear conversation history)", false).action(async (opts) => {
|
|
293
|
-
const { Conversation } = await import("../conversation-
|
|
294
|
-
const { loadConfig } = await import("../config-
|
|
295
|
-
const { buildToolSet } = await import("../tool-executor-
|
|
293
|
+
const { Conversation } = await import("../conversation-EU47O5MU.js");
|
|
294
|
+
const { loadConfig } = await import("../config-KRGEWBPM.js");
|
|
295
|
+
const { buildToolSet } = await import("../tool-executor-URY2ZB6G.js");
|
|
296
296
|
const { createMcpManager } = await import("../mcp-JSIUJJZV.js");
|
|
297
297
|
const readline = await import("readline");
|
|
298
298
|
const dir = resolve(opts.dir);
|
|
@@ -391,8 +391,8 @@ ${config.agent.name} is ready. ${history.length > 0 ? `(${history.length} messag
|
|
|
391
391
|
ask();
|
|
392
392
|
});
|
|
393
393
|
program.command("info").description("Show harness info and loaded context").option("-d, --dir <path>", "Harness directory", ".").option("--json", "Output as JSON").action(async (opts) => {
|
|
394
|
-
const { loadConfig } = await import("../config-
|
|
395
|
-
const { buildSystemPrompt } = await import("../context-loader-
|
|
394
|
+
const { loadConfig } = await import("../config-KRGEWBPM.js");
|
|
395
|
+
const { buildSystemPrompt } = await import("../context-loader-GKLLIDVC.js");
|
|
396
396
|
const { loadState } = await import("../state-25IQEC5C.js");
|
|
397
397
|
const dir = resolve(opts.dir);
|
|
398
398
|
requireHarness(dir);
|
|
@@ -451,8 +451,8 @@ MCP servers: ${mcpEntries.length} configured (${enabledCount} enabled)`);
|
|
|
451
451
|
}
|
|
452
452
|
});
|
|
453
453
|
program.command("prompt").description("Show the full assembled system prompt").option("-d, --dir <path>", "Harness directory", ".").option("--json", "Output metadata as JSON (includes prompt, budget, warnings)").action(async (opts) => {
|
|
454
|
-
const { loadConfig } = await import("../config-
|
|
455
|
-
const { buildSystemPrompt } = await import("../context-loader-
|
|
454
|
+
const { loadConfig } = await import("../config-KRGEWBPM.js");
|
|
455
|
+
const { buildSystemPrompt } = await import("../context-loader-GKLLIDVC.js");
|
|
456
456
|
const dir = resolve(opts.dir);
|
|
457
457
|
requireHarness(dir);
|
|
458
458
|
try {
|
|
@@ -474,12 +474,12 @@ program.command("prompt").description("Show the full assembled system prompt").o
|
|
|
474
474
|
}
|
|
475
475
|
});
|
|
476
476
|
program.command("dev").description("Start dev mode \u2014 watches for file changes, rebuilds indexes, runs scheduled workflows, serves dashboard").option("-d, --dir <path>", "Harness directory", ".").option("-k, --api-key <key>", "API key override (default: from environment)").option("--no-schedule", "Disable workflow scheduler").option("--no-auto-process", "Disable auto-processing of primitives on save").option("--no-web", "Disable web dashboard server").option("-p, --port <number>", "Web dashboard port", "3000").action(async (opts) => {
|
|
477
|
-
const { loadConfig } = await import("../config-
|
|
478
|
-
const { rebuildAllIndexes } = await import("../indexer-
|
|
479
|
-
const { createWatcher } = await import("../watcher-
|
|
480
|
-
const { Scheduler } = await import("../scheduler-
|
|
481
|
-
const { autoProcessAll } = await import("../auto-processor-
|
|
482
|
-
const { generateSystemMd } = await import("../scaffold-
|
|
477
|
+
const { loadConfig } = await import("../config-KRGEWBPM.js");
|
|
478
|
+
const { rebuildAllIndexes } = await import("../indexer-SEALD6HO.js");
|
|
479
|
+
const { createWatcher } = await import("../watcher-L5SJGTZ2.js");
|
|
480
|
+
const { Scheduler } = await import("../scheduler-UCFJU4BF.js");
|
|
481
|
+
const { autoProcessAll } = await import("../auto-processor-KLEP2NMV.js");
|
|
482
|
+
const { generateSystemMd } = await import("../scaffold-FBUNVFYQ.js");
|
|
483
483
|
const { writeFileSync } = await import("fs");
|
|
484
484
|
const dir = resolve(opts.dir);
|
|
485
485
|
loadEnvFromDir(dir);
|
|
@@ -547,7 +547,7 @@ program.command("dev").description("Start dev mode \u2014 watches for file chang
|
|
|
547
547
|
}
|
|
548
548
|
let webServer = null;
|
|
549
549
|
if (opts.web) {
|
|
550
|
-
const { startWebServer } = await import("../web-server-
|
|
550
|
+
const { startWebServer } = await import("../web-server-N3YIT47Z.js");
|
|
551
551
|
const port = parseInt(opts.port, 10) || 3e3;
|
|
552
552
|
webServer = await startWebServer({
|
|
553
553
|
harnessDir: dir,
|
|
@@ -608,8 +608,8 @@ program.command("dev").description("Start dev mode \u2014 watches for file chang
|
|
|
608
608
|
process.on("SIGTERM", cleanup);
|
|
609
609
|
});
|
|
610
610
|
program.command("index").description("Rebuild all index files").option("-d, --dir <path>", "Harness directory", ".").action(async (opts) => {
|
|
611
|
-
const { rebuildAllIndexes } = await import("../indexer-
|
|
612
|
-
const { loadConfig } = await import("../config-
|
|
611
|
+
const { rebuildAllIndexes } = await import("../indexer-SEALD6HO.js");
|
|
612
|
+
const { loadConfig } = await import("../config-KRGEWBPM.js");
|
|
613
613
|
const dir = resolve(opts.dir);
|
|
614
614
|
let extDirs = [];
|
|
615
615
|
try {
|
|
@@ -622,7 +622,7 @@ program.command("index").description("Rebuild all index files").option("-d, --di
|
|
|
622
622
|
console.log(`\u2713 All indexes rebuilt in ${dir}`);
|
|
623
623
|
});
|
|
624
624
|
program.command("process").description("Auto-process all primitives: fill missing frontmatter and generate L0/L1 summaries").option("-d, --dir <path>", "Harness directory", ".").option("--no-frontmatter", "Skip frontmatter generation").option("--no-summaries", "Skip L0/L1 summary generation").action(async (opts) => {
|
|
625
|
-
const { autoProcessAll } = await import("../auto-processor-
|
|
625
|
+
const { autoProcessAll } = await import("../auto-processor-KLEP2NMV.js");
|
|
626
626
|
const dir = resolve(opts.dir);
|
|
627
627
|
requireHarness(dir);
|
|
628
628
|
const results = autoProcessAll(dir, {
|
|
@@ -648,8 +648,8 @@ Processed ${modified} file(s)${errors > 0 ? `, ${errors} error(s)` : ""}`);
|
|
|
648
648
|
}
|
|
649
649
|
});
|
|
650
650
|
program.command("system").description("Regenerate SYSTEM.md from current directory structure").option("-d, --dir <path>", "Harness directory", ".").action(async (opts) => {
|
|
651
|
-
const { loadConfig } = await import("../config-
|
|
652
|
-
const { generateSystemMd } = await import("../scaffold-
|
|
651
|
+
const { loadConfig } = await import("../config-KRGEWBPM.js");
|
|
652
|
+
const { generateSystemMd } = await import("../scaffold-FBUNVFYQ.js");
|
|
653
653
|
const { writeFileSync } = await import("fs");
|
|
654
654
|
const dir = resolve(opts.dir);
|
|
655
655
|
requireHarness(dir);
|
|
@@ -664,7 +664,7 @@ program.command("journal").description("Synthesize sessions into journal entries
|
|
|
664
664
|
loadEnvFromDir(dir);
|
|
665
665
|
requireHarness(dir);
|
|
666
666
|
if (opts.pending) {
|
|
667
|
-
const { listUnjournaled } = await import("../journal-
|
|
667
|
+
const { listUnjournaled } = await import("../journal-E2DJGCNS.js");
|
|
668
668
|
const dates = listUnjournaled(dir);
|
|
669
669
|
if (dates.length === 0) {
|
|
670
670
|
console.log("All sessions have been journaled.");
|
|
@@ -680,7 +680,7 @@ Run "harness journal --all" to synthesize them.
|
|
|
680
680
|
return;
|
|
681
681
|
}
|
|
682
682
|
if (opts.from || opts.all) {
|
|
683
|
-
const { synthesizeJournalRange } = await import("../journal-
|
|
683
|
+
const { synthesizeJournalRange } = await import("../journal-E2DJGCNS.js");
|
|
684
684
|
try {
|
|
685
685
|
const label = opts.all ? "all dates" : `${opts.from}${opts.to ? ` to ${opts.to}` : " to today"}`;
|
|
686
686
|
console.log(`Synthesizing journals for ${label}${opts.force ? " (force)" : ""}...`);
|
|
@@ -704,7 +704,7 @@ Run "harness journal --all" to synthesize them.
|
|
|
704
704
|
}
|
|
705
705
|
console.log();
|
|
706
706
|
if (opts.autoHarvest) {
|
|
707
|
-
const { harvestInstincts } = await import("../instinct-learner-
|
|
707
|
+
const { harvestInstincts } = await import("../instinct-learner-MNROY6L4.js");
|
|
708
708
|
const dates = entries.map((e) => e.date).sort();
|
|
709
709
|
const harvest = harvestInstincts(dir, {
|
|
710
710
|
from: dates[0],
|
|
@@ -723,7 +723,7 @@ Run "harness journal --all" to synthesize them.
|
|
|
723
723
|
}
|
|
724
724
|
return;
|
|
725
725
|
}
|
|
726
|
-
const { synthesizeJournal } = await import("../journal-
|
|
726
|
+
const { synthesizeJournal } = await import("../journal-E2DJGCNS.js");
|
|
727
727
|
try {
|
|
728
728
|
console.log(`Synthesizing journal...`);
|
|
729
729
|
const entry = await synthesizeJournal(dir, opts.date);
|
|
@@ -735,7 +735,7 @@ Run "harness journal --all" to synthesize them.
|
|
|
735
735
|
console.log(` Instinct candidates:`);
|
|
736
736
|
entry.instinct_candidates.forEach((c) => console.log(` - ${c}`));
|
|
737
737
|
if (opts.autoHarvest) {
|
|
738
|
-
const { harvestInstincts } = await import("../instinct-learner-
|
|
738
|
+
const { harvestInstincts } = await import("../instinct-learner-MNROY6L4.js");
|
|
739
739
|
const harvest = harvestInstincts(dir, {
|
|
740
740
|
from: entry.date,
|
|
741
741
|
to: entry.date,
|
|
@@ -755,7 +755,7 @@ ${entry.synthesis}`);
|
|
|
755
755
|
}
|
|
756
756
|
});
|
|
757
757
|
program.command("compress").description("Compress daily journals into weekly roll-up summaries").option("-d, --dir <path>", "Harness directory", ".").option("--force", "Overwrite existing weekly summaries", false).action(async (opts) => {
|
|
758
|
-
const { compressJournals } = await import("../journal-
|
|
758
|
+
const { compressJournals } = await import("../journal-E2DJGCNS.js");
|
|
759
759
|
const dir = resolve(opts.dir);
|
|
760
760
|
requireHarness(dir);
|
|
761
761
|
const results = compressJournals(dir, { force: opts.force });
|
|
@@ -775,7 +775,7 @@ program.command("compress").description("Compress daily journals into weekly rol
|
|
|
775
775
|
console.log();
|
|
776
776
|
});
|
|
777
777
|
program.command("learn").description("Analyze sessions and propose new instincts").option("-d, --dir <path>", "Harness directory", ".").option("--install", "Auto-install proposed instincts", false).action(async (opts) => {
|
|
778
|
-
const { learnFromSessions } = await import("../instinct-learner-
|
|
778
|
+
const { learnFromSessions } = await import("../instinct-learner-MNROY6L4.js");
|
|
779
779
|
const dir = resolve(opts.dir);
|
|
780
780
|
requireHarness(dir);
|
|
781
781
|
try {
|
|
@@ -801,7 +801,7 @@ ${result.candidates.length} instinct candidate(s):
|
|
|
801
801
|
}
|
|
802
802
|
});
|
|
803
803
|
program.command("harvest").description("Extract instinct candidates from journal entries and optionally install them").option("-d, --dir <path>", "Harness directory", ".").option("--from <date>", "Start date (YYYY-MM-DD)").option("--to <date>", "End date (YYYY-MM-DD)").option("--install", "Auto-install candidates as draft instincts", false).action(async (opts) => {
|
|
804
|
-
const { harvestInstincts } = await import("../instinct-learner-
|
|
804
|
+
const { harvestInstincts } = await import("../instinct-learner-MNROY6L4.js");
|
|
805
805
|
const dir = resolve(opts.dir);
|
|
806
806
|
requireHarness(dir);
|
|
807
807
|
const result = harvestInstincts(dir, {
|
|
@@ -831,7 +831,7 @@ Scanned ${result.journalsScanned} journal(s)`);
|
|
|
831
831
|
}
|
|
832
832
|
});
|
|
833
833
|
program.command("intake").description("Process all pending files in the intake/ directory").option("-d, --dir <path>", "Harness directory", ".").action(async (opts) => {
|
|
834
|
-
const { processIntake } = await import("../intake-
|
|
834
|
+
const { processIntake } = await import("../intake-BU2WHPWF.js");
|
|
835
835
|
const dir = resolve(opts.dir);
|
|
836
836
|
const results = processIntake(dir);
|
|
837
837
|
if (results.length === 0) {
|
|
@@ -847,7 +847,7 @@ program.command("intake").description("Process all pending files in the intake/
|
|
|
847
847
|
}
|
|
848
848
|
});
|
|
849
849
|
program.command("validate").description("Validate harness structure and configuration").option("-d, --dir <path>", "Harness directory", ".").option("--json", "Output as JSON").action(async (opts) => {
|
|
850
|
-
const { validateHarness } = await import("../validator-
|
|
850
|
+
const { validateHarness } = await import("../validator-JNIHKGWA.js");
|
|
851
851
|
const dir = resolve(opts.dir);
|
|
852
852
|
const result = validateHarness(dir);
|
|
853
853
|
if (opts.json) {
|
|
@@ -884,7 +884,7 @@ Summary: ${result.ok.length} passed, ${result.warnings.length} warnings, ${resul
|
|
|
884
884
|
}
|
|
885
885
|
});
|
|
886
886
|
program.command("doctor").description("Validate harness and auto-fix all fixable issues in one pass").option("-d, --dir <path>", "Harness directory", ".").action(async (opts) => {
|
|
887
|
-
const { doctorHarness } = await import("../validator-
|
|
887
|
+
const { doctorHarness } = await import("../validator-JNIHKGWA.js");
|
|
888
888
|
const dir = resolve(opts.dir);
|
|
889
889
|
console.log(`
|
|
890
890
|
Running doctor on: ${dir}
|
|
@@ -924,7 +924,7 @@ Summary: ${result.ok.length} ok, ${result.warnings.length} warnings, ${result.er
|
|
|
924
924
|
}
|
|
925
925
|
});
|
|
926
926
|
program.command("fix <file>").description("Auto-fix common issues in a capability markdown file (missing id, status, L0/L1)").action(async (file) => {
|
|
927
|
-
const { fixCapability } = await import("../intake-
|
|
927
|
+
const { fixCapability } = await import("../intake-BU2WHPWF.js");
|
|
928
928
|
const filePath = resolve(file);
|
|
929
929
|
const result = fixCapability(filePath);
|
|
930
930
|
if (result.fixes_applied.length > 0) {
|
|
@@ -950,7 +950,7 @@ Remaining errors (manual fix required):`);
|
|
|
950
950
|
}
|
|
951
951
|
});
|
|
952
952
|
program.command("cleanup").description("Archive sessions and journals older than retention period").option("-d, --dir <path>", "Harness directory", ".").option("--dry-run", "Show what would be archived without acting", false).option("--delete", "Permanently delete instead of archiving", false).action(async (opts) => {
|
|
953
|
-
const { loadConfig } = await import("../config-
|
|
953
|
+
const { loadConfig } = await import("../config-KRGEWBPM.js");
|
|
954
954
|
const dir = resolve(opts.dir);
|
|
955
955
|
requireHarness(dir);
|
|
956
956
|
const config = loadConfig(dir);
|
|
@@ -998,8 +998,8 @@ Archived ${result.sessionsArchived} session(s), ${result.journalsArchived} journ
|
|
|
998
998
|
});
|
|
999
999
|
program.command("status").description("Show harness status: primitives, sessions, config, state").option("-d, --dir <path>", "Harness directory", ".").action(async (opts) => {
|
|
1000
1000
|
const { existsSync: existsSync2, readdirSync } = await import("fs");
|
|
1001
|
-
const { validateHarness } = await import("../validator-
|
|
1002
|
-
const { loadConfig } = await import("../config-
|
|
1001
|
+
const { validateHarness } = await import("../validator-JNIHKGWA.js");
|
|
1002
|
+
const { loadConfig } = await import("../config-KRGEWBPM.js");
|
|
1003
1003
|
const { loadState } = await import("../state-25IQEC5C.js");
|
|
1004
1004
|
const { listSessions } = await import("../sessions-G6SZZXWS.js");
|
|
1005
1005
|
const dir = resolve(opts.dir);
|
|
@@ -1117,7 +1117,7 @@ program.command("scratch").description("Write a note to scratch.md (working memo
|
|
|
1117
1117
|
});
|
|
1118
1118
|
var workflowCmd = program.command("workflow").description("Manage workflows");
|
|
1119
1119
|
workflowCmd.command("list").description("List all workflows and their schedules").option("-d, --dir <path>", "Harness directory", ".").action(async (opts) => {
|
|
1120
|
-
const { loadDirectory } = await import("../loader-
|
|
1120
|
+
const { loadDirectory } = await import("../loader-NVVXVFBH.js");
|
|
1121
1121
|
const dir = resolve(opts.dir);
|
|
1122
1122
|
requireHarness(dir);
|
|
1123
1123
|
const workflowDir = join(dir, "workflows");
|
|
@@ -1144,7 +1144,7 @@ ${docs.length} workflow(s):
|
|
|
1144
1144
|
console.log();
|
|
1145
1145
|
});
|
|
1146
1146
|
workflowCmd.command("run <id>").description("Execute a workflow by ID (bypasses quiet hours)").option("-d, --dir <path>", "Harness directory", ".").action(async (workflowId, opts) => {
|
|
1147
|
-
const { Scheduler } = await import("../scheduler-
|
|
1147
|
+
const { Scheduler } = await import("../scheduler-UCFJU4BF.js");
|
|
1148
1148
|
const dir = resolve(opts.dir);
|
|
1149
1149
|
loadEnvFromDir(dir);
|
|
1150
1150
|
requireHarness(dir);
|
|
@@ -1173,8 +1173,8 @@ Executing workflow: ${workflowId}...`);
|
|
|
1173
1173
|
}
|
|
1174
1174
|
});
|
|
1175
1175
|
program.command("search [query]").description("Search primitives by text query and/or filters").option("-d, --dir <path>", "Harness directory", ".").option("-t, --tag <tag>", "Filter by tag").option("--type <type>", "Filter by primitive type (e.g., rules, skills)").option("--status <status>", "Filter by status (active, draft, archived, deprecated)").option("--author <author>", "Filter by author (human, agent, infrastructure)").option("--json", "Output as JSON").action(async (query, opts) => {
|
|
1176
|
-
const { searchPrimitives } = await import("../search-
|
|
1177
|
-
const { loadConfig } = await import("../config-
|
|
1176
|
+
const { searchPrimitives } = await import("../search-7RAQA6UV.js");
|
|
1177
|
+
const { loadConfig } = await import("../config-KRGEWBPM.js");
|
|
1178
1178
|
const dir = resolve(opts.dir);
|
|
1179
1179
|
requireHarness(dir);
|
|
1180
1180
|
let config;
|
|
@@ -1221,7 +1221,7 @@ ${results.length} result(s):
|
|
|
1221
1221
|
});
|
|
1222
1222
|
var configCmd = program.command("config").description("Show or inspect configuration");
|
|
1223
1223
|
configCmd.command("show").description("Show full resolved configuration (merged defaults + file + env)").option("-d, --dir <path>", "Harness directory", ".").action(async (opts) => {
|
|
1224
|
-
const { loadConfig } = await import("../config-
|
|
1224
|
+
const { loadConfig } = await import("../config-KRGEWBPM.js");
|
|
1225
1225
|
const YAML = await import("yaml");
|
|
1226
1226
|
const dir = resolve(opts.dir);
|
|
1227
1227
|
requireHarness(dir);
|
|
@@ -1238,7 +1238,7 @@ configCmd.command("show").description("Show full resolved configuration (merged
|
|
|
1238
1238
|
}
|
|
1239
1239
|
});
|
|
1240
1240
|
configCmd.command("get <key>").description("Get a specific config value (dot-notation, e.g. model.id)").option("-d, --dir <path>", "Harness directory", ".").action(async (key, opts) => {
|
|
1241
|
-
const { loadConfig } = await import("../config-
|
|
1241
|
+
const { loadConfig } = await import("../config-KRGEWBPM.js");
|
|
1242
1242
|
const dir = resolve(opts.dir);
|
|
1243
1243
|
requireHarness(dir);
|
|
1244
1244
|
try {
|
|
@@ -1288,7 +1288,7 @@ configCmd.command("set <key> <value>").description("Set a config value (writes t
|
|
|
1288
1288
|
const parts = key.split(".");
|
|
1289
1289
|
doc.setIn(parts, parsed);
|
|
1290
1290
|
writeFileSync(configPath, doc.toString(), "utf-8");
|
|
1291
|
-
const { loadConfig } = await import("../config-
|
|
1291
|
+
const { loadConfig } = await import("../config-KRGEWBPM.js");
|
|
1292
1292
|
try {
|
|
1293
1293
|
loadConfig(dir);
|
|
1294
1294
|
console.log(`\u2713 ${key} = ${String(parsed)}`);
|
|
@@ -1395,7 +1395,7 @@ function formatDuration(ms) {
|
|
|
1395
1395
|
}
|
|
1396
1396
|
var toolsCmd = program.command("tools").description("List and inspect tool definitions");
|
|
1397
1397
|
toolsCmd.command("list").description("List all defined tools with auth status").option("-d, --dir <path>", "Harness directory", ".").action(async (opts) => {
|
|
1398
|
-
const { listToolSummaries } = await import("../tools-
|
|
1398
|
+
const { listToolSummaries } = await import("../tools-2HWMJ5CJ.js");
|
|
1399
1399
|
const dir = resolve(opts.dir);
|
|
1400
1400
|
requireHarness(dir);
|
|
1401
1401
|
const tools = listToolSummaries(dir);
|
|
@@ -1416,7 +1416,7 @@ ${tools.length} tool(s):
|
|
|
1416
1416
|
console.log();
|
|
1417
1417
|
});
|
|
1418
1418
|
toolsCmd.command("show <id>").description("Show detailed info for a specific tool").option("-d, --dir <path>", "Harness directory", ".").action(async (toolId, opts) => {
|
|
1419
|
-
const { getToolById } = await import("../tools-
|
|
1419
|
+
const { getToolById } = await import("../tools-2HWMJ5CJ.js");
|
|
1420
1420
|
const dir = resolve(opts.dir);
|
|
1421
1421
|
requireHarness(dir);
|
|
1422
1422
|
const tool = getToolById(dir, toolId);
|
|
@@ -1460,7 +1460,7 @@ Tool: ${tool.id}`);
|
|
|
1460
1460
|
console.log();
|
|
1461
1461
|
});
|
|
1462
1462
|
toolsCmd.command("auth").description("Check auth status for all tools").option("-d, --dir <path>", "Harness directory", ".").action(async (opts) => {
|
|
1463
|
-
const { checkToolAuth } = await import("../tools-
|
|
1463
|
+
const { checkToolAuth } = await import("../tools-2HWMJ5CJ.js");
|
|
1464
1464
|
const dir = resolve(opts.dir);
|
|
1465
1465
|
requireHarness(dir);
|
|
1466
1466
|
const results = checkToolAuth(dir);
|
|
@@ -1484,7 +1484,7 @@ toolsCmd.command("auth").description("Check auth status for all tools").option("
|
|
|
1484
1484
|
console.log();
|
|
1485
1485
|
});
|
|
1486
1486
|
program.command("export [output]").description("Export harness to a portable JSON bundle").option("-d, --dir <path>", "Harness directory", ".").option("--no-sessions", "Exclude session files").option("--no-journals", "Exclude journal files").option("--no-metrics", "Exclude metrics").option("--no-state", "Exclude state and scratch").action(async (output, opts) => {
|
|
1487
|
-
const { exportHarness, writeBundle } = await import("../export-
|
|
1487
|
+
const { exportHarness, writeBundle } = await import("../export-OPR3SVVJ.js");
|
|
1488
1488
|
const dir = resolve(opts.dir);
|
|
1489
1489
|
requireHarness(dir);
|
|
1490
1490
|
const bundle = exportHarness(dir, {
|
|
@@ -1502,7 +1502,7 @@ Exported "${bundle.agent_name}" to ${outputPath}`);
|
|
|
1502
1502
|
`);
|
|
1503
1503
|
});
|
|
1504
1504
|
program.command("import <bundle>").description("Import a harness bundle into current directory").option("-d, --dir <path>", "Harness directory", ".").option("--overwrite", "Overwrite existing files", false).action(async (bundlePath, opts) => {
|
|
1505
|
-
const { readBundle, importBundle } = await import("../export-
|
|
1505
|
+
const { readBundle, importBundle } = await import("../export-OPR3SVVJ.js");
|
|
1506
1506
|
const dir = resolve(opts.dir);
|
|
1507
1507
|
try {
|
|
1508
1508
|
const bundle = readBundle(resolve(bundlePath));
|
|
@@ -1526,7 +1526,7 @@ Importing bundle: "${bundle.agent_name}" (exported ${bundle.exported_at})`);
|
|
|
1526
1526
|
}
|
|
1527
1527
|
});
|
|
1528
1528
|
program.command("bundle <output>").description("Pack primitives into a shareable bundle with manifest.yaml").option("-d, --dir <path>", "Harness directory", ".").option("-n, --name <name>", "Bundle name").option("--description <text>", "Bundle description", "").option("--author <name>", "Author name").option("--version <ver>", "Bundle version", "1.0.0").option("-t, --types <types...>", "Primitive types to include (e.g., rules instincts)").option("-f, --files <files...>", "Specific files to include (relative paths)").option("--tags <tags...>", "Tags for search/discovery").option("--license <id>", "License identifier (e.g., MIT)").option("--json", "Output as JSON", false).action(async (output, opts) => {
|
|
1529
|
-
const { packBundle, writeBundleDir } = await import("../primitive-registry-
|
|
1529
|
+
const { packBundle, writeBundleDir } = await import("../primitive-registry-KQOL7LNU.js");
|
|
1530
1530
|
const dir = resolve(opts.dir);
|
|
1531
1531
|
requireHarness(dir);
|
|
1532
1532
|
const bundleName = opts.name ?? basename(dir);
|
|
@@ -1554,8 +1554,8 @@ Bundled "${bundleName}" v${opts.version}`);
|
|
|
1554
1554
|
}
|
|
1555
1555
|
});
|
|
1556
1556
|
program.command("bundle-install <source>").description("Install primitives from a bundle directory, JSON file, or URL").option("-d, --dir <path>", "Harness directory", ".").option("--overwrite", "Overwrite existing files", false).option("--force", "Skip dependency checks", false).option("--json", "Output as JSON", false).action(async (source, opts) => {
|
|
1557
|
-
const { readBundleDir, installBundle, fetchRemoteBundle } = await import("../primitive-registry-
|
|
1558
|
-
const { readBundle } = await import("../export-
|
|
1557
|
+
const { readBundleDir, installBundle, fetchRemoteBundle } = await import("../primitive-registry-KQOL7LNU.js");
|
|
1558
|
+
const { readBundle } = await import("../export-OPR3SVVJ.js");
|
|
1559
1559
|
const dir = resolve(opts.dir);
|
|
1560
1560
|
try {
|
|
1561
1561
|
let bundle;
|
|
@@ -1568,7 +1568,7 @@ program.command("bundle-install <source>").description("Install primitives from
|
|
|
1568
1568
|
bundle = readBundleDir(sourcePath);
|
|
1569
1569
|
} else if (source.endsWith(".json")) {
|
|
1570
1570
|
const jsonBundle = readBundle(sourcePath);
|
|
1571
|
-
const { CORE_PRIMITIVE_DIRS } = await import("../types-
|
|
1571
|
+
const { CORE_PRIMITIVE_DIRS } = await import("../types-KSGYUZZO.js");
|
|
1572
1572
|
const files = jsonBundle.entries;
|
|
1573
1573
|
const types = /* @__PURE__ */ new Set();
|
|
1574
1574
|
for (const entry of files) {
|
|
@@ -1621,7 +1621,7 @@ Installation failed:`);
|
|
|
1621
1621
|
}
|
|
1622
1622
|
});
|
|
1623
1623
|
program.command("uninstall <bundle-name>").description("Uninstall a previously installed bundle (moves files to archive/)").option("-d, --dir <path>", "Harness directory", ".").option("--hard", "Permanently delete files instead of archiving", false).option("--json", "Output as JSON", false).action(async (bundleName, opts) => {
|
|
1624
|
-
const { uninstallBundle } = await import("../primitive-registry-
|
|
1624
|
+
const { uninstallBundle } = await import("../primitive-registry-KQOL7LNU.js");
|
|
1625
1625
|
const dir = resolve(opts.dir);
|
|
1626
1626
|
requireHarness(dir);
|
|
1627
1627
|
const result = uninstallBundle(dir, bundleName, { hard: opts.hard });
|
|
@@ -1645,7 +1645,7 @@ Uninstall failed:`);
|
|
|
1645
1645
|
}
|
|
1646
1646
|
});
|
|
1647
1647
|
program.command("update <source>").description("Update an installed bundle from a new version").option("-d, --dir <path>", "Harness directory", ".").option("--remove-deleted", "Archive files removed in new version", false).option("--json", "Output as JSON", false).action(async (source, opts) => {
|
|
1648
|
-
const { readBundleDir, diffBundle, updateBundle, fetchRemoteBundle } = await import("../primitive-registry-
|
|
1648
|
+
const { readBundleDir, diffBundle, updateBundle, fetchRemoteBundle } = await import("../primitive-registry-KQOL7LNU.js");
|
|
1649
1649
|
const dir = resolve(opts.dir);
|
|
1650
1650
|
requireHarness(dir);
|
|
1651
1651
|
try {
|
|
@@ -1704,7 +1704,7 @@ Update "${bundle.manifest.name}" to v${bundle.manifest.bundle_version}:`);
|
|
|
1704
1704
|
}
|
|
1705
1705
|
});
|
|
1706
1706
|
program.command("installed").description("List installed bundles").option("-d, --dir <path>", "Harness directory", ".").option("--json", "Output as JSON", false).action(async (opts) => {
|
|
1707
|
-
const { listInstalledBundles } = await import("../primitive-registry-
|
|
1707
|
+
const { listInstalledBundles } = await import("../primitive-registry-KQOL7LNU.js");
|
|
1708
1708
|
const dir = resolve(opts.dir);
|
|
1709
1709
|
requireHarness(dir);
|
|
1710
1710
|
const bundles = listInstalledBundles(dir);
|
|
@@ -1727,8 +1727,8 @@ ${bundles.length} bundle(s) installed:
|
|
|
1727
1727
|
});
|
|
1728
1728
|
var registryCmd = program.command("registry").description("Search and install bundles from configured registries");
|
|
1729
1729
|
registryCmd.command("search <query>").description("Search all configured registries for bundles").option("-d, --dir <path>", "Harness directory", ".").option("--limit <n>", "Max results", "20").option("--json", "Output as JSON", false).action(async (query, opts) => {
|
|
1730
|
-
const { searchConfiguredRegistries } = await import("../primitive-registry-
|
|
1731
|
-
const { loadConfig } = await import("../config-
|
|
1730
|
+
const { searchConfiguredRegistries } = await import("../primitive-registry-KQOL7LNU.js");
|
|
1731
|
+
const { loadConfig } = await import("../config-KRGEWBPM.js");
|
|
1732
1732
|
const dir = resolve(opts.dir);
|
|
1733
1733
|
requireHarness(dir);
|
|
1734
1734
|
const config = loadConfig(dir);
|
|
@@ -1769,8 +1769,8 @@ Searched ${result.registriesSearched} registry(ies) for "${query}"
|
|
|
1769
1769
|
}
|
|
1770
1770
|
});
|
|
1771
1771
|
registryCmd.command("install <bundle-name>").description("Install a bundle from configured registries").option("-d, --dir <path>", "Harness directory", ".").option("--version <ver>", "Specific version to install").option("--overwrite", "Overwrite existing files", false).option("--force", "Skip dependency checks", false).option("--json", "Output as JSON", false).action(async (bundleName, opts) => {
|
|
1772
|
-
const { installFromRegistry } = await import("../primitive-registry-
|
|
1773
|
-
const { loadConfig } = await import("../config-
|
|
1772
|
+
const { installFromRegistry } = await import("../primitive-registry-KQOL7LNU.js");
|
|
1773
|
+
const { loadConfig } = await import("../config-KRGEWBPM.js");
|
|
1774
1774
|
const dir = resolve(opts.dir);
|
|
1775
1775
|
requireHarness(dir);
|
|
1776
1776
|
const config = loadConfig(dir);
|
|
@@ -1812,7 +1812,7 @@ Installation failed:`);
|
|
|
1812
1812
|
}
|
|
1813
1813
|
});
|
|
1814
1814
|
registryCmd.command("list").description("List configured registries").option("-d, --dir <path>", "Harness directory", ".").option("--json", "Output as JSON", false).action(async (opts) => {
|
|
1815
|
-
const { loadConfig } = await import("../config-
|
|
1815
|
+
const { loadConfig } = await import("../config-KRGEWBPM.js");
|
|
1816
1816
|
const dir = resolve(opts.dir);
|
|
1817
1817
|
requireHarness(dir);
|
|
1818
1818
|
const config = loadConfig(dir);
|
|
@@ -1841,8 +1841,8 @@ ${registries.length} registry(ies) configured:
|
|
|
1841
1841
|
console.log();
|
|
1842
1842
|
});
|
|
1843
1843
|
program.command("graph").description("Analyze primitive dependency graph (related:/with: fields)").option("-d, --dir <path>", "Harness directory", ".").option("--json", "Output as JSON").action(async (opts) => {
|
|
1844
|
-
const { buildDependencyGraph, getGraphStats } = await import("../graph-
|
|
1845
|
-
const { loadConfig } = await import("../config-
|
|
1844
|
+
const { buildDependencyGraph, getGraphStats } = await import("../graph-VW5GH2FZ.js");
|
|
1845
|
+
const { loadConfig } = await import("../config-KRGEWBPM.js");
|
|
1846
1846
|
const dir = resolve(opts.dir);
|
|
1847
1847
|
requireHarness(dir);
|
|
1848
1848
|
let config;
|
|
@@ -1969,7 +1969,7 @@ Session Analytics
|
|
|
1969
1969
|
console.log();
|
|
1970
1970
|
});
|
|
1971
1971
|
program.command("auto-promote").description("Find instinct patterns appearing 3+ times across journals and optionally install them").option("-d, --dir <path>", "Harness directory", ".").option("--threshold <n>", "Minimum occurrences across different dates", "3").option("--install", "Auto-install promoted instincts", false).option("--json", "Output as JSON", false).action(async (opts) => {
|
|
1972
|
-
const { autoPromoteInstincts } = await import("../intelligence-
|
|
1972
|
+
const { autoPromoteInstincts } = await import("../intelligence-TUNH5ZMA.js");
|
|
1973
1973
|
const dir = resolve(opts.dir);
|
|
1974
1974
|
requireHarness(dir);
|
|
1975
1975
|
const result = autoPromoteInstincts(dir, {
|
|
@@ -2003,8 +2003,8 @@ function behaviorToCliId(behavior) {
|
|
|
2003
2003
|
return behavior.toLowerCase().replace(/[^a-z0-9\s-]/g, "").replace(/\s+/g, "-").slice(0, 50).replace(/-+$/, "");
|
|
2004
2004
|
}
|
|
2005
2005
|
program.command("dead-primitives").description("Detect orphaned primitives not modified in 30+ days").option("-d, --dir <path>", "Harness directory", ".").option("--days <n>", "Threshold days since last modification", "30").option("--json", "Output as JSON", false).action(async (opts) => {
|
|
2006
|
-
const { detectDeadPrimitives } = await import("../intelligence-
|
|
2007
|
-
const { loadConfig } = await import("../config-
|
|
2006
|
+
const { detectDeadPrimitives } = await import("../intelligence-TUNH5ZMA.js");
|
|
2007
|
+
const { loadConfig } = await import("../config-KRGEWBPM.js");
|
|
2008
2008
|
const dir = resolve(opts.dir);
|
|
2009
2009
|
requireHarness(dir);
|
|
2010
2010
|
let config;
|
|
@@ -2036,7 +2036,7 @@ Scanned ${result.totalScanned} primitive(s) (threshold: ${result.thresholdDays}
|
|
|
2036
2036
|
}
|
|
2037
2037
|
});
|
|
2038
2038
|
program.command("contradictions").description("Detect contradictions between rules and instincts").option("-d, --dir <path>", "Harness directory", ".").option("--json", "Output as JSON", false).action(async (opts) => {
|
|
2039
|
-
const { detectContradictions } = await import("../intelligence-
|
|
2039
|
+
const { detectContradictions } = await import("../intelligence-TUNH5ZMA.js");
|
|
2040
2040
|
const dir = resolve(opts.dir);
|
|
2041
2041
|
requireHarness(dir);
|
|
2042
2042
|
const result = detectContradictions(dir);
|
|
@@ -2061,8 +2061,8 @@ Checked ${result.rulesChecked} rule(s) and ${result.instinctsChecked} instinct(s
|
|
|
2061
2061
|
}
|
|
2062
2062
|
});
|
|
2063
2063
|
program.command("enrich").description("Enrich sessions with extracted topics, tools, and primitive references").option("-d, --dir <path>", "Harness directory", ".").option("--from <date>", "Start date (YYYY-MM-DD)").option("--to <date>", "End date (YYYY-MM-DD)").option("--json", "Output as JSON", false).action(async (opts) => {
|
|
2064
|
-
const { enrichSessions } = await import("../intelligence-
|
|
2065
|
-
const { loadConfig } = await import("../config-
|
|
2064
|
+
const { enrichSessions } = await import("../intelligence-TUNH5ZMA.js");
|
|
2065
|
+
const { loadConfig } = await import("../config-KRGEWBPM.js");
|
|
2066
2066
|
const dir = resolve(opts.dir);
|
|
2067
2067
|
requireHarness(dir);
|
|
2068
2068
|
let config;
|
|
@@ -2093,8 +2093,8 @@ Enriched ${result.sessionsScanned} session(s)
|
|
|
2093
2093
|
}
|
|
2094
2094
|
});
|
|
2095
2095
|
program.command("suggest").description("Suggest capabilities (skills/playbooks) for frequent uncovered session topics").option("-d, --dir <path>", "Harness directory", ".").option("--min-frequency <n>", "Minimum topic frequency", "3").option("--json", "Output as JSON", false).action(async (opts) => {
|
|
2096
|
-
const { suggestCapabilities } = await import("../intelligence-
|
|
2097
|
-
const { loadConfig } = await import("../config-
|
|
2096
|
+
const { suggestCapabilities } = await import("../intelligence-TUNH5ZMA.js");
|
|
2097
|
+
const { loadConfig } = await import("../config-KRGEWBPM.js");
|
|
2098
2098
|
const dir = resolve(opts.dir);
|
|
2099
2099
|
requireHarness(dir);
|
|
2100
2100
|
let config;
|
|
@@ -2126,7 +2126,7 @@ Analyzed ${result.topicsAnalyzed} topic(s) from ${result.sessionsScanned} sessio
|
|
|
2126
2126
|
}
|
|
2127
2127
|
});
|
|
2128
2128
|
program.command("agents").description("List available sub-agents").option("-d, --dir <path>", "Harness directory", ".").action(async (opts) => {
|
|
2129
|
-
const { listAgents } = await import("../delegate-
|
|
2129
|
+
const { listAgents } = await import("../delegate-BPTJVYU3.js");
|
|
2130
2130
|
const dir = resolve(opts.dir);
|
|
2131
2131
|
const agents = listAgents(dir);
|
|
2132
2132
|
if (agents.length === 0) {
|
|
@@ -2159,7 +2159,7 @@ program.command("delegate <agent-id> <prompt>").description("Delegate a prompt t
|
|
|
2159
2159
|
try {
|
|
2160
2160
|
console.error(`[delegate] Invoking agent "${agentId}"${opts.stream ? " (streaming)" : ""}...`);
|
|
2161
2161
|
if (opts.stream) {
|
|
2162
|
-
const { delegateStream } = await import("../delegate-
|
|
2162
|
+
const { delegateStream } = await import("../delegate-BPTJVYU3.js");
|
|
2163
2163
|
const result = delegateStream(delegateOpts);
|
|
2164
2164
|
process.stdout.write("\n");
|
|
2165
2165
|
for await (const chunk of result.textStream) {
|
|
@@ -2170,7 +2170,7 @@ program.command("delegate <agent-id> <prompt>").description("Delegate a prompt t
|
|
|
2170
2170
|
`[delegate] Agent: ${result.agentId} | session: ${result.sessionId}`
|
|
2171
2171
|
);
|
|
2172
2172
|
} else {
|
|
2173
|
-
const { delegateTo } = await import("../delegate-
|
|
2173
|
+
const { delegateTo } = await import("../delegate-BPTJVYU3.js");
|
|
2174
2174
|
const result = await delegateTo(delegateOpts);
|
|
2175
2175
|
console.log("\n" + result.text + "\n");
|
|
2176
2176
|
console.error(
|
|
@@ -2355,7 +2355,7 @@ rateLimitCmd.command("clear").description("Clear rate limit events").option("-d,
|
|
|
2355
2355
|
});
|
|
2356
2356
|
var mcpCmd = program.command("mcp").description("Manage MCP (Model Context Protocol) server connections");
|
|
2357
2357
|
mcpCmd.command("list").description("List configured MCP servers and their status").option("-d, --dir <path>", "Harness directory", ".").action(async (opts) => {
|
|
2358
|
-
const { loadConfig } = await import("../config-
|
|
2358
|
+
const { loadConfig } = await import("../config-KRGEWBPM.js");
|
|
2359
2359
|
const { validateMcpConfig } = await import("../mcp-JSIUJJZV.js");
|
|
2360
2360
|
const dir = resolve(opts.dir);
|
|
2361
2361
|
requireHarness(dir);
|
|
@@ -2397,7 +2397,7 @@ ${entries.length} MCP server(s) configured:
|
|
|
2397
2397
|
console.log();
|
|
2398
2398
|
});
|
|
2399
2399
|
mcpCmd.command("test").description("Test MCP server connections and list available tools").option("-d, --dir <path>", "Harness directory", ".").option("-s, --server <name>", "Test only a specific server").action(async (opts) => {
|
|
2400
|
-
const { loadConfig } = await import("../config-
|
|
2400
|
+
const { loadConfig } = await import("../config-KRGEWBPM.js");
|
|
2401
2401
|
const { createMcpManager } = await import("../mcp-JSIUJJZV.js");
|
|
2402
2402
|
const dir = resolve(opts.dir);
|
|
2403
2403
|
loadEnvFromDir(dir);
|
|
@@ -2491,7 +2491,7 @@ ${discovery.totalServers} unique server(s) after dedup:
|
|
|
2491
2491
|
}
|
|
2492
2492
|
});
|
|
2493
2493
|
mcpCmd.command("search <query>").description("Search the MCP registry for available servers").option("-n, --limit <number>", "Max results", "10").option("--json", "Output raw JSON", false).action(async (query, opts) => {
|
|
2494
|
-
const { searchRegistry, formatRegistryServer } = await import("../mcp-installer-
|
|
2494
|
+
const { searchRegistry, formatRegistryServer } = await import("../mcp-installer-4LOYB3PP.js");
|
|
2495
2495
|
try {
|
|
2496
2496
|
const result = await searchRegistry(query, { limit: parseInt(opts.limit, 10) });
|
|
2497
2497
|
if (opts.json) {
|
|
@@ -2517,7 +2517,7 @@ ${result.servers.length} server(s) found for "${query}":
|
|
|
2517
2517
|
}
|
|
2518
2518
|
});
|
|
2519
2519
|
mcpCmd.command("install <query>").description("Install an MCP server from the registry into config.yaml").option("-d, --dir <path>", "Harness directory", ".").option("-n, --name <name>", "Custom name for the server in config").option("--force", "Overwrite if server already exists", false).option("--skip-test", "Skip connection testing", false).option("--skip-docs", "Skip tool doc generation", false).option("--json", "Output raw JSON", false).action(async (query, opts) => {
|
|
2520
|
-
const { installMcpServer } = await import("../mcp-installer-
|
|
2520
|
+
const { installMcpServer } = await import("../mcp-installer-4LOYB3PP.js");
|
|
2521
2521
|
const dir = resolve(opts.dir);
|
|
2522
2522
|
loadEnvFromDir(dir);
|
|
2523
2523
|
requireHarness(dir);
|
|
@@ -2664,10 +2664,10 @@ Suggestions:
|
|
|
2664
2664
|
});
|
|
2665
2665
|
var generateCmd = program.command("generate").description("Auto-generate harness files");
|
|
2666
2666
|
generateCmd.command("system").description("Regenerate SYSTEM.md from actual directory structure").option("-d, --dir <path>", "Harness directory", ".").action(async (opts) => {
|
|
2667
|
-
const { generateSystemMd } = await import("../scaffold-
|
|
2667
|
+
const { generateSystemMd } = await import("../scaffold-FBUNVFYQ.js");
|
|
2668
2668
|
const dir = resolve(opts.dir);
|
|
2669
2669
|
requireHarness(dir);
|
|
2670
|
-
const { loadConfig } = await import("../config-
|
|
2670
|
+
const { loadConfig } = await import("../config-KRGEWBPM.js");
|
|
2671
2671
|
const config = loadConfig(dir);
|
|
2672
2672
|
const content = generateSystemMd(dir, config.agent.name);
|
|
2673
2673
|
const { writeFileSync } = await import("fs");
|
|
@@ -2677,7 +2677,7 @@ generateCmd.command("system").description("Regenerate SYSTEM.md from actual dire
|
|
|
2677
2677
|
`);
|
|
2678
2678
|
});
|
|
2679
2679
|
program.command("dashboard").description("Show a unified dashboard of health, costs, sessions, workflows, and storage").option("-d, --dir <path>", "Harness directory", ".").option("--json", "Output raw JSON snapshot", false).option("--watch", "Refresh every N seconds", false).option("--interval <seconds>", "Watch refresh interval in seconds", "5").action(async (opts) => {
|
|
2680
|
-
const { collectSnapshot, formatDashboard } = await import("../telemetry-
|
|
2680
|
+
const { collectSnapshot, formatDashboard } = await import("../telemetry-R34GXFVW.js");
|
|
2681
2681
|
const dir = resolve(opts.dir);
|
|
2682
2682
|
requireHarness(dir);
|
|
2683
2683
|
if (opts.json) {
|
|
@@ -2718,7 +2718,7 @@ var intelligenceCmd = program.command("intelligence").description("Intelligence
|
|
|
2718
2718
|
intelligenceCmd.command("promote").description("Auto-promote instinct candidates that appear 3+ times across journals").option("-d, --dir <dir>", "Harness directory", ".").option("--threshold <n>", "Minimum occurrences to promote", "3").option("--install", "Install promoted instincts as .md files").option("--json", "Output as JSON").action(async (opts) => {
|
|
2719
2719
|
const dir = resolve(opts.dir);
|
|
2720
2720
|
loadEnvFromDir(dir);
|
|
2721
|
-
const { autoPromoteInstincts } = await import("../intelligence-
|
|
2721
|
+
const { autoPromoteInstincts } = await import("../intelligence-TUNH5ZMA.js");
|
|
2722
2722
|
const result = autoPromoteInstincts(dir, {
|
|
2723
2723
|
threshold: parseInt(opts.threshold, 10),
|
|
2724
2724
|
install: opts.install ?? false
|
|
@@ -2749,8 +2749,8 @@ Promoted: ${result.promoted.join(", ")}`);
|
|
|
2749
2749
|
intelligenceCmd.command("dead").description("Detect dead primitives (unreferenced and old)").option("-d, --dir <dir>", "Harness directory", ".").option("--threshold <days>", "Days since modification to consider dead", "30").option("--json", "Output as JSON").action(async (opts) => {
|
|
2750
2750
|
const dir = resolve(opts.dir);
|
|
2751
2751
|
loadEnvFromDir(dir);
|
|
2752
|
-
const { detectDeadPrimitives } = await import("../intelligence-
|
|
2753
|
-
const { loadConfig } = await import("../config-
|
|
2752
|
+
const { detectDeadPrimitives } = await import("../intelligence-TUNH5ZMA.js");
|
|
2753
|
+
const { loadConfig } = await import("../config-KRGEWBPM.js");
|
|
2754
2754
|
let config;
|
|
2755
2755
|
try {
|
|
2756
2756
|
config = loadConfig(dir);
|
|
@@ -2779,7 +2779,7 @@ Dead primitives (${result.dead.length}):`);
|
|
|
2779
2779
|
intelligenceCmd.command("contradictions").description("Detect contradictions between rules and instincts").option("-d, --dir <dir>", "Harness directory", ".").option("--json", "Output as JSON").action(async (opts) => {
|
|
2780
2780
|
const dir = resolve(opts.dir);
|
|
2781
2781
|
loadEnvFromDir(dir);
|
|
2782
|
-
const { detectContradictions } = await import("../intelligence-
|
|
2782
|
+
const { detectContradictions } = await import("../intelligence-TUNH5ZMA.js");
|
|
2783
2783
|
const result = detectContradictions(dir);
|
|
2784
2784
|
if (opts.json) {
|
|
2785
2785
|
console.log(JSON.stringify(result, null, 2));
|
|
@@ -2800,8 +2800,8 @@ Contradictions (${result.contradictions.length}):`);
|
|
|
2800
2800
|
intelligenceCmd.command("enrich").description("Enrich sessions with topics, token counts, and related primitives").option("-d, --dir <dir>", "Harness directory", ".").option("--from <date>", "Start date (YYYY-MM-DD)").option("--to <date>", "End date (YYYY-MM-DD)").option("--json", "Output as JSON").action(async (opts) => {
|
|
2801
2801
|
const dir = resolve(opts.dir);
|
|
2802
2802
|
loadEnvFromDir(dir);
|
|
2803
|
-
const { enrichSessions } = await import("../intelligence-
|
|
2804
|
-
const { loadConfig } = await import("../config-
|
|
2803
|
+
const { enrichSessions } = await import("../intelligence-TUNH5ZMA.js");
|
|
2804
|
+
const { loadConfig } = await import("../config-KRGEWBPM.js");
|
|
2805
2805
|
let config;
|
|
2806
2806
|
try {
|
|
2807
2807
|
config = loadConfig(dir);
|
|
@@ -2827,8 +2827,8 @@ intelligenceCmd.command("enrich").description("Enrich sessions with topics, toke
|
|
|
2827
2827
|
intelligenceCmd.command("suggest").description("Suggest new skills/playbooks for frequent uncovered topics").option("-d, --dir <dir>", "Harness directory", ".").option("--min-frequency <n>", "Minimum topic frequency", "3").option("--json", "Output as JSON").action(async (opts) => {
|
|
2828
2828
|
const dir = resolve(opts.dir);
|
|
2829
2829
|
loadEnvFromDir(dir);
|
|
2830
|
-
const { suggestCapabilities } = await import("../intelligence-
|
|
2831
|
-
const { loadConfig } = await import("../config-
|
|
2830
|
+
const { suggestCapabilities } = await import("../intelligence-TUNH5ZMA.js");
|
|
2831
|
+
const { loadConfig } = await import("../config-KRGEWBPM.js");
|
|
2832
2832
|
let config;
|
|
2833
2833
|
try {
|
|
2834
2834
|
config = loadConfig(dir);
|
|
@@ -2857,7 +2857,7 @@ Suggestions (${result.suggestions.length}):`);
|
|
|
2857
2857
|
intelligenceCmd.command("failures").description("Analyze recent failure patterns and suggest recovery strategies").option("-d, --dir <dir>", "Harness directory", ".").option("--days <n>", "Days to look back", "7").option("--json", "Output as JSON").action(async (opts) => {
|
|
2858
2858
|
const dir = resolve(opts.dir);
|
|
2859
2859
|
loadEnvFromDir(dir);
|
|
2860
|
-
const { analyzeFailures } = await import("../intelligence-
|
|
2860
|
+
const { analyzeFailures } = await import("../intelligence-TUNH5ZMA.js");
|
|
2861
2861
|
const result = analyzeFailures(dir, { days: parseInt(opts.days, 10) });
|
|
2862
2862
|
if (opts.json) {
|
|
2863
2863
|
console.log(JSON.stringify(result, null, 2));
|
|
@@ -2882,7 +2882,7 @@ intelligenceCmd.command("failures").description("Analyze recent failure patterns
|
|
|
2882
2882
|
}
|
|
2883
2883
|
});
|
|
2884
2884
|
intelligenceCmd.command("classify <error>").description("Classify an error message into a failure mode").action(async (errorMsg) => {
|
|
2885
|
-
const { classifyFailure, getRecoveryStrategies, FAILURE_TAXONOMY } = await import("../intelligence-
|
|
2885
|
+
const { classifyFailure, getRecoveryStrategies, FAILURE_TAXONOMY } = await import("../intelligence-TUNH5ZMA.js");
|
|
2886
2886
|
const mode = classifyFailure(errorMsg);
|
|
2887
2887
|
const info = FAILURE_TAXONOMY.modes[mode];
|
|
2888
2888
|
const strategies = getRecoveryStrategies(mode);
|
|
@@ -2899,7 +2899,7 @@ var gateCmd = program.command("gate").description("Run verification gates");
|
|
|
2899
2899
|
gateCmd.command("run [name]").description("Run a verification gate (or all gates if no name)").option("-d, --dir <dir>", "Harness directory", ".").option("--json", "Output as JSON").action(async (name, opts) => {
|
|
2900
2900
|
const dir = resolve(opts.dir);
|
|
2901
2901
|
loadEnvFromDir(dir);
|
|
2902
|
-
const { runGate, runAllGates } = await import("../intelligence-
|
|
2902
|
+
const { runGate, runAllGates } = await import("../intelligence-TUNH5ZMA.js");
|
|
2903
2903
|
if (name) {
|
|
2904
2904
|
const result = runGate(name, dir);
|
|
2905
2905
|
if (opts.json) {
|
|
@@ -2929,7 +2929,7 @@ gateCmd.command("run [name]").description("Run a verification gate (or all gates
|
|
|
2929
2929
|
}
|
|
2930
2930
|
});
|
|
2931
2931
|
gateCmd.command("list").description("List available verification gates").action(async () => {
|
|
2932
|
-
const { listGates } = await import("../intelligence-
|
|
2932
|
+
const { listGates } = await import("../intelligence-TUNH5ZMA.js");
|
|
2933
2933
|
const gates = listGates();
|
|
2934
2934
|
for (const g of gates) {
|
|
2935
2935
|
console.log(` ${g.name}: ${g.description}`);
|
|
@@ -2938,7 +2938,7 @@ gateCmd.command("list").description("List available verification gates").action(
|
|
|
2938
2938
|
program.command("check-rules").description("Check an action against loaded rules").argument("<action>", 'Action to check (e.g., "deploy", "run", "tool_call")').option("-d, --dir <path>", "Harness directory", process.cwd()).option("--description <text>", "Description of the action").option("--tags <tags>", "Comma-separated tags").option("--tool <name>", "Tool name (for tool_call actions)").option("--json", "Output as JSON").action(async (action, opts) => {
|
|
2939
2939
|
const dir = resolve(opts.dir);
|
|
2940
2940
|
loadEnvFromDir(dir);
|
|
2941
|
-
const { enforceRules } = await import("../rule-engine-
|
|
2941
|
+
const { enforceRules } = await import("../rule-engine-EPFMNBEG.js");
|
|
2942
2942
|
const tags = opts.tags ? opts.tags.split(",").map((t) => t.trim()) : void 0;
|
|
2943
2943
|
const result = enforceRules(dir, {
|
|
2944
2944
|
action,
|
|
@@ -2961,7 +2961,7 @@ program.command("check-rules").description("Check an action against loaded rules
|
|
|
2961
2961
|
program.command("list-rules").description("List all parsed rules from the harness").option("-d, --dir <path>", "Harness directory", process.cwd()).option("--json", "Output as JSON").action(async (opts) => {
|
|
2962
2962
|
const dir = resolve(opts.dir);
|
|
2963
2963
|
loadEnvFromDir(dir);
|
|
2964
|
-
const { loadRules } = await import("../rule-engine-
|
|
2964
|
+
const { loadRules } = await import("../rule-engine-EPFMNBEG.js");
|
|
2965
2965
|
const rules = loadRules(dir);
|
|
2966
2966
|
if (opts.json) {
|
|
2967
2967
|
console.log(JSON.stringify(rules, null, 2));
|
|
@@ -2981,7 +2981,7 @@ program.command("list-rules").description("List all parsed rules from the harnes
|
|
|
2981
2981
|
program.command("playbook-gates").description("Extract and check verification gates from playbooks/workflows").argument("[playbook-id]", "Specific playbook/workflow ID").option("-d, --dir <path>", "Harness directory", process.cwd()).option("--json", "Output as JSON").action(async (playbookId, opts) => {
|
|
2982
2982
|
const dir = resolve(opts.dir);
|
|
2983
2983
|
loadEnvFromDir(dir);
|
|
2984
|
-
const { loadGates, getGatesForPlaybook } = await import("../verification-gate-
|
|
2984
|
+
const { loadGates, getGatesForPlaybook } = await import("../verification-gate-FFKVJN5N.js");
|
|
2985
2985
|
if (playbookId) {
|
|
2986
2986
|
const gates = getGatesForPlaybook(dir, playbookId);
|
|
2987
2987
|
if (opts.json) {
|
|
@@ -3122,7 +3122,7 @@ emoCmd.command("reset").description("Reset emotional state to defaults").option(
|
|
|
3122
3122
|
program.command("serve").description("Start the harness HTTP API server for webhooks and integrations").option("-d, --dir <dir>", "Harness directory", ".").option("-p, --port <port>", "Port to listen on", "8080").option("--api-key <key>", "API key for LLM provider").option("--webhook-secret <secret>", "Secret for authenticating webhook management API").option("--no-cors", "Disable CORS").action(async (opts) => {
|
|
3123
3123
|
const dir = resolve(opts.dir);
|
|
3124
3124
|
loadEnvFromDir(dir);
|
|
3125
|
-
const { startServe } = await import("../serve-
|
|
3125
|
+
const { startServe } = await import("../serve-2QUR74CS.js");
|
|
3126
3126
|
const port = parseInt(opts.port, 10);
|
|
3127
3127
|
const result = startServe({
|
|
3128
3128
|
harnessDir: dir,
|
|
@@ -3288,7 +3288,7 @@ program.command("browse").description("Browse available community content \u2014
|
|
|
3288
3288
|
loadEnvFromDir(dir);
|
|
3289
3289
|
const { listStarterPacks } = await import("../starter-packs-OR7NI5NA.js");
|
|
3290
3290
|
const { loadAllSources, getSourcesSummary } = await import("../sources-7LDYO5GK.js");
|
|
3291
|
-
const { listInstalledBundles } = await import("../primitive-registry-
|
|
3291
|
+
const { listInstalledBundles } = await import("../primitive-registry-KQOL7LNU.js");
|
|
3292
3292
|
const filter = opts.type;
|
|
3293
3293
|
const sections = [];
|
|
3294
3294
|
if (!filter || filter === "packs") {
|
|
@@ -3385,7 +3385,7 @@ var semanticCmd = program.command("semantic").description("Semantic search over
|
|
|
3385
3385
|
semanticCmd.command("index").description("Index all primitives for semantic search (requires an embed function at runtime \u2014 shows stats only from CLI)").option("-d, --dir <dir>", "Harness directory", ".").option("--json", "Output as JSON").action(async (opts) => {
|
|
3386
3386
|
const dir = resolve(opts.dir);
|
|
3387
3387
|
loadEnvFromDir(dir);
|
|
3388
|
-
const { getEmbeddingStats } = await import("../semantic-search-
|
|
3388
|
+
const { getEmbeddingStats } = await import("../semantic-search-OSRMCW2H.js");
|
|
3389
3389
|
const stats = getEmbeddingStats(dir);
|
|
3390
3390
|
if (opts.json) {
|
|
3391
3391
|
console.log(JSON.stringify(stats, null, 2));
|
|
@@ -3401,7 +3401,7 @@ semanticCmd.command("index").description("Index all primitives for semantic sear
|
|
|
3401
3401
|
semanticCmd.command("stats").description("Show embedding store statistics").option("-d, --dir <dir>", "Harness directory", ".").option("--json", "Output as JSON").action(async (opts) => {
|
|
3402
3402
|
const dir = resolve(opts.dir);
|
|
3403
3403
|
loadEnvFromDir(dir);
|
|
3404
|
-
const { getEmbeddingStats, detectStalePrimitives, loadEmbeddingStore } = await import("../semantic-search-
|
|
3404
|
+
const { getEmbeddingStats, detectStalePrimitives, loadEmbeddingStore } = await import("../semantic-search-OSRMCW2H.js");
|
|
3405
3405
|
const stats = getEmbeddingStats(dir);
|
|
3406
3406
|
const store = loadEmbeddingStore(dir);
|
|
3407
3407
|
const stale = detectStalePrimitives(dir, store, stats.modelId ?? "");
|
|
@@ -3443,7 +3443,7 @@ Available packs: ${available}`);
|
|
|
3443
3443
|
process.exitCode = 1;
|
|
3444
3444
|
return;
|
|
3445
3445
|
}
|
|
3446
|
-
const { installBundle } = await import("../primitive-registry-
|
|
3446
|
+
const { installBundle } = await import("../primitive-registry-KQOL7LNU.js");
|
|
3447
3447
|
const bundleResult = installBundle(dir, bundle, {
|
|
3448
3448
|
overwrite: opts.force,
|
|
3449
3449
|
force: opts.force
|
|
@@ -3475,7 +3475,7 @@ Customize the workflows in your workflows/ directory.`);
|
|
|
3475
3475
|
}
|
|
3476
3476
|
return;
|
|
3477
3477
|
}
|
|
3478
|
-
const { universalInstall } = await import("../universal-installer-
|
|
3478
|
+
const { universalInstall } = await import("../universal-installer-ZNA3HA2S.js");
|
|
3479
3479
|
const result = await universalInstall(dir, source, {
|
|
3480
3480
|
type: opts.type,
|
|
3481
3481
|
id: opts.id,
|