@lumenflow/cli 3.20.0 → 3.22.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/dist/chunk-2D2VOCA4.js +37 -0
- package/dist/chunk-2D5KFYGX.js +284 -0
- package/dist/chunk-2GXVIN57.js +14072 -0
- package/dist/chunk-2MQ7HZWZ.js +26 -0
- package/dist/chunk-2UFQ3A3C.js +643 -0
- package/dist/chunk-3RG5ZIWI.js +10 -0
- package/dist/chunk-4N74J3UT.js +15 -0
- package/dist/chunk-5GTOXFYR.js +392 -0
- package/dist/chunk-5VY6MQMC.js +240 -0
- package/dist/chunk-67XVPMRY.js +1297 -0
- package/dist/chunk-6HO4GWJE.js +164 -0
- package/dist/chunk-6W5XHWYV.js +1890 -0
- package/dist/chunk-6X4EMYJQ.js +64 -0
- package/dist/chunk-6XYXI2NQ.js +772 -0
- package/dist/chunk-7ANSOV6Q.js +285 -0
- package/dist/chunk-A624LFLB.js +1380 -0
- package/dist/chunk-ADN5NHG4.js +126 -0
- package/dist/chunk-B7YJYJKG.js +33 -0
- package/dist/chunk-CCLHCPKG.js +210 -0
- package/dist/chunk-CK36VROC.js +1584 -0
- package/dist/chunk-D3UOFRSB.js +81 -0
- package/dist/chunk-DFR4DJBM.js +230 -0
- package/dist/chunk-DSYBDHYH.js +79 -0
- package/dist/chunk-DWMLTXKQ.js +1176 -0
- package/dist/chunk-E3REJTAJ.js +28 -0
- package/dist/chunk-EA3IVO64.js +633 -0
- package/dist/chunk-EK2AKZKD.js +55 -0
- package/dist/chunk-ELD7JTTT.js +343 -0
- package/dist/chunk-EX6TT2XI.js +195 -0
- package/dist/chunk-EXINSFZE.js +82 -0
- package/dist/chunk-EZ6ZBYBM.js +510 -0
- package/dist/chunk-FBKAPTJ2.js +16 -0
- package/dist/chunk-FVLV5RYH.js +1118 -0
- package/dist/chunk-GDNSBQVK.js +2485 -0
- package/dist/chunk-GPQHMBNN.js +278 -0
- package/dist/chunk-GTFJB67L.js +68 -0
- package/dist/chunk-HANJXVKW.js +1127 -0
- package/dist/chunk-HEVS5YLD.js +269 -0
- package/dist/chunk-HMEVZKPQ.js +9 -0
- package/dist/chunk-HRGSYNLM.js +3511 -0
- package/dist/chunk-ISZR5N4K.js +60 -0
- package/dist/chunk-J6SUPR2C.js +226 -0
- package/dist/chunk-JERYVEIZ.js +244 -0
- package/dist/chunk-JHHWGL2N.js +87 -0
- package/dist/chunk-JONWQUB5.js +775 -0
- package/dist/chunk-K2DIWWDM.js +1766 -0
- package/dist/chunk-KY4PGL5V.js +969 -0
- package/dist/chunk-L737LQ4C.js +1285 -0
- package/dist/chunk-LFTWYIB2.js +497 -0
- package/dist/chunk-LV47RFNJ.js +41 -0
- package/dist/chunk-MKSAITI7.js +15 -0
- package/dist/chunk-MZ7RKIX4.js +212 -0
- package/dist/chunk-NAP6CFSO.js +84 -0
- package/dist/chunk-ND6MY37M.js +16 -0
- package/dist/chunk-NMG736UR.js +683 -0
- package/dist/chunk-NRAXROED.js +32 -0
- package/dist/chunk-NRIZR3A7.js +690 -0
- package/dist/chunk-NX43BG3M.js +233 -0
- package/dist/chunk-O645XLSI.js +297 -0
- package/dist/chunk-OMJD6A3S.js +235 -0
- package/dist/chunk-QB6SJD4T.js +430 -0
- package/dist/chunk-QFSTL4J3.js +276 -0
- package/dist/chunk-QLGDFMFX.js +212 -0
- package/dist/chunk-RIAAGL2E.js +13 -0
- package/dist/chunk-RWO5XMZ6.js +86 -0
- package/dist/chunk-RXRKBBSM.js +149 -0
- package/dist/chunk-RZOZMML6.js +363 -0
- package/dist/chunk-U7I7FS7T.js +113 -0
- package/dist/chunk-UI42RODY.js +717 -0
- package/dist/chunk-UTVMVSCO.js +519 -0
- package/dist/chunk-V6OJGLBA.js +1746 -0
- package/dist/chunk-W2JHVH7D.js +152 -0
- package/dist/chunk-WD3Y7VQN.js +280 -0
- package/dist/chunk-WOCTQ5MS.js +303 -0
- package/dist/chunk-WZR3ZUNN.js +696 -0
- package/dist/chunk-XGI665H7.js +150 -0
- package/dist/chunk-XKY65P2T.js +304 -0
- package/dist/chunk-Y4CQZY65.js +57 -0
- package/dist/chunk-YFEXKLVE.js +194 -0
- package/dist/chunk-YHO3HS5X.js +287 -0
- package/dist/chunk-YLS7AZSX.js +738 -0
- package/dist/chunk-ZE473AO6.js +49 -0
- package/dist/chunk-ZF747T3O.js +644 -0
- package/dist/chunk-ZHCZHZH3.js +43 -0
- package/dist/chunk-ZZNZX2XY.js +87 -0
- package/dist/constants-7QAP3VQ4.js +23 -0
- package/dist/dist-IY3UUMWK.js +33 -0
- package/dist/init-templates.js +30 -22
- package/dist/init-templates.js.map +1 -1
- package/dist/invariants-runner-W5RGHCSU.js +27 -0
- package/dist/lane-lock-6J36HD5O.js +35 -0
- package/dist/mem-checkpoint-core-EANG2GVN.js +14 -0
- package/dist/mem-signal-core-2LZ2WYHW.js +19 -0
- package/dist/memory-store-OLB5FO7K.js +18 -0
- package/dist/service-6BYCOCO5.js +13 -0
- package/dist/spawn-policy-resolver-NTSZYQ6R.js +17 -0
- package/dist/spawn-task-builder-R4E2BHSW.js +22 -0
- package/dist/wu-done-pr-WLFFFEPJ.js +25 -0
- package/dist/wu-done-validation-3J5E36FE.js +30 -0
- package/dist/wu-duplicate-id-detector-5S7JHELK.js +232 -0
- package/dist/wu-spawn-strategy-resolver.js +18 -5
- package/dist/wu-spawn-strategy-resolver.js.map +1 -1
- package/package.json +8 -8
- package/packs/agent-runtime/.turbo/turbo-build.log +1 -1
- package/packs/agent-runtime/.turbo/turbo-typecheck.log +4 -0
- package/packs/agent-runtime/package.json +1 -1
- package/packs/sidekick/.turbo/turbo-build.log +1 -1
- package/packs/sidekick/.turbo/turbo-test.log +12 -0
- package/packs/sidekick/.turbo/turbo-typecheck.log +4 -0
- package/packs/sidekick/package.json +1 -1
- package/packs/software-delivery/.turbo/turbo-build.log +1 -1
- package/packs/software-delivery/.turbo/turbo-typecheck.log +4 -0
- package/packs/software-delivery/package.json +1 -1
- package/templates/core/.lumenflow/constraints.md.template +68 -3
- package/templates/core/LUMENFLOW.md.template +26 -26
- package/templates/core/_frameworks/lumenflow/wu-sizing-guide.md.template +1 -3
- package/templates/core/ai/onboarding/agent-safety-card.md.template +14 -4
- package/templates/core/ai/onboarding/first-wu-mistakes.md.template +96 -0
- package/templates/core/ai/onboarding/quick-ref-commands.md.template +23 -22
- package/templates/core/ai/onboarding/rapid-prototyping.md +2 -1
- package/templates/core/ai/onboarding/starting-prompt.md.template +3 -3
- package/templates/core/ai/onboarding/troubleshooting-wu-done.md.template +69 -1
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getConfig
|
|
3
|
+
} from "./chunk-V6OJGLBA.js";
|
|
4
|
+
|
|
5
|
+
// ../initiatives/dist/initiative-paths.js
|
|
6
|
+
import path from "path";
|
|
7
|
+
var INIT_PATHS = {
|
|
8
|
+
/**
|
|
9
|
+
* Get path to Initiative YAML file
|
|
10
|
+
* Uses getConfig().directories.initiativesDir for config-aware resolution.
|
|
11
|
+
*
|
|
12
|
+
* @param {string} id - Initiative ID (e.g., 'INIT-001')
|
|
13
|
+
* @returns {string} Path to Initiative YAML file
|
|
14
|
+
*/
|
|
15
|
+
INITIATIVE: (id) => {
|
|
16
|
+
const config = getConfig();
|
|
17
|
+
return path.join(config.directories.initiativesDir, `${id}.yaml`);
|
|
18
|
+
},
|
|
19
|
+
/**
|
|
20
|
+
* Get path to initiatives directory
|
|
21
|
+
* Uses getConfig().directories.initiativesDir for config-aware resolution.
|
|
22
|
+
*
|
|
23
|
+
* @returns {string} Path to initiatives directory
|
|
24
|
+
*/
|
|
25
|
+
INITIATIVES_DIR: () => {
|
|
26
|
+
const config = getConfig();
|
|
27
|
+
return config.directories.initiativesDir;
|
|
28
|
+
},
|
|
29
|
+
/**
|
|
30
|
+
* Get path to WU directory (for scanning WUs by initiative)
|
|
31
|
+
* Uses getConfig().directories.wuDir for config-aware resolution.
|
|
32
|
+
*
|
|
33
|
+
* @returns {string} Path to WU directory
|
|
34
|
+
*/
|
|
35
|
+
WU_DIR: () => {
|
|
36
|
+
const config = getConfig();
|
|
37
|
+
return config.directories.wuDir;
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export {
|
|
42
|
+
INIT_PATHS
|
|
43
|
+
};
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import {
|
|
2
|
+
LUMENFLOW_MEMORY_PATHS
|
|
3
|
+
} from "./chunk-4N74J3UT.js";
|
|
4
|
+
|
|
5
|
+
// ../memory/dist/mem-init-core.js
|
|
6
|
+
import fs from "fs/promises";
|
|
7
|
+
import path from "path";
|
|
8
|
+
import yaml from "yaml";
|
|
9
|
+
var MEMORY_PATHS = {
|
|
10
|
+
/** Memory directory relative to project root */
|
|
11
|
+
MEMORY_DIR: LUMENFLOW_MEMORY_PATHS.MEMORY_DIR,
|
|
12
|
+
/** Memory JSONL file name */
|
|
13
|
+
MEMORY_FILE: "memory.jsonl",
|
|
14
|
+
/** Config YAML file name */
|
|
15
|
+
CONFIG_FILE: "config.yaml"
|
|
16
|
+
};
|
|
17
|
+
var DEFAULT_CONFIG = {
|
|
18
|
+
/** Config schema version */
|
|
19
|
+
version: 1,
|
|
20
|
+
/** Retention policy for each lifecycle */
|
|
21
|
+
retention: {
|
|
22
|
+
/** Ephemeral nodes are discarded immediately after use */
|
|
23
|
+
ephemeral: 0,
|
|
24
|
+
/** Session nodes expire after 1 hour */
|
|
25
|
+
session: 3600,
|
|
26
|
+
/** WU nodes expire after 7 days */
|
|
27
|
+
wu: 604800,
|
|
28
|
+
/** Project nodes never expire (-1 = infinite) */
|
|
29
|
+
project: -1
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
async function fileExists(filePath) {
|
|
33
|
+
try {
|
|
34
|
+
await fs.access(filePath);
|
|
35
|
+
return true;
|
|
36
|
+
} catch {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function generateConfigYaml() {
|
|
41
|
+
const header = "# Memory layer configuration\n# Generated by pnpm mem:init (WU-1464)\n";
|
|
42
|
+
return header + yaml.stringify(DEFAULT_CONFIG);
|
|
43
|
+
}
|
|
44
|
+
async function initMemory(baseDir) {
|
|
45
|
+
const memoryDir = path.join(baseDir, MEMORY_PATHS.MEMORY_DIR);
|
|
46
|
+
const memoryJsonlPath = path.join(memoryDir, MEMORY_PATHS.MEMORY_FILE);
|
|
47
|
+
const configYamlPath = path.join(memoryDir, MEMORY_PATHS.CONFIG_FILE);
|
|
48
|
+
const result = {
|
|
49
|
+
success: false,
|
|
50
|
+
alreadyInitialized: false,
|
|
51
|
+
paths: {
|
|
52
|
+
memoryDir,
|
|
53
|
+
memoryJsonl: memoryJsonlPath,
|
|
54
|
+
configYaml: configYamlPath
|
|
55
|
+
},
|
|
56
|
+
created: {
|
|
57
|
+
directory: false,
|
|
58
|
+
memoryJsonl: false,
|
|
59
|
+
configYaml: false
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
const dirExists = await fileExists(memoryDir);
|
|
63
|
+
const memoryExists = await fileExists(memoryJsonlPath);
|
|
64
|
+
const configExists = await fileExists(configYamlPath);
|
|
65
|
+
if (dirExists && memoryExists && configExists) {
|
|
66
|
+
result.alreadyInitialized = true;
|
|
67
|
+
}
|
|
68
|
+
if (!dirExists) {
|
|
69
|
+
await fs.mkdir(memoryDir, { recursive: true });
|
|
70
|
+
result.created.directory = true;
|
|
71
|
+
}
|
|
72
|
+
if (!memoryExists) {
|
|
73
|
+
await fs.writeFile(memoryJsonlPath, "", { encoding: "utf-8" });
|
|
74
|
+
result.created.memoryJsonl = true;
|
|
75
|
+
}
|
|
76
|
+
if (!configExists) {
|
|
77
|
+
const configContent = generateConfigYaml();
|
|
78
|
+
await fs.writeFile(configYamlPath, configContent, { encoding: "utf-8" });
|
|
79
|
+
result.created.configYaml = true;
|
|
80
|
+
}
|
|
81
|
+
result.success = true;
|
|
82
|
+
return result;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export {
|
|
86
|
+
initMemory
|
|
87
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import {
|
|
2
|
+
WU_LIFECYCLE_CLAIM_DEFAULTS,
|
|
3
|
+
WU_LIFECYCLE_COMMANDS,
|
|
4
|
+
WU_LIFECYCLE_EVENT_KINDS,
|
|
5
|
+
WU_LIFECYCLE_EVENT_SCHEMA_VERSION,
|
|
6
|
+
WU_LIFECYCLE_SPEC_HASH,
|
|
7
|
+
WU_LIFECYCLE_SYNC_CONFIG,
|
|
8
|
+
WU_LIFECYCLE_SYNC_LOG_PREFIX,
|
|
9
|
+
WU_LIFECYCLE_SYNC_RESULT_DEFAULTS,
|
|
10
|
+
WU_LIFECYCLE_SYNC_SKIPPED_REASONS
|
|
11
|
+
} from "./chunk-EK2AKZKD.js";
|
|
12
|
+
import "./chunk-3RG5ZIWI.js";
|
|
13
|
+
export {
|
|
14
|
+
WU_LIFECYCLE_CLAIM_DEFAULTS,
|
|
15
|
+
WU_LIFECYCLE_COMMANDS,
|
|
16
|
+
WU_LIFECYCLE_EVENT_KINDS,
|
|
17
|
+
WU_LIFECYCLE_EVENT_SCHEMA_VERSION,
|
|
18
|
+
WU_LIFECYCLE_SPEC_HASH,
|
|
19
|
+
WU_LIFECYCLE_SYNC_CONFIG,
|
|
20
|
+
WU_LIFECYCLE_SYNC_LOG_PREFIX,
|
|
21
|
+
WU_LIFECYCLE_SYNC_RESULT_DEFAULTS,
|
|
22
|
+
WU_LIFECYCLE_SYNC_SKIPPED_REASONS
|
|
23
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CONTROL_PLANE_AUTH_TOKEN_ENV_PATTERN,
|
|
3
|
+
CONTROL_PLANE_POLICY_MODES,
|
|
4
|
+
CONTROL_PLANE_POLICY_MODE_VALUES,
|
|
5
|
+
ControlPlaneConfigSchema,
|
|
6
|
+
DEFAULT_CONTROL_PLANE_AUTH_TOKEN_ENV,
|
|
7
|
+
HttpControlPlaneSyncPort,
|
|
8
|
+
MockControlPlaneSyncPort,
|
|
9
|
+
MockSignalSyncPort,
|
|
10
|
+
WorkspaceControlPlaneSchema,
|
|
11
|
+
applyPolicyMode,
|
|
12
|
+
createHttpControlPlaneSyncPort,
|
|
13
|
+
createMockControlPlaneSyncPort,
|
|
14
|
+
createMockSignalSyncPort,
|
|
15
|
+
parseWorkspaceControlPlaneConfig
|
|
16
|
+
} from "./chunk-YLS7AZSX.js";
|
|
17
|
+
import "./chunk-3RG5ZIWI.js";
|
|
18
|
+
export {
|
|
19
|
+
CONTROL_PLANE_AUTH_TOKEN_ENV_PATTERN,
|
|
20
|
+
CONTROL_PLANE_POLICY_MODES,
|
|
21
|
+
CONTROL_PLANE_POLICY_MODE_VALUES,
|
|
22
|
+
ControlPlaneConfigSchema,
|
|
23
|
+
DEFAULT_CONTROL_PLANE_AUTH_TOKEN_ENV,
|
|
24
|
+
HttpControlPlaneSyncPort,
|
|
25
|
+
MockControlPlaneSyncPort,
|
|
26
|
+
MockSignalSyncPort,
|
|
27
|
+
WorkspaceControlPlaneSchema,
|
|
28
|
+
applyPolicyMode,
|
|
29
|
+
createHttpControlPlaneSyncPort,
|
|
30
|
+
createMockControlPlaneSyncPort,
|
|
31
|
+
createMockSignalSyncPort,
|
|
32
|
+
parseWorkspaceControlPlaneConfig
|
|
33
|
+
};
|
package/dist/init-templates.js
CHANGED
|
@@ -74,10 +74,10 @@ pnpm lane:lock
|
|
|
74
74
|
pnpm wu:claim --id WU-XXXX --lane <Lane>
|
|
75
75
|
cd worktrees/<lane>-wu-xxxx
|
|
76
76
|
|
|
77
|
-
# 2. Work in worktree,
|
|
78
|
-
pnpm
|
|
77
|
+
# 2. Work in worktree, then prep for completion
|
|
78
|
+
pnpm wu:prep --id WU-XXXX
|
|
79
79
|
|
|
80
|
-
# 3. Complete
|
|
80
|
+
# 3. Complete from main using the command printed by wu:prep
|
|
81
81
|
cd <project-root>
|
|
82
82
|
pnpm wu:done --id WU-XXXX
|
|
83
83
|
\`\`\`
|
|
@@ -86,9 +86,10 @@ pnpm wu:done --id WU-XXXX
|
|
|
86
86
|
|
|
87
87
|
---
|
|
88
88
|
|
|
89
|
-
## Critical:
|
|
89
|
+
## Critical: Use wu:prep Then wu:done
|
|
90
90
|
|
|
91
|
-
After completing work,
|
|
91
|
+
After completing work in the worktree, run \`pnpm wu:prep --id WU-XXXX\`, then run
|
|
92
|
+
\`pnpm wu:done --id WU-XXXX\` from the main checkout.
|
|
92
93
|
|
|
93
94
|
This is the single most forgotten step. See [LUMENFLOW.md](LUMENFLOW.md) for details.
|
|
94
95
|
|
|
@@ -98,7 +99,7 @@ This is the single most forgotten step. See [LUMENFLOW.md](LUMENFLOW.md) for det
|
|
|
98
99
|
|
|
99
100
|
1. **Fit-For-Surface Verification**: Choose the least brittle verification that gives strong confidence. Prefer TDD for runtime logic when policy requires it; avoid brittle UI implementation-detail tests.
|
|
100
101
|
2. **Worktree Discipline**: After \`wu:claim\`, work ONLY in the worktree
|
|
101
|
-
3. **Gates Before Done**: Run \`pnpm
|
|
102
|
+
3. **Gates Before Done**: Run \`pnpm wu:prep\` before \`wu:done\`
|
|
102
103
|
4. **Never Bypass Hooks**: No \`--no-verify\`
|
|
103
104
|
|
|
104
105
|
---
|
|
@@ -123,7 +124,7 @@ This file provides universal guidance for all AI agents. Additional vendor-speci
|
|
|
123
124
|
// Template for LUMENFLOW.md (main entry point)
|
|
124
125
|
// WU-1309: Use <project-root> placeholder for portability
|
|
125
126
|
// WU-1364: Added initiative workflow section
|
|
126
|
-
export const LUMENFLOW_MD_TEMPLATE = `# LumenFlow Workflow Guide\n\n**Last updated:** {{DATE}}\n\nLumenFlow is a vendor-agnostic workflow framework for AI-native software development.\n\n---\n\n## Critical Rule:
|
|
127
|
+
export const LUMENFLOW_MD_TEMPLATE = `# LumenFlow Workflow Guide\n\n**Last updated:** {{DATE}}\n\nLumenFlow is a vendor-agnostic workflow framework for AI-native software development.\n\n---\n\n## Critical Rule: Use wu:prep Then wu:done\n\nCompletion is a two-step process: run \`pnpm wu:prep --id WU-XXXX\` from the worktree, then run \`pnpm wu:done --id WU-XXXX\` from the main checkout.\n\nDo NOT:\n- Write "To Complete: pnpm wu:done" and stop\n- Ask if you should run wu:done\n- Forget to run wu:done after wu:prep\n- Run wu:done from the worktree\n\n**DO**: finish the full \`wu:prep -> wu:done\` flow every time.\n\n---\n\n## When to Use Initiatives\n\nUse **Initiatives** for multi-phase work spanning multiple WUs:\n\n- **Product visions**: "Build a task management app"\n- **Larger features**: Work requiring multiple WUs across lanes\n- **Complex projects**: Anything that needs phased delivery\n\n\`\`\`bash\n# Create an initiative for multi-phase work\npnpm initiative:create --id INIT-001 --title "Feature Name" \\\\\n --description "..." --phase "Phase 1: MVP" --phase "Phase 2: Polish"\n\n# Add WUs to the initiative\npnpm initiative:add-wu --initiative INIT-001 --wu WU-XXX --phase 1\n\n# Track progress\npnpm initiative:status --id INIT-001\n\`\`\`\n\n**Skip initiatives** for: single-file bug fixes, small docs updates, isolated refactoring.\n\n---\n\n## Quick Start\n\n\`\`\`bash\n# 1. Configure lanes (once per project)\npnpm lane:setup\npnpm lane:validate\npnpm lane:lock\n\n# 2. Create a WU\npnpm wu:create --id WU-XXXX --lane <Lane> --title "Title"\n\n# 3. Edit WU spec with acceptance criteria, then claim:\npnpm wu:claim --id WU-XXXX --lane <Lane>\ncd worktrees/<lane>-wu-xxxx\n\n# 4. Implement in worktree\n\n# 5. Prep for completion\npnpm wu:prep --id WU-XXXX\n# This runs the right gates in the worktree\n\n# 6. Complete (from main checkout)\ncd <project-root>\npnpm wu:done --id WU-XXXX\n\`\`\`\n\n---\n\n## Core Principles\n\n1. **Fit-For-Surface Verification**: Choose the least brittle verification that gives strong confidence. Prefer TDD for runtime logic when repository policy requires it; prefer behavior-focused integration, smoke, visual, or manual verification for UI, content, and presentation work.\n2. **Library-First**: Search existing libraries before custom code\n3. **DRY/SOLID/KISS/YAGNI**: No magic numbers, no hardcoded strings\n4. **Worktree Discipline**: After \`wu:claim\`, work ONLY in the worktree\n5. **Gates Before Done**: All gates must pass before \`wu:done\`\n6. **Do Not Bypass Hooks**: No \`--no-verify\`, fix issues properly\n7. **Finish the two-step flow**: Complete every WU with \`pnpm wu:prep\` and then \`pnpm wu:done\`\n\n---\n\n## Documentation Structure\n\n### Core (Vendor-Agnostic)\n\n- **LUMENFLOW.md** - This file, main entry point\n- **.lumenflow/constraints.md** - Non-negotiable workflow constraints\n- **.lumenflow/agents/** - Agent instructions (vendor-agnostic)\n- **workspace.yaml** - Kernel workspace configuration (software_delivery block)\n\n### Optional Overlays\n\n- **CLAUDE.md + .claude/agents/** - Claude Code overlay (auto if Claude Code detected)\n- **{{DOCS_TASKS_PATH}}** - Task boards and WU storage (\`lumenflow init --full\`)\n- **{{DOCS_ONBOARDING_PATH}}** - Agent onboarding docs\n- **.lumenflow.framework.yaml** - Framework hint file (created with \`--framework\`)\n\n---\n\n## Worktree Discipline (IMMUTABLE LAW)\n\nAfter claiming a WU, you MUST work in its worktree:\n\n\`\`\`bash\n# 1. Claim creates worktree\npnpm wu:claim --id WU-XXX --lane <lane>\n\n# 2. IMMEDIATELY cd to worktree\ncd worktrees/<lane>-wu-xxx\n\n# 3. ALL work happens here\n\n# 4. Return to main ONLY after wu:prep prints the completion command\ncd <project-root>\npnpm wu:done --id WU-XXX\n\`\`\`\n\n---\n\n## Definition of Done\n\n- Acceptance criteria satisfied\n- Gates green (\`pnpm gates\` or \`pnpm gates:docs\`; \`pnpm gates --docs-only\` is the equivalent flag form)\n- WU YAML status = \`done\`\n- \`wu:done\` has been run\n\n---\n\n## Commands Reference\n\n| Command | Description |\n| ----------------- | ----------------------------------- |\n| \`pnpm lane:status\` | Show lane lifecycle status |\n| \`pnpm lane:setup\` | Create/update draft lane artifacts |\n| \`pnpm lane:lock\` | Lock lane lifecycle for WU creation |\n| \`pnpm wu:create\` | Create new WU spec |\n| \`pnpm wu:claim\` | Claim WU and create worktree |\n| \`pnpm wu:prep\` | Run gates in worktree, prep for completion |\n| \`pnpm wu:done\` | Complete WU (merge, stamp, cleanup) |\n| \`pnpm gates\` | Run quality gates |\n| \`pnpm gates:docs\`| Preferred docs-only gate alias |\n| \`pnpm initiative:create\` | Create multi-phase initiative |\n| \`pnpm initiative:status\` | View initiative progress |\n\n---\n\n## Constraints\n\nSee [.lumenflow/constraints.md](.lumenflow/constraints.md) for the 6 non-negotiable rules.\n\n---\n\n## Agent Onboarding\n\n- Start with **CLAUDE.md** if present (Claude Code overlay).\n- Add vendor-agnostic guidance in **.lumenflow/agents/**.\n- Check the onboarding docs in **{{DOCS_ONBOARDING_PATH}}** for detailed guidance.\n`;
|
|
127
128
|
// Template for .lumenflow/constraints.md
|
|
128
129
|
export const CONSTRAINTS_MD_TEMPLATE = `# LumenFlow Constraints Capsule\n\n**Version:** 1.0\n**Last updated:** {{DATE}}\n\n## The 6 Non-Negotiable Constraints\n\n### 1. Worktree Discipline and Git Safety\nWork only in worktrees, treat main as read-only, never run destructive git commands on main.\n\n### 2. WUs Are Specs, Not Code\nRespect code_paths boundaries, no feature creep, no code blocks in WU YAML files.\n\n### 3. Docs-Only vs Code WUs\nDocumentation WUs use \`--docs-only\` gates, code WUs run full gates.\n\n### 4. LLM-First, Zero-Fallback Inference\nUse LLMs for semantic tasks, fall back to safe defaults (never regex/keywords).\n\n### 5. Gates and Skip-Gates\nComplete via \`pnpm wu:done\`; skip-gates only for pre-existing failures with \`--reason\` and \`--fix-wu\`.\n\n### 6. Safety and Governance\nRespect privacy rules, approved sources, security policies; when uncertain, choose safer path.\n\n---\n\n## Mini Audit Checklist\n\nBefore running \`wu:done\`, verify:\n\n- [ ] Working in worktree (not main)\n- [ ] Only modified files in \`code_paths\`\n- [ ] Gates pass\n- [ ] No forbidden git commands used\n- [ ] Acceptance criteria satisfied\n\n---\n\n## Escalation Triggers\n\nStop and ask a human when:\n- Same error repeats 3 times\n- Auth or permissions changes required\n- PII/safety issues discovered\n- Cloud spend or secrets involved\n`;
|
|
129
130
|
// Template for root CLAUDE.md
|
|
@@ -335,8 +336,9 @@ pnpm wu:create \\
|
|
|
335
336
|
|
|
336
337
|
| Command | Description |
|
|
337
338
|
| ------------------------ | -------------------------- |
|
|
338
|
-
| \`pnpm gates\` | Run all quality gates
|
|
339
|
-
| \`pnpm gates
|
|
339
|
+
| \`pnpm gates\` | Run all quality gates |
|
|
340
|
+
| \`pnpm gates:docs\` | Preferred docs-only alias |
|
|
341
|
+
| \`pnpm gates --docs-only\` | Equivalent docs-only flag form |
|
|
340
342
|
| \`pnpm format\` | Format all files |
|
|
341
343
|
| \`pnpm lint\` | Run linter |
|
|
342
344
|
| \`pnpm typecheck\` | Run TypeScript check |
|
|
@@ -565,11 +567,15 @@ Agents complete their work, write "To Complete: pnpm wu:done --id WU-XXX" in the
|
|
|
565
567
|
|
|
566
568
|
## The Fix
|
|
567
569
|
|
|
568
|
-
### Rule:
|
|
570
|
+
### Rule: Use wu:prep Then wu:done
|
|
569
571
|
|
|
570
|
-
After
|
|
572
|
+
After implementation is complete, you MUST run:
|
|
571
573
|
|
|
572
574
|
\`\`\`bash
|
|
575
|
+
# 1. From the worktree, run wu:prep
|
|
576
|
+
pnpm wu:prep --id WU-XXX
|
|
577
|
+
|
|
578
|
+
# 2. Then complete from main
|
|
573
579
|
cd <project-root>
|
|
574
580
|
pnpm wu:done --id WU-XXX
|
|
575
581
|
\`\`\`
|
|
@@ -586,10 +592,10 @@ Do NOT:
|
|
|
586
592
|
## Correct Completion Flow
|
|
587
593
|
|
|
588
594
|
\`\`\`bash
|
|
589
|
-
# 1. In worktree, run
|
|
590
|
-
pnpm
|
|
595
|
+
# 1. In worktree, run wu:prep
|
|
596
|
+
pnpm wu:prep --id WU-XXX
|
|
591
597
|
|
|
592
|
-
# 2. If
|
|
598
|
+
# 2. If wu:prep passes, return to main
|
|
593
599
|
cd <project-root>
|
|
594
600
|
|
|
595
601
|
# 3. IMMEDIATELY run wu:done
|
|
@@ -729,8 +735,8 @@ pnpm wu:claim --id WU-XXX --lane <Lane>
|
|
|
729
735
|
cd worktrees/<lane>-wu-xxx
|
|
730
736
|
|
|
731
737
|
# Run gates
|
|
732
|
-
pnpm gates
|
|
733
|
-
pnpm gates
|
|
738
|
+
pnpm gates # Code changes
|
|
739
|
+
pnpm gates:docs # Docs changes (equivalent: pnpm gates --docs-only)
|
|
734
740
|
|
|
735
741
|
# Complete WU
|
|
736
742
|
cd <project-root>
|
|
@@ -826,7 +832,7 @@ LumenFlow uses Work Units (WUs) to track all changes:
|
|
|
826
832
|
|
|
827
833
|
1. **Claim a WU**: \`pnpm wu:claim --id WU-XXX --lane <Lane>\`
|
|
828
834
|
2. **Work in worktree**: \`cd worktrees/<lane>-wu-xxx\`
|
|
829
|
-
3. **
|
|
835
|
+
3. **Prep for completion**: \`pnpm wu:prep --id WU-XXX\`
|
|
830
836
|
4. **Complete WU**: \`pnpm wu:done --id WU-XXX\` (from main checkout)
|
|
831
837
|
|
|
832
838
|
---
|
|
@@ -836,7 +842,7 @@ LumenFlow uses Work Units (WUs) to track all changes:
|
|
|
836
842
|
1. **Worktree Discipline**: Never work in main after claiming a WU
|
|
837
843
|
2. **Fit-For-Surface Verification**: Choose the least brittle verification that gives strong confidence. Prefer TDD for runtime logic when policy requires it; avoid brittle UI implementation-detail tests.
|
|
838
844
|
3. **Gates**: Must pass before \`wu:done\`
|
|
839
|
-
4. **Always
|
|
845
|
+
4. **Always finish the flow**: Never skip \`wu:prep\` or \`wu:done\`
|
|
840
846
|
|
|
841
847
|
---
|
|
842
848
|
|
|
@@ -845,7 +851,8 @@ LumenFlow uses Work Units (WUs) to track all changes:
|
|
|
845
851
|
| Command | Description |
|
|
846
852
|
| ------- | ----------- |
|
|
847
853
|
| \`pnpm wu:claim --id WU-XXX --lane <Lane>\` | Claim a WU |
|
|
848
|
-
| \`pnpm
|
|
854
|
+
| \`pnpm wu:prep --id WU-XXX\` | Run worktree gates and prep for completion |
|
|
855
|
+
| \`pnpm gates:docs\` | Preferred docs-only gate alias |
|
|
849
856
|
| \`pnpm wu:done --id WU-XXX\` | Complete WU |
|
|
850
857
|
| \`pnpm wu:status --id WU-XXX\` | Check WU status |
|
|
851
858
|
| \`pnpm initiative:create ...\` | Create a new initiative |
|
|
@@ -1058,8 +1065,8 @@ pnpm gates
|
|
|
1058
1065
|
|
|
1059
1066
|
- **Stay in the worktree** after claiming
|
|
1060
1067
|
- **Fit-For-Surface Verification**: Prefer stable, least-brittle verification; reserve test-first discipline for runtime logic when policy requires it
|
|
1061
|
-
- **Gates before done**: Always run \`pnpm
|
|
1062
|
-
- **Always
|
|
1068
|
+
- **Gates before done**: Always run \`pnpm wu:prep\`
|
|
1069
|
+
- **Always finish the flow**: Never forget \`wu:prep\` and \`wu:done\`
|
|
1063
1070
|
|
|
1064
1071
|
---
|
|
1065
1072
|
|
|
@@ -1183,7 +1190,8 @@ ready -> in_progress -> waiting/blocked -> done
|
|
|
1183
1190
|
pnpm wu:claim --id WU-XXX --lane <lane>
|
|
1184
1191
|
cd worktrees/<lane>-wu-xxx # IMMEDIATELY
|
|
1185
1192
|
|
|
1186
|
-
#
|
|
1193
|
+
# Prep in worktree, then complete from main
|
|
1194
|
+
pnpm wu:prep --id WU-XXX
|
|
1187
1195
|
cd ../..
|
|
1188
1196
|
pnpm wu:done --id WU-XXX
|
|
1189
1197
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-templates.js","sourceRoot":"","sources":["../src/init-templates.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE5E,MAAM,qBAAqB,GAAG,WAAW,CAAC,SAAS,CAAC;AACpD,MAAM,yBAAyB,GAAG,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC;IACnE,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,qBAAqB,CAAC;AAC1B,MAAM,wBAAwB,GAAG,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;IACtE,CAAC,CAAC,eAAe,CAAC,SAAS;IAC3B,CAAC,CAAC,GAAG,eAAe,CAAC,SAAS,GAAG,CAAC;AAEpC,mEAAmE;AACnE,sEAAsE;AACtE,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC;QACE,IAAI,EAAE,iBAAiB;QACvB,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC,qBAAqB,EAAE,aAAa,EAAE,QAAQ,CAAC;KAC7D;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC,oBAAoB,EAAE,YAAY,EAAE,QAAQ,CAAC;KAC3D;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,mBAAmB,EAAE,cAAc,CAAC;KACpF;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC,mBAAmB,EAAE,WAAW,CAAC;KAC/C;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC,sBAAsB,EAAE,oBAAoB,EAAE,cAAc,CAAC;KAC3E;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;KAChC;CACF,CAAC;AAEF,0DAA0D;AAC1D,kDAAkD;AAClD,iFAAiF;AACjF,MAAM,CAAC,MAAM,kBAAkB,GAAG
|
|
1
|
+
{"version":3,"file":"init-templates.js","sourceRoot":"","sources":["../src/init-templates.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import {
|
|
2
|
+
INVARIANT_TYPES,
|
|
3
|
+
InvariantError,
|
|
4
|
+
formatInvariantError,
|
|
5
|
+
getInvariantChecker,
|
|
6
|
+
loadInvariants,
|
|
7
|
+
registerInvariantChecker,
|
|
8
|
+
runInvariants,
|
|
9
|
+
validateInvariants
|
|
10
|
+
} from "./chunk-EZ6ZBYBM.js";
|
|
11
|
+
import "./chunk-U7I7FS7T.js";
|
|
12
|
+
import "./chunk-NRIZR3A7.js";
|
|
13
|
+
import "./chunk-6HO4GWJE.js";
|
|
14
|
+
import "./chunk-DWMLTXKQ.js";
|
|
15
|
+
import "./chunk-V6OJGLBA.js";
|
|
16
|
+
import "./chunk-RXRKBBSM.js";
|
|
17
|
+
import "./chunk-3RG5ZIWI.js";
|
|
18
|
+
export {
|
|
19
|
+
INVARIANT_TYPES,
|
|
20
|
+
InvariantError,
|
|
21
|
+
formatInvariantError,
|
|
22
|
+
getInvariantChecker,
|
|
23
|
+
loadInvariants,
|
|
24
|
+
registerInvariantChecker,
|
|
25
|
+
runInvariants,
|
|
26
|
+
validateInvariants
|
|
27
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
acquireLaneLock,
|
|
4
|
+
auditedUnlock,
|
|
5
|
+
checkLaneLock,
|
|
6
|
+
forceRemoveStaleLock,
|
|
7
|
+
getAllLaneLocks,
|
|
8
|
+
getLockFilePath,
|
|
9
|
+
getLocksDir,
|
|
10
|
+
getStaleThresholdMs,
|
|
11
|
+
isLockStale,
|
|
12
|
+
isZombieLock,
|
|
13
|
+
readLockMetadata,
|
|
14
|
+
releaseLaneLock
|
|
15
|
+
} from "./chunk-JONWQUB5.js";
|
|
16
|
+
import "./chunk-NRIZR3A7.js";
|
|
17
|
+
import "./chunk-6HO4GWJE.js";
|
|
18
|
+
import "./chunk-DWMLTXKQ.js";
|
|
19
|
+
import "./chunk-V6OJGLBA.js";
|
|
20
|
+
import "./chunk-RXRKBBSM.js";
|
|
21
|
+
import "./chunk-3RG5ZIWI.js";
|
|
22
|
+
export {
|
|
23
|
+
acquireLaneLock,
|
|
24
|
+
auditedUnlock,
|
|
25
|
+
checkLaneLock,
|
|
26
|
+
forceRemoveStaleLock,
|
|
27
|
+
getAllLaneLocks,
|
|
28
|
+
getLockFilePath,
|
|
29
|
+
getLocksDir,
|
|
30
|
+
getStaleThresholdMs,
|
|
31
|
+
isLockStale,
|
|
32
|
+
isZombieLock,
|
|
33
|
+
readLockMetadata,
|
|
34
|
+
releaseLaneLock
|
|
35
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createCheckpoint
|
|
3
|
+
} from "./chunk-RWO5XMZ6.js";
|
|
4
|
+
import "./chunk-ND6MY37M.js";
|
|
5
|
+
import "./chunk-RIAAGL2E.js";
|
|
6
|
+
import "./chunk-DFR4DJBM.js";
|
|
7
|
+
import "./chunk-4N74J3UT.js";
|
|
8
|
+
import "./chunk-DWMLTXKQ.js";
|
|
9
|
+
import "./chunk-V6OJGLBA.js";
|
|
10
|
+
import "./chunk-RXRKBBSM.js";
|
|
11
|
+
import "./chunk-3RG5ZIWI.js";
|
|
12
|
+
export {
|
|
13
|
+
createCheckpoint
|
|
14
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SIGNAL_FILE_NAME,
|
|
3
|
+
SIGNAL_RECEIPTS_FILE_NAME,
|
|
4
|
+
createSignal,
|
|
5
|
+
loadSignals,
|
|
6
|
+
markSignalsAsRead
|
|
7
|
+
} from "./chunk-OMJD6A3S.js";
|
|
8
|
+
import "./chunk-4N74J3UT.js";
|
|
9
|
+
import "./chunk-DWMLTXKQ.js";
|
|
10
|
+
import "./chunk-V6OJGLBA.js";
|
|
11
|
+
import "./chunk-RXRKBBSM.js";
|
|
12
|
+
import "./chunk-3RG5ZIWI.js";
|
|
13
|
+
export {
|
|
14
|
+
SIGNAL_FILE_NAME,
|
|
15
|
+
SIGNAL_RECEIPTS_FILE_NAME,
|
|
16
|
+
createSignal,
|
|
17
|
+
loadSignals,
|
|
18
|
+
markSignalsAsRead
|
|
19
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import {
|
|
2
|
+
MEMORY_FILE_NAME,
|
|
3
|
+
appendNode,
|
|
4
|
+
loadMemory,
|
|
5
|
+
loadMemoryAll,
|
|
6
|
+
queryByWu,
|
|
7
|
+
queryReady
|
|
8
|
+
} from "./chunk-DFR4DJBM.js";
|
|
9
|
+
import "./chunk-RXRKBBSM.js";
|
|
10
|
+
import "./chunk-3RG5ZIWI.js";
|
|
11
|
+
export {
|
|
12
|
+
MEMORY_FILE_NAME,
|
|
13
|
+
appendNode,
|
|
14
|
+
loadMemory,
|
|
15
|
+
loadMemoryAll,
|
|
16
|
+
queryByWu,
|
|
17
|
+
queryReady
|
|
18
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
buildWuLifecycleKernelEvent,
|
|
3
|
+
flushWuLifecycleSync
|
|
4
|
+
} from "./chunk-JERYVEIZ.js";
|
|
5
|
+
import "./chunk-EK2AKZKD.js";
|
|
6
|
+
import "./chunk-DWMLTXKQ.js";
|
|
7
|
+
import "./chunk-V6OJGLBA.js";
|
|
8
|
+
import "./chunk-RXRKBBSM.js";
|
|
9
|
+
import "./chunk-3RG5ZIWI.js";
|
|
10
|
+
export {
|
|
11
|
+
buildWuLifecycleKernelEvent,
|
|
12
|
+
flushWuLifecycleSync
|
|
13
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import {
|
|
2
|
+
emitMethodologyTelemetry
|
|
3
|
+
} from "./chunk-6XYXI2NQ.js";
|
|
4
|
+
import {
|
|
5
|
+
generateEnforcementSummary,
|
|
6
|
+
generateMandatoryStandards
|
|
7
|
+
} from "./chunk-NMG736UR.js";
|
|
8
|
+
import "./chunk-6HO4GWJE.js";
|
|
9
|
+
import "./chunk-DWMLTXKQ.js";
|
|
10
|
+
import "./chunk-V6OJGLBA.js";
|
|
11
|
+
import "./chunk-RXRKBBSM.js";
|
|
12
|
+
import "./chunk-3RG5ZIWI.js";
|
|
13
|
+
export {
|
|
14
|
+
emitMethodologyTelemetry,
|
|
15
|
+
generateEnforcementSummary,
|
|
16
|
+
generateMandatoryStandards
|
|
17
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import {
|
|
2
|
+
checkLaneOccupation,
|
|
3
|
+
generateCodexPrompt,
|
|
4
|
+
generateLaneOccupationWarning,
|
|
5
|
+
generateTaskInvocation
|
|
6
|
+
} from "./chunk-6W5XHWYV.js";
|
|
7
|
+
import "./chunk-JONWQUB5.js";
|
|
8
|
+
import "./chunk-NMG736UR.js";
|
|
9
|
+
import "./chunk-EZ6ZBYBM.js";
|
|
10
|
+
import "./chunk-U7I7FS7T.js";
|
|
11
|
+
import "./chunk-NRIZR3A7.js";
|
|
12
|
+
import "./chunk-6HO4GWJE.js";
|
|
13
|
+
import "./chunk-DWMLTXKQ.js";
|
|
14
|
+
import "./chunk-V6OJGLBA.js";
|
|
15
|
+
import "./chunk-RXRKBBSM.js";
|
|
16
|
+
import "./chunk-3RG5ZIWI.js";
|
|
17
|
+
export {
|
|
18
|
+
checkLaneOccupation,
|
|
19
|
+
generateCodexPrompt,
|
|
20
|
+
generateLaneOccupationWarning,
|
|
21
|
+
generateTaskInvocation
|
|
22
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
WU_DONE_COMPLETION_MODES,
|
|
4
|
+
buildPRBody,
|
|
5
|
+
createPR,
|
|
6
|
+
isGhCliAvailable,
|
|
7
|
+
isPRModeEnabled,
|
|
8
|
+
printGhCliMissingMessage,
|
|
9
|
+
printPRCreatedMessage
|
|
10
|
+
} from "./chunk-XGI665H7.js";
|
|
11
|
+
import "./chunk-2UFQ3A3C.js";
|
|
12
|
+
import "./chunk-6HO4GWJE.js";
|
|
13
|
+
import "./chunk-DWMLTXKQ.js";
|
|
14
|
+
import "./chunk-V6OJGLBA.js";
|
|
15
|
+
import "./chunk-RXRKBBSM.js";
|
|
16
|
+
import "./chunk-3RG5ZIWI.js";
|
|
17
|
+
export {
|
|
18
|
+
WU_DONE_COMPLETION_MODES,
|
|
19
|
+
buildPRBody,
|
|
20
|
+
createPR,
|
|
21
|
+
isGhCliAvailable,
|
|
22
|
+
isPRModeEnabled,
|
|
23
|
+
printGhCliMissingMessage,
|
|
24
|
+
printPRCreatedMessage
|
|
25
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import {
|
|
2
|
+
applyExposureDefaults,
|
|
3
|
+
buildCodePathsCommittedErrorMessage,
|
|
4
|
+
buildTypeVsCodePathsErrorMessage,
|
|
5
|
+
validateCodePathsCommittedBeforeDone,
|
|
6
|
+
validateCodePathsExist,
|
|
7
|
+
validatePostMutation,
|
|
8
|
+
validateSpecCompleteness,
|
|
9
|
+
validateTestPathsRequired,
|
|
10
|
+
validateTypeVsCodePathsPreflight
|
|
11
|
+
} from "./chunk-L737LQ4C.js";
|
|
12
|
+
import "./chunk-2UFQ3A3C.js";
|
|
13
|
+
import "./chunk-U7I7FS7T.js";
|
|
14
|
+
import "./chunk-NRIZR3A7.js";
|
|
15
|
+
import "./chunk-6HO4GWJE.js";
|
|
16
|
+
import "./chunk-DWMLTXKQ.js";
|
|
17
|
+
import "./chunk-V6OJGLBA.js";
|
|
18
|
+
import "./chunk-RXRKBBSM.js";
|
|
19
|
+
import "./chunk-3RG5ZIWI.js";
|
|
20
|
+
export {
|
|
21
|
+
applyExposureDefaults,
|
|
22
|
+
buildCodePathsCommittedErrorMessage,
|
|
23
|
+
buildTypeVsCodePathsErrorMessage,
|
|
24
|
+
validateCodePathsCommittedBeforeDone,
|
|
25
|
+
validateCodePathsExist,
|
|
26
|
+
validatePostMutation,
|
|
27
|
+
validateSpecCompleteness,
|
|
28
|
+
validateTestPathsRequired,
|
|
29
|
+
validateTypeVsCodePathsPreflight
|
|
30
|
+
};
|