@cluesmith/codev 1.1.0 → 1.1.1

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 (137) hide show
  1. package/dist/agent-farm/cli.d.ts.map +1 -1
  2. package/dist/agent-farm/cli.js +19 -0
  3. package/dist/agent-farm/cli.js.map +1 -1
  4. package/dist/agent-farm/commands/cleanup.d.ts.map +1 -1
  5. package/dist/agent-farm/commands/cleanup.js +18 -1
  6. package/dist/agent-farm/commands/cleanup.js.map +1 -1
  7. package/dist/agent-farm/commands/consult.d.ts +16 -0
  8. package/dist/agent-farm/commands/consult.d.ts.map +1 -0
  9. package/dist/agent-farm/commands/consult.js +51 -0
  10. package/dist/agent-farm/commands/consult.js.map +1 -0
  11. package/dist/agent-farm/commands/open.js +6 -6
  12. package/dist/agent-farm/commands/open.js.map +1 -1
  13. package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
  14. package/dist/agent-farm/commands/spawn.js +48 -42
  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 -14
  18. package/dist/agent-farm/commands/start.js.map +1 -1
  19. package/dist/agent-farm/commands/util.js +2 -2
  20. package/dist/agent-farm/commands/util.js.map +1 -1
  21. package/dist/agent-farm/db/errors.d.ts +4 -0
  22. package/dist/agent-farm/db/errors.d.ts.map +1 -1
  23. package/dist/agent-farm/db/errors.js +8 -0
  24. package/dist/agent-farm/db/errors.js.map +1 -1
  25. package/dist/agent-farm/servers/dashboard-server.js +113 -71
  26. package/dist/agent-farm/servers/dashboard-server.js.map +1 -1
  27. package/dist/agent-farm/servers/open-server.d.ts +9 -0
  28. package/dist/agent-farm/servers/open-server.d.ts.map +1 -0
  29. package/dist/agent-farm/servers/{annotate-server.js → open-server.js} +17 -15
  30. package/dist/agent-farm/servers/open-server.js.map +1 -0
  31. package/dist/agent-farm/servers/tower-server.js +4 -7
  32. package/dist/agent-farm/servers/tower-server.js.map +1 -1
  33. package/dist/agent-farm/state.d.ts +5 -0
  34. package/dist/agent-farm/state.d.ts.map +1 -1
  35. package/dist/agent-farm/state.js +17 -0
  36. package/dist/agent-farm/state.js.map +1 -1
  37. package/dist/agent-farm/types.d.ts +1 -1
  38. package/dist/agent-farm/types.d.ts.map +1 -1
  39. package/dist/agent-farm/utils/config.d.ts.map +1 -1
  40. package/dist/agent-farm/utils/config.js +13 -7
  41. package/dist/agent-farm/utils/config.js.map +1 -1
  42. package/dist/agent-farm/utils/port-registry.d.ts +1 -1
  43. package/dist/agent-farm/utils/port-registry.d.ts.map +1 -1
  44. package/dist/agent-farm/utils/port-registry.js +1 -1
  45. package/dist/agent-farm/utils/port-registry.js.map +1 -1
  46. package/dist/agent-farm/utils/shell.d.ts +19 -0
  47. package/dist/agent-farm/utils/shell.d.ts.map +1 -1
  48. package/dist/agent-farm/utils/shell.js +28 -0
  49. package/dist/agent-farm/utils/shell.js.map +1 -1
  50. package/dist/cli.d.ts.map +1 -1
  51. package/dist/cli.js +18 -0
  52. package/dist/cli.js.map +1 -1
  53. package/dist/commands/adopt.d.ts +3 -0
  54. package/dist/commands/adopt.d.ts.map +1 -1
  55. package/dist/commands/adopt.js +31 -25
  56. package/dist/commands/adopt.js.map +1 -1
  57. package/dist/commands/consult/index.d.ts +3 -2
  58. package/dist/commands/consult/index.d.ts.map +1 -1
  59. package/dist/commands/consult/index.js +128 -54
  60. package/dist/commands/consult/index.js.map +1 -1
  61. package/dist/commands/doctor.d.ts.map +1 -1
  62. package/dist/commands/doctor.js +30 -34
  63. package/dist/commands/doctor.js.map +1 -1
  64. package/dist/commands/eject.d.ts +18 -0
  65. package/dist/commands/eject.d.ts.map +1 -0
  66. package/dist/commands/eject.js +149 -0
  67. package/dist/commands/eject.js.map +1 -0
  68. package/dist/commands/init.d.ts +3 -0
  69. package/dist/commands/init.d.ts.map +1 -1
  70. package/dist/commands/init.js +32 -27
  71. package/dist/commands/init.js.map +1 -1
  72. package/dist/lib/projectlist-parser.d.ts +70 -0
  73. package/dist/lib/projectlist-parser.d.ts.map +1 -0
  74. package/dist/lib/projectlist-parser.js +200 -0
  75. package/dist/lib/projectlist-parser.js.map +1 -0
  76. package/dist/lib/skeleton.d.ts +41 -0
  77. package/dist/lib/skeleton.d.ts.map +1 -0
  78. package/dist/lib/skeleton.js +110 -0
  79. package/dist/lib/skeleton.js.map +1 -0
  80. package/dist/lib/templates.d.ts +2 -1
  81. package/dist/lib/templates.d.ts.map +1 -1
  82. package/dist/lib/templates.js +11 -10
  83. package/dist/lib/templates.js.map +1 -1
  84. package/package.json +4 -3
  85. package/{templates → skeleton}/DEPENDENCIES.md +2 -48
  86. package/{templates → skeleton}/agents/codev-updater.md +4 -3
  87. package/skeleton/bin/agent-farm +7 -0
  88. package/skeleton/docs/commands/agent-farm.md +469 -0
  89. package/skeleton/docs/commands/codev.md +253 -0
  90. package/skeleton/docs/commands/consult.md +286 -0
  91. package/skeleton/docs/commands/overview.md +107 -0
  92. package/{templates → skeleton}/protocols/experiment/protocol.md +2 -2
  93. package/{templates → skeleton}/protocols/spider/protocol.md +7 -7
  94. package/{templates/protocols/spider-solo → skeleton/protocols/spider}/templates/plan.md +22 -1
  95. package/{templates/protocols/spider-solo → skeleton/protocols/spider}/templates/spec.md +30 -1
  96. package/skeleton/protocols/tick/protocol.md +277 -0
  97. package/skeleton/resources/lessons-learned.md +30 -0
  98. package/skeleton/resources/workflow-reference.md +229 -0
  99. package/{templates → skeleton}/roles/architect.md +2 -0
  100. package/{templates → skeleton}/roles/builder.md +2 -0
  101. package/skeleton/roles/review-types/impl-review.md +56 -0
  102. package/skeleton/roles/review-types/integration-review.md +68 -0
  103. package/skeleton/roles/review-types/plan-review.md +59 -0
  104. package/skeleton/roles/review-types/pr-ready.md +72 -0
  105. package/skeleton/roles/review-types/spec-review.md +55 -0
  106. package/{templates → skeleton}/templates/projectlist.md +17 -16
  107. package/dist/agent-farm/servers/annotate-server.d.ts +0 -9
  108. package/dist/agent-farm/servers/annotate-server.d.ts.map +0 -1
  109. package/dist/agent-farm/servers/annotate-server.js.map +0 -1
  110. package/templates/annotate.html +0 -903
  111. package/templates/bin/agent-farm +0 -18
  112. package/templates/bin/annotate-server.js +0 -140
  113. package/templates/dashboard-split.html +0 -1679
  114. package/templates/dashboard.html +0 -149
  115. package/templates/protocols/spider/templates/plan.md +0 -169
  116. package/templates/protocols/spider/templates/review.md +0 -207
  117. package/templates/protocols/spider/templates/spec.md +0 -140
  118. package/templates/protocols/spider-solo/protocol.md +0 -619
  119. package/templates/protocols/tick/protocol.md +0 -250
  120. package/templates/tower.html +0 -1032
  121. /package/{templates/AGENTS.md → skeleton/AGENTS.md.template} +0 -0
  122. /package/{templates/CLAUDE.md → skeleton/CLAUDE.md.template} +0 -0
  123. /package/{templates → skeleton}/agents/architecture-documenter.md +0 -0
  124. /package/{templates → skeleton}/agents/spider-protocol-updater.md +0 -0
  125. /package/{templates → skeleton}/bin/codev-doctor +0 -0
  126. /package/{templates → skeleton}/builders.md +0 -0
  127. /package/{templates → skeleton}/config.json +0 -0
  128. /package/{templates → skeleton}/plans/.gitkeep +0 -0
  129. /package/{templates → skeleton}/protocols/experiment/templates/notes.md +0 -0
  130. /package/{templates → skeleton}/protocols/maintain/protocol.md +0 -0
  131. /package/{templates/protocols/spider-solo → skeleton/protocols/spider}/templates/review.md +0 -0
  132. /package/{templates → skeleton}/protocols/tick/templates/plan.md +0 -0
  133. /package/{templates → skeleton}/protocols/tick/templates/review.md +0 -0
  134. /package/{templates → skeleton}/protocols/tick/templates/spec.md +0 -0
  135. /package/{templates → skeleton}/reviews/.gitkeep +0 -0
  136. /package/{templates → skeleton}/roles/consultant.md +0 -0
  137. /package/{templates → skeleton}/specs/.gitkeep +0 -0
