@iowarp/clio-coder 0.3.2 → 0.3.4
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/CHANGELOG.md +269 -458
- package/CONTRIBUTING.md +1 -1
- package/README.md +3 -3
- package/dist/{acp-BIYHVZIM.js → acp-S5R4RR5B.js} +7 -6
- package/dist/{agents-YT6SSRIT.js → agents-P6DMMVZY.js} +24 -21
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-5TWEIYDN.js → auth-2XCZLPKS.js} +12 -8
- package/dist/{chunk-GGXXDWE4.js → chunk-22NAGB7X.js} +2 -2
- package/dist/{chunk-WMSVI4G2.js → chunk-2LZI5CAG.js} +133 -13
- package/dist/{chunk-OAO4GE4M.js → chunk-2TZWSW76.js} +2 -2
- package/dist/{chunk-OOJYHWRB.js → chunk-34475P3I.js} +2 -2
- package/dist/{chunk-WVO7V2QY.js → chunk-35MKKU5R.js} +4 -4
- package/dist/{chunk-LBNRH5WM.js → chunk-3HZ5RWN2.js} +5 -5
- package/dist/{chunk-AGYYIBLL.js → chunk-3JLKSKD7.js} +2 -2
- package/dist/{chunk-MBS4V7ZP.js → chunk-4JUF2NNX.js} +7 -7
- package/dist/{chunk-ZDOOVTXZ.js → chunk-4OC57DA6.js} +27 -4
- package/dist/chunk-5M54SPOL.js +926 -0
- package/dist/{chunk-STBPMHSX.js → chunk-7RXG6QRZ.js} +51 -11
- package/dist/{chunk-77VKQEHF.js → chunk-A2GZF7DC.js} +5 -5
- package/dist/{chunk-A3CYT5EX.js → chunk-AD2SYQYC.js} +55 -2
- package/dist/chunk-AOCYTWAV.js +449 -0
- package/dist/chunk-BEY543CS.js +258 -0
- package/dist/{chunk-6N5PTWMY.js → chunk-BP4OYD6A.js} +32 -13
- package/dist/chunk-BPGS2WCQ.js +612 -0
- package/dist/{chunk-J5HN4RYU.js → chunk-BRXQQJFP.js} +8 -8
- package/dist/chunk-CFGTUFWB.js +67 -0
- package/dist/{chunk-CBCAPZAA.js → chunk-E25LMLRW.js} +2 -2
- package/dist/{chunk-G2DE3C7R.js → chunk-EDRHSCIE.js} +4 -4
- package/dist/{chunk-4KLWL3UC.js → chunk-EFADSJET.js} +2 -2
- package/dist/{chunk-M6SHUN7Q.js → chunk-FO5ZOVUY.js} +2 -2
- package/dist/chunk-FYYLNIL5.js +313 -0
- package/dist/{chunk-EPVUXGXG.js → chunk-HV5X7OR2.js} +14 -12
- package/dist/{chunk-TZTZS7QK.js → chunk-HXG4IURW.js} +5 -3
- package/dist/{chunk-IGLFWIYI.js → chunk-K6WL7QZT.js} +3 -3
- package/dist/chunk-K7VKOLQQ.js +15 -0
- package/dist/{chunk-BMEMKKIT.js → chunk-KOHPCX4K.js} +2 -2
- package/dist/{chunk-V4RXGQ5Q.js → chunk-KRPY7NTG.js} +10 -7
- package/dist/chunk-LL4KHSZI.js +22 -0
- package/dist/{chunk-KJ5LWLOE.js → chunk-MEQ45TQ4.js} +15 -9
- package/dist/{chunk-5UUP6MWO.js → chunk-MV3K5QF2.js} +5 -436
- package/dist/{chunk-AO4RKG4M.js → chunk-N4CZJQRK.js} +5 -5
- package/dist/{chunk-ARBGF5F7.js → chunk-NILBFAPG.js} +14 -8
- package/dist/chunk-OZNBF4L3.js +23 -0
- package/dist/{verify-G6V4D2G7.js → chunk-PCZJO5TI.js} +127 -42
- package/dist/chunk-QQK64KLB.js +1360 -0
- package/dist/{chunk-6EJV5X2W.js → chunk-QQL5RT5M.js} +979 -1619
- package/dist/{chunk-LZSJBIVT.js → chunk-QWU7ZBO7.js} +70 -720
- package/dist/{chunk-2EHAIA3X.js → chunk-RD5U66HV.js} +3 -3
- package/dist/{chunk-OKGUZO2U.js → chunk-SPULKLCF.js} +4 -3
- package/dist/{chunk-OQ33BKR3.js → chunk-TTNYS3EA.js} +3 -60
- package/dist/chunk-TW3WDMVS.js +677 -0
- package/dist/chunk-TZSKNMZG.js +434 -0
- package/dist/{chunk-7MNJORFF.js → chunk-UL3WSD3F.js} +6 -1
- package/dist/{chunk-7EYHLWU7.js → chunk-UZHIZC5S.js} +7 -7
- package/dist/{chunk-QTYWRVRA.js → chunk-VAWWTKDP.js} +8 -8
- package/dist/{chunk-X75S7HFS.js → chunk-VEZEGCGW.js} +214 -20
- package/dist/{chunk-OHHN2SO4.js → chunk-VMNQ6OZA.js} +98 -202
- package/dist/chunk-VSNATDE6.js +122 -0
- package/dist/chunk-W6GROXXM.js +69 -0
- package/dist/chunk-WPQLXFOZ.js +375 -0
- package/dist/{chunk-ORBHGJC5.js → chunk-WR67VIZY.js} +3 -3
- package/dist/{chunk-3ZXDFGR5.js → chunk-X6COSD2O.js} +5 -5
- package/dist/chunk-ZGVHUX3M.js +66 -0
- package/dist/{chunk-MAW544W2.js → chunk-ZWMF7253.js} +4 -4
- package/dist/{chunk-MQSRRFWA.js → chunk-ZYKPLLNQ.js} +563 -546
- package/dist/cli/index.js +27 -23
- package/dist/{clio-4LY5K2AC.js → clio-J5JIOIDS.js} +7 -6
- package/dist/{code-nav-7AX6FYE6.js → code-nav-AXCXSBHX.js} +5 -3
- package/dist/{config-GTLUW2PR.js → config-OEBMIN2U.js} +37 -27
- package/dist/{configure-R6A64DHX.js → configure-PUQOSIXQ.js} +16 -13
- package/dist/{context-5VKGUVJJ.js → context-EKDCKUUZ.js} +82 -7
- package/dist/{context-RW5HC47S.js → context-MGSE4Z2T.js} +33 -23
- package/dist/{context-JFZEJ7W5.js → context-URSXPBCK.js} +17 -9
- package/dist/{context-clear-6ZHBAZZT.js → context-clear-KDAJRNUK.js} +33 -23
- package/dist/context-working-set-SBKMPPI2.js +1552 -0
- package/dist/{dispatch-runner-VKBRCWQC.js → dispatch-runner-MSWN72NK.js} +43 -29
- package/dist/{doctor-KI767GSN.js → doctor-7BSE27PJ.js} +10 -10
- package/dist/{eval-XSSNATB4.js → eval-IZGDOO4H.js} +9 -8
- package/dist/{evidence-UA6AWDQQ.js → evidence-SR7WXB5B.js} +51 -23
- package/dist/{evolve-QNTFGV6Z.js → evolve-K7VE2CBX.js} +30 -20
- package/dist/{fleet-Q7UOMUSG.js → fleet-7XMJNQNF.js} +48 -38
- package/dist/{fleet-preflight-DDN536IT.js → fleet-preflight-AQNAH644.js} +3 -3
- package/dist/{init-WBB65ZHQ.js → init-JGNPAYXT.js} +41 -31
- package/dist/{memory-MD3O64RI.js → memory-4ALKDJ4Q.js} +32 -22
- package/dist/{models-BZU34YWD.js → models-ZMMLFJNN.js} +22 -19
- package/dist/{monitor-MEQA5C3I.js → monitor-2F3T5KHP.js} +55 -43
- package/dist/{orchestrator-CGFKEP27.js → orchestrator-ORHT43JB.js} +2507 -1896
- package/dist/{reset-L2FQEE3E.js → reset-NXGTYNUO.js} +4 -3
- package/dist/{run-IV4Q6RLN.js → run-RF4WJGMT.js} +51 -41
- package/dist/{share-S5BZQC5I.js → share-UT3W6E4M.js} +5 -4
- package/dist/{skills-LQEKRDTN.js → skills-PSACKC5Q.js} +2 -2
- package/dist/{skills-eval-3DC4HEWS.js → skills-eval-WJSI55RZ.js} +34 -24
- package/dist/{targets-C4SSGQOB.js → targets-PIIRAOYS.js} +23 -20
- package/dist/{terminal-lease-IT5JW2NR.js → terminal-lease-ULWXWNVY.js} +5 -4
- package/dist/{upgrade-7TT7SQ3G.js → upgrade-346TZ6AV.js} +18 -17
- package/dist/{usage-GV4PKT3M.js → usage-6KKXR32N.js} +34 -24
- package/dist/verifiers-4UUM6TEE.js +1214 -0
- package/dist/verify-X5HDROLA.js +25 -0
- package/dist/{wiki-generate-DQF6Z66B.js → wiki-generate-7STOCIFZ.js} +42 -31
- package/dist/worker/entry.js +33 -24
- package/docs/README.md +8 -7
- package/docs/acp.md +1 -1
- package/docs/alcf-provider.md +1 -1
- package/docs/architecture.md +2 -2
- package/docs/artifact-versions.md +1 -1
- package/docs/built-in-agents.md +1 -1
- package/docs/capacity-and-scheduling.md +1 -1
- package/docs/commands-and-modes.md +53 -21
- package/docs/config-knobs-audit.md +1 -2
- package/docs/configuration-and-targets.md +15 -1
- package/docs/context-engine.md +64 -12
- package/docs/context-working-set.md +194 -0
- package/docs/development-pipeline.md +1 -1
- package/docs/documentation-coverage.md +5 -5
- package/docs/documentation-guide.md +6 -5
- package/docs/environment-variables.md +2 -1
- package/docs/eval-runner.md +1 -1
- package/docs/evals-internal.md +14 -1
- package/docs/evidence-and-memory.md +74 -2
- package/docs/evolution.md +1 -1
- package/docs/exit-codes-and-output.md +1 -1
- package/docs/extensions-and-sharing.md +2 -2
- package/docs/fleet-dispatch.md +22 -7
- package/docs/glossary.md +21 -1
- package/docs/installation-and-lifecycle.md +6 -6
- package/docs/middleware-and-components.md +1 -1
- package/docs/model-catalog.md +7 -9
- package/docs/observability.md +4 -4
- package/docs/performance-methodology.md +2 -2
- package/docs/proactive-memory.md +1 -1
- package/docs/prompt-envelope-and-tools.md +4 -4
- package/docs/provider-adapter-cookbook.md +1 -1
- package/docs/release-cut-checklist.md +35 -35
- package/docs/safety-model.md +23 -4
- package/docs/scientific-validation.md +21 -3
- package/docs/session-lifecycle.md +3 -3
- package/docs/skills-marketplace.md +1 -1
- package/docs/tool-usage.md +79 -12
- package/docs/trace-store.md +1 -1
- package/docs/troubleshooting.md +1 -1
- package/docs/tui-design.md +2 -2
- package/docs/worker-dispatch-mechanics.md +11 -1
- package/package.json +8 -11
- package/skills/meta/clio-test/SKILL.md +20 -17
- package/skills/meta/clio-test/evals.md +3 -3
- package/skills/meta/clio-test/references/harness.md +35 -6
- package/skills/meta/clio-test/references/test-map.md +20 -10
- package/skills/registry.yaml +2 -2
- package/skills/skill-marketplace.json +1 -1
- package/src/cli/context-working-set.ts +513 -0
- package/src/cli/context.ts +8 -0
- package/src/cli/evidence.ts +20 -2
- package/src/cli/index.ts +4 -0
- package/src/cli/verifiers.ts +325 -0
- package/src/core/bash-exec.ts +39 -14
- package/src/core/bus-events.ts +19 -4
- package/src/core/config.ts +54 -0
- package/src/core/defaults.ts +50 -3
- package/src/core/git-commit-attribution.ts +46 -21
- package/src/core/verification-scripts.ts +6 -0
- package/src/domains/agents/builtins/verifier.md +3 -0
- package/src/domains/config/classify.ts +1 -0
- package/src/domains/config/keybindings.ts +3 -3
- package/src/domains/context/working-set/contract.ts +161 -0
- package/src/domains/context/working-set/defaults.ts +28 -0
- package/src/domains/context/working-set/engine.ts +203 -0
- package/src/domains/context/working-set/fold.ts +62 -0
- package/src/domains/context/working-set/horizon.ts +38 -0
- package/src/domains/context/working-set/marker.ts +103 -0
- package/src/domains/context/working-set/path-index.ts +436 -0
- package/src/domains/context/working-set/payload.ts +152 -0
- package/src/domains/context/working-set/policies/age-horizon.ts +55 -0
- package/src/domains/context/working-set/policies/index.ts +21 -0
- package/src/domains/context/working-set/policies/structural.ts +160 -0
- package/src/domains/context/working-set/project.ts +132 -0
- package/src/domains/context/working-set/protect.ts +109 -0
- package/src/domains/context/working-set/recall.ts +177 -0
- package/src/domains/context/working-set/replay/controls.ts +112 -0
- package/src/domains/context/working-set/replay/load-clio.ts +199 -0
- package/src/domains/context/working-set/replay/metrics.ts +185 -0
- package/src/domains/context/working-set/replay/reference-graph.ts +79 -0
- package/src/domains/context/working-set/replay/report.ts +139 -0
- package/src/domains/context/working-set/replay/runner.ts +325 -0
- package/src/domains/context/working-set/replay/synthetic.ts +422 -0
- package/src/domains/context/working-set/replay/trace.ts +21 -0
- package/src/domains/context/working-set/visible.ts +54 -0
- package/src/domains/evidence/build.ts +112 -45
- package/src/domains/evidence/eval.ts +24 -7
- package/src/domains/evidence/index.ts +53 -0
- package/src/domains/evidence/ordering.ts +12 -0
- package/src/domains/evidence/run-trust.ts +221 -0
- package/src/domains/evidence/store.ts +46 -6
- package/src/domains/evidence/trust-status.ts +854 -0
- package/src/domains/evidence/types.ts +26 -0
- package/src/domains/middleware/memory-intervention.ts +3 -0
- package/src/domains/middleware/stalled-turn.ts +165 -4
- package/src/domains/safety/autonomy.ts +1 -1
- package/src/domains/safety/default-path-policy.ts +8 -0
- package/src/domains/safety/finish-contract.ts +4 -3
- package/src/domains/safety/policy-engine.ts +48 -6
- package/src/domains/session/compaction/compact.ts +23 -1
- package/src/domains/session/compaction/cut-point.ts +2 -0
- package/src/domains/session/compaction/tokens.ts +16 -1
- package/src/domains/session/context-ledger.ts +2 -0
- package/src/domains/session/entries.ts +107 -1
- package/src/domains/session/manager.ts +9 -2
- package/src/domains/session/migrations/index.ts +22 -3
- package/src/engine/acp/server.ts +3 -0
- package/src/engine/agent.ts +18 -1
- package/src/engine/session.ts +9 -3
- package/src/entry/orchestrator.ts +16 -4
- package/src/interactive/chat-loop-messages.ts +18 -6
- package/src/interactive/chat-panel.ts +571 -244
- package/src/interactive/chat-renderer.ts +79 -39
- package/src/interactive/context-meter.ts +10 -0
- package/src/interactive/context-overlay.ts +81 -6
- package/src/interactive/context-recall-command.ts +110 -0
- package/src/interactive/editor-submit.ts +26 -1
- package/src/interactive/footer/widgets.ts +22 -20
- package/src/interactive/footer-panel.ts +6 -1
- package/src/interactive/interactive-application.ts +2 -0
- package/src/interactive/interactive-event-projection.ts +12 -0
- package/src/interactive/interactive-slash-runtime.ts +49 -8
- package/src/interactive/model-session-replay.ts +21 -0
- package/src/interactive/overlay-general-openers.ts +6 -0
- package/src/interactive/overlay-session-lifecycle.ts +8 -4
- package/src/interactive/overlays/ask-user.ts +146 -24
- package/src/interactive/renderers/tool-execution.ts +167 -56
- package/src/interactive/session-transcript.ts +2 -2
- package/src/interactive/slash-commands.ts +29 -2
- package/src/interactive/status/index.ts +12 -1
- package/src/interactive/status/reasoning.ts +87 -0
- package/src/interactive/status/summary.ts +13 -2
- package/src/interactive/transcript-detail.ts +120 -0
- package/src/interactive/turn-context.ts +238 -88
- package/src/interactive/turn-middleware.ts +6 -6
- package/src/tools/agent-tools.ts +11 -4
- package/src/tools/bash.ts +144 -82
- package/src/tools/builtin-tool-catalog.ts +18 -6
- package/src/tools/context/index.ts +105 -3
- package/src/tools/context/surface.ts +3 -2
- package/src/tools/core-bootstrap.ts +21 -0
- package/src/tools/dispatch-runner.ts +9 -7
- package/src/tools/monitor.ts +28 -20
- package/src/tools/presentation.ts +107 -0
- package/src/tools/registry.ts +65 -7
- package/src/tools/result-disposition.ts +550 -0
- package/src/tools/result-shaping.ts +262 -19
- package/src/tools/safe-exec.ts +2 -0
- package/src/tools/verify/authoring.ts +1119 -0
- package/src/tools/verify/catalog.ts +346 -0
- package/src/tools/verify/index.ts +13 -3
- package/src/tools/verify/scripts.ts +135 -37
- package/src/tools/verify/surface.ts +9 -5
- package/src/tools/worker-evidence.ts +35 -12
- package/dist/chunk-MNA4JGU4.js +0 -255
- package/dist/chunk-SRF2PJNW.js +0 -184
- package/dist/chunk-T6YILFSB.js +0 -80
- package/dist/chunk-VAKQQHWR.js +0 -434
|
@@ -6,35 +6,32 @@ import {
|
|
|
6
6
|
runVectorTool,
|
|
7
7
|
timeoutArg,
|
|
8
8
|
verifyToolSurface
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-NILBFAPG.js";
|
|
10
|
+
import {
|
|
11
|
+
PROJECT_VERIFIER_CATALOG_RELATIVE_PATH,
|
|
12
|
+
loadProjectVerifierCatalog,
|
|
13
|
+
packageDeclaredCheck,
|
|
14
|
+
resolveProjectVerifierExecutionCwd
|
|
15
|
+
} from "./chunk-FYYLNIL5.js";
|
|
10
16
|
import {
|
|
11
17
|
VERIFICATION_SCRIPT_FAMILY_HINT,
|
|
12
18
|
declaredVerificationScripts,
|
|
13
19
|
isVerificationScriptName
|
|
14
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-UL3WSD3F.js";
|
|
15
21
|
import {
|
|
16
22
|
escapeRegExp
|
|
17
23
|
} from "./chunk-VG7TBQIY.js";
|
|
18
24
|
import {
|
|
19
25
|
resolveReadPath
|
|
20
26
|
} from "./chunk-OQE5J4C6.js";
|
|
21
|
-
import "./chunk-ECH6PKUQ.js";
|
|
22
27
|
import {
|
|
23
28
|
truncateUtf8
|
|
24
29
|
} from "./chunk-6XLNIQDB.js";
|
|
25
|
-
import "./chunk-5B2AEOW5.js";
|
|
26
|
-
import "./chunk-CGKSTWHD.js";
|
|
27
30
|
import {
|
|
28
31
|
combineSafeOutput,
|
|
29
32
|
resolveSafeCwd,
|
|
30
33
|
runCommandVector
|
|
31
|
-
} from "./chunk-
|
|
32
|
-
import "./chunk-X75S7HFS.js";
|
|
33
|
-
import "./chunk-FQ4SKYE4.js";
|
|
34
|
-
import "./chunk-FCSXB6T2.js";
|
|
35
|
-
import "./chunk-YXLYO42X.js";
|
|
36
|
-
import "./chunk-BNAZZHFG.js";
|
|
37
|
-
import "./chunk-6EJMN2Y3.js";
|
|
34
|
+
} from "./chunk-VEZEGCGW.js";
|
|
38
35
|
import {
|
|
39
36
|
init_esm_shims
|
|
40
37
|
} from "./chunk-3R73A4XB.js";
|
|
@@ -616,51 +613,133 @@ function lineAt(text, index) {
|
|
|
616
613
|
init_esm_shims();
|
|
617
614
|
import { existsSync as existsSync2, readFileSync as readFileSync2 } from "node:fs";
|
|
618
615
|
import path2 from "node:path";
|
|
619
|
-
function
|
|
620
|
-
const
|
|
621
|
-
|
|
622
|
-
const pkg = parsePackageJson(pkgPath);
|
|
623
|
-
if (!pkg.ok) return [];
|
|
624
|
-
return [{ kind: "package.json", path: pkgPath, checks: declaredVerificationScripts(pkg.scripts) }];
|
|
616
|
+
function repositoryRelativeCwd(workspaceRoot, resolved) {
|
|
617
|
+
const relative = path2.relative(workspaceRoot, resolved);
|
|
618
|
+
return relative.length === 0 ? "." : relative.split(path2.sep).join("/");
|
|
625
619
|
}
|
|
626
|
-
function
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
620
|
+
function packageTag(id) {
|
|
621
|
+
const separator = id.search(/[:.-]/u);
|
|
622
|
+
return [separator === -1 ? id : id.slice(0, separator)];
|
|
623
|
+
}
|
|
624
|
+
function packageCheckSource(packageRoot, workspaceRoot) {
|
|
625
|
+
const packagePath = path2.join(packageRoot, "package.json");
|
|
626
|
+
if (!existsSync2(packagePath)) return null;
|
|
627
|
+
const pkg = parsePackageJson(packagePath);
|
|
628
|
+
if (!pkg.ok) return null;
|
|
629
|
+
const cwd = repositoryRelativeCwd(workspaceRoot, packageRoot);
|
|
630
|
+
const checks = declaredVerificationScripts(pkg.scripts).map(
|
|
631
|
+
(id) => packageDeclaredCheck(id, packagePath, cwd, packageTag(id))
|
|
632
|
+
);
|
|
633
|
+
return { kind: "package.json", path: packagePath, checks };
|
|
634
|
+
}
|
|
635
|
+
function providerCollision(sources) {
|
|
636
|
+
const seen = /* @__PURE__ */ new Map();
|
|
637
|
+
for (const source of sources) {
|
|
638
|
+
for (const check of source.checks) {
|
|
639
|
+
const prior = seen.get(check.id);
|
|
640
|
+
if (prior !== void 0) {
|
|
641
|
+
return `duplicate declared check id '${check.id}' from ${prior.source.kind} (${prior.source.path}) and ${check.source.kind} (${check.source.path})`;
|
|
642
|
+
}
|
|
643
|
+
seen.set(check.id, check);
|
|
644
|
+
}
|
|
632
645
|
}
|
|
633
|
-
|
|
646
|
+
return null;
|
|
647
|
+
}
|
|
648
|
+
function discoverDeclaredChecksAtRoot(workspaceRoot, cwdArg) {
|
|
649
|
+
let packageRoot;
|
|
650
|
+
try {
|
|
651
|
+
packageRoot = resolveSafeCwd(cwdArg, workspaceRoot);
|
|
652
|
+
} catch (error) {
|
|
653
|
+
return { ok: false, reason: error instanceof Error ? error.message : String(error) };
|
|
654
|
+
}
|
|
655
|
+
const sources = [];
|
|
656
|
+
const packageSource = packageCheckSource(packageRoot, workspaceRoot);
|
|
657
|
+
if (packageSource !== null) sources.push(packageSource);
|
|
658
|
+
const projectCatalog = loadProjectVerifierCatalog(workspaceRoot);
|
|
659
|
+
if (!projectCatalog.ok) return projectCatalog;
|
|
660
|
+
if (projectCatalog.source !== null) sources.push(projectCatalog.source);
|
|
661
|
+
const collision = providerCollision(sources);
|
|
662
|
+
if (collision !== null) return { ok: false, reason: collision };
|
|
663
|
+
return { ok: true, sources };
|
|
664
|
+
}
|
|
665
|
+
function discoverDeclaredChecks(cwdArg) {
|
|
666
|
+
return discoverDeclaredChecksAtRoot(process.cwd(), cwdArg);
|
|
667
|
+
}
|
|
668
|
+
function clonedSources(sources) {
|
|
669
|
+
return sources.map((source) => ({
|
|
670
|
+
kind: source.kind,
|
|
671
|
+
path: source.path,
|
|
672
|
+
checks: source.checks.map((check) => ({
|
|
673
|
+
...check,
|
|
674
|
+
command: [...check.command],
|
|
675
|
+
tags: [...check.tags],
|
|
676
|
+
source: { ...check.source }
|
|
677
|
+
}))
|
|
678
|
+
}));
|
|
679
|
+
}
|
|
680
|
+
function listChecks(cwdArg) {
|
|
681
|
+
const discovery = discoverDeclaredChecks(cwdArg);
|
|
682
|
+
if (!discovery.ok) return { kind: "error", message: `verify: ${discovery.reason}` };
|
|
634
683
|
const lines = [];
|
|
635
|
-
if (sources.length === 0 || sources.every((source) => source.checks.length === 0)) {
|
|
636
|
-
lines.push(
|
|
684
|
+
if (discovery.sources.length === 0 || discovery.sources.every((source) => source.checks.length === 0)) {
|
|
685
|
+
lines.push(
|
|
686
|
+
`No declared verification checks found (no package.json verification scripts or ${PROJECT_VERIFIER_CATALOG_RELATIVE_PATH} entries).`,
|
|
687
|
+
"Run `clio-coder verifiers author` to inspect declared project tooling, preview exact argv checks, and create the catalog after confirmation."
|
|
688
|
+
);
|
|
637
689
|
} else {
|
|
638
690
|
lines.push("Declared verification checks:");
|
|
639
|
-
for (const source of sources) {
|
|
640
|
-
lines.push(
|
|
641
|
-
for (const check of source.checks)
|
|
691
|
+
for (const source of discovery.sources) {
|
|
692
|
+
lines.push(source.kind === "package.json" ? "package.json:" : `${PROJECT_VERIFIER_CATALOG_RELATIVE_PATH}:`);
|
|
693
|
+
for (const check of source.checks) {
|
|
694
|
+
const tags = check.tags.length > 0 ? ` [${check.tags.join(", ")}]` : "";
|
|
695
|
+
lines.push(`- ${check.id}${tags}: ${check.description}`);
|
|
696
|
+
}
|
|
642
697
|
}
|
|
643
698
|
}
|
|
644
699
|
lines.push(
|
|
645
700
|
"",
|
|
646
|
-
'Run one with verify(check="<
|
|
701
|
+
'Run one with verify(check="<id>"). verify(check="frontend", path=<file>) validates an HTML/CSS/JS artifact.'
|
|
647
702
|
);
|
|
648
703
|
return {
|
|
649
704
|
kind: "ok",
|
|
650
705
|
output: lines.join("\n"),
|
|
651
|
-
details: { sources: sources
|
|
706
|
+
details: { sources: clonedSources(discovery.sources) }
|
|
707
|
+
};
|
|
708
|
+
}
|
|
709
|
+
function withDeclaredEvidence(result, check) {
|
|
710
|
+
return {
|
|
711
|
+
...result,
|
|
712
|
+
details: {
|
|
713
|
+
...result.details,
|
|
714
|
+
action: "verify",
|
|
715
|
+
check: check.id,
|
|
716
|
+
source: { ...check.source },
|
|
717
|
+
description: check.description,
|
|
718
|
+
declaredCommand: [...check.command],
|
|
719
|
+
declaredCwd: check.cwd,
|
|
720
|
+
declaredTimeoutMs: check.timeoutMs,
|
|
721
|
+
tags: [...check.tags]
|
|
722
|
+
}
|
|
652
723
|
};
|
|
653
724
|
}
|
|
725
|
+
async function runProjectCheck(check, options) {
|
|
726
|
+
const [file, ...vector] = check.command;
|
|
727
|
+
if (file === void 0) return { kind: "error", message: `verify: declared check '${check.id}' has empty argv` };
|
|
728
|
+
const cwd = resolveProjectVerifierExecutionCwd(check.cwd, process.cwd());
|
|
729
|
+
if (cwd instanceof Error) return { kind: "error", message: `verify: ${cwd.message}` };
|
|
730
|
+
const result = await runVectorTool("verify", file, vector, { cwd, timeout_ms: check.timeoutMs }, options);
|
|
731
|
+
return withDeclaredEvidence(result, check);
|
|
732
|
+
}
|
|
654
733
|
async function runScriptCheck(check, args, options) {
|
|
655
734
|
let cwd;
|
|
656
735
|
try {
|
|
657
736
|
cwd = resolveSafeCwd(typeof args.cwd === "string" && args.cwd.length > 0 ? args.cwd : void 0, process.cwd());
|
|
658
|
-
} catch (
|
|
659
|
-
return { kind: "error", message: `verify: ${
|
|
737
|
+
} catch (error) {
|
|
738
|
+
return { kind: "error", message: `verify: ${error instanceof Error ? error.message : String(error)}` };
|
|
660
739
|
}
|
|
661
|
-
const
|
|
662
|
-
if (!existsSync2(
|
|
663
|
-
const pkg = parsePackageJson(
|
|
740
|
+
const packagePath = path2.join(cwd, "package.json");
|
|
741
|
+
if (!existsSync2(packagePath)) return { kind: "error", message: `verify: package.json not found in ${cwd}` };
|
|
742
|
+
const pkg = parsePackageJson(packagePath);
|
|
664
743
|
if (!pkg.ok) return { kind: "error", message: `verify: ${pkg.reason}` };
|
|
665
744
|
if (!Object.hasOwn(pkg.scripts, check)) {
|
|
666
745
|
const declared = declaredVerificationScripts(pkg.scripts);
|
|
@@ -675,9 +754,9 @@ async function runScriptCheck(check, args, options) {
|
|
|
675
754
|
if (extraArgs.length > 0) vector.push("--", ...extraArgs);
|
|
676
755
|
return runVectorTool("verify", "npm", vector, { ...args, cwd }, options);
|
|
677
756
|
}
|
|
678
|
-
function parsePackageJson(
|
|
757
|
+
function parsePackageJson(packagePath) {
|
|
679
758
|
try {
|
|
680
|
-
const parsed = JSON.parse(readFileSync2(
|
|
759
|
+
const parsed = JSON.parse(readFileSync2(packagePath, "utf8"));
|
|
681
760
|
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
682
761
|
return { ok: false, reason: "package.json root must be an object" };
|
|
683
762
|
}
|
|
@@ -686,8 +765,8 @@ function parsePackageJson(pkgPath) {
|
|
|
686
765
|
return { ok: false, reason: "package.json has no scripts object" };
|
|
687
766
|
}
|
|
688
767
|
return { ok: true, scripts };
|
|
689
|
-
} catch (
|
|
690
|
-
return { ok: false, reason:
|
|
768
|
+
} catch (error) {
|
|
769
|
+
return { ok: false, reason: error instanceof Error ? error.message : String(error) };
|
|
691
770
|
}
|
|
692
771
|
}
|
|
693
772
|
|
|
@@ -701,6 +780,10 @@ var verifyTool = {
|
|
|
701
780
|
return listChecks(typeof args.cwd === "string" && args.cwd.length > 0 ? args.cwd : void 0);
|
|
702
781
|
}
|
|
703
782
|
if (check === "frontend") return runFrontendCheck(args, options);
|
|
783
|
+
const discovery = discoverDeclaredChecks(typeof args.cwd === "string" && args.cwd.length > 0 ? args.cwd : void 0);
|
|
784
|
+
if (!discovery.ok) return { kind: "error", message: `verify: ${discovery.reason}` };
|
|
785
|
+
const declared = discovery.sources.flatMap((source) => source.checks).find((candidate) => candidate.id === check);
|
|
786
|
+
if (declared?.source.kind === "project-catalog") return runProjectCheck(declared, options);
|
|
704
787
|
if (!isVerificationScriptName(check)) {
|
|
705
788
|
return {
|
|
706
789
|
kind: "error",
|
|
@@ -710,7 +793,9 @@ var verifyTool = {
|
|
|
710
793
|
return runScriptCheck(check, args, options);
|
|
711
794
|
}
|
|
712
795
|
};
|
|
796
|
+
|
|
713
797
|
export {
|
|
798
|
+
discoverDeclaredChecksAtRoot,
|
|
714
799
|
verifyTool
|
|
715
800
|
};
|
|
716
|
-
//# sourceMappingURL=
|
|
801
|
+
//# sourceMappingURL=chunk-PCZJO5TI.js.map
|