@veewo/claw 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,21 @@
1
+ # @veewo/claw
2
+
3
+ Publishable `claw` CLI for `.claw` project bootstrap, planning, search, truth ingestion, and completion refresh.
4
+
5
+ Install:
6
+
7
+ ```bash
8
+ npm install -g @veewo/claw
9
+ ```
10
+
11
+ Then run:
12
+
13
+ ```bash
14
+ claw init
15
+ claw context
16
+ claw plan write --task my-task --title "My task" --goal "Define the first task"
17
+ ```
18
+
19
+ Repository:
20
+
21
+ - [claw-kit](https://github.com/chanyuenpang/claw-kit)
package/dist/cli.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/dist/cli.js ADDED
@@ -0,0 +1,638 @@
1
+ #!/usr/bin/env node
2
+ import fs from "node:fs";
3
+ import path from "node:path";
4
+ import { spawnSync } from "node:child_process";
5
+ import { checkProjectProtocol, ClawError, buildMemoryIndex, editPlan, ensureProjectProtocol, enforceTaskRetention, ingestTruth, initProject, resolveProjectContext, resolveContext, searchMemory, showPlan, switchTask, writePlan, } from "@veewo/claw-core";
6
+ async function main() {
7
+ const args = process.argv.slice(2);
8
+ const command = args.shift();
9
+ try {
10
+ switch (command) {
11
+ case "init":
12
+ const initInput = {
13
+ cwd: process.cwd(),
14
+ projectId: readOptionalFlag(args, "--id"),
15
+ projectName: readOptionalFlag(args, "--name"),
16
+ maxTasksToKeep: readOptionalNumber(args, "--max-tasks-to-keep"),
17
+ externalTruthSkill: readOptionalFlag(args, "--external-truth-skill") ?? null,
18
+ externalAdrSkill: readOptionalFlag(args, "--external-adr-skill") ?? null,
19
+ contextPaths: readRepeatedFlag(args, "--context-path"),
20
+ externalDocPaths: readRepeatedFlag(args, "--ext-path"),
21
+ gitnexusEnabled: readBooleanValueFlag(args, "--gitnexus") ?? false,
22
+ force: readBooleanFlag(args, "--force"),
23
+ };
24
+ printJson(initProject(initInput));
25
+ return;
26
+ case "context":
27
+ printJson(runContextCommand(args));
28
+ return;
29
+ case "check":
30
+ const checkResult = ensureProjectProtocol(process.cwd());
31
+ printJson({
32
+ command: "check",
33
+ ok: checkResult.ok,
34
+ changed: checkResult.changed,
35
+ projectRoot: checkResult.projectRoot,
36
+ projectJsonPath: checkResult.projectJsonPath,
37
+ issueCountBefore: checkResult.issueCountBefore,
38
+ fixedPaths: checkResult.fixedPaths,
39
+ });
40
+ return;
41
+ case "plan":
42
+ await runPlan(args);
43
+ return;
44
+ case "switch-task":
45
+ printJson(switchTask({
46
+ cwd: process.cwd(),
47
+ fromTask: readRequiredFlag(args, "--from"),
48
+ toTask: readRequiredFlag(args, "--to"),
49
+ reason: readOptionalFlag(args, "--reason"),
50
+ mode: readOptionalFlag(args, "--mode"),
51
+ historyLimit: readOptionalNumber(args, "--history-limit"),
52
+ }));
53
+ return;
54
+ case "search":
55
+ runSearch(args);
56
+ return;
57
+ case "truth":
58
+ runTruth(args);
59
+ return;
60
+ case "hook":
61
+ await runHook(args);
62
+ return;
63
+ default:
64
+ printUsage();
65
+ process.exitCode = 1;
66
+ }
67
+ }
68
+ catch (error) {
69
+ handleError(error);
70
+ }
71
+ }
72
+ async function runPlan(args) {
73
+ const subcommand = args.shift();
74
+ switch (subcommand) {
75
+ case "write": {
76
+ const contentPath = readOptionalFlag(args, "--content");
77
+ const content = contentPath ? readJson(contentPath) : undefined;
78
+ const result = await writePlan({
79
+ cwd: process.cwd(),
80
+ taskName: readOptionalFlag(args, "--task"),
81
+ filePath: readOptionalFlag(args, "--plan"),
82
+ title: readOptionalFlag(args, "--title"),
83
+ description: readOptionalFlag(args, "--description"),
84
+ goalText: readOptionalFlag(args, "--goal"),
85
+ planStatus: readOptionalFlag(args, "--status"),
86
+ content,
87
+ parentTaskId: readOptionalNumber(args, "--parent-task-id"),
88
+ });
89
+ printJson(compactPlanCommandResult("plan.write", result));
90
+ return;
91
+ }
92
+ case "edit": {
93
+ const patchPath = readOptionalFlag(args, "--patch");
94
+ const appendTasksPath = readOptionalFlag(args, "--append-tasks");
95
+ const result = await editPlan({
96
+ cwd: process.cwd(),
97
+ taskName: readRequiredFlag(args, "--task"),
98
+ planFile: readOptionalFlag(args, "--plan"),
99
+ changeSummary: readOptionalFlag(args, "--summary"),
100
+ patch: patchPath ? readJson(patchPath) : undefined,
101
+ planStatus: readOptionalFlag(args, "--plan-status"),
102
+ taskId: readOptionalNumber(args, "--task-id"),
103
+ taskStatus: readOptionalFlag(args, "--task-status"),
104
+ appendTasks: appendTasksPath ? readJson(appendTasksPath) : undefined,
105
+ });
106
+ printJson(compactPlanCommandResult("plan.edit", result));
107
+ return;
108
+ }
109
+ case "done": {
110
+ const patchPath = readOptionalFlag(args, "--patch");
111
+ const summary = readOptionalFlag(args, "--summary");
112
+ const patch = patchPath ? readJson(patchPath) : undefined;
113
+ const mergedPatch = mergeDonePatch(patch, summary);
114
+ if (!mergedPatch?.retrospective?.summary?.trim()) {
115
+ throw new ClawError("PROJECT_CONFIG_INVALID", "plan done requires --summary or a patch file containing retrospective.summary.");
116
+ }
117
+ const result = await editPlan({
118
+ cwd: process.cwd(),
119
+ taskName: readRequiredFlag(args, "--task"),
120
+ planFile: readOptionalFlag(args, "--plan"),
121
+ changeSummary: readOptionalFlag(args, "--change-summary"),
122
+ patch: mergedPatch,
123
+ planStatus: "end.completed",
124
+ });
125
+ const completionRefresh = runCompletionRefresh({
126
+ cwd: process.cwd(),
127
+ taskName: result.taskName,
128
+ });
129
+ printJson(compactPlanCommandResult("plan.done", result, completionRefresh));
130
+ return;
131
+ }
132
+ case "show": {
133
+ const result = showPlan({
134
+ cwd: process.cwd(),
135
+ taskName: readRequiredFlag(args, "--task"),
136
+ planFile: readOptionalFlag(args, "--plan"),
137
+ });
138
+ printJson({
139
+ ok: true,
140
+ command: "plan.show",
141
+ taskName: result.taskName,
142
+ planFile: result.planFile,
143
+ planPath: result.planPath,
144
+ planStatus: result.plan.status,
145
+ planView: result.planView,
146
+ });
147
+ return;
148
+ }
149
+ default:
150
+ throw new ClawError("PROJECT_CONFIG_INVALID", `Unknown plan subcommand "${subcommand ?? ""}".`);
151
+ }
152
+ }
153
+ function runSearch(args) {
154
+ if (args.includes("--scope") || args.includes("--task")) {
155
+ throw new ClawError("PROJECT_CONFIG_INVALID", "claw search is project-scoped only. Put task-specific materials in plan.references instead of using task-local search.");
156
+ }
157
+ printJson({
158
+ ok: true,
159
+ command: "search",
160
+ ...searchMemory({
161
+ cwd: process.cwd(),
162
+ query: readRequiredFlag(args, "--query"),
163
+ scope: "project",
164
+ limit: readOptionalNumber(args, "--limit"),
165
+ }),
166
+ });
167
+ }
168
+ function runContextCommand(args, cwd = process.cwd()) {
169
+ const taskName = readOptionalFlag(args, "--task");
170
+ let initialized = false;
171
+ let corrected = false;
172
+ let fixedPaths = [];
173
+ try {
174
+ const ensureResult = ensureProjectProtocol(cwd);
175
+ corrected = ensureResult.changed;
176
+ fixedPaths = ensureResult.fixedPaths;
177
+ }
178
+ catch (error) {
179
+ if (!(error instanceof ClawError) || error.code !== "CLAW_DIR_NOT_FOUND") {
180
+ throw error;
181
+ }
182
+ initProject({ cwd });
183
+ initialized = true;
184
+ }
185
+ return {
186
+ ...resolveContext(cwd, taskName),
187
+ protocolCheck: checkProjectProtocol(cwd),
188
+ bootstrap: {
189
+ initialized,
190
+ corrected,
191
+ fixedPaths,
192
+ },
193
+ };
194
+ }
195
+ function runTruth(args) {
196
+ const subcommand = args.shift();
197
+ switch (subcommand) {
198
+ case "ingest": {
199
+ const inputPath = readOptionalFlag(args, "--input");
200
+ const content = inputPath ? fs.readFileSync(inputPath, "utf-8") : readRequiredFlag(args, "--content");
201
+ printJson(ingestTruth({
202
+ cwd: process.cwd(),
203
+ target: readRequiredFlag(args, "--target"),
204
+ content,
205
+ append: readBooleanFlag(args, "--append"),
206
+ }));
207
+ return;
208
+ }
209
+ default:
210
+ throw new ClawError("PROJECT_CONFIG_INVALID", `Unknown truth subcommand "${subcommand ?? ""}".`);
211
+ }
212
+ }
213
+ async function runHook(args) {
214
+ const eventName = args.shift();
215
+ if (!eventName) {
216
+ throw new ClawError("PROJECT_CONFIG_INVALID", "claw hook requires an event name.");
217
+ }
218
+ if (eventName === "SessionStart") {
219
+ await runSessionStartHook();
220
+ return;
221
+ }
222
+ const project = tryResolveHookProject(process.cwd());
223
+ if (!project) {
224
+ printJson({
225
+ ok: true,
226
+ command: "hook",
227
+ eventName,
228
+ skipped: true,
229
+ reason: "cwd is not inside a .claw project",
230
+ });
231
+ return;
232
+ }
233
+ const logPath = path.join(process.env.USERPROFILE ?? process.env.HOME ?? process.cwd(), ".codex", "claw-kit-hook.log");
234
+ const record = {
235
+ timestamp: new Date().toISOString(),
236
+ eventName,
237
+ cwd: process.cwd(),
238
+ projectRoot: project.projectRoot,
239
+ clawDir: project.clawDir,
240
+ projectId: project.projectId,
241
+ projectName: project.projectName,
242
+ argv: args,
243
+ };
244
+ fs.mkdirSync(path.dirname(logPath), { recursive: true });
245
+ fs.appendFileSync(logPath, `${JSON.stringify(record)}\n`, "utf-8");
246
+ printJson({
247
+ ok: true,
248
+ command: "hook",
249
+ eventName,
250
+ skipped: false,
251
+ projectRoot: project.projectRoot,
252
+ clawDir: project.clawDir,
253
+ logPath,
254
+ });
255
+ }
256
+ async function runSessionStartHook() {
257
+ const payload = await readStdinJson();
258
+ const hookCwd = resolveHookCwd(payload);
259
+ if (!hookCwd || !containsClawDir(hookCwd)) {
260
+ return;
261
+ }
262
+ try {
263
+ const context = runContextCommand([], hookCwd);
264
+ const additionalContext = buildSessionStartAdditionalContext(context, hookCwd);
265
+ if (!additionalContext) {
266
+ return;
267
+ }
268
+ process.stdout.write(`${JSON.stringify({
269
+ hookSpecificOutput: {
270
+ hookEventName: "SessionStart",
271
+ additionalContext,
272
+ },
273
+ })}\n`);
274
+ }
275
+ catch {
276
+ return;
277
+ }
278
+ }
279
+ function tryResolveHookProject(cwd) {
280
+ try {
281
+ return resolveProjectContext(cwd);
282
+ }
283
+ catch (error) {
284
+ if (error instanceof ClawError && error.code === "CLAW_DIR_NOT_FOUND") {
285
+ return null;
286
+ }
287
+ throw error;
288
+ }
289
+ }
290
+ function resolveHookCwd(payload) {
291
+ if (payload && typeof payload === "object" && typeof payload.cwd === "string") {
292
+ const cwd = payload.cwd.trim();
293
+ return cwd ? cwd : null;
294
+ }
295
+ const cwd = process.cwd().trim();
296
+ return cwd ? cwd : null;
297
+ }
298
+ function containsClawDir(cwd) {
299
+ try {
300
+ let current = path.resolve(cwd);
301
+ while (true) {
302
+ if (fs.existsSync(path.join(current, ".claw"))) {
303
+ return true;
304
+ }
305
+ const parent = path.dirname(current);
306
+ if (parent === current) {
307
+ return false;
308
+ }
309
+ current = parent;
310
+ }
311
+ }
312
+ catch {
313
+ return false;
314
+ }
315
+ }
316
+ function buildSessionStartAdditionalContext(context, sessionCwd) {
317
+ const project = context.project;
318
+ if (!project) {
319
+ return null;
320
+ }
321
+ const projectName = typeof project.projectName === "string" && project.projectName.trim()
322
+ ? project.projectName.trim()
323
+ : typeof project.projectId === "string" && project.projectId.trim()
324
+ ? project.projectId.trim()
325
+ : path.basename(String(project.projectRoot ?? sessionCwd ?? "project"));
326
+ const projectRoot = typeof project.projectRoot === "string" ? project.projectRoot : sessionCwd;
327
+ const projectId = typeof project.projectId === "string" ? project.projectId : projectName;
328
+ const clawDir = typeof project.clawDir === "string" ? project.clawDir : path.join(projectRoot, ".claw");
329
+ const protocolOk = context.protocolCheck?.ok === true ? "ok" : "needs attention";
330
+ return [
331
+ `This session started inside a .claw project: ${projectName} (${projectId}).`,
332
+ `Project root: ${projectRoot}`,
333
+ `.claw directory: ${clawDir}`,
334
+ `Project protocol check: ${protocolOk}.`,
335
+ "Load claw-kit:using-claw-kit as the main workflow skill for this session.",
336
+ "Report the recovered harness state and continue through claw workflowGuidance.",
337
+ "Use [@claw-kit](plugin://claw-kit@claw-kit-local) to drive planning, search, truth, and ADR workflows for the rest of the task.",
338
+ ].join("\n");
339
+ }
340
+ async function readStdinJson() {
341
+ const chunks = [];
342
+ for await (const chunk of process.stdin) {
343
+ chunks.push(typeof chunk === "string" ? chunk : chunk.toString("utf8"));
344
+ }
345
+ const raw = chunks.join("").trim();
346
+ if (!raw) {
347
+ return null;
348
+ }
349
+ try {
350
+ return JSON.parse(raw);
351
+ }
352
+ catch {
353
+ return null;
354
+ }
355
+ }
356
+ function readJson(filePath) {
357
+ return JSON.parse(stripBom(fs.readFileSync(path.resolve(filePath), "utf-8")));
358
+ }
359
+ function stripBom(content) {
360
+ return content.charCodeAt(0) === 0xfeff ? content.slice(1) : content;
361
+ }
362
+ function compactPlanCommandResult(command, result, completionRefresh) {
363
+ const resolvedPlanPath = completionRefresh?.taskRetention.archivedCurrentTask?.taskName === result.taskName &&
364
+ completionRefresh.taskRetention.archivedCurrentTask.archivedPlanPath
365
+ ? completionRefresh.taskRetention.archivedCurrentTask.archivedPlanPath
366
+ : result.planPath;
367
+ return {
368
+ ok: true,
369
+ command,
370
+ taskName: result.taskName,
371
+ planFile: result.planFile,
372
+ planPath: resolvedPlanPath,
373
+ planStatus: result.planStatus,
374
+ stage: result.workflowGuidance.stage,
375
+ summary: result.workflowGuidance.summary,
376
+ nextStep: result.workflowGuidance.nextStep,
377
+ ...(result.workflowGuidance.nextTask ? { nextTask: result.workflowGuidance.nextTask } : {}),
378
+ ...(result.workflowGuidance.notes?.length ? { notes: result.workflowGuidance.notes } : {}),
379
+ ...(result.workflowGuidance.recommendedCommands?.length
380
+ ? { recommendedCommands: result.workflowGuidance.recommendedCommands }
381
+ : {}),
382
+ ...(result.workflowGuidance.delegateSubagents?.length
383
+ ? { delegateSubagents: result.workflowGuidance.delegateSubagents }
384
+ : {}),
385
+ ...(result.workflowGuidance.askUser ? { askUser: result.workflowGuidance.askUser } : {}),
386
+ ...(result.workflowGuidance.goalMode ? { goalMode: result.workflowGuidance.goalMode } : {}),
387
+ ...(result.planReview
388
+ ? {
389
+ planReview: {
390
+ score: result.planReview.score,
391
+ issueCount: result.planReview.issues.length,
392
+ suggestions: result.planReview.suggestions,
393
+ completionPolicy: result.planReview.completionPolicy,
394
+ },
395
+ }
396
+ : {}),
397
+ ...(result.nextAction ? { nextAction: result.nextAction } : {}),
398
+ ...(result.instruction ? { instruction: result.instruction } : {}),
399
+ planSummary: result.planView.collapsedSummary,
400
+ ...(completionRefresh ? { completionRefresh: compactCompletionRefresh(completionRefresh) } : {}),
401
+ };
402
+ }
403
+ function compactCompletionRefresh(completionRefresh) {
404
+ return {
405
+ taskRetention: {
406
+ enabled: completionRefresh.taskRetention.enabled,
407
+ maxTasksToKeep: completionRefresh.taskRetention.maxTasksToKeep,
408
+ archivedCurrentTask: completionRefresh.taskRetention.archivedCurrentTask
409
+ ? {
410
+ taskName: completionRefresh.taskRetention.archivedCurrentTask.taskName,
411
+ archivedTaskDir: completionRefresh.taskRetention.archivedCurrentTask.archivedTaskDir,
412
+ archivedPlanPath: completionRefresh.taskRetention.archivedCurrentTask.archivedPlanPath,
413
+ }
414
+ : null,
415
+ prunedArchivedTasks: completionRefresh.taskRetention.prunedArchivedTasks.map((task) => ({
416
+ taskName: task.taskName,
417
+ archivedTaskDir: task.archivedTaskDir,
418
+ })),
419
+ },
420
+ memory: {
421
+ projectIndexed: completionRefresh.memory.project.indexedCount,
422
+ taskIndexed: completionRefresh.memory.task?.indexedCount ?? 0,
423
+ },
424
+ gitnexus: completionRefresh.gitnexus?.enabled === true
425
+ ? {
426
+ refreshed: true,
427
+ command: completionRefresh.gitnexus.command,
428
+ exitCode: completionRefresh.gitnexus.exitCode,
429
+ }
430
+ : {
431
+ refreshed: false,
432
+ reason: completionRefresh.gitnexus?.reason ?? "gitnexus refresh did not run",
433
+ },
434
+ };
435
+ }
436
+ function mergeDonePatch(patch, summary) {
437
+ if (!patch && !summary) {
438
+ return undefined;
439
+ }
440
+ const merged = patch ? structuredClone(patch) : {};
441
+ if (summary) {
442
+ merged.retrospective = {
443
+ ...(merged.retrospective ?? {}),
444
+ summary,
445
+ };
446
+ }
447
+ return merged;
448
+ }
449
+ function runCompletionRefresh(input) {
450
+ const project = resolveProjectContext(input.cwd);
451
+ const taskRetention = enforceTaskRetention(project, input.taskName);
452
+ const projectMemory = buildMemoryIndex({
453
+ cwd: input.cwd,
454
+ scope: "project",
455
+ });
456
+ const taskMemory = taskRetention.archivedCurrentTask
457
+ ? undefined
458
+ : buildMemoryIndex({
459
+ cwd: input.cwd,
460
+ scope: "task",
461
+ taskName: input.taskName,
462
+ });
463
+ return {
464
+ taskRetention,
465
+ memory: {
466
+ project: projectMemory,
467
+ ...(taskMemory ? { task: taskMemory } : {}),
468
+ },
469
+ gitnexus: refreshGitNexusIfEnabled(project.projectRoot, project.projectConfig),
470
+ };
471
+ }
472
+ function refreshGitNexusIfEnabled(cwd, projectConfig) {
473
+ const enabled = projectConfig?.gitnexus?.enabled === true;
474
+ if (!enabled) {
475
+ return {
476
+ enabled: false,
477
+ reason: "gitnexus is not enabled in .claw/project.json",
478
+ };
479
+ }
480
+ const primary = spawnSync("gitnexus", ["analyze", "--no-ai-context"], {
481
+ cwd,
482
+ encoding: "utf-8",
483
+ shell: process.platform === "win32",
484
+ });
485
+ if (primary.error) {
486
+ throw new ClawError("PROJECT_CONFIG_INVALID", "gitnexus analyze failed after plan completion.", {
487
+ cwd,
488
+ message: primary.error.message,
489
+ });
490
+ }
491
+ if (shouldFallbackToPlainAnalyze(primary)) {
492
+ const fallback = spawnSync("gitnexus", ["analyze"], {
493
+ cwd,
494
+ encoding: "utf-8",
495
+ shell: process.platform === "win32",
496
+ });
497
+ if (fallback.error) {
498
+ throw new ClawError("PROJECT_CONFIG_INVALID", "gitnexus analyze fallback failed after plan completion.", {
499
+ cwd,
500
+ message: fallback.error.message,
501
+ });
502
+ }
503
+ return {
504
+ enabled: true,
505
+ command: "gitnexus analyze",
506
+ exitCode: fallback.status ?? 0,
507
+ stdout: fallback.stdout ?? "",
508
+ stderr: fallback.stderr ?? "",
509
+ };
510
+ }
511
+ return {
512
+ enabled: true,
513
+ command: "gitnexus analyze --no-ai-context",
514
+ exitCode: primary.status ?? 0,
515
+ stdout: primary.stdout ?? "",
516
+ stderr: primary.stderr ?? "",
517
+ };
518
+ }
519
+ function shouldFallbackToPlainAnalyze(result) {
520
+ if (result.status === 0) {
521
+ return false;
522
+ }
523
+ const output = `${result.stdout ?? ""}\n${result.stderr ?? ""}`;
524
+ return output.includes("--no-ai-context");
525
+ }
526
+ function readOptionalFlag(args, flag) {
527
+ const index = args.indexOf(flag);
528
+ if (index === -1) {
529
+ return undefined;
530
+ }
531
+ const value = args[index + 1];
532
+ if (!value || value.startsWith("--")) {
533
+ throw new ClawError("PROJECT_CONFIG_INVALID", `Missing value for ${flag}.`, { flag });
534
+ }
535
+ args.splice(index, 2);
536
+ return value;
537
+ }
538
+ function readRequiredFlag(args, flag) {
539
+ const value = readOptionalFlag(args, flag);
540
+ if (!value) {
541
+ throw new ClawError("PROJECT_CONFIG_INVALID", `Missing required flag ${flag}.`, { flag });
542
+ }
543
+ return value;
544
+ }
545
+ function readRepeatedFlag(args, flag) {
546
+ const values = [];
547
+ while (true) {
548
+ const value = readOptionalFlag(args, flag);
549
+ if (value === undefined) {
550
+ return values;
551
+ }
552
+ values.push(value);
553
+ }
554
+ }
555
+ function readOptionalNumber(args, flag) {
556
+ const raw = readOptionalFlag(args, flag);
557
+ if (raw === undefined) {
558
+ return undefined;
559
+ }
560
+ const value = Number(raw);
561
+ if (!Number.isFinite(value)) {
562
+ throw new ClawError("PROJECT_CONFIG_INVALID", `Expected numeric value for ${flag}.`, { flag, value: raw });
563
+ }
564
+ return value;
565
+ }
566
+ function readBooleanValueFlag(args, flag) {
567
+ const raw = readOptionalFlag(args, flag);
568
+ if (raw === undefined) {
569
+ return undefined;
570
+ }
571
+ if (raw === "true") {
572
+ return true;
573
+ }
574
+ if (raw === "false") {
575
+ return false;
576
+ }
577
+ throw new ClawError("PROJECT_CONFIG_INVALID", `Expected true or false for ${flag}.`, {
578
+ flag,
579
+ value: raw,
580
+ });
581
+ }
582
+ function readBooleanFlag(args, flag) {
583
+ const index = args.indexOf(flag);
584
+ if (index === -1) {
585
+ return false;
586
+ }
587
+ args.splice(index, 1);
588
+ return true;
589
+ }
590
+ function printJson(value) {
591
+ process.stdout.write(`${JSON.stringify(value, null, 2)}\n`);
592
+ }
593
+ function handleError(error) {
594
+ if (error instanceof ClawError) {
595
+ process.stderr.write(`${JSON.stringify({
596
+ error: {
597
+ code: error.code,
598
+ message: error.message,
599
+ ...(error.details ? { details: error.details } : {}),
600
+ },
601
+ }, null, 2)}\n`);
602
+ process.exitCode = 1;
603
+ return;
604
+ }
605
+ const message = error instanceof Error ? error.message : String(error);
606
+ process.stderr.write(`${JSON.stringify({
607
+ error: {
608
+ code: "UNEXPECTED_ERROR",
609
+ message,
610
+ },
611
+ }, null, 2)}\n`);
612
+ process.exitCode = 1;
613
+ }
614
+ function printUsage() {
615
+ const scriptName = path.basename(process.argv[1] ?? "claw");
616
+ process.stderr.write([
617
+ `Usage: ${scriptName} <command> [options]`,
618
+ "",
619
+ "Commands:",
620
+ " init [--id <project-id>] [--name <project-name>] [--context-path <file>] [--ext-path <path>]",
621
+ " [--external-truth-skill <skill>] [--external-adr-skill <skill>]",
622
+ " [--gitnexus true|false] [--max-tasks-to-keep <n>] [--force]",
623
+ " context [--task <name>]",
624
+ " check",
625
+ " plan write --task <name> [--plan <relative-path>] [--title <text>] [--goal <text>] [--content <json-file>]",
626
+ " [--parent-task-id <number>]",
627
+ " plan edit --task <name> [--plan <relative-path>] [--patch <json-file>] [--plan-status <status>]",
628
+ " plan show --task <name> [--plan <relative-path>]",
629
+ " plan done --task <name> [--plan <relative-path>] [--summary <text>] [--patch <json-file>]",
630
+ " switch-task --from <task> --to <task>",
631
+ " search --query <text> [--limit <n>]",
632
+ " truth ingest --target <relative-path-under-truth> [--input <file> | --content <text>] [--append]",
633
+ " hook <event-name>",
634
+ ].join("\n"));
635
+ process.stderr.write("\n");
636
+ }
637
+ void main();
638
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@veewo/claw",
3
+ "version": "0.1.12",
4
+ "type": "module",
5
+ "description": "Publishable claw CLI for .claw project bootstrap, planning, search, truth ingestion, and completion refresh.",
6
+ "homepage": "https://github.com/chanyuenpang/claw-kit",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/chanyuenpang/claw-kit.git",
10
+ "directory": "packages/cli"
11
+ },
12
+ "license": "MIT",
13
+ "publishConfig": {
14
+ "access": "public"
15
+ },
16
+ "files": [
17
+ "dist",
18
+ "README.md"
19
+ ],
20
+ "bin": {
21
+ "claw": "./dist/cli.js"
22
+ },
23
+ "dependencies": {
24
+ "@veewo/claw-core": "0.1.12"
25
+ },
26
+ "scripts": {
27
+ "build": "tsc -p tsconfig.json",
28
+ "check": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json --noEmit",
29
+ "test": "tsc -p tsconfig.test.json && node --test dist-test/**/*.test.js"
30
+ }
31
+ }