@namewta/speculo 0.8.13 → 1.0.2
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 +11 -7
- package/dist/src/cli.js +12 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/doctor.d.ts +10 -0
- package/dist/src/doctor.js +70 -0
- package/dist/src/doctor.js.map +1 -0
- package/dist/src/index.js +105 -56
- package/dist/src/index.js.map +1 -1
- package/dist/src/kernel.d.ts +98 -0
- package/dist/src/kernel.js +29 -0
- package/dist/src/kernel.js.map +1 -0
- package/dist/src/refresh.js +55 -24
- package/dist/src/refresh.js.map +1 -1
- package/dist/src/structured.d.ts +2 -2
- package/dist/src/structured.js +114 -241
- package/dist/src/structured.js.map +1 -1
- package/package.json +4 -3
- package/template/.speculo/README.md +1 -1
- package/template/.speculo/capabilities.json +14 -0
- package/template/.speculo/kernel/README.md +10 -0
- package/template/.speculo/kernel/capability-profile.schema.json +14 -0
- package/template/.speculo/kernel/checkpoint.schema.json +7 -0
- package/template/.speculo/kernel/trace-event.schema.json +8 -0
- package/template/.speculo/kernel/workflow-manifest.schema.json +13 -0
- package/template/.speculo/kernel.json +10 -0
- package/template/.speculo/refresh-contract.json +4 -1
- package/template/AGENTS.md +11 -3
- package/template/canonical/canonical-specdev-goal-plan.md +10 -1
- package/template/canonical/canonical-specdev-grill-with-docs.md +7 -0
- package/template/canonical/canonical-specdev-orchestrate-implementation.md +18 -2
- package/template/canonical/canonical-specdev-spec.md +7 -0
- package/template/canonical/canonical-specdev-tickets.md +13 -6
- package/template/canonical/canonical-specdev-wayfinder.md +7 -0
- package/template/commands/archive-and-consolidate.md +13 -41
- package/template/commands/docs-sync.md +1 -1
- package/template/commands/git-repository-audit.md +1 -1
- package/template/commands/handoff.md +1 -1
- package/template/commands/retro.md +1 -1
- package/template/commands/status.md +4 -4
- package/template/skills/archive-and-consolidate/SKILL.md +9 -168
- package/template/skills/archive-and-consolidate/references/entry-procedure.md +170 -0
- package/template/skills/docs-sync/SKILL.md +9 -11
- package/template/skills/docs-sync/references/entry-procedure.md +18 -0
- package/template/skills/engineering-standards-builder/SKILL.md +9 -148
- package/template/skills/engineering-standards-builder/references/entry-procedure.md +154 -0
- package/template/skills/git-history-squash/SKILL.md +9 -88
- package/template/skills/git-history-squash/references/entry-procedure.md +94 -0
- package/template/skills/github-npm-ops/SKILL.md +9 -18
- package/template/skills/github-npm-ops/references/entry-procedure.md +25 -0
- package/template/skills/optimize-codex-config/SKILL.md +12 -72
- package/template/skills/optimize-codex-config/references/entry-procedure.md +78 -0
- package/template/skills/source-code-zip/SKILL.md +10 -559
- package/template/skills/source-code-zip/references/entry-procedure.md +565 -0
- package/template/skills/speculo-retro/SKILL.md +9 -16
- package/template/skills/speculo-retro/references/entry-procedure.md +23 -0
- package/template/skills/upstream-fork-sync/SKILL.md +10 -72
- package/template/skills/upstream-fork-sync/references/entry-procedure.md +78 -0
- package/template/skills/writing-great-skills/SKILL.md +9 -73
- package/template/skills/writing-great-skills/references/entry-procedure.md +79 -0
- package/template/workflows/learning/A-archive/A-archive.md +32 -0
- package/template/workflows/learning/A-assess-and-plan/A-assess-and-plan.md +23 -22
- package/template/workflows/learning/A-assess-and-plan/background-template.md +13 -0
- package/template/workflows/learning/A-assess-and-plan/change-status-template.json +21 -14
- package/template/workflows/learning/A-assess-and-plan/course-template.md +28 -0
- package/template/workflows/learning/C-consolidate/C-consolidate.md +40 -0
- package/template/workflows/learning/H-homework/H-homework.md +38 -0
- package/template/workflows/learning/H-homework/homework-template.md +63 -0
- package/template/workflows/learning/I-init-setup/I-init-setup.md +20 -18
- package/template/workflows/learning/I-init-setup/context-index-template.md +3 -3
- package/template/workflows/learning/I-init-setup/learner-profile-template.md +12 -10
- package/template/workflows/learning/I-init-setup/review-index-template.md +1 -1
- package/template/workflows/learning/INDEX.md +8 -8
- package/template/workflows/learning/L-lesson/L-lesson.md +39 -0
- package/template/workflows/learning/L-lesson/lesson-template.md +51 -0
- package/template/workflows/learning/R-review/R-review.md +19 -17
- package/template/workflows/learning/R-review/review-template.md +13 -6
- package/template/workflows/learning/README.md +88 -81
- package/template/workflows/learning/_state/status.json +1 -1
- package/template/workflows/learning/common/rules/activation-and-memory.md +20 -0
- package/template/workflows/learning/common/rules/artifact-contract.md +11 -25
- package/template/workflows/learning/common/rules/assessment-policy.md +9 -4
- package/template/workflows/learning/common/rules/knowledge-organization.md +4 -6
- package/template/workflows/learning/common/rules/mastery-policy.md +3 -19
- package/template/workflows/learning/common/rules/path-reference-contract.md +3 -5
- package/template/workflows/learning/common/rules/teaching-policy.md +9 -9
- package/template/workflows/learning/common/schemas/change-status.schema.json +46 -18
- package/template/workflows/learning/common/schemas/status.schema.json +25 -24
- package/template/workflows/learning/common/skills/topic-synthesis/SKILL.md +17 -0
- package/template/workflows/learning/common/skills/topic-synthesis/claim-template.md +15 -0
- package/template/workflows/learning/common/tools/relocate-learning.mjs +208 -0
- package/template/workflows/learning/common/tools/validate-learning.mjs +195 -297
- package/template/workflows/learning/manifest.json +1 -0
- package/template/workflows/learning/runtime-contract.json +3 -2
- package/template/workflows/ops/A-archive-and-learn/A-archive-and-learn.md +7 -0
- package/template/workflows/ops/E-execute-and-stabilize/E-execute-and-stabilize.md +8 -1
- package/template/workflows/ops/I-intake-and-assess/I-intake-and-assess.md +7 -0
- package/template/workflows/ops/INDEX.md +2 -0
- package/template/workflows/ops/P-plan-and-approve/P-plan-and-approve.md +8 -1
- package/template/workflows/ops/README.md +3 -0
- package/template/workflows/ops/common/rules/activation-and-memory.md +20 -0
- package/template/workflows/ops/manifest.json +1 -0
- package/template/workflows/person/INDEX.md +2 -0
- package/template/workflows/person/M-mao-zedong-cognitive-os/M-mao-zedong-cognitive-os.md +9 -0
- package/template/workflows/person/M-mao-zedong-cognitive-os/books/README.md +1 -1
- package/template/workflows/person/S-steelman-deliberation/S-steelman-deliberation.md +7 -0
- package/template/workflows/person/common/rules/activation-and-memory.md +20 -0
- package/template/workflows/person/manifest.json +1 -0
- package/template/workflows/specdev/A-archive-and-consolidate/A-archive-and-consolidate.md +7 -0
- package/template/workflows/specdev/C-code-review/C-code-review.md +7 -0
- package/template/workflows/specdev/D-diagnose-bugs/D-diagnose-bugs.md +7 -0
- package/template/workflows/specdev/G-grill-with-docs/G-grill-with-docs.md +7 -0
- package/template/workflows/specdev/I-implement/I-implement.md +7 -0
- package/template/workflows/specdev/I-implement/execution-preflight.md +1 -1
- package/template/workflows/specdev/I-init-setup/I-init-setup.md +7 -0
- package/template/workflows/specdev/INDEX.md +2 -0
- package/template/workflows/specdev/L-learn-change/L-learn-change.md +7 -0
- package/template/workflows/specdev/O-orchestrate-implementation/O-orchestrate-implementation.md +10 -1
- package/template/workflows/specdev/P-goal-plan/P-goal-plan.md +10 -1
- package/template/workflows/specdev/P-prototype/P-prototype.md +7 -0
- package/template/workflows/specdev/R-review-architecture/R-review-architecture.md +7 -0
- package/template/workflows/specdev/README.md +3 -0
- package/template/workflows/specdev/S-spec/S-spec.md +7 -0
- package/template/workflows/specdev/T-tickets/T-tickets.md +10 -3
- package/template/workflows/specdev/T-tickets/ticket-template.md +2 -2
- package/template/workflows/specdev/T-tickets/tickets-map-template.md +1 -1
- package/template/workflows/specdev/T-triage/T-triage.md +7 -0
- package/template/workflows/specdev/W-wayfinder/W-wayfinder.md +7 -0
- package/template/workflows/specdev/common/README.md +1 -0
- package/template/workflows/specdev/common/rules/activation-and-memory.md +20 -0
- package/template/workflows/specdev/manifest.json +1 -0
- package/template/workflows/workflow-manifest.schema.json +14 -0
- package/template/workflows/learning/A-archive-and-consolidate/A-archive-and-consolidate.md +0 -38
- package/template/workflows/learning/A-archive-and-consolidate/promotion-plan-template.md +0 -23
- package/template/workflows/learning/A-assess-and-plan/learning-plan-template.md +0 -28
- package/template/workflows/learning/E-eli5/E-eli5.md +0 -37
- package/template/workflows/learning/E-eli5/lesson-template.md +0 -31
- package/template/workflows/learning/P-practice/P-practice.md +0 -34
- package/template/workflows/learning/P-practice/practice-template.md +0 -16
- package/template/workflows/learning/Q-quiz/Q-quiz.md +0 -34
- package/template/workflows/learning/Q-quiz/quiz-artifact-template.md +0 -16
- package/template/workflows/learning/common/skills/knowledge-promotion/SKILL.md +0 -46
- package/template/workflows/learning/common/skills/knowledge-promotion/domain-index-template.md +0 -6
- package/template/workflows/learning/common/skills/knowledge-promotion/domain-overview-template.md +0 -19
- package/template/workflows/learning/common/skills/knowledge-promotion/knowledge-template.md +0 -25
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @namewta/speculo
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> Provider-neutral, resumable AI collaboration workflows with state-safe refresh tooling.
|
|
4
4
|
|
|
5
5
|
Speculo packages AI coding workflows as installable assets — commands, skills, workflow packages — delivered into any project via a unified CLI.
|
|
6
6
|
|
|
@@ -23,16 +23,19 @@ After initialization, the target project's `speculo/` directory contains all cor
|
|
|
23
23
|
npm install -g @namewta/speculo
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
Requires: Node.js ≥ 22.22.3
|
|
26
|
+
Requires: Node.js ≥ 22.22.3 and < 25
|
|
27
27
|
|
|
28
28
|
## Commands
|
|
29
29
|
|
|
30
30
|
| Command | Description |
|
|
31
31
|
|---|---|
|
|
32
|
-
| `speculo` / `speculo init [target]` | Initialize or refresh Speculo
|
|
32
|
+
| `speculo` / `speculo init [target]` | Initialize or refresh a Speculo 1.0 runtime. 0.x installations are intentionally incompatible and must be removed or renamed first. |
|
|
33
33
|
| `speculo version` | Print the installed version and check npm for the latest release. |
|
|
34
|
+
| `speculo doctor [target]` | Read-only validation of the kernel, manifest and runtime installation. |
|
|
34
35
|
|
|
35
|
-
Legacy CLI commands
|
|
36
|
+
Legacy CLI commands and 0.x migration paths are removed. The CLI exposes `init`, `version`, and read-only `doctor`.
|
|
37
|
+
|
|
38
|
+
Initialization updates only a controlled persistent-knowledge block in project `AGENTS.md` for the selected workflows. The block contains references to promoted knowledge paths and explicitly remains lazy: it does not activate a workflow, create a Change, or execute a Work. A missing `CLAUDE.md` is created as a fixed redirect to `AGENTS.md`; existing handbook content is preserved.
|
|
36
39
|
|
|
37
40
|
## Installed Runtime Assets
|
|
38
41
|
|
|
@@ -64,12 +67,13 @@ After initialization, the target project gains the following AI agent-callable a
|
|
|
64
67
|
| `engineering-standards-builder` | Interview-driven generator that produces a project-specific TypeScript/JS/React/Node standards skill |
|
|
65
68
|
| `writing-great-skills` | Authoring guidance for agent skills |
|
|
66
69
|
|
|
67
|
-
###
|
|
70
|
+
### 4 Workflow Packages
|
|
68
71
|
|
|
69
72
|
| Workflow | Work Entries | Description |
|
|
70
73
|
|---|---:|---|
|
|
71
|
-
| **learning** | 7 | Evidence-
|
|
72
|
-
| **specdev** |
|
|
74
|
+
| **learning** | 7 | Evidence-aware learning for projects, products, subjects, languages, and skills: complete 30–40 minute plain-language lessons, single-file homework review, optional retention review, and provenance-preserving topic synthesis |
|
|
75
|
+
| **specdev** | 15 | Local-first specification-driven development: archive, code review, diagnosis, grilling, implementation, setup, goal planning, prototyping, architecture review, specs, tickets, triage, and wayfinding |
|
|
76
|
+
| **ops** | 4 | Operations assessment, approval, execution, verification, and archival knowledge |
|
|
73
77
|
| **person** | 2 | Persona-methodology and rigorous deliberation workflows (Mao Zedong Cognitive OS; Bidirectional Steelman Deliberation) |
|
|
74
78
|
|
|
75
79
|
Every workflow ships an `INDEX.md` as its auto-generated work catalog. Work entries follow `<Letter>-<work_name>/<Letter>-<work_name>.md` naming with progressive-disclosure sub-files, and resolve runtime paths via `<Path>{roots.xxx}/...</Path>` pointers in `workspace.json`.
|
package/dist/src/cli.js
CHANGED
|
@@ -4,6 +4,7 @@ import { fileURLToPath } from "node:url";
|
|
|
4
4
|
import { initSpeculo } from "./index.js";
|
|
5
5
|
import { RefreshBlockedError } from "./refresh.js";
|
|
6
6
|
import { checkForUpdate, formatVersionBanner } from "./version.js";
|
|
7
|
+
import { doctorSpeculo } from "./doctor.js";
|
|
7
8
|
const REMOVED_COMMANDS = new Set(["migrate", "mirror-skills", "update"]);
|
|
8
9
|
const REMOVED_OPTIONS = new Set(["--all", "--apply", "--dry-run"]);
|
|
9
10
|
function usage() {
|
|
@@ -11,10 +12,12 @@ function usage() {
|
|
|
11
12
|
"Usage:",
|
|
12
13
|
" speculo [init] [target]",
|
|
13
14
|
" speculo version",
|
|
15
|
+
" speculo doctor [target]",
|
|
14
16
|
"",
|
|
15
17
|
"Commands:",
|
|
16
18
|
" init Install or directly refresh Speculo assets and selected workflow packages.",
|
|
17
19
|
" version Print the current Speculo version and check for updates.",
|
|
20
|
+
" doctor Validate an installed Speculo 1.0 runtime (read-only).",
|
|
18
21
|
].join("\n");
|
|
19
22
|
}
|
|
20
23
|
function isInteractive() {
|
|
@@ -56,6 +59,14 @@ async function main(argv) {
|
|
|
56
59
|
await showVersionWithCheck(packageRoot, packageName);
|
|
57
60
|
return 0;
|
|
58
61
|
}
|
|
62
|
+
if (command === "doctor") {
|
|
63
|
+
if (rest.length > 1)
|
|
64
|
+
throw new Error("speculo doctor accepts at most one target.");
|
|
65
|
+
const result = await doctorSpeculo(rest[0] ?? ".");
|
|
66
|
+
for (const check of result.checks)
|
|
67
|
+
console.log(`${check.ok ? "ok" : "fail"} ${check.id}: ${check.message}`);
|
|
68
|
+
return result.healthy ? 0 : 2;
|
|
69
|
+
}
|
|
59
70
|
const targetArg = command === "init" ? rest[0] : command;
|
|
60
71
|
const extra = command === "init" ? rest[1] : rest[0];
|
|
61
72
|
if (extra)
|
|
@@ -75,7 +86,7 @@ async function main(argv) {
|
|
|
75
86
|
result.refresh.config.updated + " updated, " + result.refresh.config.preserved + " preserved, " +
|
|
76
87
|
result.refresh.config.removed + " removed");
|
|
77
88
|
if (result.refresh.structuredUpgrades > 0)
|
|
78
|
-
console.log("
|
|
89
|
+
console.log(" reconciled " + result.refresh.structuredUpgrades + " structured state files");
|
|
79
90
|
if (result.refresh.backupPath)
|
|
80
91
|
console.log(" retained targeted backup " + result.refresh.backupPath);
|
|
81
92
|
for (const asset of result.assets.filter((asset) => asset.startsWith(".gitignore") || asset.startsWith("AGENTS") || asset.startsWith("CLAUDE"))) {
|
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAoB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAoB,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC;AACzE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;AAEnE,SAAS,KAAK;IACZ,OAAO;QACL,QAAQ;QACR,2BAA2B;QAC3B,mBAAmB;QACnB,2BAA2B;QAC3B,EAAE;QACF,WAAW;QACX,wFAAwF;QACxF,sEAAsE;QACtE,oEAAoE;KACrE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,WAAmB,EAAE,WAAmB;IAC1E,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;IACvC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,eAAe;IAC5B,IAAI,CAAC,aAAa,EAAE;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACtD,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAc;IAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtE,IAAI,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,kEAAkE,CAAC,CAAC;AAC3G,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,IAAc;IAChC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QACrB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAChC,IAAI,OAAO,IAAI,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,kEAAkE,CAAC,CAAC;QACzG,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC;QACH,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC9E,MAAM,WAAW,GAAG,kBAAkB,CAAC;QACvC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YACnF,MAAM,oBAAoB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YACrD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YACnF,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YACnD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM;gBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5G,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACzD,MAAM,KAAK,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrD,IAAI,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,KAAK,CAAC,CAAC;QAC5D,IAAI,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;QAEhF,MAAM,oBAAoB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACrD,IAAI,CAAC,CAAC,MAAM,eAAe,EAAE,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,SAAS,IAAI,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1H,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,GAAG,gBAAgB,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,GAAG,gBAAgB,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,CACT,uBAAuB,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,UAAU;YAClE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,cAAc;YAC/F,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,UAAU,CAC3C,CAAC;QACF,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,GAAG,yBAAyB,CAAC,CAAC;QACxI,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU;YAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACtG,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YAChJ,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7B,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ;gBAAE,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;YACvH,OAAO,CAAC,CAAC;QACX,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,OAAO,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { join, resolve } from "node:path";
|
|
3
|
+
import { pathExists } from "./utils.js";
|
|
4
|
+
async function json(path) {
|
|
5
|
+
return JSON.parse(await readFile(path, "utf8"));
|
|
6
|
+
}
|
|
7
|
+
function record(value) {
|
|
8
|
+
return value !== null && typeof value === "object" && !Array.isArray(value)
|
|
9
|
+
? value
|
|
10
|
+
: null;
|
|
11
|
+
}
|
|
12
|
+
async function checkJson(checks, root, id, predicate, message) {
|
|
13
|
+
try {
|
|
14
|
+
const value = record(await json(join(root, id)));
|
|
15
|
+
const ok = value !== null && predicate(value);
|
|
16
|
+
checks.push({ id: id + "-contract", ok, message: ok ? message : "invalid contract" });
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
checks.push({ id: id + "-contract", ok: false, message: "invalid JSON" });
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export async function doctorSpeculo(targetArg = ".") {
|
|
23
|
+
const target = resolve(targetArg);
|
|
24
|
+
const root = join(target, "speculo");
|
|
25
|
+
const checks = [];
|
|
26
|
+
const required = [".speculo/workspace.json", ".speculo/install.json", ".speculo/managed.json", ".speculo/kernel.json", ".speculo/capabilities.json", "config.json"];
|
|
27
|
+
for (const item of required)
|
|
28
|
+
checks.push({ id: item, ok: await pathExists(join(root, item)), message: (await pathExists(join(root, item))) ? "present" : "missing" });
|
|
29
|
+
const installCheck = checks.find((check) => check.id === ".speculo/install.json");
|
|
30
|
+
if (installCheck?.ok) {
|
|
31
|
+
try {
|
|
32
|
+
const install = await json(join(root, ".speculo/install.json"));
|
|
33
|
+
const ok = install.schema_version === 3 && typeof install.package_version === "string" && String(install.package_version).startsWith("1.");
|
|
34
|
+
checks.push({ id: "install-contract", ok, message: ok ? "Speculo 1.x manifest" : "legacy or invalid manifest" });
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
checks.push({ id: "install-contract", ok: false, message: "invalid JSON" });
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const managedCheck = checks.find((check) => check.id === ".speculo/managed.json");
|
|
41
|
+
if (managedCheck?.ok) {
|
|
42
|
+
try {
|
|
43
|
+
const managed = await json(join(root, ".speculo/managed.json"));
|
|
44
|
+
const ok = managed.schema_version === 2 && Array.isArray(managed.files);
|
|
45
|
+
checks.push({ id: "managed-contract", ok, message: ok ? "managed manifest valid" : "invalid managed manifest" });
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
checks.push({ id: "managed-contract", ok: false, message: "invalid JSON" });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (checks.find((check) => check.id === ".speculo/workspace.json")?.ok) {
|
|
52
|
+
await checkJson(checks, root, ".speculo/workspace.json", (value) => value.schema_version === 1 && record(value.roots) !== null, "workspace contract valid");
|
|
53
|
+
}
|
|
54
|
+
if (checks.find((check) => check.id === ".speculo/kernel.json")?.ok) {
|
|
55
|
+
await checkJson(checks, root, ".speculo/kernel.json", (value) => value.schema_version === 1 && Array.isArray(value.change_lifecycle) && Array.isArray(value.risk_classes), "runtime kernel contract valid");
|
|
56
|
+
}
|
|
57
|
+
if (checks.find((check) => check.id === ".speculo/capabilities.json")?.ok) {
|
|
58
|
+
await checkJson(checks, root, ".speculo/capabilities.json", (value) => {
|
|
59
|
+
const model = record(value.model);
|
|
60
|
+
const tools = record(value.tools);
|
|
61
|
+
return value.schema_version === 1 && model !== null && typeof model.id === "string" && Number.isFinite(model.context_window) && tools !== null && Array.isArray(tools.classes);
|
|
62
|
+
}, "capability profile valid");
|
|
63
|
+
}
|
|
64
|
+
const checkpointRoot = join(root, ".speculo", "context");
|
|
65
|
+
if (await pathExists(checkpointRoot)) {
|
|
66
|
+
checks.push({ id: "context-checkpoints", ok: true, message: "context directory present" });
|
|
67
|
+
}
|
|
68
|
+
return { target, healthy: checks.every((check) => check.ok), checks };
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -8,9 +8,12 @@ const CORE_ASSETS = [".speculo", "commands", "skills", "config.json"];
|
|
|
8
8
|
const INSTALL_SUBDIR = "speculo";
|
|
9
9
|
const WORKFLOW_ENTRY = "INDEX.md";
|
|
10
10
|
const STATE_TEMPLATE_DIR = "_state";
|
|
11
|
-
const SPECULO_TAG_RE = /<SPECULO>[\s\S]*?<\/SPECULO>/;
|
|
12
11
|
const SPECDEV_WORKTREE_IGNORE = "specdev-worktree/";
|
|
13
12
|
const SPECULO_BACKUP_IGNORE = "speculo/.speculo/back/";
|
|
13
|
+
const KNOWLEDGE_START = "<!-- SPECULO-PERSISTENT-KNOWLEDGE:START -->";
|
|
14
|
+
const KNOWLEDGE_END = "<!-- SPECULO-PERSISTENT-KNOWLEDGE:END -->";
|
|
15
|
+
const LEGACY_SPECULO_BLOCK = /<SPECULO>[\s\S]*?<\/SPECULO>/g;
|
|
16
|
+
const KNOWLEDGE_BLOCK = /<!-- SPECULO-PERSISTENT-KNOWLEDGE:START -->[\s\S]*?<!-- SPECULO-PERSISTENT-KNOWLEDGE:END -->/g;
|
|
14
17
|
function assetRoot(packageRoot) {
|
|
15
18
|
return join(packageRoot, "template");
|
|
16
19
|
}
|
|
@@ -60,63 +63,74 @@ async function ensureRuntimeIgnores(target, root) {
|
|
|
60
63
|
await writeFile(ignorePath, content, "utf8");
|
|
61
64
|
return ".gitignore (updated runtime ignores)";
|
|
62
65
|
}
|
|
63
|
-
function
|
|
66
|
+
async function readPersistentKnowledge(packageRoot, workflowIds) {
|
|
67
|
+
const references = [];
|
|
68
|
+
for (const workflowId of workflowIds) {
|
|
69
|
+
const manifestPath = join(assetRoot(packageRoot), "workflows", workflowId, "manifest.json");
|
|
70
|
+
let manifest;
|
|
71
|
+
try {
|
|
72
|
+
manifest = JSON.parse(await readFile(manifestPath, "utf8"));
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
throw new Error("Invalid workflow manifest: " + manifestPath + " (" + String(error) + ")");
|
|
76
|
+
}
|
|
77
|
+
if (manifest === null || typeof manifest !== "object" || Array.isArray(manifest)) {
|
|
78
|
+
throw new Error("Invalid workflow manifest object: " + manifestPath);
|
|
79
|
+
}
|
|
80
|
+
const knowledge = manifest.persistent_knowledge;
|
|
81
|
+
if (knowledge === undefined)
|
|
82
|
+
continue;
|
|
83
|
+
if (!Array.isArray(knowledge) || knowledge.some((path) => typeof path !== "string")) {
|
|
84
|
+
throw new Error("workflow manifest persistent_knowledge must be a string array: " + workflowId);
|
|
85
|
+
}
|
|
86
|
+
for (const path of knowledge) {
|
|
87
|
+
if (!/^<Path>\{roots\.state\}\/[^<]+<\/Path>$/.test(path) || path.includes("workflows/") || path.includes("_state/") || path.includes("/changes/") || path.includes("/archive/")) {
|
|
88
|
+
throw new Error("Unsafe workflow manifest persistent_knowledge path: " + workflowId + " -> " + path);
|
|
89
|
+
}
|
|
90
|
+
references.push({ workflow: workflowId, path });
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return references;
|
|
94
|
+
}
|
|
95
|
+
function renderKnowledgeBlock(references) {
|
|
96
|
+
if (references.length === 0)
|
|
97
|
+
return "";
|
|
64
98
|
const lines = [
|
|
65
|
-
|
|
99
|
+
KNOWLEDGE_START,
|
|
100
|
+
"## Speculo 永久知识",
|
|
66
101
|
"",
|
|
67
|
-
"
|
|
68
|
-
"",
|
|
69
|
-
"运行时必须读取以下文件以确认 Speculo 初始化状态:",
|
|
70
|
-
"",
|
|
71
|
-
"- ./speculo/.speculo/workspace.json — 工作区根别名配置",
|
|
72
|
-
"- ./speculo/config.json — 项目配置文件",
|
|
73
|
-
"",
|
|
74
|
-
"若上述文件不存在或内容为空,说明项目尚未完成 Speculo 初始化。",
|
|
75
|
-
"此时必须提示用户:请先运行 speculo init 完成初始化配置。",
|
|
76
|
-
"",
|
|
77
|
-
"`speculo init` 会直接替换受管理静态资产,并依据 refresh contract 保留用户 runtime state、合并持久配置。",
|
|
78
|
-
"结构化状态不兼容时初始化会在替换前停止,当前安装保持不变。",
|
|
102
|
+
"以下路径只在当前任务相关时按需读取,不会自动激活 workflow 或 Work:",
|
|
79
103
|
"",
|
|
80
104
|
];
|
|
81
|
-
|
|
82
|
-
lines.push("
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
lines.push("");
|
|
87
|
-
}
|
|
88
|
-
return "<SPECULO>\n" + lines.join("\n") + "</SPECULO>";
|
|
105
|
+
for (const reference of references)
|
|
106
|
+
lines.push("- " + reference.workflow + ":" + reference.path);
|
|
107
|
+
lines.push(KNOWLEDGE_END);
|
|
108
|
+
return lines.join("\n");
|
|
89
109
|
}
|
|
90
|
-
|
|
110
|
+
function updateAgentsContent(content, references) {
|
|
111
|
+
const next = content.replace(LEGACY_SPECULO_BLOCK, "").replace(KNOWLEDGE_BLOCK, "");
|
|
112
|
+
const block = renderKnowledgeBlock(references);
|
|
113
|
+
if (!block)
|
|
114
|
+
return next;
|
|
115
|
+
if (!next)
|
|
116
|
+
return block + "\n";
|
|
117
|
+
const separator = next.endsWith("\n\n") ? "" : next.endsWith("\n") ? "\n" : "\n\n";
|
|
118
|
+
return next + separator + block + "\n";
|
|
119
|
+
}
|
|
120
|
+
async function writeAgentFiles(target, references) {
|
|
91
121
|
const written = [];
|
|
92
|
-
const speculoBlock = generateSpeculoContent(selection);
|
|
93
|
-
const claudePath = join(target, "CLAUDE.md");
|
|
94
|
-
if (!(await pathExists(claudePath))) {
|
|
95
|
-
const claudeTemplate = join(assetRoot(packageRoot), "CLAUDE.md");
|
|
96
|
-
if (await pathExists(claudeTemplate)) {
|
|
97
|
-
await cp(claudeTemplate, claudePath);
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
await writeFile(claudePath, "# CLAUDE.md\n\n必须查看 [@AGENTS.md](./AGENTS.md) 文档,按照 Speculo 规范进行开发。\n", "utf8");
|
|
101
|
-
}
|
|
102
|
-
written.push("CLAUDE.md");
|
|
103
|
-
}
|
|
104
122
|
const agentsPath = join(target, "AGENTS.md");
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
await writeFile(agentsPath,
|
|
110
|
-
written.push(
|
|
123
|
+
const hadAgents = await pathExists(agentsPath);
|
|
124
|
+
const beforeAgents = hadAgents ? await readFile(agentsPath, "utf8") : "";
|
|
125
|
+
const afterAgents = updateAgentsContent(hadAgents ? beforeAgents : "# AGENTS.md\n", references);
|
|
126
|
+
if (!hadAgents || afterAgents !== beforeAgents) {
|
|
127
|
+
await writeFile(agentsPath, afterAgents, "utf8");
|
|
128
|
+
written.push(hadAgents ? "AGENTS.md (updated persistent knowledge)" : "AGENTS.md (created persistent knowledge)");
|
|
111
129
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
: Promise.resolve("# AGENTS.md\n\n<SPECULO>\n</SPECULO>\n"));
|
|
117
|
-
content = content.replace(SPECULO_TAG_RE, speculoBlock);
|
|
118
|
-
await writeFile(agentsPath, content, "utf8");
|
|
119
|
-
written.push("AGENTS.md");
|
|
130
|
+
const claudePath = join(target, "CLAUDE.md");
|
|
131
|
+
if (!(await pathExists(claudePath))) {
|
|
132
|
+
await writeFile(claudePath, "# CLAUDE.md\n\nSpeculo agent handbook: see [AGENTS.md](./AGENTS.md).\n", "utf8");
|
|
133
|
+
written.push("CLAUDE.md (created redirect)");
|
|
120
134
|
}
|
|
121
135
|
return written;
|
|
122
136
|
}
|
|
@@ -194,7 +208,26 @@ async function buildStagedInstall(packageRoot, target, previousRoot, catalog, se
|
|
|
194
208
|
throw error;
|
|
195
209
|
}
|
|
196
210
|
}
|
|
197
|
-
async function
|
|
211
|
+
async function snapshotExternalFiles(target) {
|
|
212
|
+
const snapshots = [];
|
|
213
|
+
for (const name of [".gitignore", "AGENTS.md", "CLAUDE.md"]) {
|
|
214
|
+
const path = join(target, name);
|
|
215
|
+
if (await pathExists(path))
|
|
216
|
+
snapshots.push({ path, existed: true, content: await readFile(path) });
|
|
217
|
+
else
|
|
218
|
+
snapshots.push({ path, existed: false });
|
|
219
|
+
}
|
|
220
|
+
return snapshots;
|
|
221
|
+
}
|
|
222
|
+
async function restoreExternalFiles(snapshots) {
|
|
223
|
+
for (const snapshot of snapshots) {
|
|
224
|
+
if (snapshot.existed)
|
|
225
|
+
await writeFile(snapshot.path, snapshot.content ?? Buffer.alloc(0));
|
|
226
|
+
else
|
|
227
|
+
await rm(snapshot.path, { force: true });
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
async function replaceInstall(stagedRoot, root, finalize) {
|
|
198
231
|
const expectedFingerprint = await fingerprintTree(stagedRoot);
|
|
199
232
|
if (!(await pathExists(root))) {
|
|
200
233
|
await rename(stagedRoot, root);
|
|
@@ -202,6 +235,13 @@ async function replaceInstall(stagedRoot, root) {
|
|
|
202
235
|
await rename(root, stagedRoot);
|
|
203
236
|
throw new Error("post-install validation failed");
|
|
204
237
|
}
|
|
238
|
+
try {
|
|
239
|
+
await finalize?.();
|
|
240
|
+
}
|
|
241
|
+
catch (error) {
|
|
242
|
+
await rm(root, { recursive: true, force: true });
|
|
243
|
+
throw error;
|
|
244
|
+
}
|
|
205
245
|
return;
|
|
206
246
|
}
|
|
207
247
|
const backupRoot = stagedRoot + "-backup";
|
|
@@ -210,6 +250,7 @@ async function replaceInstall(stagedRoot, root) {
|
|
|
210
250
|
await rename(stagedRoot, root);
|
|
211
251
|
if (await fingerprintTree(root) !== expectedFingerprint)
|
|
212
252
|
throw new Error("post-install validation failed");
|
|
253
|
+
await finalize?.();
|
|
213
254
|
}
|
|
214
255
|
catch (error) {
|
|
215
256
|
try {
|
|
@@ -258,13 +299,21 @@ export async function initSpeculo(targetArg = ".", options = {}) {
|
|
|
258
299
|
message: "the active installation changed while refresh staging was in progress",
|
|
259
300
|
}]);
|
|
260
301
|
}
|
|
261
|
-
await replaceInstall(stagedRoot, root);
|
|
262
|
-
stagedRoot = undefined;
|
|
263
302
|
const assets = [".speculo", "config.json", "commands", "skills"];
|
|
264
303
|
assets.push(...selection.workflowIds.map((workflowId) => "workflows/" + workflowId));
|
|
265
|
-
const
|
|
266
|
-
|
|
267
|
-
|
|
304
|
+
const references = await readPersistentKnowledge(packageRoot, selection.workflowIds);
|
|
305
|
+
const externalSnapshot = await snapshotExternalFiles(target);
|
|
306
|
+
await replaceInstall(stagedRoot, root, async () => {
|
|
307
|
+
try {
|
|
308
|
+
assets.push(await ensureRuntimeIgnores(target, root));
|
|
309
|
+
assets.push(...await writeAgentFiles(target, references));
|
|
310
|
+
}
|
|
311
|
+
catch (error) {
|
|
312
|
+
await restoreExternalFiles(externalSnapshot);
|
|
313
|
+
throw error;
|
|
314
|
+
}
|
|
315
|
+
});
|
|
316
|
+
stagedRoot = undefined;
|
|
268
317
|
if (!refresh)
|
|
269
318
|
throw new Error("Speculo refresh result was not produced");
|
|
270
319
|
return { target, mode: existed ? "refresh" : "init", assets, refresh };
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
export type ChangeLifecycle = "draft" | "active" | "blocked" | "awaiting_user" | "completed" | "archived" | "cancelled";
|
|
2
|
+
export type RiskClass = "read-only" | "local-reversible" | "local-destructive" | "external-mutation" | "production-critical";
|
|
3
|
+
export type ToolEffect = RiskClass;
|
|
4
|
+
export type DispatchTransport = "native" | "mounted-workspace" | "mcp" | "sandbox" | "archive";
|
|
5
|
+
export type DispatchEnvelope = {
|
|
6
|
+
schema_version: 1;
|
|
7
|
+
change_id: string;
|
|
8
|
+
workflow: string;
|
|
9
|
+
stage: string;
|
|
10
|
+
transport: DispatchTransport;
|
|
11
|
+
required_capabilities: Partial<{
|
|
12
|
+
context_window: number;
|
|
13
|
+
sandbox: boolean;
|
|
14
|
+
network: boolean;
|
|
15
|
+
parallel: boolean;
|
|
16
|
+
programmatic: boolean;
|
|
17
|
+
}>;
|
|
18
|
+
input_artifacts: string[];
|
|
19
|
+
output_artifacts: string[];
|
|
20
|
+
risk: RiskClass;
|
|
21
|
+
};
|
|
22
|
+
export type ToolInvocation = {
|
|
23
|
+
name: string;
|
|
24
|
+
effect: ToolEffect;
|
|
25
|
+
intent: string;
|
|
26
|
+
parameters_digest: string;
|
|
27
|
+
result: "succeeded" | "failed" | "blocked";
|
|
28
|
+
postcondition: string;
|
|
29
|
+
provenance: string[];
|
|
30
|
+
};
|
|
31
|
+
export type CapabilityProfile = {
|
|
32
|
+
schema_version: 1;
|
|
33
|
+
model: {
|
|
34
|
+
id: string;
|
|
35
|
+
provider?: string;
|
|
36
|
+
modalities: string[];
|
|
37
|
+
context_window: number;
|
|
38
|
+
max_output: number;
|
|
39
|
+
reasoning_levels: string[];
|
|
40
|
+
};
|
|
41
|
+
tools: {
|
|
42
|
+
classes: string[];
|
|
43
|
+
parallel: boolean;
|
|
44
|
+
programmatic: boolean;
|
|
45
|
+
};
|
|
46
|
+
execution: {
|
|
47
|
+
sandbox: boolean;
|
|
48
|
+
network: boolean;
|
|
49
|
+
filesystem_roots: string[];
|
|
50
|
+
data_retention: "none" | "session" | "persistent";
|
|
51
|
+
};
|
|
52
|
+
memory: {
|
|
53
|
+
compaction: boolean;
|
|
54
|
+
persistent: boolean;
|
|
55
|
+
cache: boolean;
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
export type WorkflowManifest = {
|
|
59
|
+
schema_version: 1;
|
|
60
|
+
id: string;
|
|
61
|
+
version: string;
|
|
62
|
+
stages: Array<{
|
|
63
|
+
id: string;
|
|
64
|
+
after: string[];
|
|
65
|
+
inputs: string[];
|
|
66
|
+
outputs: string[];
|
|
67
|
+
risk: RiskClass;
|
|
68
|
+
context_budget: number;
|
|
69
|
+
}>;
|
|
70
|
+
};
|
|
71
|
+
export type ContextCheckpoint = {
|
|
72
|
+
schema_version: 1;
|
|
73
|
+
change_id: string;
|
|
74
|
+
stage: string;
|
|
75
|
+
locked_decisions: string[];
|
|
76
|
+
open_questions: string[];
|
|
77
|
+
next_action: string;
|
|
78
|
+
evidence: string[];
|
|
79
|
+
state_digest: string;
|
|
80
|
+
created_at: string;
|
|
81
|
+
};
|
|
82
|
+
export type TraceEvent = {
|
|
83
|
+
schema_version: 1;
|
|
84
|
+
sequence: number;
|
|
85
|
+
at: string;
|
|
86
|
+
kind: "capability" | "context" | "tool" | "transition" | "approval" | "evidence";
|
|
87
|
+
payload: Record<string, unknown>;
|
|
88
|
+
};
|
|
89
|
+
export declare function assertCapability(profile: CapabilityProfile, requirements: Partial<{
|
|
90
|
+
context_window: number;
|
|
91
|
+
sandbox: boolean;
|
|
92
|
+
network: boolean;
|
|
93
|
+
parallel: boolean;
|
|
94
|
+
programmatic: boolean;
|
|
95
|
+
}>): void;
|
|
96
|
+
export declare function assertTransition(from: ChangeLifecycle, to: ChangeLifecycle): void;
|
|
97
|
+
export declare function riskRequiresApproval(risk: RiskClass): boolean;
|
|
98
|
+
export declare function assertToolEffect(effect: ToolEffect, risk: RiskClass): void;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export function assertCapability(profile, requirements) {
|
|
2
|
+
if (requirements.context_window !== undefined && profile.model.context_window < requirements.context_window)
|
|
3
|
+
throw new Error("capability-context-window-insufficient");
|
|
4
|
+
if (requirements.sandbox === true && !profile.execution.sandbox)
|
|
5
|
+
throw new Error("capability-sandbox-required");
|
|
6
|
+
if (requirements.network === true && !profile.execution.network)
|
|
7
|
+
throw new Error("capability-network-required");
|
|
8
|
+
if (requirements.parallel === true && !profile.tools.parallel)
|
|
9
|
+
throw new Error("capability-parallel-tools-required");
|
|
10
|
+
if (requirements.programmatic === true && !profile.tools.programmatic)
|
|
11
|
+
throw new Error("capability-programmatic-tools-required");
|
|
12
|
+
}
|
|
13
|
+
export function assertTransition(from, to) {
|
|
14
|
+
const allowed = {
|
|
15
|
+
draft: ["active", "cancelled"], active: ["blocked", "awaiting_user", "completed", "cancelled"],
|
|
16
|
+
blocked: ["active", "cancelled"], awaiting_user: ["active", "cancelled"],
|
|
17
|
+
completed: ["archived"], archived: [], cancelled: [],
|
|
18
|
+
};
|
|
19
|
+
if (!allowed[from].includes(to))
|
|
20
|
+
throw new Error(`invalid-change-transition:${from}->${to}`);
|
|
21
|
+
}
|
|
22
|
+
export function riskRequiresApproval(risk) {
|
|
23
|
+
return risk === "local-destructive" || risk === "external-mutation" || risk === "production-critical";
|
|
24
|
+
}
|
|
25
|
+
export function assertToolEffect(effect, risk) {
|
|
26
|
+
if (effect !== risk)
|
|
27
|
+
throw new Error(`tool-effect-risk-mismatch:${effect}->${risk}`);
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=kernel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../src/kernel.ts"],"names":[],"mappings":"AA8DA,MAAM,UAAU,gBAAgB,CAAC,OAA0B,EAAE,YAA+H;IAC1L,IAAI,YAAY,CAAC,cAAc,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC,cAAc;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IACvK,IAAI,YAAY,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAChH,IAAI,YAAY,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAChH,IAAI,YAAY,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACrH,IAAI,YAAY,CAAC,YAAY,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;AACnI,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAqB,EAAE,EAAmB;IACzE,MAAM,OAAO,GAA+C;QAC1D,KAAK,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,CAAC;QAC9F,OAAO,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;QACxE,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE;KACrD,CAAC;IACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC;AAC/F,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAe;IAClD,OAAO,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,qBAAqB,CAAC;AACxG,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAkB,EAAE,IAAe;IAClE,IAAI,MAAM,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;AACvF,CAAC"}
|