@cluesmith/codev 1.6.2 → 2.0.0-rc.10

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.
Files changed (121) hide show
  1. package/bin/porch.js +12 -0
  2. package/dist/agent-farm/cli.d.ts.map +1 -1
  3. package/dist/agent-farm/cli.js +25 -14
  4. package/dist/agent-farm/cli.js.map +1 -1
  5. package/dist/agent-farm/commands/index.d.ts +1 -0
  6. package/dist/agent-farm/commands/index.d.ts.map +1 -1
  7. package/dist/agent-farm/commands/index.js +1 -0
  8. package/dist/agent-farm/commands/index.js.map +1 -1
  9. package/dist/agent-farm/commands/kickoff.d.ts +20 -0
  10. package/dist/agent-farm/commands/kickoff.d.ts.map +1 -0
  11. package/dist/agent-farm/commands/kickoff.js +273 -0
  12. package/dist/agent-farm/commands/kickoff.js.map +1 -0
  13. package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
  14. package/dist/agent-farm/commands/spawn.js +30 -96
  15. package/dist/agent-farm/commands/spawn.js.map +1 -1
  16. package/dist/agent-farm/commands/start.d.ts.map +1 -1
  17. package/dist/agent-farm/commands/start.js +8 -50
  18. package/dist/agent-farm/commands/start.js.map +1 -1
  19. package/dist/agent-farm/servers/dashboard-server.js +0 -14
  20. package/dist/agent-farm/servers/dashboard-server.js.map +1 -1
  21. package/dist/agent-farm/state.d.ts +0 -10
  22. package/dist/agent-farm/state.d.ts.map +1 -1
  23. package/dist/agent-farm/state.js +0 -24
  24. package/dist/agent-farm/state.js.map +1 -1
  25. package/dist/cli.d.ts.map +1 -1
  26. package/dist/cli.js +17 -0
  27. package/dist/cli.js.map +1 -1
  28. package/dist/commands/adopt.d.ts.map +1 -1
  29. package/dist/commands/adopt.js +17 -1
  30. package/dist/commands/adopt.js.map +1 -1
  31. package/dist/commands/consult/index.d.ts.map +1 -1
  32. package/dist/commands/consult/index.js +2 -1
  33. package/dist/commands/consult/index.js.map +1 -1
  34. package/dist/commands/init.d.ts.map +1 -1
  35. package/dist/commands/init.js +17 -1
  36. package/dist/commands/init.js.map +1 -1
  37. package/dist/commands/porch/checks.d.ts +29 -0
  38. package/dist/commands/porch/checks.d.ts.map +1 -0
  39. package/dist/commands/porch/checks.js +141 -0
  40. package/dist/commands/porch/checks.js.map +1 -0
  41. package/dist/commands/porch/claude.d.ts +29 -0
  42. package/dist/commands/porch/claude.d.ts.map +1 -0
  43. package/dist/commands/porch/claude.js +79 -0
  44. package/dist/commands/porch/claude.js.map +1 -0
  45. package/dist/commands/porch/index.d.ts +38 -0
  46. package/dist/commands/porch/index.d.ts.map +1 -0
  47. package/dist/commands/porch/index.js +524 -0
  48. package/dist/commands/porch/index.js.map +1 -0
  49. package/dist/commands/porch/plan.d.ts +60 -0
  50. package/dist/commands/porch/plan.d.ts.map +1 -0
  51. package/dist/commands/porch/plan.js +162 -0
  52. package/dist/commands/porch/plan.js.map +1 -0
  53. package/dist/commands/porch/prompts.d.ts +19 -0
  54. package/dist/commands/porch/prompts.d.ts.map +1 -0
  55. package/dist/commands/porch/prompts.js +259 -0
  56. package/dist/commands/porch/prompts.js.map +1 -0
  57. package/dist/commands/porch/protocol.d.ts +57 -0
  58. package/dist/commands/porch/protocol.d.ts.map +1 -0
  59. package/dist/commands/porch/protocol.js +250 -0
  60. package/dist/commands/porch/protocol.js.map +1 -0
  61. package/dist/commands/porch/repl.d.ts +33 -0
  62. package/dist/commands/porch/repl.d.ts.map +1 -0
  63. package/dist/commands/porch/repl.js +206 -0
  64. package/dist/commands/porch/repl.js.map +1 -0
  65. package/dist/commands/porch/run.d.ts +15 -0
  66. package/dist/commands/porch/run.d.ts.map +1 -0
  67. package/dist/commands/porch/run.js +551 -0
  68. package/dist/commands/porch/run.js.map +1 -0
  69. package/dist/commands/porch/signals.d.ts +35 -0
  70. package/dist/commands/porch/signals.d.ts.map +1 -0
  71. package/dist/commands/porch/signals.js +76 -0
  72. package/dist/commands/porch/signals.js.map +1 -0
  73. package/dist/commands/porch/state.d.ts +40 -0
  74. package/dist/commands/porch/state.d.ts.map +1 -0
  75. package/dist/commands/porch/state.js +153 -0
  76. package/dist/commands/porch/state.js.map +1 -0
  77. package/dist/commands/porch/types.d.ts +124 -0
  78. package/dist/commands/porch/types.d.ts.map +1 -0
  79. package/dist/commands/porch/types.js +8 -0
  80. package/dist/commands/porch/types.js.map +1 -0
  81. package/dist/commands/update.d.ts.map +1 -1
  82. package/dist/commands/update.js +19 -0
  83. package/dist/commands/update.js.map +1 -1
  84. package/dist/lib/scaffold.d.ts +24 -0
  85. package/dist/lib/scaffold.d.ts.map +1 -1
  86. package/dist/lib/scaffold.js +78 -0
  87. package/dist/lib/scaffold.js.map +1 -1
  88. package/package.json +6 -2
  89. package/skeleton/porch/prompts/defend.md +103 -0
  90. package/skeleton/porch/prompts/diagnose.md +70 -0
  91. package/skeleton/porch/prompts/evaluate.md +132 -0
  92. package/skeleton/porch/prompts/fix.md +59 -0
  93. package/skeleton/porch/prompts/implement.md +79 -0
  94. package/skeleton/porch/prompts/plan.md +74 -0
  95. package/skeleton/porch/prompts/pr.md +84 -0
  96. package/skeleton/porch/prompts/review.md +179 -0
  97. package/skeleton/porch/prompts/specify.md +53 -0
  98. package/skeleton/porch/prompts/test.md +63 -0
  99. package/skeleton/porch/prompts/understand.md +61 -0
  100. package/skeleton/porch/prompts/verify.md +58 -0
  101. package/skeleton/protocols/bugfix/protocol.json +127 -0
  102. package/skeleton/protocols/protocol-schema.json +237 -0
  103. package/skeleton/protocols/spider/prompts/defend.md +215 -0
  104. package/skeleton/protocols/spider/prompts/evaluate.md +241 -0
  105. package/skeleton/protocols/spider/prompts/implement.md +149 -0
  106. package/skeleton/protocols/spider/prompts/plan.md +214 -0
  107. package/skeleton/protocols/spider/prompts/review.md +217 -0
  108. package/skeleton/protocols/spider/prompts/specify.md +174 -0
  109. package/skeleton/protocols/spider/protocol.json +136 -0
  110. package/skeleton/protocols/spider/templates/plan.md +14 -0
  111. package/skeleton/protocols/tick/protocol.json +151 -0
  112. package/skeleton/roles/architect.md +40 -48
  113. package/skeleton/roles/builder.md +152 -29
  114. package/templates/dashboard/index.html +0 -27
  115. package/templates/dashboard/js/utils.js +0 -86
  116. package/dist/agent-farm/commands/rename.d.ts +0 -13
  117. package/dist/agent-farm/commands/rename.d.ts.map +0 -1
  118. package/dist/agent-farm/commands/rename.js +0 -33
  119. package/dist/agent-farm/commands/rename.js.map +0 -1
  120. package/templates/dashboard/css/activity.css +0 -151
  121. package/templates/dashboard/js/activity.js +0 -112
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Signal detection for Porch
3
+ *
4
+ * Watches Claude's output file for signal markers:
5
+ * PHASE_COMPLETE - Phase work is done
6
+ * GATE_NEEDED - Human approval required
7
+ * BLOCKED: <reason> - Claude is stuck
8
+ */
9
+ import * as fs from 'node:fs';
10
+ /**
11
+ * Create a signal watcher for the given output file.
12
+ */
13
+ export function watchForSignal(outputPath) {
14
+ let lastPosition = 0;
15
+ let stopped = false;
16
+ return {
17
+ async check() {
18
+ if (stopped)
19
+ return null;
20
+ try {
21
+ if (!fs.existsSync(outputPath)) {
22
+ return null;
23
+ }
24
+ const content = fs.readFileSync(outputPath, 'utf-8');
25
+ // Only check new content since last position
26
+ const newContent = content.slice(lastPosition);
27
+ lastPosition = content.length;
28
+ // Look for signal markers
29
+ // These should be on their own line, possibly in output blocks
30
+ const lines = newContent.split('\n');
31
+ for (const line of lines) {
32
+ const trimmed = line.trim();
33
+ if (trimmed === 'PHASE_COMPLETE' || trimmed.includes('PHASE_COMPLETE')) {
34
+ return { type: 'PHASE_COMPLETE' };
35
+ }
36
+ if (trimmed === 'GATE_NEEDED' || trimmed.includes('GATE_NEEDED')) {
37
+ return { type: 'GATE_NEEDED' };
38
+ }
39
+ const blockedMatch = trimmed.match(/BLOCKED:\s*(.+)/);
40
+ if (blockedMatch) {
41
+ return { type: 'BLOCKED', reason: blockedMatch[1] };
42
+ }
43
+ }
44
+ return null;
45
+ }
46
+ catch (err) {
47
+ // File might not exist yet or be locked
48
+ return null;
49
+ }
50
+ },
51
+ stop() {
52
+ stopped = true;
53
+ },
54
+ };
55
+ }
56
+ /**
57
+ * Parse a signal from text content (one-shot check).
58
+ */
59
+ export function parseSignal(content) {
60
+ const lines = content.split('\n');
61
+ for (const line of lines) {
62
+ const trimmed = line.trim();
63
+ if (trimmed === 'PHASE_COMPLETE') {
64
+ return { type: 'PHASE_COMPLETE' };
65
+ }
66
+ if (trimmed === 'GATE_NEEDED') {
67
+ return { type: 'GATE_NEEDED' };
68
+ }
69
+ const blockedMatch = trimmed.match(/BLOCKED:\s*(.+)/);
70
+ if (blockedMatch) {
71
+ return { type: 'BLOCKED', reason: blockedMatch[1] };
72
+ }
73
+ }
74
+ return null;
75
+ }
76
+ //# sourceMappingURL=signals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signals.js","sourceRoot":"","sources":["../../../src/commands/porch/signals.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAmB9B;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,OAAO;QACL,KAAK,CAAC,KAAK;YACT,IAAI,OAAO;gBAAE,OAAO,IAAI,CAAC;YAEzB,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC/B,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBAErD,6CAA6C;gBAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC/C,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;gBAE9B,0BAA0B;gBAC1B,+DAA+D;gBAC/D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAErC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;oBAE5B,IAAI,OAAO,KAAK,gBAAgB,IAAI,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;wBACvE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;oBACpC,CAAC;oBAED,IAAI,OAAO,KAAK,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;wBACjE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;oBACjC,CAAC;oBAED,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;oBACtD,IAAI,YAAY,EAAE,CAAC;wBACjB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtD,CAAC;gBACH,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,wCAAwC;gBACxC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,IAAI;YACF,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE5B,IAAI,OAAO,KAAK,gBAAgB,EAAE,CAAC;YACjC,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;QACpC,CAAC;QAED,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;YAC9B,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QACjC,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACtD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Porch State Management
3
+ *
4
+ * Handles project state persistence with atomic writes.
5
+ * Fails loudly on any error - no guessing.
6
+ */
7
+ import type { ProjectState, Protocol } from './types.js';
8
+ /** Directory for project state (relative to project root) */
9
+ export declare const PROJECTS_DIR = "codev/projects";
10
+ /**
11
+ * Get the project directory path
12
+ */
13
+ export declare function getProjectDir(projectRoot: string, projectId: string, name: string): string;
14
+ /**
15
+ * Get the status.yaml path for a project
16
+ */
17
+ export declare function getStatusPath(projectRoot: string, projectId: string, name: string): string;
18
+ /**
19
+ * Read project state from status.yaml
20
+ * Fails loudly if file is missing or corrupted.
21
+ */
22
+ export declare function readState(statusPath: string): ProjectState;
23
+ /**
24
+ * Write project state atomically (tmp file + rename)
25
+ */
26
+ export declare function writeState(statusPath: string, state: ProjectState): void;
27
+ /**
28
+ * Create initial state for a new project
29
+ */
30
+ export declare function createInitialState(protocol: Protocol, projectId: string, title: string): ProjectState;
31
+ /**
32
+ * Find status.yaml by project ID (searches for NNNN-* directories)
33
+ */
34
+ export declare function findStatusPath(projectRoot: string, projectId: string): string | null;
35
+ /**
36
+ * Auto-detect project ID when only one project exists.
37
+ * Returns null if zero or multiple projects found.
38
+ */
39
+ export declare function detectProjectId(projectRoot: string): string | null;
40
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/commands/porch/state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAa,MAAM,YAAY,CAAC;AAEpE,6DAA6D;AAC7D,eAAO,MAAM,YAAY,mBAAmB,CAAC;AAM7C;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1F;AAMD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAwB1D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAmBxE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,YAAY,CA4Bd;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmBpF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAyBlE"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Porch State Management
3
+ *
4
+ * Handles project state persistence with atomic writes.
5
+ * Fails loudly on any error - no guessing.
6
+ */
7
+ import * as fs from 'node:fs';
8
+ import * as path from 'node:path';
9
+ import * as yaml from 'js-yaml';
10
+ /** Directory for project state (relative to project root) */
11
+ export const PROJECTS_DIR = 'codev/projects';
12
+ // ============================================================================
13
+ // Path Utilities
14
+ // ============================================================================
15
+ /**
16
+ * Get the project directory path
17
+ */
18
+ export function getProjectDir(projectRoot, projectId, name) {
19
+ return path.join(projectRoot, PROJECTS_DIR, `${projectId}-${name}`);
20
+ }
21
+ /**
22
+ * Get the status.yaml path for a project
23
+ */
24
+ export function getStatusPath(projectRoot, projectId, name) {
25
+ return path.join(getProjectDir(projectRoot, projectId, name), 'status.yaml');
26
+ }
27
+ // ============================================================================
28
+ // State Operations
29
+ // ============================================================================
30
+ /**
31
+ * Read project state from status.yaml
32
+ * Fails loudly if file is missing or corrupted.
33
+ */
34
+ export function readState(statusPath) {
35
+ if (!fs.existsSync(statusPath)) {
36
+ throw new Error(`Project not found: ${statusPath}\nRun 'porch init' to create a new project.`);
37
+ }
38
+ try {
39
+ const content = fs.readFileSync(statusPath, 'utf-8');
40
+ const state = yaml.load(content);
41
+ // Basic validation
42
+ if (!state || typeof state !== 'object') {
43
+ throw new Error('Invalid state file: not an object');
44
+ }
45
+ if (!state.id || !state.protocol || !state.phase) {
46
+ throw new Error('Invalid state file: missing required fields (id, protocol, phase)');
47
+ }
48
+ return state;
49
+ }
50
+ catch (err) {
51
+ if (err instanceof yaml.YAMLException) {
52
+ throw new Error(`Invalid state file: YAML parse error\n${err.message}`);
53
+ }
54
+ throw err;
55
+ }
56
+ }
57
+ /**
58
+ * Write project state atomically (tmp file + rename)
59
+ */
60
+ export function writeState(statusPath, state) {
61
+ const dir = path.dirname(statusPath);
62
+ const tmpPath = `${statusPath}.tmp`;
63
+ // Ensure directory exists
64
+ fs.mkdirSync(dir, { recursive: true });
65
+ // Update timestamp
66
+ state.updated_at = new Date().toISOString();
67
+ // Write to temp file then rename (atomic)
68
+ const content = yaml.dump(state, {
69
+ indent: 2,
70
+ lineWidth: 120,
71
+ noRefs: true,
72
+ });
73
+ fs.writeFileSync(tmpPath, content, 'utf-8');
74
+ fs.renameSync(tmpPath, statusPath);
75
+ }
76
+ /**
77
+ * Create initial state for a new project
78
+ */
79
+ export function createInitialState(protocol, projectId, title) {
80
+ const now = new Date().toISOString();
81
+ // Initialize gates from protocol
82
+ const gates = {};
83
+ for (const phase of protocol.phases) {
84
+ if (phase.gate) {
85
+ gates[phase.gate] = { status: 'pending' };
86
+ }
87
+ }
88
+ // First phase is initial
89
+ const initialPhase = protocol.phases[0]?.id || 'specify';
90
+ return {
91
+ id: projectId,
92
+ title,
93
+ protocol: protocol.name,
94
+ phase: initialPhase,
95
+ plan_phases: [],
96
+ current_plan_phase: null,
97
+ gates,
98
+ iteration: 1,
99
+ build_complete: false,
100
+ history: [],
101
+ started_at: now,
102
+ updated_at: now,
103
+ };
104
+ }
105
+ // ============================================================================
106
+ // Discovery
107
+ // ============================================================================
108
+ /**
109
+ * Find status.yaml by project ID (searches for NNNN-* directories)
110
+ */
111
+ export function findStatusPath(projectRoot, projectId) {
112
+ const projectsDir = path.join(projectRoot, PROJECTS_DIR);
113
+ if (!fs.existsSync(projectsDir)) {
114
+ return null;
115
+ }
116
+ const entries = fs.readdirSync(projectsDir, { withFileTypes: true });
117
+ for (const entry of entries) {
118
+ if (entry.isDirectory() && entry.name.startsWith(`${projectId}-`)) {
119
+ const statusPath = path.join(projectsDir, entry.name, 'status.yaml');
120
+ if (fs.existsSync(statusPath)) {
121
+ return statusPath;
122
+ }
123
+ }
124
+ }
125
+ return null;
126
+ }
127
+ /**
128
+ * Auto-detect project ID when only one project exists.
129
+ * Returns null if zero or multiple projects found.
130
+ */
131
+ export function detectProjectId(projectRoot) {
132
+ const projectsDir = path.join(projectRoot, PROJECTS_DIR);
133
+ if (!fs.existsSync(projectsDir)) {
134
+ return null;
135
+ }
136
+ const entries = fs.readdirSync(projectsDir, { withFileTypes: true });
137
+ const projects = [];
138
+ for (const entry of entries) {
139
+ if (entry.isDirectory()) {
140
+ // Extract project ID from directory name (e.g., "0076-skip-close" -> "0076")
141
+ const match = entry.name.match(/^(\d{4})-/);
142
+ if (match) {
143
+ const statusPath = path.join(projectsDir, entry.name, 'status.yaml');
144
+ if (fs.existsSync(statusPath)) {
145
+ projects.push(match[1]);
146
+ }
147
+ }
148
+ }
149
+ }
150
+ // Only return if exactly one project
151
+ return projects.length === 1 ? projects[0] : null;
152
+ }
153
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/commands/porch/state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Porch - Protocol Orchestrator
3
+ *
4
+ * Simplified type definitions. Claude calls porch as a tool;
5
+ * porch returns prescriptive instructions.
6
+ */
7
+ /**
8
+ * Build config for build_verify phases
9
+ */
10
+ export interface BuildConfig {
11
+ prompt: string;
12
+ artifact: string;
13
+ }
14
+ /**
15
+ * Verify config for build_verify phases - 3-way consultation
16
+ */
17
+ export interface VerifyConfig {
18
+ type: string;
19
+ models: string[];
20
+ parallel?: boolean;
21
+ }
22
+ /**
23
+ * On-complete actions
24
+ */
25
+ export interface OnCompleteConfig {
26
+ commit?: boolean;
27
+ push?: boolean;
28
+ }
29
+ /**
30
+ * Phase definition in a protocol
31
+ */
32
+ export interface ProtocolPhase {
33
+ id: string;
34
+ name: string;
35
+ type?: 'once' | 'per_plan_phase' | 'build_verify';
36
+ build?: BuildConfig;
37
+ verify?: VerifyConfig;
38
+ max_iterations?: number;
39
+ on_complete?: OnCompleteConfig;
40
+ gate?: string;
41
+ checks?: string[];
42
+ next?: string | null;
43
+ }
44
+ /**
45
+ * Protocol definition (loaded from protocol.json)
46
+ */
47
+ export interface Protocol {
48
+ name: string;
49
+ version?: string;
50
+ description?: string;
51
+ phases: ProtocolPhase[];
52
+ checks?: Record<string, string>;
53
+ phase_completion?: Record<string, string>;
54
+ }
55
+ /**
56
+ * Gate status
57
+ */
58
+ export interface GateStatus {
59
+ status: 'pending' | 'approved';
60
+ requested_at?: string;
61
+ approved_at?: string;
62
+ }
63
+ /**
64
+ * Plan phase status
65
+ */
66
+ export type PlanPhaseStatus = 'pending' | 'in_progress' | 'complete';
67
+ /**
68
+ * Plan phase extracted from plan.md
69
+ * Each plan phase is a single unit - implement, defend, evaluate happen together
70
+ */
71
+ export interface PlanPhase {
72
+ id: string;
73
+ title: string;
74
+ status: PlanPhaseStatus;
75
+ }
76
+ /**
77
+ * Verdict from a 3-way review
78
+ */
79
+ export type Verdict = 'APPROVE' | 'REQUEST_CHANGES' | 'COMMENT';
80
+ /**
81
+ * Review result with file path
82
+ */
83
+ export interface ReviewResult {
84
+ model: string;
85
+ verdict: Verdict;
86
+ file: string;
87
+ }
88
+ /**
89
+ * Record of a single build-verify iteration
90
+ */
91
+ export interface IterationRecord {
92
+ iteration: number;
93
+ build_output: string;
94
+ reviews: ReviewResult[];
95
+ }
96
+ /**
97
+ * Project state (stored in status.yaml)
98
+ */
99
+ export interface ProjectState {
100
+ id: string;
101
+ title: string;
102
+ protocol: string;
103
+ phase: string;
104
+ plan_phases: PlanPhase[];
105
+ current_plan_phase: string | null;
106
+ gates: Record<string, GateStatus>;
107
+ iteration: number;
108
+ build_complete: boolean;
109
+ history: IterationRecord[];
110
+ started_at: string;
111
+ updated_at: string;
112
+ }
113
+ /**
114
+ * Result of running a check
115
+ */
116
+ export interface CheckResult {
117
+ name: string;
118
+ command: string;
119
+ passed: boolean;
120
+ output?: string;
121
+ error?: string;
122
+ duration_ms?: number;
123
+ }
124
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/commands/porch/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Porch - Protocol Orchestrator
3
+ *
4
+ * Simplified type definitions. Claude calls porch as a tool;
5
+ * porch returns prescriptive instructions.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/commands/porch/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgBH,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAUD;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwPvE"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiBH,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAUD;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4QvE"}
@@ -6,6 +6,7 @@ import * as path from 'node:path';
6
6
  import { spawn } from 'node:child_process';
