@engramm/dev-workflow 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/context-builder.d.ts +11 -0
- package/dist/agents/context-builder.d.ts.map +1 -0
- package/dist/agents/context-builder.js +62 -0
- package/dist/agents/context-builder.js.map +1 -0
- package/dist/agents/loader.d.ts +3 -0
- package/dist/agents/loader.d.ts.map +1 -0
- package/dist/agents/loader.js +54 -0
- package/dist/agents/loader.js.map +1 -0
- package/dist/agents/registry.d.ts +10 -0
- package/dist/agents/registry.d.ts.map +1 -0
- package/dist/agents/registry.js +35 -0
- package/dist/agents/registry.js.map +1 -0
- package/dist/agents/types.d.ts +20 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +2 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/cli/agent.d.ts +2 -0
- package/dist/cli/agent.d.ts.map +1 -0
- package/dist/cli/agent.js +101 -0
- package/dist/cli/agent.js.map +1 -0
- package/dist/cli/config.d.ts +2 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +100 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/doctor.d.ts +2 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +123 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +94 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/init.d.ts +7 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +177 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/run.d.ts +4 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +191 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/cli/search.d.ts +2 -0
- package/dist/cli/search.d.ts.map +1 -0
- package/dist/cli/search.js +75 -0
- package/dist/cli/search.js.map +1 -0
- package/dist/cli/serve.d.ts +2 -0
- package/dist/cli/serve.d.ts.map +1 -0
- package/dist/cli/serve.js +34 -0
- package/dist/cli/serve.js.map +1 -0
- package/dist/cli/status.d.ts +2 -0
- package/dist/cli/status.d.ts.map +1 -0
- package/dist/cli/status.js +89 -0
- package/dist/cli/status.js.map +1 -0
- package/dist/cli/task.d.ts +2 -0
- package/dist/cli/task.d.ts.map +1 -0
- package/dist/cli/task.js +153 -0
- package/dist/cli/task.js.map +1 -0
- package/dist/cli/vault-io.d.ts +3 -0
- package/dist/cli/vault-io.d.ts.map +1 -0
- package/dist/cli/vault-io.js +75 -0
- package/dist/cli/vault-io.js.map +1 -0
- package/dist/hooks/post-edit.d.ts +3 -0
- package/dist/hooks/post-edit.d.ts.map +1 -0
- package/dist/hooks/post-edit.js +43 -0
- package/dist/hooks/post-edit.js.map +1 -0
- package/dist/hooks/post-task.d.ts +3 -0
- package/dist/hooks/post-task.d.ts.map +1 -0
- package/dist/hooks/post-task.js +25 -0
- package/dist/hooks/post-task.js.map +1 -0
- package/dist/hooks/pre-compact.d.ts +7 -0
- package/dist/hooks/pre-compact.d.ts.map +1 -0
- package/dist/hooks/pre-compact.js +34 -0
- package/dist/hooks/pre-compact.js.map +1 -0
- package/dist/hooks/session-end.d.ts +3 -0
- package/dist/hooks/session-end.d.ts.map +1 -0
- package/dist/hooks/session-end.js +80 -0
- package/dist/hooks/session-end.js.map +1 -0
- package/dist/hooks/session-start.d.ts +3 -0
- package/dist/hooks/session-start.d.ts.map +1 -0
- package/dist/hooks/session-start.js +108 -0
- package/dist/hooks/session-start.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/intelligence/collector.d.ts +12 -0
- package/dist/intelligence/collector.d.ts.map +1 -0
- package/dist/intelligence/collector.js +93 -0
- package/dist/intelligence/collector.js.map +1 -0
- package/dist/intelligence/ranker.d.ts +5 -0
- package/dist/intelligence/ranker.d.ts.map +1 -0
- package/dist/intelligence/ranker.js +107 -0
- package/dist/intelligence/ranker.js.map +1 -0
- package/dist/intelligence/store.d.ts +17 -0
- package/dist/intelligence/store.d.ts.map +1 -0
- package/dist/intelligence/store.js +75 -0
- package/dist/intelligence/store.js.map +1 -0
- package/dist/intelligence/sync.d.ts +3 -0
- package/dist/intelligence/sync.d.ts.map +1 -0
- package/dist/intelligence/sync.js +83 -0
- package/dist/intelligence/sync.js.map +1 -0
- package/dist/intelligence/types.d.ts +35 -0
- package/dist/intelligence/types.d.ts.map +1 -0
- package/dist/intelligence/types.js +2 -0
- package/dist/intelligence/types.js.map +1 -0
- package/dist/lib/context.d.ts +3 -0
- package/dist/lib/context.d.ts.map +1 -0
- package/dist/lib/context.js +56 -0
- package/dist/lib/context.js.map +1 -0
- package/dist/lib/conventions-detect.d.ts +12 -0
- package/dist/lib/conventions-detect.d.ts.map +1 -0
- package/dist/lib/conventions-detect.js +337 -0
- package/dist/lib/conventions-detect.js.map +1 -0
- package/dist/lib/frontmatter.d.ts +7 -0
- package/dist/lib/frontmatter.d.ts.map +1 -0
- package/dist/lib/frontmatter.js +45 -0
- package/dist/lib/frontmatter.js.map +1 -0
- package/dist/lib/fs-helpers.d.ts +6 -0
- package/dist/lib/fs-helpers.d.ts.map +1 -0
- package/dist/lib/fs-helpers.js +24 -0
- package/dist/lib/fs-helpers.js.map +1 -0
- package/dist/lib/interpolate.d.ts +2 -0
- package/dist/lib/interpolate.d.ts.map +1 -0
- package/dist/lib/interpolate.js +4 -0
- package/dist/lib/interpolate.js.map +1 -0
- package/dist/lib/output.d.ts +27 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +85 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/reader.d.ts +14 -0
- package/dist/lib/reader.d.ts.map +1 -0
- package/dist/lib/reader.js +75 -0
- package/dist/lib/reader.js.map +1 -0
- package/dist/lib/stack-detect.d.ts +12 -0
- package/dist/lib/stack-detect.d.ts.map +1 -0
- package/dist/lib/stack-detect.js +302 -0
- package/dist/lib/stack-detect.js.map +1 -0
- package/dist/lib/statusline.d.ts +3 -0
- package/dist/lib/statusline.d.ts.map +1 -0
- package/dist/lib/statusline.js +40 -0
- package/dist/lib/statusline.js.map +1 -0
- package/dist/lib/templates.d.ts +3 -0
- package/dist/lib/templates.d.ts.map +1 -0
- package/dist/lib/templates.js +174 -0
- package/dist/lib/templates.js.map +1 -0
- package/dist/lib/types.d.ts +44 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +2 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/writer.d.ts +13 -0
- package/dist/lib/writer.d.ts.map +1 -0
- package/dist/lib/writer.js +97 -0
- package/dist/lib/writer.js.map +1 -0
- package/dist/mcp/handlers.d.ts +34 -0
- package/dist/mcp/handlers.d.ts.map +1 -0
- package/dist/mcp/handlers.js +256 -0
- package/dist/mcp/handlers.js.map +1 -0
- package/dist/mcp/server.d.ts +20 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +89 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +11 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +148 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/tasks/manager.d.ts +14 -0
- package/dist/tasks/manager.d.ts.map +1 -0
- package/dist/tasks/manager.js +151 -0
- package/dist/tasks/manager.js.map +1 -0
- package/dist/tasks/tracker.d.ts +11 -0
- package/dist/tasks/tracker.d.ts.map +1 -0
- package/dist/tasks/tracker.js +31 -0
- package/dist/tasks/tracker.js.map +1 -0
- package/dist/tasks/types.d.ts +19 -0
- package/dist/tasks/types.d.ts.map +1 -0
- package/dist/tasks/types.js +2 -0
- package/dist/tasks/types.js.map +1 -0
- package/dist/workflow/builtin.d.ts +4 -0
- package/dist/workflow/builtin.d.ts.map +1 -0
- package/dist/workflow/builtin.js +93 -0
- package/dist/workflow/builtin.js.map +1 -0
- package/dist/workflow/engine.d.ts +38 -0
- package/dist/workflow/engine.d.ts.map +1 -0
- package/dist/workflow/engine.js +217 -0
- package/dist/workflow/engine.js.map +1 -0
- package/dist/workflow/loader.d.ts +4 -0
- package/dist/workflow/loader.d.ts.map +1 -0
- package/dist/workflow/loader.js +106 -0
- package/dist/workflow/loader.js.map +1 -0
- package/dist/workflow/state.d.ts +11 -0
- package/dist/workflow/state.d.ts.map +1 -0
- package/dist/workflow/state.js +49 -0
- package/dist/workflow/state.js.map +1 -0
- package/dist/workflow/types.d.ts +36 -0
- package/dist/workflow/types.d.ts.map +1 -0
- package/dist/workflow/types.js +2 -0
- package/dist/workflow/types.js.map +1 -0
- package/package.json +54 -0
- package/templates/agents/architect.md +46 -0
- package/templates/agents/coder.md +46 -0
- package/templates/agents/committer.md +29 -0
- package/templates/agents/debugger.md +54 -0
- package/templates/agents/planner.md +45 -0
- package/templates/agents/reader.md +48 -0
- package/templates/agents/reviewer.md +48 -0
- package/templates/agents/tester.md +41 -0
- package/templates/claude/agents/researcher.md +47 -0
- package/templates/claude/agents/writer.md +29 -0
- package/templates/claude/commands/git/changelog.md +41 -0
- package/templates/claude/commands/git/merge.md +37 -0
- package/templates/claude/commands/git/new-branch.md +34 -0
- package/templates/claude/commands/git/pr-review.md +64 -0
- package/templates/claude/commands/session/handover.md +49 -0
- package/templates/claude/commands/session/resume.md +43 -0
- package/templates/claude/commands/session/review.md +81 -0
- package/templates/claude/commands/task.md +52 -0
- package/templates/claude/commands/vault/adr.md +39 -0
- package/templates/claude/commands/vault/analyze.md +110 -0
- package/templates/claude/commands/vault/bug.md +31 -0
- package/templates/claude/commands/vault/debt.md +28 -0
- package/templates/claude/commands/vault/deps.md +36 -0
- package/templates/claude/commands/vault/from-spec.md +306 -0
- package/templates/claude/commands/vault/search.md +31 -0
- package/templates/claude/commands/vault/security-scan.md +50 -0
- package/templates/claude/commands/vault/test-gaps.md +38 -0
- package/templates/claude/commands/workflow/dev.md +913 -0
- package/templates/claude/commands/workflow.md +47 -0
- package/templates/claude/settings.json +52 -0
- package/templates/claude/skills/obsidian-markdown/SKILL.md +196 -0
- package/templates/claude/skills/obsidian-markdown/references/CALLOUTS.md +58 -0
- package/templates/claude/skills/obsidian-markdown/references/EMBEDS.md +63 -0
- package/templates/claude/skills/obsidian-markdown/references/PROPERTIES.md +61 -0
- package/templates/workflows/deploy.yaml +21 -0
- package/templates/workflows/release.yaml +26 -0
- package/templates/workflows/spike.yaml +14 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { detectContext } from "./context.js";
|
|
3
|
+
import { VaultReader } from "./reader.js";
|
|
4
|
+
import { TaskManager } from "../tasks/manager.js";
|
|
5
|
+
import { TaskTracker } from "../tasks/tracker.js";
|
|
6
|
+
import { WorkflowState } from "../workflow/state.js";
|
|
7
|
+
function run() {
|
|
8
|
+
const context = detectContext();
|
|
9
|
+
if (!context) {
|
|
10
|
+
process.stdout.write("");
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const reader = new VaultReader(context);
|
|
14
|
+
const parts = [];
|
|
15
|
+
parts.push(context.projectName);
|
|
16
|
+
parts.push(context.branch);
|
|
17
|
+
if (reader.exists()) {
|
|
18
|
+
const branch = reader.readBranch(context.branch);
|
|
19
|
+
if (branch) {
|
|
20
|
+
parts.push(branch.status);
|
|
21
|
+
}
|
|
22
|
+
const taskManager = new TaskManager(context.vaultPath);
|
|
23
|
+
const tracker = new TaskTracker(context.projectRoot, taskManager);
|
|
24
|
+
const currentTask = tracker.findByBranch(context.branch);
|
|
25
|
+
if (currentTask) {
|
|
26
|
+
parts.push(currentTask.id);
|
|
27
|
+
}
|
|
28
|
+
const workflowState = new WorkflowState(context.vaultPath);
|
|
29
|
+
const currentRun = workflowState.loadCurrent();
|
|
30
|
+
if (currentRun && (currentRun.status === "running" || currentRun.status === "paused")) {
|
|
31
|
+
parts.push(`${currentRun.currentStep}:${currentRun.status}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
parts.push("no vault");
|
|
36
|
+
}
|
|
37
|
+
process.stdout.write(parts.join(" | "));
|
|
38
|
+
}
|
|
39
|
+
run();
|
|
40
|
+
//# sourceMappingURL=statusline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statusline.js","sourceRoot":"","sources":["../../src/lib/statusline.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,SAAS,GAAG;IACV,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3B,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAClE,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,WAAW,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC;YACtF,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/lib/templates.ts"],"names":[],"mappings":"AAqKA,wBAAgB,cAAc,CAC5B,YAAY,EAAE,MAAM,EACpB,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACrC,MAAM,CAiBR;AAED,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { readFileSync, existsSync } from "node:fs";
|
|
2
|
+
import { join, dirname } from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
import { interpolate } from "./interpolate.js";
|
|
5
|
+
import { todayDate } from "./fs-helpers.js";
|
|
6
|
+
const PACKAGE_ROOT = join(dirname(fileURLToPath(import.meta.url)), "..", "..");
|
|
7
|
+
const TEMPLATES_DIR = join(PACKAGE_ROOT, "templates");
|
|
8
|
+
const BUILTIN_TEMPLATES = {
|
|
9
|
+
"vault/stack": `---
|
|
10
|
+
updated: {{date}}
|
|
11
|
+
tags: [stack, {{projectName}}]
|
|
12
|
+
---
|
|
13
|
+
# {{projectName}} — Stack
|
|
14
|
+
|
|
15
|
+
## Languages
|
|
16
|
+
|
|
17
|
+
## Frameworks
|
|
18
|
+
|
|
19
|
+
## Database
|
|
20
|
+
|
|
21
|
+
## Testing
|
|
22
|
+
|
|
23
|
+
## Infrastructure
|
|
24
|
+
|
|
25
|
+
## Dev Tools
|
|
26
|
+
`,
|
|
27
|
+
"vault/conventions": `---
|
|
28
|
+
updated: {{date}}
|
|
29
|
+
tags: [conventions, {{projectName}}]
|
|
30
|
+
---
|
|
31
|
+
# {{projectName}} — Conventions
|
|
32
|
+
|
|
33
|
+
## File Structure
|
|
34
|
+
|
|
35
|
+
## Naming
|
|
36
|
+
|
|
37
|
+
## Code Style
|
|
38
|
+
|
|
39
|
+
## Patterns
|
|
40
|
+
|
|
41
|
+
## Git
|
|
42
|
+
|
|
43
|
+
## Testing
|
|
44
|
+
`,
|
|
45
|
+
"vault/knowledge": `---
|
|
46
|
+
updated: {{date}}
|
|
47
|
+
tags: [knowledge, {{projectName}}]
|
|
48
|
+
---
|
|
49
|
+
# {{projectName}} — Knowledge
|
|
50
|
+
|
|
51
|
+
## Architecture
|
|
52
|
+
|
|
53
|
+
## Gotchas
|
|
54
|
+
|
|
55
|
+
## Patterns
|
|
56
|
+
`,
|
|
57
|
+
"vault/gameplan": `---
|
|
58
|
+
updated: {{date}}
|
|
59
|
+
tags: [gameplan, {{projectName}}]
|
|
60
|
+
---
|
|
61
|
+
# {{projectName}} — Gameplan
|
|
62
|
+
|
|
63
|
+
## Current Phase
|
|
64
|
+
|
|
65
|
+
## Phases
|
|
66
|
+
|
|
67
|
+
## Backlog
|
|
68
|
+
`,
|
|
69
|
+
"records/branch": `---
|
|
70
|
+
branch: {{branch}}
|
|
71
|
+
status: in-progress
|
|
72
|
+
created: {{date}}
|
|
73
|
+
parent: {{parent}}
|
|
74
|
+
tags: [branch, {{projectName}}]
|
|
75
|
+
---
|
|
76
|
+
# {{branch}}
|
|
77
|
+
|
|
78
|
+
## Goal
|
|
79
|
+
|
|
80
|
+
{{goal}}
|
|
81
|
+
|
|
82
|
+
## Tasks
|
|
83
|
+
|
|
84
|
+
## Decisions
|
|
85
|
+
|
|
86
|
+
## Open Questions
|
|
87
|
+
|
|
88
|
+
## Issues
|
|
89
|
+
`,
|
|
90
|
+
"records/daily": `---
|
|
91
|
+
date: {{date}}
|
|
92
|
+
projects: [{{projectName}}]
|
|
93
|
+
branches: [{{branch}}]
|
|
94
|
+
tags: [session-log]
|
|
95
|
+
---
|
|
96
|
+
# Session — {{date}}
|
|
97
|
+
|
|
98
|
+
## Done
|
|
99
|
+
|
|
100
|
+
## Key Decisions
|
|
101
|
+
|
|
102
|
+
## Problems & Findings
|
|
103
|
+
|
|
104
|
+
## Open Questions
|
|
105
|
+
|
|
106
|
+
## Next Steps
|
|
107
|
+
`,
|
|
108
|
+
"records/adr": `---
|
|
109
|
+
date: {{date}}
|
|
110
|
+
status: accepted
|
|
111
|
+
tags: [adr, {{projectName}}]
|
|
112
|
+
---
|
|
113
|
+
# {{title}}
|
|
114
|
+
|
|
115
|
+
## Context
|
|
116
|
+
|
|
117
|
+
## Decision
|
|
118
|
+
|
|
119
|
+
## Alternatives
|
|
120
|
+
|
|
121
|
+
## Consequences
|
|
122
|
+
`,
|
|
123
|
+
"records/bug": `---
|
|
124
|
+
date: {{date}}
|
|
125
|
+
severity: {{severity}}
|
|
126
|
+
tags: [bug, {{projectName}}]
|
|
127
|
+
---
|
|
128
|
+
# {{title}}
|
|
129
|
+
|
|
130
|
+
## Symptoms
|
|
131
|
+
|
|
132
|
+
## Root Cause
|
|
133
|
+
|
|
134
|
+
## Fix
|
|
135
|
+
|
|
136
|
+
## Prevention
|
|
137
|
+
`,
|
|
138
|
+
"records/debt": `---
|
|
139
|
+
date: {{date}}
|
|
140
|
+
priority: {{priority}}
|
|
141
|
+
effort: {{effort}}
|
|
142
|
+
tags: [debt, {{projectName}}]
|
|
143
|
+
---
|
|
144
|
+
# {{title}}
|
|
145
|
+
|
|
146
|
+
## Problem
|
|
147
|
+
|
|
148
|
+
## Why Deferred
|
|
149
|
+
|
|
150
|
+
## Proposal
|
|
151
|
+
|
|
152
|
+
## Risk If Ignored
|
|
153
|
+
`,
|
|
154
|
+
};
|
|
155
|
+
export function renderTemplate(templateName, variables = {}) {
|
|
156
|
+
const vars = { date: todayDate(), ...variables };
|
|
157
|
+
const externalPath = join(TEMPLATES_DIR, `${templateName}.md`);
|
|
158
|
+
let template;
|
|
159
|
+
if (existsSync(externalPath)) {
|
|
160
|
+
template = readFileSync(externalPath, "utf-8");
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
const builtin = BUILTIN_TEMPLATES[templateName];
|
|
164
|
+
if (!builtin) {
|
|
165
|
+
throw new Error(`Template not found: ${templateName}`);
|
|
166
|
+
}
|
|
167
|
+
template = builtin;
|
|
168
|
+
}
|
|
169
|
+
return interpolate(template, vars);
|
|
170
|
+
}
|
|
171
|
+
export function listTemplates() {
|
|
172
|
+
return Object.keys(BUILTIN_TEMPLATES);
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/lib/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC/E,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AAEtD,MAAM,iBAAiB,GAA2B;IAChD,aAAa,EAAE;;;;;;;;;;;;;;;;;CAiBhB;IAEC,mBAAmB,EAAE;;;;;;;;;;;;;;;;;CAiBtB;IAEC,iBAAiB,EAAE;;;;;;;;;;;CAWpB;IAEC,gBAAgB,EAAE;;;;;;;;;;;CAWnB;IAEC,gBAAgB,EAAE;;;;;;;;;;;;;;;;;;;;CAoBnB;IAEC,eAAe,EAAE;;;;;;;;;;;;;;;;;CAiBlB;IAEC,aAAa,EAAE;;;;;;;;;;;;;;CAchB;IAEC,aAAa,EAAE;;;;;;;;;;;;;;CAchB;IAEC,cAAc,EAAE;;;;;;;;;;;;;;;CAejB;CACA,CAAC;AAEF,MAAM,UAAU,cAAc,CAC5B,YAAoB,EACpB,YAAoC,EAAE;IAEtC,MAAM,IAAI,GAA2B,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,SAAS,EAAE,CAAC;IAEzE,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC;IAC/D,IAAI,QAAgB,CAAC;IAErB,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,QAAQ,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,YAAY,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,QAAQ,GAAG,OAAO,CAAC;IACrB,CAAC;IAED,OAAO,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export interface ProjectContext {
|
|
2
|
+
projectName: string;
|
|
3
|
+
branch: string;
|
|
4
|
+
parentBranch: string;
|
|
5
|
+
vaultPath: string;
|
|
6
|
+
projectRoot: string;
|
|
7
|
+
gitRemote: string | null;
|
|
8
|
+
}
|
|
9
|
+
export interface VaultData {
|
|
10
|
+
stack: string | null;
|
|
11
|
+
conventions: string | null;
|
|
12
|
+
knowledge: string | null;
|
|
13
|
+
gameplan: string | null;
|
|
14
|
+
branch: BranchContext | null;
|
|
15
|
+
recentDailyLogs: DailyLog[];
|
|
16
|
+
}
|
|
17
|
+
export interface BranchContext {
|
|
18
|
+
raw: string;
|
|
19
|
+
branch: string;
|
|
20
|
+
status: "in-progress" | "on-hold" | "merged" | "abandoned";
|
|
21
|
+
created: string;
|
|
22
|
+
parent: string;
|
|
23
|
+
}
|
|
24
|
+
export interface DailyLog {
|
|
25
|
+
date: string;
|
|
26
|
+
filename: string;
|
|
27
|
+
content: string;
|
|
28
|
+
}
|
|
29
|
+
export interface RecordOptions {
|
|
30
|
+
type: "adr" | "bug" | "debt" | "deploy" | "branch" | "daily";
|
|
31
|
+
title: string;
|
|
32
|
+
date: string;
|
|
33
|
+
extra: Record<string, string>;
|
|
34
|
+
}
|
|
35
|
+
export interface InitOptions {
|
|
36
|
+
projectRoot: string;
|
|
37
|
+
force: boolean;
|
|
38
|
+
}
|
|
39
|
+
export interface HookOutput {
|
|
40
|
+
status: "ok" | "error";
|
|
41
|
+
message: string;
|
|
42
|
+
context?: VaultData;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,QAAQ,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ProjectContext, BranchContext } from "./types.js";
|
|
2
|
+
export declare class VaultWriter {
|
|
3
|
+
private readonly vaultPath;
|
|
4
|
+
private readonly context;
|
|
5
|
+
constructor(context: ProjectContext);
|
|
6
|
+
scaffold(): void;
|
|
7
|
+
writeDailyLog(content: string, date?: string): string;
|
|
8
|
+
writeBranch(branchName: string, content: string): string;
|
|
9
|
+
updateBranchStatus(branchName: string, status: BranchContext["status"]): void;
|
|
10
|
+
writeRecord(type: string, slug: string, content: string): string;
|
|
11
|
+
appendKnowledge(section: string, content: string): void;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/lib/writer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIhE,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;gBAE7B,OAAO,EAAE,cAAc;IAKnC,QAAQ,IAAI,IAAI;IA+BhB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAoB,GAAG,MAAM;IAalE,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAOxD,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI;IAa7E,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAchE,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;CAoBxD"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { writeFileSync, mkdirSync, existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { renderTemplate } from "./templates.js";
|
|
4
|
+
import { writeFileSafe, slugify, todayDate } from "./fs-helpers.js";
|
|
5
|
+
export class VaultWriter {
|
|
6
|
+
vaultPath;
|
|
7
|
+
context;
|
|
8
|
+
constructor(context) {
|
|
9
|
+
this.vaultPath = context.vaultPath;
|
|
10
|
+
this.context = context;
|
|
11
|
+
}
|
|
12
|
+
scaffold() {
|
|
13
|
+
const dirs = [
|
|
14
|
+
"daily",
|
|
15
|
+
"branches",
|
|
16
|
+
"architecture",
|
|
17
|
+
"bugs",
|
|
18
|
+
"debt",
|
|
19
|
+
"tasks",
|
|
20
|
+
"phases",
|
|
21
|
+
"workflows",
|
|
22
|
+
];
|
|
23
|
+
for (const dir of dirs) {
|
|
24
|
+
mkdirSync(join(this.vaultPath, dir), { recursive: true });
|
|
25
|
+
}
|
|
26
|
+
const files = [
|
|
27
|
+
["stack.md", renderTemplate("vault/stack", { projectName: this.context.projectName })],
|
|
28
|
+
["conventions.md", renderTemplate("vault/conventions", { projectName: this.context.projectName })],
|
|
29
|
+
["knowledge.md", renderTemplate("vault/knowledge", { projectName: this.context.projectName })],
|
|
30
|
+
["gameplan.md", renderTemplate("vault/gameplan", { projectName: this.context.projectName })],
|
|
31
|
+
];
|
|
32
|
+
for (const [filename, content] of files) {
|
|
33
|
+
const filepath = join(this.vaultPath, filename);
|
|
34
|
+
if (!existsSync(filepath)) {
|
|
35
|
+
writeFileSafe(filepath, content);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
writeDailyLog(content, date = todayDate()) {
|
|
40
|
+
const filepath = join(this.vaultPath, "daily", `${date}.md`);
|
|
41
|
+
if (existsSync(filepath)) {
|
|
42
|
+
const existing = readFileSync(filepath, "utf-8");
|
|
43
|
+
writeFileSafe(filepath, existing + "\n\n---\n\n" + content);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
writeFileSafe(filepath, content);
|
|
47
|
+
}
|
|
48
|
+
return filepath;
|
|
49
|
+
}
|
|
50
|
+
writeBranch(branchName, content) {
|
|
51
|
+
const slug = slugify(branchName);
|
|
52
|
+
const filepath = join(this.vaultPath, "branches", `${slug}.md`);
|
|
53
|
+
writeFileSafe(filepath, content);
|
|
54
|
+
return filepath;
|
|
55
|
+
}
|
|
56
|
+
updateBranchStatus(branchName, status) {
|
|
57
|
+
const slug = slugify(branchName);
|
|
58
|
+
const filepath = join(this.vaultPath, "branches", `${slug}.md`);
|
|
59
|
+
if (!existsSync(filepath))
|
|
60
|
+
return;
|
|
61
|
+
const content = readFileSync(filepath, "utf-8");
|
|
62
|
+
const updated = content.replace(/^status:\s*.+$/m, `status: ${status}`);
|
|
63
|
+
writeFileSync(filepath, updated, "utf-8");
|
|
64
|
+
}
|
|
65
|
+
writeRecord(type, slug, content) {
|
|
66
|
+
const dirMap = {
|
|
67
|
+
adr: "architecture",
|
|
68
|
+
bug: "bugs",
|
|
69
|
+
debt: "debt",
|
|
70
|
+
};
|
|
71
|
+
const dir = dirMap[type] ?? type;
|
|
72
|
+
const date = todayDate();
|
|
73
|
+
const filepath = join(this.vaultPath, dir, `${date}-${slug}.md`);
|
|
74
|
+
writeFileSafe(filepath, content);
|
|
75
|
+
return filepath;
|
|
76
|
+
}
|
|
77
|
+
appendKnowledge(section, content) {
|
|
78
|
+
const filepath = join(this.vaultPath, "knowledge.md");
|
|
79
|
+
if (!existsSync(filepath))
|
|
80
|
+
return;
|
|
81
|
+
const existing = readFileSync(filepath, "utf-8");
|
|
82
|
+
const sectionHeader = `## ${section}`;
|
|
83
|
+
const sectionIndex = existing.indexOf(sectionHeader);
|
|
84
|
+
if (sectionIndex === -1) {
|
|
85
|
+
writeFileSync(filepath, existing.trimEnd() + `\n\n${sectionHeader}\n\n${content}\n`, "utf-8");
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
const nextSectionMatch = existing.slice(sectionIndex + sectionHeader.length).match(/\n## /);
|
|
89
|
+
const insertAt = nextSectionMatch
|
|
90
|
+
? sectionIndex + sectionHeader.length + (nextSectionMatch.index ?? 0)
|
|
91
|
+
: existing.length;
|
|
92
|
+
const updated = existing.slice(0, insertAt).trimEnd() + `\n\n${content}\n` + existing.slice(insertAt);
|
|
93
|
+
writeFileSync(filepath, updated, "utf-8");
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/lib/writer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { VaultReader } from "../lib/reader.js";
|
|
2
|
+
import type { VaultWriter } from "../lib/writer.js";
|
|
3
|
+
import type { ProjectContext } from "../lib/types.js";
|
|
4
|
+
import type { AgentRegistry } from "../agents/registry.js";
|
|
5
|
+
import type { AgentContextBuilder } from "../agents/context-builder.js";
|
|
6
|
+
import type { TaskManager } from "../tasks/manager.js";
|
|
7
|
+
import { TaskTracker } from "../tasks/tracker.js";
|
|
8
|
+
import { IntelligenceStore } from "../intelligence/store.js";
|
|
9
|
+
export declare class ToolHandlers {
|
|
10
|
+
private readonly vaultReader;
|
|
11
|
+
private readonly vaultWriter;
|
|
12
|
+
private readonly context;
|
|
13
|
+
private readonly agentRegistry;
|
|
14
|
+
private readonly contextBuilder;
|
|
15
|
+
private readonly taskManager;
|
|
16
|
+
private readonly intelligenceStore;
|
|
17
|
+
private readonly taskTracker;
|
|
18
|
+
constructor(vaultReader: VaultReader, vaultWriter: VaultWriter, context: ProjectContext, agentRegistry: AgentRegistry, contextBuilder: AgentContextBuilder, taskManager: TaskManager, intelligenceStore: IntelligenceStore, taskTracker: TaskTracker);
|
|
19
|
+
handle(toolName: string, params: Record<string, unknown>): Promise<unknown>;
|
|
20
|
+
private vaultRead;
|
|
21
|
+
private vaultSearch;
|
|
22
|
+
private vaultRecord;
|
|
23
|
+
private vaultKnowledge;
|
|
24
|
+
private taskCreate;
|
|
25
|
+
private taskList;
|
|
26
|
+
private taskUpdate;
|
|
27
|
+
private vaultStatus;
|
|
28
|
+
private intelligenceQuery;
|
|
29
|
+
private taskStart;
|
|
30
|
+
private agentList;
|
|
31
|
+
private workflowStatus;
|
|
32
|
+
private agentRun;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/mcp/handlers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAgE7D,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;gBAGxC,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,cAAc,EACvB,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,mBAAmB,EACnC,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,WAAW;IAYpB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAmEjF,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,WAAW;IA0CnB,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,SAAS;IAkBjB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,QAAQ;CAQjB"}
|