@lumenflow/cli 2.21.1 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -47
- package/dist/commands.js +3 -0
- package/dist/commands.js.map +1 -1
- package/dist/config-get.js +56 -0
- package/dist/config-get.js.map +1 -0
- package/dist/config-set.js +287 -0
- package/dist/config-set.js.map +1 -0
- package/dist/gates-runners.js +1 -1
- package/dist/gates-runners.js.map +1 -1
- package/dist/git-log.js +5 -3
- package/dist/git-log.js.map +1 -1
- package/dist/guard-worktree-commit.js +1 -1
- package/dist/guard-worktree-commit.js.map +1 -1
- package/dist/init-templates.js +6 -0
- package/dist/init-templates.js.map +1 -1
- package/dist/init.js +9 -1
- package/dist/init.js.map +1 -1
- package/dist/lane-edit.js +318 -0
- package/dist/lane-edit.js.map +1 -0
- package/dist/mem-checkpoint.js +70 -3
- package/dist/mem-checkpoint.js.map +1 -1
- package/dist/orchestrate-initiative.js +15 -1
- package/dist/orchestrate-initiative.js.map +1 -1
- package/dist/pack-hash.js +101 -0
- package/dist/pack-hash.js.map +1 -0
- package/dist/pack-install.js +407 -0
- package/dist/pack-install.js.map +1 -0
- package/dist/pack-publish.js +277 -0
- package/dist/pack-publish.js.map +1 -0
- package/dist/pack-scaffold.js +269 -0
- package/dist/pack-scaffold.js.map +1 -0
- package/dist/pack-search.js +142 -0
- package/dist/pack-search.js.map +1 -0
- package/dist/pack-validate.js +208 -0
- package/dist/pack-validate.js.map +1 -0
- package/dist/public-manifest.js +46 -0
- package/dist/public-manifest.js.map +1 -1
- package/dist/release.js +1 -1
- package/dist/release.js.map +1 -1
- package/dist/task-claim.js +667 -0
- package/dist/task-claim.js.map +1 -0
- package/dist/workspace-init.js +321 -0
- package/dist/workspace-init.js.map +1 -0
- package/dist/wu-block.js +1 -1
- package/dist/wu-block.js.map +1 -1
- package/dist/wu-claim-state.js +0 -1
- package/dist/wu-claim-state.js.map +1 -1
- package/dist/wu-claim.js +1 -1
- package/dist/wu-claim.js.map +1 -1
- package/dist/wu-done.js +5 -3
- package/dist/wu-done.js.map +1 -1
- package/dist/wu-spawn-prompt-builders.js +86 -28
- package/dist/wu-spawn-prompt-builders.js.map +1 -1
- package/package.json +19 -7
package/dist/mem-checkpoint.js
CHANGED
|
@@ -1,28 +1,38 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* Memory Checkpoint CLI (WU-1467)
|
|
3
|
+
* Memory Checkpoint CLI (WU-1467, WU-1909)
|
|
4
4
|
*
|
|
5
5
|
* Create a checkpoint node for context snapshots.
|
|
6
6
|
* Used before /clear or session handoff to preserve progress state.
|
|
7
7
|
*
|
|
8
|
+
* WU-1909: State-store propagation (wu-events.jsonl) is now handled here
|
|
9
|
+
* in the CLI wrapper, guarded by resolveLocation() to only write when
|
|
10
|
+
* running from a worktree (prevents dirtying main checkout).
|
|
11
|
+
*
|
|
8
12
|
* Includes audit logging to .lumenflow/telemetry/tools.ndjson.
|
|
9
13
|
*
|
|
10
14
|
* Usage:
|
|
11
15
|
* pnpm mem:checkpoint 'note' [--session <id>] [--wu <id>] [--progress <text>] [--next-steps <text>] [--trigger <type>] [--quiet]
|
|
12
16
|
*
|
|
13
|
-
* @see {@link packages/@lumenflow/
|
|
17
|
+
* @see {@link packages/@lumenflow/memory/src/mem-checkpoint-core.ts} - Core logic (memory store only)
|
|
14
18
|
* @see {@link packages/@lumenflow/cli/src/__tests__/mem-checkpoint.test.ts} - Tests
|
|
15
19
|
*/
|
|
16
20
|
import fs from 'node:fs/promises';
|
|
17
21
|
import path from 'node:path';
|
|
18
22
|
import { createCheckpoint } from '@lumenflow/memory/checkpoint';
|
|
19
23
|
import { createWUParser, WU_OPTIONS } from '@lumenflow/core/arg-parser';
|
|
20
|
-
import { EXIT_CODES, LUMENFLOW_PATHS } from '@lumenflow/core/wu-constants';
|
|
24
|
+
import { EXIT_CODES, LUMENFLOW_PATHS, CONTEXT_VALIDATION } from '@lumenflow/core/wu-constants';
|
|
25
|
+
import { resolveLocation } from '@lumenflow/core/context/location-resolver';
|
|
26
|
+
import { WUStateStore } from '@lumenflow/core/wu-state-store';
|
|
21
27
|
import { runCLI } from './cli-entry-point.js';
|
|
22
28
|
/**
|
|
23
29
|
* Log prefix for mem:checkpoint output
|
|
24
30
|
*/
|
|
25
31
|
const LOG_PREFIX = '[mem:checkpoint]';
|
|
32
|
+
/**
|
|
33
|
+
* State directory path relative to baseDir
|
|
34
|
+
*/
|
|
35
|
+
const STATE_DIR = '.lumenflow/state';
|
|
26
36
|
/**
|
|
27
37
|
* Tool name for audit logging
|
|
28
38
|
*/
|
|
@@ -67,6 +77,55 @@ const CLI_OPTIONS = {
|
|
|
67
77
|
description: 'Suppress output except errors',
|
|
68
78
|
},
|
|
69
79
|
};
|
|
80
|
+
/**
|
|
81
|
+
* Propagate checkpoint to wu-events.jsonl state store (WU-1909).
|
|
82
|
+
*
|
|
83
|
+
* Only writes when running from a worktree context, preventing dirty
|
|
84
|
+
* state on main checkout. Uses CONTEXT_VALIDATION.LOCATION_TYPES.WORKTREE
|
|
85
|
+
* constant (no magic strings).
|
|
86
|
+
*
|
|
87
|
+
* @param baseDir - Base directory for state store
|
|
88
|
+
* @param options - Propagation options
|
|
89
|
+
* @returns Result indicating whether propagation occurred
|
|
90
|
+
*/
|
|
91
|
+
export async function propagateCheckpointToStateStore(baseDir, options) {
|
|
92
|
+
const { wuId, note, sessionId, progress, nextSteps } = options;
|
|
93
|
+
// Guard: no WU ID means nothing to propagate
|
|
94
|
+
if (!wuId) {
|
|
95
|
+
return { propagated: false, reason: 'no_wu_id' };
|
|
96
|
+
}
|
|
97
|
+
// Guard: resolve location to determine if we're in a worktree
|
|
98
|
+
let locationType;
|
|
99
|
+
try {
|
|
100
|
+
const location = await resolveLocation(baseDir);
|
|
101
|
+
locationType = location.type;
|
|
102
|
+
}
|
|
103
|
+
catch (err) {
|
|
104
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
105
|
+
console.warn(`${LOG_PREFIX} Warning: Could not resolve location: ${message}`);
|
|
106
|
+
return { propagated: false, reason: 'location_resolve_failed' };
|
|
107
|
+
}
|
|
108
|
+
// Guard: only write to state store from worktree context
|
|
109
|
+
if (locationType !== CONTEXT_VALIDATION.LOCATION_TYPES.WORKTREE) {
|
|
110
|
+
return { propagated: false, reason: 'not_in_worktree' };
|
|
111
|
+
}
|
|
112
|
+
// Propagate to wu-events.jsonl
|
|
113
|
+
try {
|
|
114
|
+
const stateDir = path.join(baseDir, STATE_DIR);
|
|
115
|
+
const store = new WUStateStore(stateDir);
|
|
116
|
+
await store.checkpoint(wuId, note, {
|
|
117
|
+
sessionId,
|
|
118
|
+
progress,
|
|
119
|
+
nextSteps,
|
|
120
|
+
});
|
|
121
|
+
return { propagated: true };
|
|
122
|
+
}
|
|
123
|
+
catch (err) {
|
|
124
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
125
|
+
console.warn(`${LOG_PREFIX} Warning: State store write failed: ${message}`);
|
|
126
|
+
return { propagated: false, reason: 'write_failed' };
|
|
127
|
+
}
|
|
128
|
+
}
|
|
70
129
|
/**
|
|
71
130
|
* Write audit log entry for tool execution
|
|
72
131
|
*
|
|
@@ -187,6 +246,14 @@ async function main() {
|
|
|
187
246
|
nextSteps: args.nextSteps,
|
|
188
247
|
trigger: args.trigger,
|
|
189
248
|
});
|
|
249
|
+
// WU-1909: Propagate to wu-events.jsonl only from worktree context
|
|
250
|
+
await propagateCheckpointToStateStore(baseDir, {
|
|
251
|
+
wuId: args.wu,
|
|
252
|
+
note,
|
|
253
|
+
sessionId: args.session,
|
|
254
|
+
progress: args.progress,
|
|
255
|
+
nextSteps: args.nextSteps,
|
|
256
|
+
});
|
|
190
257
|
}
|
|
191
258
|
catch (err) {
|
|
192
259
|
error = err instanceof Error ? err.message : String(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mem-checkpoint.js","sourceRoot":"","sources":["../src/mem-checkpoint.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"mem-checkpoint.js","sourceRoot":"","sources":["../src/mem-checkpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -83,7 +83,21 @@ const program = new Command()
|
|
|
83
83
|
const laneConfigs = resolveLaneConfigsFromConfig(getConfig());
|
|
84
84
|
const plan = buildExecutionPlanWithLockPolicy(wus, { laneConfigs });
|
|
85
85
|
if (plan.waves.length === 0) {
|
|
86
|
-
|
|
86
|
+
// WU-1906: Distinguish all-done from all-blocked
|
|
87
|
+
const hasPending = plan.deferred.length > 0 || plan.skippedWithReasons.length > 0;
|
|
88
|
+
if (hasPending) {
|
|
89
|
+
const pendingCount = plan.deferred.length + plan.skippedWithReasons.length;
|
|
90
|
+
console.log(chalk.yellow(`${LOG_PREFIX} ${pendingCount} WU(s) still pending but none are unblocked.`));
|
|
91
|
+
if (plan.deferred.length > 0) {
|
|
92
|
+
console.log(chalk.yellow(`${LOG_PREFIX} ${plan.deferred.length} deferred (waiting for dependencies)`));
|
|
93
|
+
}
|
|
94
|
+
if (plan.skippedWithReasons.length > 0) {
|
|
95
|
+
console.log(chalk.yellow(`${LOG_PREFIX} ${plan.skippedWithReasons.length} skipped (non-ready status)`));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
console.log(chalk.green(`${LOG_PREFIX} All WUs are complete! Nothing to execute.`));
|
|
100
|
+
}
|
|
87
101
|
return;
|
|
88
102
|
}
|
|
89
103
|
console.log('');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrate-initiative.js","sourceRoot":"","sources":["../src/orchestrate-initiative.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"orchestrate-initiative.js","sourceRoot":"","sources":["../src/orchestrate-initiative.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* @file pack-hash.ts
|
|
4
|
+
* Compute integrity hash for a LumenFlow domain pack (WU-1825)
|
|
5
|
+
*
|
|
6
|
+
* Outputs sha256:hex string ready for copy-paste into workspace.yaml PackPin.
|
|
7
|
+
* Uses existing computeDeterministicPackHash from kernel.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* pnpm pack:hash --id software-delivery
|
|
11
|
+
* pnpm pack:hash --id my-pack --packs-root ./packs
|
|
12
|
+
* pnpm pack:hash --pack-root ./path/to/pack
|
|
13
|
+
*/
|
|
14
|
+
import { resolve } from 'node:path';
|
|
15
|
+
import { computeDeterministicPackHash, SHA256_INTEGRITY_PREFIX } from '@lumenflow/kernel';
|
|
16
|
+
import { createWUParser, WU_OPTIONS } from '@lumenflow/core';
|
|
17
|
+
import { runCLI } from './cli-entry-point.js';
|
|
18
|
+
export const LOG_PREFIX = '[pack:hash]';
|
|
19
|
+
// --- Default packs root ---
|
|
20
|
+
const DEFAULT_PACKS_ROOT = 'packages/@lumenflow/packs';
|
|
21
|
+
/**
|
|
22
|
+
* Resolve the pack root directory from CLI options.
|
|
23
|
+
*
|
|
24
|
+
* Resolution order:
|
|
25
|
+
* 1. --pack-root (direct path, takes priority)
|
|
26
|
+
* 2. --id + --packs-root (resolves <packs-root>/<pack-id>)
|
|
27
|
+
* 3. Returns null if neither is provided
|
|
28
|
+
*/
|
|
29
|
+
export function resolvePackRoot(options) {
|
|
30
|
+
const { directPackRoot, packId, packsRoot } = options;
|
|
31
|
+
if (directPackRoot) {
|
|
32
|
+
return resolve(directPackRoot);
|
|
33
|
+
}
|
|
34
|
+
if (packId && packsRoot) {
|
|
35
|
+
return resolve(packsRoot, packId);
|
|
36
|
+
}
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Compute the integrity hash for a pack directory.
|
|
41
|
+
*
|
|
42
|
+
* @returns sha256:<hex> string suitable for workspace.yaml PackPin.integrity
|
|
43
|
+
* @throws Error if the pack directory does not exist or cannot be read
|
|
44
|
+
*/
|
|
45
|
+
export async function computePackHash(options) {
|
|
46
|
+
const { packRoot, hashExclusions } = options;
|
|
47
|
+
const absolutePackRoot = resolve(packRoot);
|
|
48
|
+
const hex = await computeDeterministicPackHash({
|
|
49
|
+
packRoot: absolutePackRoot,
|
|
50
|
+
exclusions: hashExclusions,
|
|
51
|
+
});
|
|
52
|
+
return `${SHA256_INTEGRITY_PREFIX}${hex}`;
|
|
53
|
+
}
|
|
54
|
+
// --- CLI options ---
|
|
55
|
+
const PACK_HASH_OPTIONS = {
|
|
56
|
+
packId: {
|
|
57
|
+
name: 'id',
|
|
58
|
+
flags: '--id <packId>',
|
|
59
|
+
description: 'Pack ID to hash (resolves under --packs-root)',
|
|
60
|
+
},
|
|
61
|
+
packsRoot: {
|
|
62
|
+
name: 'packsRoot',
|
|
63
|
+
flags: '--packs-root <dir>',
|
|
64
|
+
description: `Root directory containing packs (default: "${DEFAULT_PACKS_ROOT}")`,
|
|
65
|
+
},
|
|
66
|
+
packRoot: {
|
|
67
|
+
name: 'packRoot',
|
|
68
|
+
flags: '--pack-root <dir>',
|
|
69
|
+
description: 'Direct path to pack directory (overrides --id and --packs-root)',
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* CLI main entry point for pack:hash
|
|
74
|
+
*/
|
|
75
|
+
export async function main() {
|
|
76
|
+
const opts = createWUParser({
|
|
77
|
+
name: 'pack-hash',
|
|
78
|
+
description: 'Compute integrity hash for a LumenFlow domain pack',
|
|
79
|
+
options: [
|
|
80
|
+
PACK_HASH_OPTIONS.packId,
|
|
81
|
+
PACK_HASH_OPTIONS.packsRoot,
|
|
82
|
+
PACK_HASH_OPTIONS.packRoot,
|
|
83
|
+
WU_OPTIONS.force,
|
|
84
|
+
],
|
|
85
|
+
});
|
|
86
|
+
const packId = opts.id;
|
|
87
|
+
const packsRoot = opts.packsRoot ?? DEFAULT_PACKS_ROOT;
|
|
88
|
+
const directPackRoot = opts.packRoot;
|
|
89
|
+
const resolvedPackRoot = resolvePackRoot({ directPackRoot, packId, packsRoot });
|
|
90
|
+
if (!resolvedPackRoot) {
|
|
91
|
+
console.error(`${LOG_PREFIX} Error: Provide --id <packId> or --pack-root <dir>`);
|
|
92
|
+
process.exit(1);
|
|
93
|
+
}
|
|
94
|
+
const hash = await computePackHash({ packRoot: resolvedPackRoot });
|
|
95
|
+
console.log(hash);
|
|
96
|
+
}
|
|
97
|
+
// Run if executed directly
|
|
98
|
+
if (import.meta.main) {
|
|
99
|
+
void runCLI(main);
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=pack-hash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack-hash.js","sourceRoot":"","sources":["../src/pack-hash.ts"],"names":[],"mappings":"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"}
|