@cluesmith/codev 2.0.0-rc.6 → 2.0.0-rc.60
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/bin/af.js +2 -2
- package/bin/consult.js +1 -1
- package/bin/porch.js +6 -35
- package/dashboard/dist/assets/index-CXloFYpB.css +32 -0
- package/dashboard/dist/assets/index-Ca2fjOJf.js +131 -0
- package/dashboard/dist/assets/index-Ca2fjOJf.js.map +1 -0
- package/dashboard/dist/index.html +14 -0
- package/dist/agent-farm/cli.d.ts.map +1 -1
- package/dist/agent-farm/cli.js +94 -65
- package/dist/agent-farm/cli.js.map +1 -1
- package/dist/agent-farm/commands/architect.d.ts.map +1 -1
- package/dist/agent-farm/commands/architect.js +13 -6
- package/dist/agent-farm/commands/architect.js.map +1 -1
- package/dist/agent-farm/commands/attach.d.ts +13 -0
- package/dist/agent-farm/commands/attach.d.ts.map +1 -0
- package/dist/agent-farm/commands/attach.js +202 -0
- package/dist/agent-farm/commands/attach.js.map +1 -0
- package/dist/agent-farm/commands/cleanup.d.ts.map +1 -1
- package/dist/agent-farm/commands/cleanup.js +30 -3
- package/dist/agent-farm/commands/cleanup.js.map +1 -1
- package/dist/agent-farm/commands/consult.js +1 -1
- package/dist/agent-farm/commands/consult.js.map +1 -1
- package/dist/agent-farm/commands/index.d.ts +2 -2
- package/dist/agent-farm/commands/index.d.ts.map +1 -1
- package/dist/agent-farm/commands/index.js +2 -2
- package/dist/agent-farm/commands/index.js.map +1 -1
- package/dist/agent-farm/commands/open.d.ts +4 -2
- package/dist/agent-farm/commands/open.d.ts.map +1 -1
- package/dist/agent-farm/commands/open.js +37 -70
- package/dist/agent-farm/commands/open.js.map +1 -1
- package/dist/agent-farm/commands/send.d.ts.map +1 -1
- package/dist/agent-farm/commands/send.js +55 -17
- package/dist/agent-farm/commands/send.js.map +1 -1
- package/dist/agent-farm/commands/{util.d.ts → shell.d.ts} +5 -5
- package/dist/agent-farm/commands/shell.d.ts.map +1 -0
- package/dist/agent-farm/commands/{util.js → shell.js} +23 -36
- package/dist/agent-farm/commands/shell.js.map +1 -0
- package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn.js +503 -226
- package/dist/agent-farm/commands/spawn.js.map +1 -1
- package/dist/agent-farm/commands/start.d.ts +3 -0
- package/dist/agent-farm/commands/start.d.ts.map +1 -1
- package/dist/agent-farm/commands/start.js +55 -265
- package/dist/agent-farm/commands/start.js.map +1 -1
- package/dist/agent-farm/commands/status.d.ts +2 -0
- package/dist/agent-farm/commands/status.d.ts.map +1 -1
- package/dist/agent-farm/commands/status.js +61 -3
- package/dist/agent-farm/commands/status.js.map +1 -1
- package/dist/agent-farm/commands/stop.d.ts +6 -0
- package/dist/agent-farm/commands/stop.d.ts.map +1 -1
- package/dist/agent-farm/commands/stop.js +116 -12
- package/dist/agent-farm/commands/stop.js.map +1 -1
- package/dist/agent-farm/commands/tower.d.ts +9 -0
- package/dist/agent-farm/commands/tower.d.ts.map +1 -1
- package/dist/agent-farm/commands/tower.js +59 -19
- package/dist/agent-farm/commands/tower.js.map +1 -1
- package/dist/agent-farm/db/index.d.ts.map +1 -1
- package/dist/agent-farm/db/index.js +124 -0
- package/dist/agent-farm/db/index.js.map +1 -1
- package/dist/agent-farm/db/schema.d.ts +2 -2
- package/dist/agent-farm/db/schema.d.ts.map +1 -1
- package/dist/agent-farm/db/schema.js +26 -5
- package/dist/agent-farm/db/schema.js.map +1 -1
- package/dist/agent-farm/db/types.d.ts +3 -0
- package/dist/agent-farm/db/types.d.ts.map +1 -1
- package/dist/agent-farm/db/types.js +3 -0
- package/dist/agent-farm/db/types.js.map +1 -1
- package/dist/agent-farm/hq-connector.d.ts +2 -6
- package/dist/agent-farm/hq-connector.d.ts.map +1 -1
- package/dist/agent-farm/hq-connector.js +2 -17
- package/dist/agent-farm/hq-connector.js.map +1 -1
- package/dist/agent-farm/lib/tower-client.d.ts +157 -0
- package/dist/agent-farm/lib/tower-client.d.ts.map +1 -0
- package/dist/agent-farm/lib/tower-client.js +223 -0
- package/dist/agent-farm/lib/tower-client.js.map +1 -0
- package/dist/agent-farm/servers/tower-server.js +2137 -112
- package/dist/agent-farm/servers/tower-server.js.map +1 -1
- package/dist/agent-farm/state.d.ts +4 -10
- package/dist/agent-farm/state.d.ts.map +1 -1
- package/dist/agent-farm/state.js +30 -31
- package/dist/agent-farm/state.js.map +1 -1
- package/dist/agent-farm/types.d.ts +48 -1
- package/dist/agent-farm/types.d.ts.map +1 -1
- package/dist/agent-farm/utils/config.d.ts.map +1 -1
- package/dist/agent-farm/utils/config.js +13 -14
- package/dist/agent-farm/utils/config.js.map +1 -1
- package/dist/agent-farm/utils/deps.d.ts.map +1 -1
- package/dist/agent-farm/utils/deps.js +0 -16
- package/dist/agent-farm/utils/deps.js.map +1 -1
- package/dist/agent-farm/utils/notifications.d.ts +30 -0
- package/dist/agent-farm/utils/notifications.d.ts.map +1 -0
- package/dist/agent-farm/utils/notifications.js +121 -0
- package/dist/agent-farm/utils/notifications.js.map +1 -0
- package/dist/agent-farm/utils/port-registry.d.ts +0 -1
- package/dist/agent-farm/utils/port-registry.d.ts.map +1 -1
- package/dist/agent-farm/utils/port-registry.js +1 -1
- package/dist/agent-farm/utils/port-registry.js.map +1 -1
- package/dist/agent-farm/utils/server-utils.d.ts +4 -4
- package/dist/agent-farm/utils/server-utils.d.ts.map +1 -1
- package/dist/agent-farm/utils/server-utils.js +4 -15
- package/dist/agent-farm/utils/server-utils.js.map +1 -1
- package/dist/agent-farm/utils/shell.d.ts +9 -22
- package/dist/agent-farm/utils/shell.d.ts.map +1 -1
- package/dist/agent-farm/utils/shell.js +34 -34
- package/dist/agent-farm/utils/shell.js.map +1 -1
- package/dist/agent-farm/utils/terminal-ports.d.ts +1 -1
- package/dist/agent-farm/utils/terminal-ports.js +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +7 -54
- package/dist/cli.js.map +1 -1
- package/dist/commands/adopt.d.ts.map +1 -1
- package/dist/commands/adopt.js +49 -4
- package/dist/commands/adopt.js.map +1 -1
- package/dist/commands/consult/index.d.ts +1 -0
- package/dist/commands/consult/index.d.ts.map +1 -1
- package/dist/commands/consult/index.js +85 -6
- package/dist/commands/consult/index.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +0 -15
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +41 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/porch/build-counter.d.ts +5 -0
- package/dist/commands/porch/build-counter.d.ts.map +1 -0
- package/dist/commands/porch/build-counter.js +5 -0
- package/dist/commands/porch/build-counter.js.map +1 -0
- package/dist/commands/porch/checks.d.ts +17 -29
- package/dist/commands/porch/checks.d.ts.map +1 -1
- package/dist/commands/porch/checks.js +96 -144
- package/dist/commands/porch/checks.js.map +1 -1
- package/dist/commands/porch/index.d.ts +21 -43
- package/dist/commands/porch/index.d.ts.map +1 -1
- package/dist/commands/porch/index.js +418 -1123
- package/dist/commands/porch/index.js.map +1 -1
- package/dist/commands/porch/next.d.ts +22 -0
- package/dist/commands/porch/next.d.ts.map +1 -0
- package/dist/commands/porch/next.js +479 -0
- package/dist/commands/porch/next.js.map +1 -0
- package/dist/commands/porch/plan.d.ts +70 -0
- package/dist/commands/porch/plan.d.ts.map +1 -0
- package/dist/commands/porch/plan.js +190 -0
- package/dist/commands/porch/plan.js.map +1 -0
- package/dist/commands/porch/prompts.d.ts +19 -0
- package/dist/commands/porch/prompts.d.ts.map +1 -0
- package/dist/commands/porch/prompts.js +255 -0
- package/dist/commands/porch/prompts.js.map +1 -0
- package/dist/commands/porch/protocol.d.ts +59 -0
- package/dist/commands/porch/protocol.d.ts.map +1 -0
- package/dist/commands/porch/protocol.js +294 -0
- package/dist/commands/porch/protocol.js.map +1 -0
- package/dist/commands/porch/state.d.ts +23 -112
- package/dist/commands/porch/state.d.ts.map +1 -1
- package/dist/commands/porch/state.js +81 -699
- package/dist/commands/porch/state.js.map +1 -1
- package/dist/commands/porch/types.d.ts +99 -164
- package/dist/commands/porch/types.d.ts.map +1 -1
- package/dist/commands/porch/types.js +2 -1
- package/dist/commands/porch/types.js.map +1 -1
- package/dist/commands/porch/verdict.d.ts +31 -0
- package/dist/commands/porch/verdict.d.ts.map +1 -0
- package/dist/commands/porch/verdict.js +59 -0
- package/dist/commands/porch/verdict.js.map +1 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +31 -0
- package/dist/commands/update.js.map +1 -1
- package/dist/lib/scaffold.d.ts +37 -0
- package/dist/lib/scaffold.d.ts.map +1 -1
- package/dist/lib/scaffold.js +114 -0
- package/dist/lib/scaffold.js.map +1 -1
- package/dist/terminal/index.d.ts +8 -0
- package/dist/terminal/index.d.ts.map +1 -0
- package/dist/terminal/index.js +5 -0
- package/dist/terminal/index.js.map +1 -0
- package/dist/terminal/pty-manager.d.ts +60 -0
- package/dist/terminal/pty-manager.d.ts.map +1 -0
- package/dist/terminal/pty-manager.js +334 -0
- package/dist/terminal/pty-manager.js.map +1 -0
- package/dist/terminal/pty-session.d.ts +79 -0
- package/dist/terminal/pty-session.d.ts.map +1 -0
- package/dist/terminal/pty-session.js +215 -0
- package/dist/terminal/pty-session.js.map +1 -0
- package/dist/terminal/ring-buffer.d.ts +27 -0
- package/dist/terminal/ring-buffer.d.ts.map +1 -0
- package/dist/terminal/ring-buffer.js +74 -0
- package/dist/terminal/ring-buffer.js.map +1 -0
- package/dist/terminal/ws-protocol.d.ts +27 -0
- package/dist/terminal/ws-protocol.d.ts.map +1 -0
- package/dist/terminal/ws-protocol.js +44 -0
- package/dist/terminal/ws-protocol.js.map +1 -0
- package/package.json +18 -5
- package/skeleton/.claude/skills/af/SKILL.md +74 -0
- package/skeleton/.claude/skills/codev/SKILL.md +41 -0
- package/skeleton/.claude/skills/consult/SKILL.md +81 -0
- package/skeleton/.claude/skills/generate-image/SKILL.md +56 -0
- package/skeleton/DEPENDENCIES.md +3 -29
- package/skeleton/builders.md +1 -1
- package/skeleton/porch/prompts/defend.md +1 -1
- package/skeleton/porch/prompts/evaluate.md +2 -2
- package/skeleton/porch/prompts/implement.md +1 -1
- package/skeleton/porch/prompts/plan.md +1 -1
- package/skeleton/porch/prompts/review.md +4 -4
- package/skeleton/porch/prompts/specify.md +1 -1
- package/skeleton/porch/prompts/understand.md +2 -2
- package/skeleton/protocol-schema.json +282 -0
- package/skeleton/protocols/bugfix/builder-prompt.md +54 -0
- package/skeleton/protocols/bugfix/prompts/fix.md +77 -0
- package/skeleton/protocols/bugfix/prompts/investigate.md +77 -0
- package/skeleton/protocols/bugfix/prompts/pr.md +61 -0
- package/skeleton/protocols/bugfix/protocol.json +19 -2
- package/skeleton/protocols/experiment/builder-prompt.md +52 -0
- package/skeleton/protocols/experiment/protocol.json +101 -0
- package/skeleton/protocols/experiment/protocol.md +3 -3
- package/skeleton/protocols/experiment/templates/notes.md +1 -1
- package/skeleton/protocols/maintain/builder-prompt.md +46 -0
- package/skeleton/protocols/maintain/prompts/audit.md +111 -0
- package/skeleton/protocols/maintain/prompts/clean.md +91 -0
- package/skeleton/protocols/maintain/prompts/sync.md +113 -0
- package/skeleton/protocols/maintain/prompts/verify.md +110 -0
- package/skeleton/protocols/maintain/protocol.json +141 -0
- package/skeleton/protocols/maintain/protocol.md +14 -8
- package/skeleton/protocols/protocol-schema.json +54 -1
- package/skeleton/protocols/spir/builder-prompt.md +59 -0
- package/skeleton/protocols/spir/prompts/implement.md +208 -0
- package/skeleton/protocols/{spider → spir}/prompts/plan.md +6 -70
- package/skeleton/protocols/{spider → spir}/prompts/review.md +7 -25
- package/skeleton/protocols/{spider → spir}/prompts/specify.md +33 -61
- package/skeleton/protocols/spir/protocol.json +152 -0
- package/skeleton/protocols/{spider → spir}/protocol.md +35 -21
- package/skeleton/protocols/{spider → spir}/templates/plan.md +14 -0
- package/skeleton/protocols/{spider → spir}/templates/review.md +1 -1
- package/skeleton/protocols/tick/builder-prompt.md +56 -0
- package/skeleton/protocols/tick/protocol.json +7 -2
- package/skeleton/protocols/tick/protocol.md +18 -18
- package/skeleton/protocols/tick/templates/review.md +1 -1
- package/skeleton/resources/commands/agent-farm.md +25 -43
- package/skeleton/resources/commands/overview.md +7 -17
- package/skeleton/resources/workflow-reference.md +4 -4
- package/skeleton/roles/architect.md +152 -315
- package/skeleton/roles/builder.md +109 -218
- package/skeleton/templates/AGENTS.md +2 -2
- package/skeleton/templates/CLAUDE.md +2 -2
- package/skeleton/templates/cheatsheet.md +7 -5
- package/skeleton/templates/projectlist.md +1 -1
- package/templates/dashboard/index.html +17 -43
- package/templates/dashboard/js/dialogs.js +7 -7
- package/templates/dashboard/js/files.js +2 -2
- package/templates/dashboard/js/main.js +4 -4
- package/templates/dashboard/js/projects.js +3 -3
- package/templates/dashboard/js/tabs.js +1 -1
- package/templates/dashboard/js/utils.js +22 -87
- package/templates/open.html +26 -0
- package/templates/tower.html +542 -27
- package/dist/agent-farm/commands/kickoff.d.ts +0 -19
- package/dist/agent-farm/commands/kickoff.d.ts.map +0 -1
- package/dist/agent-farm/commands/kickoff.js +0 -331
- package/dist/agent-farm/commands/kickoff.js.map +0 -1
- package/dist/agent-farm/commands/rename.d.ts +0 -13
- package/dist/agent-farm/commands/rename.d.ts.map +0 -1
- package/dist/agent-farm/commands/rename.js +0 -33
- package/dist/agent-farm/commands/rename.js.map +0 -1
- package/dist/agent-farm/commands/tutorial.d.ts +0 -10
- package/dist/agent-farm/commands/tutorial.d.ts.map +0 -1
- package/dist/agent-farm/commands/tutorial.js +0 -49
- package/dist/agent-farm/commands/tutorial.js.map +0 -1
- package/dist/agent-farm/commands/util.d.ts.map +0 -1
- package/dist/agent-farm/commands/util.js.map +0 -1
- package/dist/agent-farm/servers/dashboard-server.d.ts +0 -7
- package/dist/agent-farm/servers/dashboard-server.d.ts.map +0 -1
- package/dist/agent-farm/servers/dashboard-server.js +0 -1872
- package/dist/agent-farm/servers/dashboard-server.js.map +0 -1
- package/dist/agent-farm/servers/open-server.d.ts +0 -7
- package/dist/agent-farm/servers/open-server.d.ts.map +0 -1
- package/dist/agent-farm/servers/open-server.js +0 -315
- package/dist/agent-farm/servers/open-server.js.map +0 -1
- package/dist/agent-farm/tutorial/index.d.ts +0 -8
- package/dist/agent-farm/tutorial/index.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/index.js +0 -8
- package/dist/agent-farm/tutorial/index.js.map +0 -1
- package/dist/agent-farm/tutorial/prompts.d.ts +0 -57
- package/dist/agent-farm/tutorial/prompts.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/prompts.js +0 -147
- package/dist/agent-farm/tutorial/prompts.js.map +0 -1
- package/dist/agent-farm/tutorial/runner.d.ts +0 -52
- package/dist/agent-farm/tutorial/runner.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/runner.js +0 -204
- package/dist/agent-farm/tutorial/runner.js.map +0 -1
- package/dist/agent-farm/tutorial/state.d.ts +0 -26
- package/dist/agent-farm/tutorial/state.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/state.js +0 -89
- package/dist/agent-farm/tutorial/state.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/first-spec.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/first-spec.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/first-spec.js +0 -136
- package/dist/agent-farm/tutorial/steps/first-spec.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/implementation.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/implementation.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/implementation.js +0 -76
- package/dist/agent-farm/tutorial/steps/implementation.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/index.d.ts +0 -10
- package/dist/agent-farm/tutorial/steps/index.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/index.js +0 -10
- package/dist/agent-farm/tutorial/steps/index.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/planning.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/planning.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/planning.js +0 -143
- package/dist/agent-farm/tutorial/steps/planning.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/review.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/review.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/review.js +0 -78
- package/dist/agent-farm/tutorial/steps/review.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/setup.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/setup.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/setup.js +0 -126
- package/dist/agent-farm/tutorial/steps/setup.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/welcome.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/welcome.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/welcome.js +0 -50
- package/dist/agent-farm/tutorial/steps/welcome.js.map +0 -1
- package/dist/commands/pcheck/cache.d.ts +0 -48
- package/dist/commands/pcheck/cache.d.ts.map +0 -1
- package/dist/commands/pcheck/cache.js +0 -170
- package/dist/commands/pcheck/cache.js.map +0 -1
- package/dist/commands/pcheck/evaluator.d.ts +0 -15
- package/dist/commands/pcheck/evaluator.d.ts.map +0 -1
- package/dist/commands/pcheck/evaluator.js +0 -246
- package/dist/commands/pcheck/evaluator.js.map +0 -1
- package/dist/commands/pcheck/index.d.ts +0 -12
- package/dist/commands/pcheck/index.d.ts.map +0 -1
- package/dist/commands/pcheck/index.js +0 -249
- package/dist/commands/pcheck/index.js.map +0 -1
- package/dist/commands/pcheck/parser.d.ts +0 -39
- package/dist/commands/pcheck/parser.d.ts.map +0 -1
- package/dist/commands/pcheck/parser.js +0 -155
- package/dist/commands/pcheck/parser.js.map +0 -1
- package/dist/commands/pcheck/types.d.ts +0 -82
- package/dist/commands/pcheck/types.d.ts.map +0 -1
- package/dist/commands/pcheck/types.js +0 -5
- package/dist/commands/pcheck/types.js.map +0 -1
- package/dist/commands/porch/consultation.d.ts +0 -56
- package/dist/commands/porch/consultation.d.ts.map +0 -1
- package/dist/commands/porch/consultation.js +0 -330
- package/dist/commands/porch/consultation.js.map +0 -1
- package/dist/commands/porch/notifications.d.ts +0 -99
- package/dist/commands/porch/notifications.d.ts.map +0 -1
- package/dist/commands/porch/notifications.js +0 -223
- package/dist/commands/porch/notifications.js.map +0 -1
- package/dist/commands/porch/plan-parser.d.ts +0 -38
- package/dist/commands/porch/plan-parser.d.ts.map +0 -1
- package/dist/commands/porch/plan-parser.js +0 -166
- package/dist/commands/porch/plan-parser.js.map +0 -1
- package/dist/commands/porch/protocol-loader.d.ts +0 -46
- package/dist/commands/porch/protocol-loader.d.ts.map +0 -1
- package/dist/commands/porch/protocol-loader.js +0 -253
- package/dist/commands/porch/protocol-loader.js.map +0 -1
- package/dist/commands/porch/signal-parser.d.ts +0 -88
- package/dist/commands/porch/signal-parser.d.ts.map +0 -1
- package/dist/commands/porch/signal-parser.js +0 -148
- package/dist/commands/porch/signal-parser.js.map +0 -1
- package/dist/commands/tower.d.ts +0 -16
- package/dist/commands/tower.d.ts.map +0 -1
- package/dist/commands/tower.js +0 -21
- package/dist/commands/tower.js.map +0 -1
- package/skeleton/config.json +0 -7
- package/skeleton/porch/protocols/bugfix.json +0 -85
- package/skeleton/porch/protocols/spider.json +0 -135
- package/skeleton/porch/protocols/tick.json +0 -76
- package/skeleton/protocols/spider/prompts/defend.md +0 -215
- package/skeleton/protocols/spider/prompts/evaluate.md +0 -241
- package/skeleton/protocols/spider/prompts/implement.md +0 -149
- package/skeleton/protocols/spider/protocol.json +0 -210
- package/templates/dashboard/css/activity.css +0 -151
- package/templates/dashboard/js/activity.js +0 -112
- /package/skeleton/protocols/{spider → spir}/templates/spec.md +0 -0
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tutorial Step 2: Setup Phase
|
|
3
|
-
* Creates codev directory structure and explains it
|
|
4
|
-
*/
|
|
5
|
-
import { existsSync, mkdirSync } from 'node:fs';
|
|
6
|
-
import { writeFile } from 'node:fs/promises';
|
|
7
|
-
import { resolve } from 'node:path';
|
|
8
|
-
import * as prompts from '../prompts.js';
|
|
9
|
-
const AGENTS_MD_TEMPLATE = `# AI Agent Instructions
|
|
10
|
-
|
|
11
|
-
This file provides instructions to AI coding assistants working on this project.
|
|
12
|
-
|
|
13
|
-
## Project Overview
|
|
14
|
-
|
|
15
|
-
[Describe your project here]
|
|
16
|
-
|
|
17
|
-
## Development Workflow
|
|
18
|
-
|
|
19
|
-
This project uses Codev for structured AI-assisted development:
|
|
20
|
-
|
|
21
|
-
- **Specifications** (codev/specs/): What to build
|
|
22
|
-
- **Plans** (codev/plans/): How to build it
|
|
23
|
-
- **Reviews** (codev/reviews/): Lessons learned
|
|
24
|
-
|
|
25
|
-
## Available Protocols
|
|
26
|
-
|
|
27
|
-
- **TICK**: Fast protocol for small, well-defined tasks
|
|
28
|
-
- **SPIDER**: Full protocol with consultation for complex features
|
|
29
|
-
|
|
30
|
-
## Getting Started
|
|
31
|
-
|
|
32
|
-
1. Check \`codev/projectlist.md\` for current project status
|
|
33
|
-
2. Run \`af tutorial\` if you're new to the project
|
|
34
|
-
3. See \`codev/protocols/\` for detailed protocol documentation
|
|
35
|
-
`;
|
|
36
|
-
const PROJECTLIST_TEMPLATE = `# Project List
|
|
37
|
-
|
|
38
|
-
Track all projects and their status here.
|
|
39
|
-
|
|
40
|
-
## Active Projects
|
|
41
|
-
|
|
42
|
-
\`\`\`yaml
|
|
43
|
-
projects: []
|
|
44
|
-
\`\`\`
|
|
45
|
-
|
|
46
|
-
## Next Available Number
|
|
47
|
-
|
|
48
|
-
**0001** - Reserve this number for your next project
|
|
49
|
-
`;
|
|
50
|
-
export const setupStep = {
|
|
51
|
-
id: 'setup',
|
|
52
|
-
title: 'Project Setup',
|
|
53
|
-
async run(ctx) {
|
|
54
|
-
if (ctx.hasCodev) {
|
|
55
|
-
prompts.success('Codev is already set up in this project!');
|
|
56
|
-
console.log();
|
|
57
|
-
prompts.content('Your codev directory structure:');
|
|
58
|
-
prompts.bullet('codev/specs/ - Feature specifications');
|
|
59
|
-
prompts.bullet('codev/plans/ - Implementation plans');
|
|
60
|
-
prompts.bullet('codev/reviews/ - Post-implementation reviews');
|
|
61
|
-
prompts.bullet('codev/protocols/ - Development protocols');
|
|
62
|
-
prompts.bullet('codev/projectlist.md - Project tracking');
|
|
63
|
-
console.log();
|
|
64
|
-
await prompts.pressEnter();
|
|
65
|
-
return { status: 'completed' };
|
|
66
|
-
}
|
|
67
|
-
prompts.content('Let\'s set up the Codev directory structure.\n');
|
|
68
|
-
prompts.content('This will create:');
|
|
69
|
-
prompts.bullet('codev/specs/ - Where you\'ll write feature specifications');
|
|
70
|
-
prompts.bullet('codev/plans/ - Where implementation plans go');
|
|
71
|
-
prompts.bullet('codev/reviews/ - Where you\'ll document lessons learned');
|
|
72
|
-
prompts.bullet('codev/projectlist.md - Master project tracking file');
|
|
73
|
-
console.log();
|
|
74
|
-
const shouldCreate = await prompts.confirm('Create these directories?');
|
|
75
|
-
if (!shouldCreate) {
|
|
76
|
-
prompts.info('You can manually create the codev/ directory later.');
|
|
77
|
-
return { status: 'skipped' };
|
|
78
|
-
}
|
|
79
|
-
// Create directories
|
|
80
|
-
const codevDir = resolve(ctx.projectPath, 'codev');
|
|
81
|
-
const dirs = ['specs', 'plans', 'reviews', 'protocols', 'resources'];
|
|
82
|
-
try {
|
|
83
|
-
if (!existsSync(codevDir)) {
|
|
84
|
-
mkdirSync(codevDir, { recursive: true });
|
|
85
|
-
}
|
|
86
|
-
for (const dir of dirs) {
|
|
87
|
-
const dirPath = resolve(codevDir, dir);
|
|
88
|
-
if (!existsSync(dirPath)) {
|
|
89
|
-
mkdirSync(dirPath, { recursive: true });
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
// Create projectlist.md
|
|
93
|
-
const projectlistPath = resolve(codevDir, 'projectlist.md');
|
|
94
|
-
if (!existsSync(projectlistPath)) {
|
|
95
|
-
await writeFile(projectlistPath, PROJECTLIST_TEMPLATE);
|
|
96
|
-
}
|
|
97
|
-
// Create CLAUDE.md / AGENTS.md if they don't exist
|
|
98
|
-
const claudeMdPath = resolve(ctx.projectPath, 'CLAUDE.md');
|
|
99
|
-
const agentsMdPath = resolve(ctx.projectPath, 'AGENTS.md');
|
|
100
|
-
if (!existsSync(claudeMdPath) && !existsSync(agentsMdPath)) {
|
|
101
|
-
await writeFile(agentsMdPath, AGENTS_MD_TEMPLATE);
|
|
102
|
-
prompts.success('Created AGENTS.md with project instructions');
|
|
103
|
-
}
|
|
104
|
-
prompts.success('Created codev/ directory structure');
|
|
105
|
-
console.log();
|
|
106
|
-
prompts.content('Directory structure:');
|
|
107
|
-
prompts.code(`codev/
|
|
108
|
-
├── specs/ # Feature specifications
|
|
109
|
-
├── plans/ # Implementation plans
|
|
110
|
-
├── reviews/ # Post-implementation reviews
|
|
111
|
-
├── protocols/ # Development protocols
|
|
112
|
-
├── resources/ # Reference materials
|
|
113
|
-
└── projectlist.md`);
|
|
114
|
-
}
|
|
115
|
-
catch (error) {
|
|
116
|
-
prompts.warn(`Failed to create directories: ${error instanceof Error ? error.message : String(error)}`);
|
|
117
|
-
return { status: 'aborted' };
|
|
118
|
-
}
|
|
119
|
-
console.log();
|
|
120
|
-
prompts.info('Tip: Add AGENTS.md to version control so AI assistants can read it.');
|
|
121
|
-
console.log();
|
|
122
|
-
await prompts.pressEnter();
|
|
123
|
-
return { status: 'completed' };
|
|
124
|
-
},
|
|
125
|
-
};
|
|
126
|
-
//# sourceMappingURL=setup.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../../src/agent-farm/tutorial/steps/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"welcome.d.ts","sourceRoot":"","sources":["../../../../src/agent-farm/tutorial/steps/welcome.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,IAAI,EAA2B,MAAM,cAAc,CAAC;AAGlE,eAAO,MAAM,WAAW,EAAE,IAkDzB,CAAC"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tutorial Step 1: Welcome & Project Detection
|
|
3
|
-
* Introduces Codev/Agent Farm and detects the project environment
|
|
4
|
-
*/
|
|
5
|
-
import * as prompts from '../prompts.js';
|
|
6
|
-
export const welcomeStep = {
|
|
7
|
-
id: 'welcome',
|
|
8
|
-
title: 'Welcome & Project Detection',
|
|
9
|
-
async run(ctx) {
|
|
10
|
-
prompts.content('Welcome to Agent Farm! This tutorial will help you get started');
|
|
11
|
-
prompts.content('with structured AI-assisted development.\n');
|
|
12
|
-
// Show what we detected
|
|
13
|
-
prompts.content('About your project:');
|
|
14
|
-
prompts.bullet(`Project: ${ctx.projectName}`);
|
|
15
|
-
prompts.bullet(`Type: ${ctx.projectType === 'other' ? 'Unknown' : ctx.projectType}`);
|
|
16
|
-
prompts.bullet(`Git repository: ${ctx.hasGit ? 'Yes' : 'No'}`);
|
|
17
|
-
prompts.bullet(`Codev initialized: ${ctx.hasCodev ? 'Yes' : 'No'}`);
|
|
18
|
-
console.log();
|
|
19
|
-
// Warn if not in a git repo
|
|
20
|
-
if (!ctx.hasGit) {
|
|
21
|
-
prompts.warn('This directory is not a git repository.');
|
|
22
|
-
prompts.content('Codev works best with git for version control and worktrees.');
|
|
23
|
-
console.log();
|
|
24
|
-
const shouldContinue = await prompts.confirm('Continue anyway?');
|
|
25
|
-
if (!shouldContinue) {
|
|
26
|
-
prompts.info('Run `git init` to initialize a repository, then run `af tutorial` again.');
|
|
27
|
-
return { status: 'aborted' };
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
// Explain what Codev/Agent Farm is
|
|
31
|
-
prompts.content('\nWhat is Agent Farm?\n');
|
|
32
|
-
prompts.content('Agent Farm helps you work with AI coding assistants more effectively by:');
|
|
33
|
-
prompts.bullet('Organizing work into specs, plans, and reviews');
|
|
34
|
-
prompts.bullet('Using structured protocols (SPIDER, TICK) for development');
|
|
35
|
-
prompts.bullet('Enabling the Architect/Builder pattern for parallel work');
|
|
36
|
-
prompts.bullet('Maintaining project context and documentation');
|
|
37
|
-
console.log();
|
|
38
|
-
prompts.content('Key concepts:');
|
|
39
|
-
prompts.bullet('Spec: What you want to build (the goal)');
|
|
40
|
-
prompts.bullet('Plan: How you\'ll build it (the approach)');
|
|
41
|
-
prompts.bullet('Review: What you learned (lessons and improvements)');
|
|
42
|
-
console.log();
|
|
43
|
-
const ready = await prompts.confirm('Ready to set up Codev in your project?');
|
|
44
|
-
if (!ready) {
|
|
45
|
-
return { status: 'aborted' };
|
|
46
|
-
}
|
|
47
|
-
return { status: 'completed' };
|
|
48
|
-
},
|
|
49
|
-
};
|
|
50
|
-
//# sourceMappingURL=welcome.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"welcome.js","sourceRoot":"","sources":["../../../../src/agent-farm/tutorial/steps/welcome.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,OAAO,MAAM,eAAe,CAAC;AAEzC,MAAM,CAAC,MAAM,WAAW,GAAS;IAC/B,EAAE,EAAE,SAAS;IACb,KAAK,EAAE,6BAA6B;IAEpC,KAAK,CAAC,GAAG,CAAC,GAAgB;QACxB,OAAO,CAAC,OAAO,CAAC,gEAAgE,CAAC,CAAC;QAClF,OAAO,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;QAE9D,wBAAwB;QACxB,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACvC,OAAO,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QACrF,OAAO,CAAC,MAAM,CAAC,mBAAmB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,MAAM,CAAC,sBAAsB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,4BAA4B;QAC5B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YACxD,OAAO,CAAC,OAAO,CAAC,8DAA8D,CAAC,CAAC;YAChF,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YACjE,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;gBACzF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,CAAC,OAAO,CAAC,0EAA0E,CAAC,CAAC;QAC5F,OAAO,CAAC,MAAM,CAAC,gDAAgD,CAAC,CAAC;QACjE,OAAO,CAAC,MAAM,CAAC,2DAA2D,CAAC,CAAC;QAC5E,OAAO,CAAC,MAAM,CAAC,0DAA0D,CAAC,CAAC;QAC3E,OAAO,CAAC,MAAM,CAAC,+CAA+C,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACjC,OAAO,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC;QAC1D,OAAO,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC;QAC5D,OAAO,CAAC,MAAM,CAAC,qDAAqD,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;QAC9E,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAC/B,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACjC,CAAC;CACF,CAAC"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Caching layer for pcheck LLM results
|
|
3
|
-
*
|
|
4
|
-
* Caches LLM check results based on file content hashes
|
|
5
|
-
* to avoid expensive re-evaluations when files haven't changed.
|
|
6
|
-
*/
|
|
7
|
-
import type { CacheFile, CacheEntry } from './types.js';
|
|
8
|
-
/**
|
|
9
|
-
* Load the cache file
|
|
10
|
-
*/
|
|
11
|
-
export declare function loadCache(): CacheFile;
|
|
12
|
-
/**
|
|
13
|
-
* Save the cache file
|
|
14
|
-
*/
|
|
15
|
-
export declare function saveCache(cache: CacheFile): void;
|
|
16
|
-
/**
|
|
17
|
-
* Compute a hash of file contents
|
|
18
|
-
* For multiple files, concatenates and hashes together
|
|
19
|
-
*/
|
|
20
|
-
export declare function computeContentHash(filePaths: string[]): string;
|
|
21
|
-
/**
|
|
22
|
-
* Generate a cache key for a check
|
|
23
|
-
*/
|
|
24
|
-
export declare function getCacheKey(checkId: string, contentHash: string): string;
|
|
25
|
-
/**
|
|
26
|
-
* Get a cached result if available and valid
|
|
27
|
-
*/
|
|
28
|
-
export declare function getCachedResult(checkId: string, filePaths: string[]): CacheEntry | null;
|
|
29
|
-
/**
|
|
30
|
-
* Store a result in the cache
|
|
31
|
-
*/
|
|
32
|
-
export declare function setCachedResult(checkId: string, filePaths: string[], pass: boolean, reasoning?: string): void;
|
|
33
|
-
/**
|
|
34
|
-
* Invalidate cache entries for a specific check
|
|
35
|
-
*/
|
|
36
|
-
export declare function invalidateCheck(checkId: string): void;
|
|
37
|
-
/**
|
|
38
|
-
* Clear all cache entries
|
|
39
|
-
*/
|
|
40
|
-
export declare function clearCache(): void;
|
|
41
|
-
/**
|
|
42
|
-
* Get cache statistics
|
|
43
|
-
*/
|
|
44
|
-
export declare function getCacheStats(): {
|
|
45
|
-
entries: number;
|
|
46
|
-
size: string;
|
|
47
|
-
};
|
|
48
|
-
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/commands/pcheck/cache.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA8BxD;;GAEG;AACH,wBAAgB,SAAS,IAAI,SAAS,CAmBrC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAahD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAa9D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAExE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EAAE,GAClB,UAAU,GAAG,IAAI,CAgBnB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EAAE,EACnB,IAAI,EAAE,OAAO,EACb,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CAcN;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAWrD;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAKjC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAoBjE"}
|
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Caching layer for pcheck LLM results
|
|
3
|
-
*
|
|
4
|
-
* Caches LLM check results based on file content hashes
|
|
5
|
-
* to avoid expensive re-evaluations when files haven't changed.
|
|
6
|
-
*/
|
|
7
|
-
import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs';
|
|
8
|
-
import { join, dirname } from 'node:path';
|
|
9
|
-
import { createHash } from 'node:crypto';
|
|
10
|
-
const CACHE_VERSION = 1;
|
|
11
|
-
const CACHE_FILENAME = '.codev/pcheck-cache.json';
|
|
12
|
-
/**
|
|
13
|
-
* Find the project root directory (containing codev/)
|
|
14
|
-
*/
|
|
15
|
-
function findProjectRoot() {
|
|
16
|
-
let dir = process.cwd();
|
|
17
|
-
while (dir !== '/') {
|
|
18
|
-
if (existsSync(join(dir, 'codev'))) {
|
|
19
|
-
return dir;
|
|
20
|
-
}
|
|
21
|
-
dir = dirname(dir);
|
|
22
|
-
}
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Get the cache file path
|
|
27
|
-
*/
|
|
28
|
-
function getCachePath() {
|
|
29
|
-
const root = findProjectRoot();
|
|
30
|
-
if (!root) {
|
|
31
|
-
return null;
|
|
32
|
-
}
|
|
33
|
-
return join(root, CACHE_FILENAME);
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Load the cache file
|
|
37
|
-
*/
|
|
38
|
-
export function loadCache() {
|
|
39
|
-
const cachePath = getCachePath();
|
|
40
|
-
if (!cachePath || !existsSync(cachePath)) {
|
|
41
|
-
return { version: CACHE_VERSION, entries: {} };
|
|
42
|
-
}
|
|
43
|
-
try {
|
|
44
|
-
const content = readFileSync(cachePath, 'utf-8');
|
|
45
|
-
const cache = JSON.parse(content);
|
|
46
|
-
// Validate version
|
|
47
|
-
if (cache.version !== CACHE_VERSION) {
|
|
48
|
-
return { version: CACHE_VERSION, entries: {} };
|
|
49
|
-
}
|
|
50
|
-
return cache;
|
|
51
|
-
}
|
|
52
|
-
catch {
|
|
53
|
-
return { version: CACHE_VERSION, entries: {} };
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Save the cache file
|
|
58
|
-
*/
|
|
59
|
-
export function saveCache(cache) {
|
|
60
|
-
const cachePath = getCachePath();
|
|
61
|
-
if (!cachePath) {
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
// Ensure .codev directory exists
|
|
65
|
-
const dir = dirname(cachePath);
|
|
66
|
-
if (!existsSync(dir)) {
|
|
67
|
-
mkdirSync(dir, { recursive: true });
|
|
68
|
-
}
|
|
69
|
-
writeFileSync(cachePath, JSON.stringify(cache, null, 2));
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Compute a hash of file contents
|
|
73
|
-
* For multiple files, concatenates and hashes together
|
|
74
|
-
*/
|
|
75
|
-
export function computeContentHash(filePaths) {
|
|
76
|
-
const hash = createHash('sha256');
|
|
77
|
-
for (const filePath of filePaths) {
|
|
78
|
-
if (existsSync(filePath)) {
|
|
79
|
-
const content = readFileSync(filePath, 'utf-8');
|
|
80
|
-
hash.update(`${filePath}:${content}`);
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
hash.update(`${filePath}:NOT_FOUND`);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
return hash.digest('hex').substring(0, 16); // Truncate for readability
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Generate a cache key for a check
|
|
90
|
-
*/
|
|
91
|
-
export function getCacheKey(checkId, contentHash) {
|
|
92
|
-
return `${checkId}:${contentHash}`;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Get a cached result if available and valid
|
|
96
|
-
*/
|
|
97
|
-
export function getCachedResult(checkId, filePaths) {
|
|
98
|
-
const cache = loadCache();
|
|
99
|
-
const contentHash = computeContentHash(filePaths);
|
|
100
|
-
const key = getCacheKey(checkId, contentHash);
|
|
101
|
-
const entry = cache.entries[key];
|
|
102
|
-
if (!entry) {
|
|
103
|
-
return null;
|
|
104
|
-
}
|
|
105
|
-
// Verify the hash still matches
|
|
106
|
-
if (entry.contentHash !== contentHash) {
|
|
107
|
-
return null;
|
|
108
|
-
}
|
|
109
|
-
return entry;
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Store a result in the cache
|
|
113
|
-
*/
|
|
114
|
-
export function setCachedResult(checkId, filePaths, pass, reasoning) {
|
|
115
|
-
const cache = loadCache();
|
|
116
|
-
const contentHash = computeContentHash(filePaths);
|
|
117
|
-
const key = getCacheKey(checkId, contentHash);
|
|
118
|
-
cache.entries[key] = {
|
|
119
|
-
checkId,
|
|
120
|
-
contentHash,
|
|
121
|
-
pass,
|
|
122
|
-
reasoning,
|
|
123
|
-
timestamp: Date.now(),
|
|
124
|
-
};
|
|
125
|
-
saveCache(cache);
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Invalidate cache entries for a specific check
|
|
129
|
-
*/
|
|
130
|
-
export function invalidateCheck(checkId) {
|
|
131
|
-
const cache = loadCache();
|
|
132
|
-
// Remove all entries for this check
|
|
133
|
-
for (const key of Object.keys(cache.entries)) {
|
|
134
|
-
if (key.startsWith(`${checkId}:`)) {
|
|
135
|
-
delete cache.entries[key];
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
saveCache(cache);
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Clear all cache entries
|
|
142
|
-
*/
|
|
143
|
-
export function clearCache() {
|
|
144
|
-
const cachePath = getCachePath();
|
|
145
|
-
if (cachePath && existsSync(cachePath)) {
|
|
146
|
-
writeFileSync(cachePath, JSON.stringify({ version: CACHE_VERSION, entries: {} }, null, 2));
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Get cache statistics
|
|
151
|
-
*/
|
|
152
|
-
export function getCacheStats() {
|
|
153
|
-
const cachePath = getCachePath();
|
|
154
|
-
if (!cachePath || !existsSync(cachePath)) {
|
|
155
|
-
return { entries: 0, size: '0 B' };
|
|
156
|
-
}
|
|
157
|
-
const cache = loadCache();
|
|
158
|
-
const content = readFileSync(cachePath, 'utf-8');
|
|
159
|
-
const size = content.length;
|
|
160
|
-
const sizeStr = size < 1024
|
|
161
|
-
? `${size} B`
|
|
162
|
-
: size < 1024 * 1024
|
|
163
|
-
? `${(size / 1024).toFixed(1)} KB`
|
|
164
|
-
: `${(size / 1024 / 1024).toFixed(1)} MB`;
|
|
165
|
-
return {
|
|
166
|
-
entries: Object.keys(cache.entries).length,
|
|
167
|
-
size: sizeStr,
|
|
168
|
-
};
|
|
169
|
-
}
|
|
170
|
-
//# sourceMappingURL=cache.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/commands/pcheck/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Check evaluator for pcheck command
|
|
3
|
-
*
|
|
4
|
-
* Evaluates different types of checks:
|
|
5
|
-
* - file_exists: Check if a file matches a glob pattern
|
|
6
|
-
* - file_not_exists: Inverse of above
|
|
7
|
-
* - llm_check: Semantic check using Claude Haiku
|
|
8
|
-
* - command: Execute a shell command and check result
|
|
9
|
-
*/
|
|
10
|
-
import type { Check, CheckResult, EvaluationContext } from './types.js';
|
|
11
|
-
/**
|
|
12
|
-
* Evaluate a single check
|
|
13
|
-
*/
|
|
14
|
-
export declare function evaluateCheck(checkId: string, check: Check, context: EvaluationContext, useCache?: boolean): Promise<CheckResult>;
|
|
15
|
-
//# sourceMappingURL=evaluator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../../src/commands/pcheck/evaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EACV,KAAK,EACL,WAAW,EACX,iBAAiB,EAKlB,MAAM,YAAY,CAAC;AAsPpB;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,GAAE,OAAc,GACvB,OAAO,CAAC,WAAW,CAAC,CA2BtB"}
|