7
7
  import chalk from 'chalk';
8
8
  import { getTemplatesDir, getTemplateFiles, hashFile, loadHashStore, saveHashStore, isUserDataPath, isUpdatableFile, } from '../lib/templates.js';
9
+ import { copyConsultTypes, copyProtocols } from '../lib/scaffold.js';
9
10
  /**
10
11
  * Update codev templates in current project
11
12
  */
@@ -35,6 +36,24 @@ export async function update(options = {}) {
35
36
  const templateFiles = getTemplateFiles(templatesDir);
36
37
  const currentHashes = loadHashStore(targetDir);
37
38
  const newHashes = { ...currentHashes };
39
+ // Update consult-types (with skipExisting to preserve user customizations)
40
+ if (!dryRun) {
41
+ const consultTypesResult = copyConsultTypes(targetDir, templatesDir, { skipExisting: true });
42
+ if (consultTypesResult.copied.length > 0) {
43
+ for (const file of consultTypesResult.copied) {
44
+ console.log(chalk.green(' + (new)'), `codev/consult-types/${file}`);
45
+ }
46
+ }
47
+ }
48
+ // Update protocols (with skipExisting to preserve user customizations)
49
+ if (!dryRun) {
50
+ const protocolsResult = copyProtocols(targetDir, templatesDir, { skipExisting: true });
51
+ if (protocolsResult.copied.length > 0) {
52
+ for (const file of protocolsResult.copied) {
53
+ console.log(chalk.green(' + (new)'), `codev/protocols/${file}`);
54
+ }
55
+ }
56
+ }
38
57
  const result = {
39
58
  updated: [],
40
59
  skipped: [],
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
@@ -90,5 +90,29 @@ interface UpdateGitignoreResult {
90
90
  * Update existing .gitignore or create if not exists (for adopt)
91
91
  */
92
92
  export declare function updateGitignore(targetDir: string): UpdateGitignoreResult;
93
+ interface CreateProjectsDirOptions {
94
+ skipExisting?: boolean;
95
+ }
96
+ interface CreateProjectsDirResult {
97
+ created: boolean;
98
+ skipped: boolean;
99
+ }
100
+ /**
101
+ * Create codev/projects/ directory for porch state files
102
+ */
103
+ export declare function createProjectsDir(targetDir: string, options?: CreateProjectsDirOptions): CreateProjectsDirResult;
104
+ interface CopyProtocolsOptions {
105
+ skipExisting?: boolean;
106
+ }
107
+ interface CopyProtocolsResult {
108
+ copied: string[];
109
+ skipped: string[];
110
+ directoryCreated: boolean;
111
+ }
112
+ /**
113
+ * Copy protocol definitions from skeleton to codev/protocols/
114
+ * Required for porch orchestration
115
+ */
116
+ export declare function copyProtocols(targetDir: string, skeletonDir: string, options?: CopyProtocolsOptions): CopyProtocolsResult;
93
117
  export {};
94
118
  //# sourceMappingURL=scaffold.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../src/lib/scaffold.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;GAEG;AACH,eAAO,MAAM,uBAAuB,8EAKnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,+KAWlC,CAAC;AA0BF,UAAU,qBAAqB;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,UAAU,oBAAoB;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,qBAA0B,GAClC,oBAAoB,CAkBtB;AAED,UAAU,sBAAsB;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,UAAU,qBAAqB;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,sBAA2B,GACnC,qBAAqB,CAiBvB;AAED,UAAU,4BAA4B;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,sBAA2B,GACnC,4BAA4B,CAe9B;AAED,UAAU,uBAAuB;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,UAAU,sBAAsB;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,uBAA4B,GACpC,sBAAsB,CAmCxB;AAED,UAAU,4BAA4B;IACpC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,UAAU,2BAA2B;IACnC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,4BAAiC,GACzC,2BAA2B,CA4B7B;AAED,UAAU,oBAAoB;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,UAAU,mBAAmB;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,oBAAyB,GACjC,mBAAmB,CA+BrB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAGvD;AAED,UAAU,qBAAqB;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,qBAAqB,CAexE"}
1
+ {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../src/lib/scaffold.ts"],"names":[],"mappings":"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"}
@@ -220,4 +220,82 @@ export function updateGitignore(targetDir) {
220
220
  fs.appendFileSync(gitignorePath, '\n' + CODEV_GITIGNORE_ENTRIES);
221
221
  return { updated: true, created: false, alreadyPresent: false };
222
222
  }
223
+ /**
224
+ * Create codev/projects/ directory for porch state files
225
+ */
226
+ export function createProjectsDir(targetDir, options = {}) {
227
+ const { skipExisting = false } = options;
228
+ const projectsDir = path.join(targetDir, 'codev', 'projects');
229
+ if (skipExisting && fs.existsSync(projectsDir)) {
230
+ return { created: false, skipped: true };
231
+ }
232
+ fs.mkdirSync(projectsDir, { recursive: true });
233
+ fs.writeFileSync(path.join(projectsDir, '.gitkeep'), '');
234
+ return { created: true, skipped: false };
235
+ }
236
+ /**
237
+ * Recursively copy a directory
238
+ */
239
+ function copyDirRecursive(src, dest) {
240
+ if (!fs.existsSync(dest)) {
241
+ fs.mkdirSync(dest, { recursive: true });
242
+ }
243
+ const entries = fs.readdirSync(src, { withFileTypes: true });
244
+ for (const entry of entries) {
245
+ const srcPath = path.join(src, entry.name);
246
+ const destPath = path.join(dest, entry.name);
247
+ if (entry.isDirectory()) {
248
+ copyDirRecursive(srcPath, destPath);
249
+ }
250
+ else {
251
+ fs.copyFileSync(srcPath, destPath);
252
+ }
253
+ }
254
+ }
255
+ /**
256
+ * Copy protocol definitions from skeleton to codev/protocols/
257
+ * Required for porch orchestration
258
+ */
259
+ export function copyProtocols(targetDir, skeletonDir, options = {}) {
260
+ const { skipExisting = false } = options;
261
+ const protocolsDir = path.join(targetDir, 'codev', 'protocols');
262
+ const srcDir = path.join(skeletonDir, 'protocols');
263
+ const copied = [];
264
+ const skipped = [];
265
+ let directoryCreated = false;
266
+ // Ensure protocols directory exists
267
+ if (!fs.existsSync(protocolsDir)) {
268
+ fs.mkdirSync(protocolsDir, { recursive: true });
269
+ directoryCreated = true;
270
+ }
271
+ // If source directory doesn't exist, return early
272
+ if (!fs.existsSync(srcDir)) {
273
+ return { copied, skipped, directoryCreated };
274
+ }
275
+ // Copy each protocol directory
276
+ const protocols = fs.readdirSync(srcDir, { withFileTypes: true });
277
+ for (const entry of protocols) {
278
+ if (!entry.isDirectory()) {
279
+ // Copy top-level files (like protocol-schema.json)
280
+ const srcPath = path.join(srcDir, entry.name);
281
+ const destPath = path.join(protocolsDir, entry.name);
282
+ if (skipExisting && fs.existsSync(destPath)) {
283
+ skipped.push(entry.name);
284
+ continue;
285
+ }
286
+ fs.copyFileSync(srcPath, destPath);
287
+ copied.push(entry.name);
288
+ continue;
289
+ }
290
+ const destProtocolDir = path.join(protocolsDir, entry.name);
291
+ const srcProtocolDir = path.join(srcDir, entry.name);
292
+ if (skipExisting && fs.existsSync(destProtocolDir)) {
293
+ skipped.push(entry.name + '/');
294
+ continue;
295
+ }
296
+ copyDirRecursive(srcProtocolDir, destProtocolDir);
297
+ copied.push(entry.name + '/');
298
+ }
299
+ return { copied, skipped, directoryCreated };
300
+ }
223
301
  //# sourceMappingURL=scaffold.js.map