@@ -0,0 +1,200 @@
1
+ /**
2
+ * Projectlist.md parser for the Projects Tab UI (Spec 0045)
3
+ *
4
+ * This module provides functions to parse the YAML project entries from
5
+ * codev/projectlist.md. It's used by both the dashboard UI and for testing.
6
+ */
7
+ export const VALID_STATUSES = [
8
+ 'conceived',
9
+ 'specified',
10
+ 'planned',
11
+ 'implementing',
12
+ 'implemented',
13
+ 'committed',
14
+ 'integrated',
15
+ 'abandoned',
16
+ 'on-hold',
17
+ ];
18
+ export const LIFECYCLE_STAGES = [
19
+ 'conceived',
20
+ 'specified',
21
+ 'planned',
22
+ 'implementing',
23
+ 'implemented',
24
+ 'committed',
25
+ 'integrated',
26
+ ];
27
+ /**
28
+ * XSS-safe HTML escaping
29
+ */
30
+ export function escapeHtml(text) {
31
+ if (!text)
32
+ return '';
33
+ return String(text)
34
+ .replace(/&/g, '&')
35
+ .replace(/</g, '&lt;')
36
+ .replace(/>/g, '&gt;')
37
+ .replace(/"/g, '&quot;')
38
+ .replace(/'/g, '&#39;');
39
+ }
40
+ /**
41
+ * Parse a single project entry from YAML-like text
42
+ */
43
+ export function parseProjectEntry(text) {
44
+ const project = {};
45
+ const lines = text.split('\n');
46
+ for (const line of lines) {
47
+ // Match key: value or key: "value"
48
+ // Also handle "- id:" YAML list format
49
+ const match = line.match(/^\s*-?\s*(\w+):\s*(.*)$/);
50
+ if (!match)
51
+ continue;
52
+ const [, key, rawValue] = match;
53
+ // Remove quotes if present
54
+ let value = rawValue.trim();
55
+ if ((value.startsWith('"') && value.endsWith('"')) ||
56
+ (value.startsWith("'") && value.endsWith("'"))) {
57
+ value = value.slice(1, -1);
58
+ }
59
+ // Handle nested files object
60
+ if (key === 'files') {
61
+ project.files = {};
62
+ continue;
63
+ }
64
+ if (key === 'spec' || key === 'plan' || key === 'review') {
65
+ if (!project.files)
66
+ project.files = {};
67
+ project.files[key] =
68
+ value === 'null' ? null : value;
69
+ continue;
70
+ }
71
+ // Handle nested timestamps object
72
+ if (key === 'timestamps') {
73
+ project.timestamps = {};
74
+ continue;
75
+ }
76
+ const timestampFields = [
77
+ 'conceived_at',
78
+ 'specified_at',
79
+ 'planned_at',
80
+ 'implementing_at',
81
+ 'implemented_at',
82
+ 'committed_at',
83
+ 'integrated_at',
84
+ ];
85
+ if (timestampFields.includes(key)) {
86
+ if (!project.timestamps)
87
+ project.timestamps = {};
88
+ project.timestamps[key] =
89
+ value === 'null' ? null : value;
90
+ continue;
91
+ }
92
+ // Handle arrays (simple inline format)
93
+ if (key === 'dependencies' || key === 'tags' || key === 'ticks') {
94
+ if (value.startsWith('[') && value.endsWith(']')) {
95
+ const inner = value.slice(1, -1);
96
+ if (inner.trim() === '') {
97
+ project[key] = [];
98
+ }
99
+ else {
100
+ project[key] = inner
101
+ .split(',')
102
+ .map((s) => s.trim().replace(/^["']|["']$/g, ''));
103
+ }
104
+ }
105
+ else {
106
+ project[key] = [];
107
+ }
108
+ continue;
109
+ }
110
+ // Regular string values
111
+ if (value !== 'null') {
112
+ project[key] = value;
113
+ }
114
+ }
115
+ return project;
116
+ }
117
+ /**
118
+ * Validate that a project entry is valid
119
+ */
120
+ export function isValidProject(project) {
121
+ // Must have id (4-digit string, not "NNNN")
122
+ if (!project.id ||
123
+ project.id === 'NNNN' ||
124
+ !/^\d{4}$/.test(project.id)) {
125
+ return false;
126
+ }
127
+ // Must have status
128
+ if (!project.status ||
129
+ !VALID_STATUSES.includes(project.status)) {
130
+ return false;
131
+ }
132
+ // Must have title
133
+ if (!project.title) {
134
+ return false;
135
+ }
136
+ // Filter out example entries
137
+ if (project.tags && project.tags.includes('example')) {
138
+ return false;
139
+ }
140
+ return true;
141
+ }
142
+ /**
143
+ * Parse projectlist.md content into array of projects
144
+ */
145
+ export function parseProjectlist(content) {
146
+ const projects = [];
147
+ try {
148
+ // Extract YAML code blocks
149
+ const yamlBlockRegex = /```yaml\n([\s\S]*?)```/g;
150
+ let match;
151
+ while ((match = yamlBlockRegex.exec(content)) !== null) {
152
+ const block = match[1];
153
+ // Split by project entries (lines starting with " - id:")
154
+ // Handle both top-level and indented entries
155
+ const projectMatches = block.split(/\n(?=\s*- id:)/);
156
+ for (const projectText of projectMatches) {
157
+ if (!projectText.trim() || !projectText.includes('id:'))
158
+ continue;
159
+ const project = parseProjectEntry(projectText);
160
+ if (isValidProject(project)) {
161
+ projects.push(project);
162
+ }
163
+ }
164
+ }
165
+ }
166
+ catch {
167
+ // Return empty array on parse error
168
+ return [];
169
+ }
170
+ return projects;
171
+ }
172
+ /**
173
+ * Get the index of a lifecycle stage
174
+ */
175
+ export function getStageIndex(status) {
176
+ return LIFECYCLE_STAGES.indexOf(status);
177
+ }
178
+ /**
179
+ * Filter projects to only active (non-terminal) ones
180
+ */
181
+ export function getActiveProjects(projects) {
182
+ return projects.filter((p) => !['abandoned', 'on-hold'].includes(p.status));
183
+ }
184
+ /**
185
+ * Filter projects to only terminal (abandoned, on-hold) ones
186
+ */
187
+ export function getTerminalProjects(projects) {
188
+ return projects.filter((p) => ['abandoned', 'on-hold'].includes(p.status));
189
+ }
190
+ /**
191
+ * Get projects grouped by status
192
+ */
193
+ export function groupByStatus(projects, statuses) {
194
+ const groups = {};
195
+ for (const status of statuses) {
196
+ groups[status] = projects.filter((p) => p.status === status);
197
+ }
198
+ return groups;
199
+ }
200
+ //# sourceMappingURL=projectlist-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectlist-parser.js","sourceRoot":"","sources":["../../src/lib/projectlist-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Skeleton resolver - finds codev files with local override support
3
+ *
4
+ * Resolution order:
5
+ * 1. Local codev/ directory (user overrides)
6
+ * 2. Embedded skeleton in npm package (defaults)
7
+ */
8
+ /**
9
+ * Get path to embedded skeleton directory.
10
+ * The skeleton is copied from codev-skeleton/ at build time.
11
+ */
12
+ export declare function getSkeletonDir(): string;
13
+ /**
14
+ * Find project root by looking for codev/ directory or .git
15
+ */
16
+ export declare function findProjectRoot(startDir?: string): string;
17
+ /**
18
+ * Resolve a codev file, checking local first then embedded skeleton.
19
+ *
20
+ * @param relativePath - Path relative to codev/ (e.g., 'roles/consultant.md')
21
+ * @param projectRoot - Optional project root (auto-detected if not provided)
22
+ * @returns Absolute path to the file, or null if not found
23
+ */
24
+ export declare function resolveCodevFile(relativePath: string, projectRoot?: string): string | null;
25
+ /**
26
+ * Read a codev file, checking local first then embedded skeleton.
27
+ *
28
+ * @param relativePath - Path relative to codev/ (e.g., 'roles/consultant.md')
29
+ * @param projectRoot - Optional project root (auto-detected if not provided)
30
+ * @returns File contents, or null if not found
31
+ */
32
+ export declare function readCodevFile(relativePath: string, projectRoot?: string): string | null;
33
+ /**
34
+ * Check if a file exists in local codev/ directory (not skeleton)
35
+ */
36
+ export declare function hasLocalOverride(relativePath: string, projectRoot?: string): boolean;
37
+ /**
38
+ * List all files in the skeleton directory matching a pattern
39
+ */
40
+ export declare function listSkeletonFiles(subdir?: string): string[];
41
+ //# sourceMappingURL=skeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../src/lib/skeleton.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAKvC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAgBzD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiB1F;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMvF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAIpF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAwB3D"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Skeleton resolver - finds codev files with local override support
3
+ *
4
+ * Resolution order:
5
+ * 1. Local codev/ directory (user overrides)
6
+ * 2. Embedded skeleton in npm package (defaults)
7
+ */
8
+ import * as fs from 'node:fs';
9
+ import * as path from 'node:path';
10
+ import { fileURLToPath } from 'node:url';
11
+ const __filename = fileURLToPath(import.meta.url);
12
+ const __dirname = path.dirname(__filename);
13
+ /**
14
+ * Get path to embedded skeleton directory.
15
+ * The skeleton is copied from codev-skeleton/ at build time.
16
+ */
17
+ export function getSkeletonDir() {
18
+ // In built package: dist/lib/skeleton.js
19
+ // Skeleton is at: packages/codev/skeleton/
20
+ // So: dist/lib -> ../../skeleton
21
+ return path.resolve(__dirname, '../../skeleton');
22
+ }
23
+ /**
24
+ * Find project root by looking for codev/ directory or .git
25
+ */
26
+ export function findProjectRoot(startDir) {
27
+ let current = startDir || process.cwd();
28
+ while (current !== path.dirname(current)) {
29
+ // Check for codev/ directory
30
+ if (fs.existsSync(path.join(current, 'codev'))) {
31
+ return current;
32
+ }
33
+ // Check for .git as fallback
34
+ if (fs.existsSync(path.join(current, '.git'))) {
35
+ return current;
36
+ }
37
+ current = path.dirname(current);
38
+ }
39
+ return startDir || process.cwd();
40
+ }
41
+ /**
42
+ * Resolve a codev file, checking local first then embedded skeleton.
43
+ *
44
+ * @param relativePath - Path relative to codev/ (e.g., 'roles/consultant.md')
45
+ * @param projectRoot - Optional project root (auto-detected if not provided)
46
+ * @returns Absolute path to the file, or null if not found
47
+ */
48
+ export function resolveCodevFile(relativePath, projectRoot) {
49
+ const root = projectRoot || findProjectRoot();
50
+ // 1. Check local codev/ directory first (user overrides)
51
+ const localPath = path.join(root, 'codev', relativePath);
52
+ if (fs.existsSync(localPath)) {
53
+ return localPath;
54
+ }
55
+ // 2. Fall back to embedded skeleton
56
+ const skeletonDir = getSkeletonDir();
57
+ const embeddedPath = path.join(skeletonDir, relativePath);
58
+ if (fs.existsSync(embeddedPath)) {
59
+ return embeddedPath;
60
+ }
61
+ return null;
62
+ }
63
+ /**
64
+ * Read a codev file, checking local first then embedded skeleton.
65
+ *
66
+ * @param relativePath - Path relative to codev/ (e.g., 'roles/consultant.md')
67
+ * @param projectRoot - Optional project root (auto-detected if not provided)
68
+ * @returns File contents, or null if not found
69
+ */
70
+ export function readCodevFile(relativePath, projectRoot) {
71
+ const filePath = resolveCodevFile(relativePath, projectRoot);
72
+ if (!filePath) {
73
+ return null;
74
+ }
75
+ return fs.readFileSync(filePath, 'utf-8');
76
+ }
77
+ /**
78
+ * Check if a file exists in local codev/ directory (not skeleton)
79
+ */
80
+ export function hasLocalOverride(relativePath, projectRoot) {
81
+ const root = projectRoot || findProjectRoot();
82
+ const localPath = path.join(root, 'codev', relativePath);
83
+ return fs.existsSync(localPath);
84
+ }
85
+ /**
86
+ * List all files in the skeleton directory matching a pattern
87
+ */
88
+ export function listSkeletonFiles(subdir) {
89
+ const skeletonDir = getSkeletonDir();
90
+ const targetDir = subdir ? path.join(skeletonDir, subdir) : skeletonDir;
91
+ if (!fs.existsSync(targetDir)) {
92
+ return [];
93
+ }
94
+ const results = [];
95
+ function walk(dir, prefix) {
96
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
97
+ for (const entry of entries) {
98
+ const relativePath = prefix ? `${prefix}/${entry.name}` : entry.name;
99
+ if (entry.isDirectory()) {
100
+ walk(path.join(dir, entry.name), relativePath);
101
+ }
102
+ else {
103
+ results.push(relativePath);
104
+ }
105
+ }
106
+ }
107
+ walk(targetDir, subdir || '');
108
+ return results;
109
+ }
110
+ //# sourceMappingURL=skeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skeleton.js","sourceRoot":"","sources":["../../src/lib/skeleton.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,8 @@
2
2
  * Template handling utilities for codev init/adopt/update
3
3
  */
4
4
  /**
5
- * Get the path to the embedded templates directory
5
+ * Get the path to the embedded skeleton directory
6
+ * (contains protocols, roles, agents - the codev framework files)
6
7
  */
7
8
  export declare function getTemplatesDir(): string;
8
9
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/lib/templates.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAexC;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUvE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAOrF;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,UAM9B,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAI5D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAqBjE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IACP,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,KAAK,IAAI,CAAC;CAC1E,GACL,IAAI,CAoEN;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAuB/D;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,UAM9B,CAAC;AAEF;;GAEG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAE7D"}
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/lib/templates.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH;;;GAGG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAexC;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUvE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAOrF;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,UAM9B,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAI5D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAqBjE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IACP,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,KAAK,IAAI,CAAC;CAC1E,GACL,IAAI,CAoEN;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAuB/D;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,UAM9B,CAAC;AAEF;;GAEG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAE7D"}
@@ -8,21 +8,22 @@ import { fileURLToPath } from 'node:url';
8
8
  const __filename = fileURLToPath(import.meta.url);
9
9
  const __dirname = path.dirname(__filename);
10
10
  /**
11
- * Get the path to the embedded templates directory
11
+ * Get the path to the embedded skeleton directory
12
+ * (contains protocols, roles, agents - the codev framework files)
12
13
  */
13
14
  export function getTemplatesDir() {
14
- // In development: packages/codev/templates
15
- // In installed: node_modules/@cluesmith/codev/templates
16
- const templatesDir = path.resolve(__dirname, '../../templates');
17
- if (fs.existsSync(templatesDir)) {
18
- return templatesDir;
15
+ // In development: packages/codev/skeleton
16
+ // In installed: node_modules/@cluesmith/codev/skeleton
17
+ const skeletonDir = path.resolve(__dirname, '../../skeleton');
18
+ if (fs.existsSync(skeletonDir)) {
19
+ return skeletonDir;
19
20
  }
20
21
  // Fallback: check dist location
21
- const distTemplatesDir = path.resolve(__dirname, '../../../templates');
22
- if (fs.existsSync(distTemplatesDir)) {
23
- return distTemplatesDir;
22
+ const distSkeletonDir = path.resolve(__dirname, '../../../skeleton');
23
+ if (fs.existsSync(distSkeletonDir)) {
24
+ return distSkeletonDir;
24
25
  }
25
- throw new Error('Templates directory not found. Package may be corrupted.');
26
+ throw new Error('Skeleton directory not found. Package may be corrupted.');
26
27
  }
27
28
  /**
28
29
  * Get SHA256 hash of a file
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/lib/templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/lib/templates.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cluesmith/codev",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "Codev CLI - AI-assisted software development framework",
5
5
  "type": "module",
6
6
  "bin": {
@@ -11,10 +11,11 @@
11
11
  "files": [
12
12
  "dist",
13
13
  "bin",
14
- "templates"
14
+ "skeleton"
15
15
  ],
16
16
  "scripts": {
17
- "build": "tsc",
17
+ "build": "tsc && npm run copy-skeleton",
18
+ "copy-skeleton": "rm -rf skeleton && cp -r ../../codev-skeleton skeleton",
18
19
  "dev": "tsx src/cli.ts",
19
20
  "start": "node dist/cli.js",
20
21
  "test": "vitest",
@@ -130,26 +130,6 @@ gh auth login
130
130
  gh auth status # Should show "Logged in to github.com"
131
131
  ```
132
132
 
133
- ### Python 3
134
-
135
- | Requirement | Value |
136
- |-------------|-------|
137
- | Minimum Version | 3.10 |
138
- | Purpose | Consult tool, utility scripts |
139
-
140
- **Installation:**
141
-
142
- ```bash
143
- # macOS
144
- brew install python
145
-
146
- # Ubuntu/Debian
147
- sudo apt install python3 python3-pip
148
-
149
- # Verify
150
- python3 --version # Should show 3.10.x or higher
151
- ```
152
-
153
133
  ---
154
134
 
155
135
  ## AI CLI Dependencies (At Least One Required)
@@ -206,30 +186,6 @@ codex --version
206
186
 
207
187
  ---
208
188
 
209
- ## Python Packages (Optional)
210
-
211
- These are optional but enable additional features.
212
-
213
- ### typer
214
-
215
- | Requirement | Value |
216
- |-------------|-------|
217
- | Purpose | CLI framework for the consult tool |
218
-
219
- **Installation:**
220
-
221
- ```bash
222
- pip install typer
223
-
224
- # Or with uv
225
- uv pip install typer
226
-
227
- # Verify
228
- python3 -c "import typer; print('typer installed')"
229
- ```
230
-
231
- ---
232
-
233
189
  ## Version Requirements Summary
234
190
 
235
191
  | Dependency | Minimum Version | Required? |
@@ -239,11 +195,9 @@ python3 -c "import typer; print('typer installed')"
239
195
  | ttyd | 1.7.0 | Yes |
240
196
  | git | 2.5.0 | Yes |
241
197
  | gh | latest | Yes |
242
- | Python 3 | 3.10 | Yes |
243
198
  | Claude Code | latest | At least one AI CLI |
244
199
  | Gemini CLI | latest | At least one AI CLI |
245
200
  | Codex CLI | latest | At least one AI CLI |
246
- | typer | latest | No (for consult tool) |
247
201
 
248
202
  ---
249
203
 
@@ -255,7 +209,7 @@ All dependencies are available via Homebrew:
255
209
 
256
210
  ```bash
257
211
  # Install all core dependencies at once
258
- brew install node tmux ttyd gh python
212
+ brew install node tmux ttyd gh
259
213
 
260
214
  # Git is included with Xcode command line tools
261
215
  xcode-select --install
@@ -267,7 +221,7 @@ Most dependencies are available via apt, except ttyd which must be built from so
267
221
 
268
222
  ```bash
269
223
  # Core dependencies
270
- sudo apt install nodejs npm tmux git python3 python3-pip
224
+ sudo apt install nodejs npm tmux git
271
225
 
272
226
  # gh requires adding GitHub's apt repository (see above)
273
227
 
@@ -46,7 +46,7 @@ You are the Codev Framework Updater, responsible for keeping Codev installations
46
46
  ## Your Core Mission
47
47
 
48
48
  Update existing Codev installations with the latest:
49
- - Protocols (SPIDER, SPIDER-SOLO, TICK, and future additions)
49
+ - Protocols (SPIDER, TICK, EXPERIMENT, MAINTAIN, and future additions)
50
50
  - AI agents in .claude/agents/
51
51
  - Protocol templates
52
52
  - Shared resources
@@ -130,7 +130,7 @@ After updating, verify the installation:
130
130
 
131
131
  ```bash
132
132
  # Test protocols exist and are readable
133
- for protocol in spider spider-solo tick; do
133
+ for protocol in spider tick experiment maintain; do
134
134
  if [ -f "codev/protocols/$protocol/protocol.md" ]; then
135
135
  echo "✓ $protocol protocol updated"
136
136
  fi
@@ -159,7 +159,8 @@ Generate a comprehensive update report:
159
159
 
160
160
  ## Updates Applied
161
161
  - ✓ SPIDER protocol: [updated/no changes]
162
- - ✓ SPIDER-SOLO protocol: [updated/no changes]
162
+ - ✓ EXPERIMENT protocol: [added/updated/no changes]
163
+ - ✓ MAINTAIN protocol: [added/updated/no changes]
163
164
  - ✓ TICK protocol: [added/updated/no changes]
164
165
  - ✓ Agents updated: [list of updated agents]
165
166
 
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ # Thin wrapper - forwards all commands to agent-farm TypeScript
3
+ # Uses readlink to handle symlinks (e.g., if symlinked to /usr/local/bin)
4
+ SCRIPT_PATH="$(readlink -f "$0" 2>/dev/null || realpath "$0" 2>/dev/null || echo "$0")"
5
+ SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_PATH")" && pwd)"
6
+ PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
7
+ exec node "$PROJECT_ROOT/agent-farm/dist/index.js" "$@"