@lumenflow/core 3.2.2 → 3.3.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/backlog-generator.d.ts.map +1 -1
- package/dist/backlog-generator.js +7 -1
- package/dist/backlog-generator.js.map +1 -1
- package/dist/backlog-sync-validator.d.ts.map +1 -1
- package/dist/backlog-sync-validator.js +3 -2
- package/dist/backlog-sync-validator.js.map +1 -1
- package/dist/client-ids.d.ts +16 -0
- package/dist/client-ids.d.ts.map +1 -0
- package/dist/client-ids.js +16 -0
- package/dist/client-ids.js.map +1 -0
- package/dist/code-paths-overlap.d.ts.map +1 -1
- package/dist/code-paths-overlap.js +4 -2
- package/dist/code-paths-overlap.js.map +1 -1
- package/dist/config-contract.d.ts +3 -6
- package/dist/config-contract.d.ts.map +1 -1
- package/dist/config-contract.js +7 -1
- package/dist/config-contract.js.map +1 -1
- package/dist/context/location-resolver.d.ts.map +1 -1
- package/dist/context/location-resolver.js +2 -1
- package/dist/context/location-resolver.js.map +1 -1
- package/dist/core/tool.schemas.d.ts +2 -2
- package/dist/domain/recovery.schemas.d.ts +3 -3
- package/dist/gates-schemas.d.ts +2 -2
- package/dist/incremental-lint.d.ts.map +1 -1
- package/dist/incremental-lint.js +13 -5
- package/dist/incremental-lint.js.map +1 -1
- package/dist/invariants-runner.d.ts.map +1 -1
- package/dist/invariants-runner.js +2 -1
- package/dist/invariants-runner.js.map +1 -1
- package/dist/lane-inference.d.ts.map +1 -1
- package/dist/lane-inference.js +3 -2
- package/dist/lane-inference.js.map +1 -1
- package/dist/lane-suggest-prompt.d.ts.map +1 -1
- package/dist/lane-suggest-prompt.js +2 -1
- package/dist/lane-suggest-prompt.js.map +1 -1
- package/dist/lumenflow-config-schema.d.ts +22 -14
- package/dist/lumenflow-config-schema.d.ts.map +1 -1
- package/dist/lumenflow-config.d.ts +5 -1
- package/dist/lumenflow-config.d.ts.map +1 -1
- package/dist/lumenflow-config.js +6 -4
- package/dist/lumenflow-config.js.map +1 -1
- package/dist/resolve-policy.d.ts +6 -6
- package/dist/schemas/agents-config.d.ts +2 -2
- package/dist/schemas/agents-config.js +1 -1
- package/dist/schemas/agents-config.js.map +1 -1
- package/dist/schemas/directories-config.d.ts +4 -0
- package/dist/schemas/directories-config.d.ts.map +1 -1
- package/dist/schemas/directories-config.js +26 -0
- package/dist/schemas/directories-config.js.map +1 -1
- package/dist/schemas/gates-section-config.d.ts +2 -2
- package/dist/schemas/memory-config.d.ts +4 -4
- package/dist/schemas/operational-config.d.ts +4 -4
- package/dist/schemas/wu-lifecycle-arg-validators.d.ts +1 -1
- package/dist/schemas/wu-lifecycle-schemas.d.ts +2 -2
- package/dist/spawn-agent-guidance.d.ts +2 -1
- package/dist/spawn-agent-guidance.d.ts.map +1 -1
- package/dist/spawn-agent-guidance.js +14 -4
- package/dist/spawn-agent-guidance.js.map +1 -1
- package/dist/spawn-constraints-generator.d.ts +5 -1
- package/dist/spawn-constraints-generator.d.ts.map +1 -1
- package/dist/spawn-constraints-generator.js +15 -5
- package/dist/spawn-constraints-generator.js.map +1 -1
- package/dist/spawn-guidance-generators.d.ts +0 -17
- package/dist/spawn-guidance-generators.d.ts.map +1 -1
- package/dist/spawn-guidance-generators.js +37 -2
- package/dist/spawn-guidance-generators.js.map +1 -1
- package/dist/spawn-strategy.d.ts.map +1 -1
- package/dist/spawn-strategy.js +13 -6
- package/dist/spawn-strategy.js.map +1 -1
- package/dist/spawn-task-builder.d.ts.map +1 -1
- package/dist/spawn-task-builder.js +32 -5
- package/dist/spawn-task-builder.js.map +1 -1
- package/dist/usecases/compute-context.usecase.d.ts +0 -14
- package/dist/usecases/compute-context.usecase.d.ts.map +1 -1
- package/dist/usecases/compute-context.usecase.js +18 -3
- package/dist/usecases/compute-context.usecase.js.map +1 -1
- package/dist/usecases/validate-command.usecase.d.ts +0 -14
- package/dist/usecases/validate-command.usecase.d.ts.map +1 -1
- package/dist/usecases/validate-command.usecase.js +19 -1
- package/dist/usecases/validate-command.usecase.js.map +1 -1
- package/dist/validation/command-registry.d.ts.map +1 -1
- package/dist/validation/command-registry.js +7 -4
- package/dist/validation/command-registry.js.map +1 -1
- package/dist/validation/validate-command.d.ts.map +1 -1
- package/dist/validation/validate-command.js +8 -5
- package/dist/validation/validate-command.js.map +1 -1
- package/dist/worktree-symlink.d.ts.map +1 -1
- package/dist/worktree-symlink.js +22 -4
- package/dist/worktree-symlink.js.map +1 -1
- package/dist/wu-checkpoint.d.ts.map +1 -1
- package/dist/wu-checkpoint.js +3 -2
- package/dist/wu-checkpoint.js.map +1 -1
- package/dist/wu-claim-resume.d.ts.map +1 -1
- package/dist/wu-claim-resume.js +2 -1
- package/dist/wu-claim-resume.js.map +1 -1
- package/dist/wu-context-constants.d.ts +4 -17
- package/dist/wu-context-constants.d.ts.map +1 -1
- package/dist/wu-context-constants.js +35 -19
- package/dist/wu-context-constants.js.map +1 -1
- package/dist/wu-create-validators.d.ts.map +1 -1
- package/dist/wu-create-validators.js +4 -2
- package/dist/wu-create-validators.js.map +1 -1
- package/dist/wu-done-concurrent-merge.d.ts.map +1 -1
- package/dist/wu-done-concurrent-merge.js +5 -4
- package/dist/wu-done-concurrent-merge.js.map +1 -1
- package/dist/wu-done-docs-generate.d.ts +1 -1
- package/dist/wu-done-docs-generate.d.ts.map +1 -1
- package/dist/wu-done-docs-generate.js +1 -0
- package/dist/wu-done-docs-generate.js.map +1 -1
- package/dist/wu-done-docs-only.d.ts +8 -0
- package/dist/wu-done-docs-only.d.ts.map +1 -1
- package/dist/wu-done-docs-only.js +1 -6
- package/dist/wu-done-docs-only.js.map +1 -1
- package/dist/wu-done-paths.d.ts.map +1 -1
- package/dist/wu-done-paths.js +9 -6
- package/dist/wu-done-paths.js.map +1 -1
- package/dist/wu-done-retry-helpers.js +5 -5
- package/dist/wu-done-retry-helpers.js.map +1 -1
- package/dist/wu-helpers.d.ts.map +1 -1
- package/dist/wu-helpers.js +8 -4
- package/dist/wu-helpers.js.map +1 -1
- package/dist/wu-paths-constants.d.ts +1 -6
- package/dist/wu-paths-constants.d.ts.map +1 -1
- package/dist/wu-paths-constants.js +8 -2
- package/dist/wu-paths-constants.js.map +1 -1
- package/dist/wu-paths.d.ts +54 -0
- package/dist/wu-paths.d.ts.map +1 -1
- package/dist/wu-paths.js +29 -3
- package/dist/wu-paths.js.map +1 -1
- package/dist/wu-rules-resolvers.d.ts.map +1 -1
- package/dist/wu-rules-resolvers.js +2 -1
- package/dist/wu-rules-resolvers.js.map +1 -1
- package/dist/wu-schema.d.ts.map +1 -1
- package/dist/wu-schema.js +3 -1
- package/dist/wu-schema.js.map +1 -1
- package/dist/wu-spawn-skills.d.ts +1 -1
- package/dist/wu-spawn-skills.d.ts.map +1 -1
- package/dist/wu-spawn-skills.js +7 -4
- package/dist/wu-spawn-skills.js.map +1 -1
- package/dist/wu-status-transition.js +4 -9
- package/dist/wu-status-transition.js.map +1 -1
- package/dist/wu-validator.d.ts.map +1 -1
- package/dist/wu-validator.js +3 -1
- package/dist/wu-validator.js.map +1 -1
- package/package.json +2 -2
|
@@ -81,9 +81,9 @@ export declare const MemoryEnforcementConfigSchema: z.ZodObject<{
|
|
|
81
81
|
interval_tool_calls: z.ZodDefault<z.ZodNumber>;
|
|
82
82
|
}, z.core.$strip>>;
|
|
83
83
|
require_checkpoint_for_done: z.ZodDefault<z.ZodEnum<{
|
|
84
|
-
off: "off";
|
|
85
|
-
warn: "warn";
|
|
86
84
|
block: "block";
|
|
85
|
+
warn: "warn";
|
|
86
|
+
off: "off";
|
|
87
87
|
}>>;
|
|
88
88
|
}, z.core.$strip>;
|
|
89
89
|
/** WU-1471: TypeScript type for memory enforcement config */
|
|
@@ -148,9 +148,9 @@ export declare const MemoryConfigSchema: z.ZodObject<{
|
|
|
148
148
|
interval_tool_calls: z.ZodDefault<z.ZodNumber>;
|
|
149
149
|
}, z.core.$strip>>;
|
|
150
150
|
require_checkpoint_for_done: z.ZodDefault<z.ZodEnum<{
|
|
151
|
-
off: "off";
|
|
152
|
-
warn: "warn";
|
|
153
151
|
block: "block";
|
|
152
|
+
warn: "warn";
|
|
153
|
+
off: "off";
|
|
154
154
|
}>>;
|
|
155
155
|
}, z.core.$strip>>;
|
|
156
156
|
decay: z.ZodOptional<z.ZodObject<{
|
|
@@ -63,9 +63,9 @@ export declare const YamlConfigSchema: z.ZodObject<{
|
|
|
63
63
|
* WU-1090: Context-aware state machine for WU lifecycle commands
|
|
64
64
|
*/
|
|
65
65
|
export declare const ValidationModeSchema: z.ZodDefault<z.ZodEnum<{
|
|
66
|
-
error: "error";
|
|
67
|
-
off: "off";
|
|
68
66
|
warn: "warn";
|
|
67
|
+
off: "off";
|
|
68
|
+
error: "error";
|
|
69
69
|
}>>;
|
|
70
70
|
/**
|
|
71
71
|
* Experimental features configuration
|
|
@@ -74,9 +74,9 @@ export declare const ValidationModeSchema: z.ZodDefault<z.ZodEnum<{
|
|
|
74
74
|
export declare const ExperimentalConfigSchema: z.ZodObject<{
|
|
75
75
|
context_validation: z.ZodDefault<z.ZodBoolean>;
|
|
76
76
|
validation_mode: z.ZodDefault<z.ZodEnum<{
|
|
77
|
-
error: "error";
|
|
78
|
-
off: "off";
|
|
79
77
|
warn: "warn";
|
|
78
|
+
off: "off";
|
|
79
|
+
error: "error";
|
|
80
80
|
}>>;
|
|
81
81
|
show_next_steps: z.ZodDefault<z.ZodBoolean>;
|
|
82
82
|
recovery_command: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -32,7 +32,7 @@ export declare const validateWuReleaseArgs: (args: Record<string, unknown>) => V
|
|
|
32
32
|
/** Validate wu:recover arguments */
|
|
33
33
|
export declare const validateWuRecoverArgs: (args: Record<string, unknown>) => ValidationResult<{
|
|
34
34
|
id: string;
|
|
35
|
-
action?: "reset" | "
|
|
35
|
+
action?: "reset" | "cleanup" | "resume" | "nuke" | undefined;
|
|
36
36
|
force?: boolean | undefined;
|
|
37
37
|
json?: boolean | undefined;
|
|
38
38
|
}>;
|
|
@@ -84,9 +84,9 @@ export declare const wuRecoverSchema: z.ZodObject<{
|
|
|
84
84
|
id: z.ZodString;
|
|
85
85
|
action: z.ZodOptional<z.ZodEnum<{
|
|
86
86
|
reset: "reset";
|
|
87
|
+
cleanup: "cleanup";
|
|
87
88
|
resume: "resume";
|
|
88
89
|
nuke: "nuke";
|
|
89
|
-
cleanup: "cleanup";
|
|
90
90
|
}>>;
|
|
91
91
|
force: z.ZodOptional<z.ZodBoolean>;
|
|
92
92
|
json: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -274,9 +274,9 @@ export declare const lifecycleCommandSchemas: {
|
|
|
274
274
|
id: z.ZodString;
|
|
275
275
|
action: z.ZodOptional<z.ZodEnum<{
|
|
276
276
|
reset: "reset";
|
|
277
|
+
cleanup: "cleanup";
|
|
277
278
|
resume: "resume";
|
|
278
279
|
nuke: "nuke";
|
|
279
|
-
cleanup: "cleanup";
|
|
280
280
|
}>>;
|
|
281
281
|
force: z.ZodOptional<z.ZodBoolean>;
|
|
282
282
|
json: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { LumenFlowConfig } from './lumenflow-config-schema.js';
|
|
1
2
|
import type { WUDocBase } from './wu-doc-types.js';
|
|
2
3
|
export type WUDoc = WUDocBase;
|
|
3
4
|
/** Generate effort scaling rules section (WU-1986) */
|
|
@@ -86,5 +87,5 @@ export declare function generateLaneGuidance(lane: string | undefined): string;
|
|
|
86
87
|
* @param {string} id - WU ID
|
|
87
88
|
* @returns {string} Action section content
|
|
88
89
|
*/
|
|
89
|
-
export declare function generateActionSection(doc: WUDoc, id: string): string;
|
|
90
|
+
export declare function generateActionSection(doc: WUDoc, id: string, config?: LumenFlowConfig): string;
|
|
90
91
|
//# sourceMappingURL=spawn-agent-guidance.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-agent-guidance.d.ts","sourceRoot":"","sources":["../src/spawn-agent-guidance.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spawn-agent-guidance.d.ts","sourceRoot":"","sources":["../src/spawn-agent-guidance.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAIpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,MAAM,MAAM,KAAK,GAAG,SAAS,CAAC;AAa9B,sDAAsD;AACtD,wBAAgB,0BAA0B,WAazC;AAED,qDAAqD;AACrD,wBAAgB,gCAAgC,WAe/C;AAED,qDAAqD;AACrD,wBAAgB,iCAAiC,WAWhD;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAU/D;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA0B5D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gCAAgC,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAgGnE;AAED,oDAAoD;AACpD,wBAAgB,wBAAwB,WAYvC;AAED,gDAAgD;AAChD,wBAAgB,4BAA4B,WAgB3C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAyCrF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAuC9D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAwBrE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,MAAM,CA8B9F"}
|
|
@@ -24,7 +24,15 @@
|
|
|
24
24
|
* @module spawn-agent-guidance
|
|
25
25
|
*/
|
|
26
26
|
import { getConfig } from './lumenflow-config.js';
|
|
27
|
-
import { LUMENFLOW_PATHS } from './wu-constants.js';
|
|
27
|
+
import { CONFIG_FILES, DIRECTORIES, LUMENFLOW_PATHS } from './wu-constants.js';
|
|
28
|
+
const DEFAULT_WORKTREES_DIR_SEGMENT = DIRECTORIES.WORKTREES.replace(/\/+$/g, '');
|
|
29
|
+
function normalizeDirectorySegment(value) {
|
|
30
|
+
return value.replace(/\\/g, '/').replace(/^\/+|\/+$/g, '');
|
|
31
|
+
}
|
|
32
|
+
function resolveWorktreesDirSegment(config) {
|
|
33
|
+
const normalized = normalizeDirectorySegment(config.directories.worktrees);
|
|
34
|
+
return normalized.length > 0 ? normalized : DEFAULT_WORKTREES_DIR_SEGMENT;
|
|
35
|
+
}
|
|
28
36
|
/** Generate effort scaling rules section (WU-1986) */
|
|
29
37
|
export function generateEffortScalingRules() {
|
|
30
38
|
return `## Effort Scaling (When to Spawn Sub-Agents)
|
|
@@ -250,7 +258,7 @@ pnpm wu:infer-lane --id WU-XXX
|
|
|
250
258
|
pnpm wu:infer-lane --paths "tools/**" --desc "CLI improvements"
|
|
251
259
|
\`\`\`
|
|
252
260
|
|
|
253
|
-
**Lane taxonomy**: See
|
|
261
|
+
**Lane taxonomy**: See \`${CONFIG_FILES.LANE_INFERENCE}\` for valid lanes and patterns.
|
|
254
262
|
|
|
255
263
|
**Why lanes matter**: WIP=1 per lane means correct lane selection enables parallel work across lanes.`;
|
|
256
264
|
}
|
|
@@ -402,8 +410,10 @@ export function generateLaneGuidance(lane) {
|
|
|
402
410
|
* @param {string} id - WU ID
|
|
403
411
|
* @returns {string} Action section content
|
|
404
412
|
*/
|
|
405
|
-
export function generateActionSection(doc, id) {
|
|
413
|
+
export function generateActionSection(doc, id, config) {
|
|
406
414
|
const isAlreadyClaimed = doc.claimed_at && doc.worktree_path;
|
|
415
|
+
const resolvedConfig = config ?? getConfig();
|
|
416
|
+
const worktreesDirSegment = resolveWorktreesDirSegment(resolvedConfig);
|
|
407
417
|
if (isAlreadyClaimed) {
|
|
408
418
|
return `This WU is already claimed. Continue implementation in worktree following all standards above.
|
|
409
419
|
|
|
@@ -418,7 +428,7 @@ cd ${doc.worktree_path}`;
|
|
|
418
428
|
|
|
419
429
|
\`\`\`bash
|
|
420
430
|
pnpm wu:claim --id ${id} --lane "${doc.lane}"
|
|
421
|
-
cd
|
|
431
|
+
cd ${worktreesDirSegment}/${laneSlug}-${id.toLowerCase()}
|
|
422
432
|
\`\`\`
|
|
423
433
|
|
|
424
434
|
Then implement following all standards above.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-agent-guidance.js","sourceRoot":"","sources":["../src/spawn-agent-guidance.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"spawn-agent-guidance.js","sourceRoot":"","sources":["../src/spawn-agent-guidance.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
export interface ConstraintsOptions {
|
|
5
5
|
/** Whether to include TDD CHECKPOINT (constraint 1). Default: true */
|
|
6
6
|
includeTddCheckpoint?: boolean;
|
|
7
|
+
/** Main branch ref shown in git workflow guidance (default: origin/main) */
|
|
8
|
+
mainRef?: string;
|
|
9
|
+
/** Worktrees directory hint shown in worktree discipline guidance */
|
|
10
|
+
worktreesDirSegment?: string;
|
|
7
11
|
}
|
|
8
12
|
/**
|
|
9
13
|
* Generate the constraints block (appended at end per Lost in the Middle research)
|
|
@@ -26,5 +30,5 @@ export declare function generateConstraints(id: string, options?: ConstraintsOpt
|
|
|
26
30
|
* @param {string} id - WU ID
|
|
27
31
|
* @returns {string} Codex constraints section
|
|
28
32
|
*/
|
|
29
|
-
export declare function generateCodexConstraints(id: string): string;
|
|
33
|
+
export declare function generateCodexConstraints(id: string, options?: ConstraintsOptions): string;
|
|
30
34
|
//# sourceMappingURL=spawn-constraints-generator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-constraints-generator.d.ts","sourceRoot":"","sources":["../src/spawn-constraints-generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spawn-constraints-generator.d.ts","sourceRoot":"","sources":["../src/spawn-constraints-generator.ts"],"names":[],"mappings":"AAsBA;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAOD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM,CA8EpF;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAYzF"}
|
|
@@ -12,7 +12,14 @@
|
|
|
12
12
|
*
|
|
13
13
|
* @module spawn-constraints-generator
|
|
14
14
|
*/
|
|
15
|
+
import { BRANCHES, DIRECTORIES, REMOTES } from './wu-constants.js';
|
|
15
16
|
import { SPAWN_END_SENTINEL } from './spawn-template-assembler.js';
|
|
17
|
+
const DEFAULT_MAIN_REF = `${REMOTES.ORIGIN}/${BRANCHES.MAIN}`;
|
|
18
|
+
const DEFAULT_WORKTREES_DIR_SEGMENT = DIRECTORIES.WORKTREES.replace(/\/+$/g, '');
|
|
19
|
+
function normalizeWorktreesDirSegment(value) {
|
|
20
|
+
const normalized = (value ?? '').replace(/\\/g, '/').replace(/^\/+|\/+$/g, '');
|
|
21
|
+
return normalized.length > 0 ? normalized : DEFAULT_WORKTREES_DIR_SEGMENT;
|
|
22
|
+
}
|
|
16
23
|
/**
|
|
17
24
|
* Generate the constraints block (appended at end per Lost in the Middle research)
|
|
18
25
|
*
|
|
@@ -29,6 +36,8 @@ import { SPAWN_END_SENTINEL } from './spawn-template-assembler.js';
|
|
|
29
36
|
*/
|
|
30
37
|
export function generateConstraints(id, options) {
|
|
31
38
|
const includeTdd = options?.includeTddCheckpoint !== false;
|
|
39
|
+
const mainRef = options?.mainRef ?? DEFAULT_MAIN_REF;
|
|
40
|
+
const worktreesDirSegment = normalizeWorktreesDirSegment(options?.worktreesDirSegment);
|
|
32
41
|
const tddCheckpointBlock = includeTdd
|
|
33
42
|
? `
|
|
34
43
|
1. TDD CHECKPOINT (VERIFY BEFORE IMPLEMENTATION)
|
|
@@ -74,7 +83,7 @@ ${neverFabNum}. NEVER FABRICATE COMPLETION
|
|
|
74
83
|
|
|
75
84
|
${gitNum}. GIT WORKFLOW (CRITICAL - GitHub rules reject merge commits)
|
|
76
85
|
- GitHub REJECTS merge commits on main
|
|
77
|
-
- ALWAYS use \`git rebase
|
|
86
|
+
- ALWAYS use \`git rebase ${mainRef}\` before push
|
|
78
87
|
- Push to main via \`git push origin lane/...:main\` (fast-forward only)
|
|
79
88
|
- NEVER use \`git merge\` on main branch
|
|
80
89
|
- Use \`pnpm wu:prep\` from worktree, then \`pnpm wu:done\` from main (WU-1223)
|
|
@@ -93,8 +102,8 @@ ${skipGatesNum}. SKIP-GATES AUTONOMY (WU-1142)
|
|
|
93
102
|
${worktreeNum}. WORKTREE DISCIPLINE (WU-1282)
|
|
94
103
|
- CRITICAL: PreToolUse hooks do not propagate to sub-agents spawned via Task tool
|
|
95
104
|
- BEFORE UnsafeAny Write/Edit operation, manually verify you are in a worktree:
|
|
96
|
-
- Run: \`pwd\` and confirm output contains
|
|
97
|
-
- If not in worktree, STOP and navigate: \`cd
|
|
105
|
+
- Run: \`pwd\` and confirm output contains \`${worktreesDirSegment}/\`
|
|
106
|
+
- If not in worktree, STOP and navigate: \`cd ${worktreesDirSegment}/<lane>-wu-xxx\`
|
|
98
107
|
- Use RELATIVE paths only (never full absolute paths starting with root directory)
|
|
99
108
|
- This constraint exists because Claude Code does not inherit settings.json hooks in sub-agent sessions
|
|
100
109
|
</constraints>
|
|
@@ -107,7 +116,8 @@ ${SPAWN_END_SENTINEL}`;
|
|
|
107
116
|
* @param {string} id - WU ID
|
|
108
117
|
* @returns {string} Codex constraints section
|
|
109
118
|
*/
|
|
110
|
-
export function generateCodexConstraints(id) {
|
|
119
|
+
export function generateCodexConstraints(id, options) {
|
|
120
|
+
const worktreesDirSegment = normalizeWorktreesDirSegment(options?.worktreesDirSegment);
|
|
111
121
|
return `## Constraints (Critical)
|
|
112
122
|
|
|
113
123
|
1. **TDD checkpoint**: tests BEFORE implementation; never skip RED
|
|
@@ -116,6 +126,6 @@ export function generateCodexConstraints(id) {
|
|
|
116
126
|
4. **No fabrication**: if blockers remain or verification fails, report INCOMPLETE
|
|
117
127
|
5. **Git workflow**: avoid merge commits; use \`wu:prep\` from worktree, then \`wu:done\` from main
|
|
118
128
|
6. **Scope discipline**: stay within \`code_paths\`; capture out-of-scope issues via \`pnpm mem:create\`
|
|
119
|
-
7. **Worktree discipline (WU-1282)**: BEFORE UnsafeAny Write/Edit, verify \`pwd\` shows
|
|
129
|
+
7. **Worktree discipline (WU-1282)**: BEFORE UnsafeAny Write/Edit, verify \`pwd\` shows \`${worktreesDirSegment}/\`; hooks do not propagate to sub-agents`;
|
|
120
130
|
}
|
|
121
131
|
//# sourceMappingURL=spawn-constraints-generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-constraints-generator.js","sourceRoot":"","sources":["../src/spawn-constraints-generator.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"spawn-constraints-generator.js","sourceRoot":"","sources":["../src/spawn-constraints-generator.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,MAAM,gBAAgB,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC9D,MAAM,6BAA6B,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAcjF,SAAS,4BAA4B,CAAC,KAAyB;IAC7D,MAAM,UAAU,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAC/E,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,6BAA6B,CAAC;AAC5E,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAU,EAAE,OAA4B;IAC1E,MAAM,UAAU,GAAG,OAAO,EAAE,oBAAoB,KAAK,KAAK,CAAC;IAC3D,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,gBAAgB,CAAC;IACrD,MAAM,mBAAmB,GAAG,4BAA4B,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAEvF,MAAM,kBAAkB,GAAG,UAAU;QACnC,CAAC,CAAC;;;;;;CAML;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,wDAAwD;IACxD,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvC,OAAO;;;;EAIP,kBAAkB,GAAG,WAAW;;;;;EAKhC,UAAU;;;;;;EAMV,SAAS;wDAC6C,EAAE;;;;EAIxD,WAAW;;;;;EAKX,MAAM;;+BAEuB,OAAO;;;;;EAKpC,MAAM;sCAC8B,EAAE;mCACL,EAAE;;;EAGnC,YAAY;;6EAE+D,EAAE;;;;EAI7E,WAAW;;;kDAGqC,mBAAmB;mDAClB,mBAAmB;;;;;EAKpE,kBAAkB,EAAE,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,EAAU,EAAE,OAA4B;IAC/E,MAAM,mBAAmB,GAAG,4BAA4B,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAEvF,OAAO;;;;2HAIkH,EAAE;;;;4FAIjC,mBAAmB,2CAA2C,CAAC;AAC3J,CAAC"}
|
|
@@ -1,20 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file spawn-guidance-generators.ts
|
|
3
|
-
* WU-2012: Extracted from wu-spawn.ts
|
|
4
|
-
*
|
|
5
|
-
* Generates methodology-aware guidance sections for spawn prompts:
|
|
6
|
-
* - Test guidance (TDD, test-after, smoke-test, refactor, docs-only)
|
|
7
|
-
* - Architecture guidance (hexagonal, layered, none)
|
|
8
|
-
* - Design context for UI-classified work
|
|
9
|
-
* - Enforcement summary from resolved policy
|
|
10
|
-
* - Mandatory standards section
|
|
11
|
-
* - Worktree block recovery guidance
|
|
12
|
-
*
|
|
13
|
-
* Single responsibility: Generate type-aware and policy-aware guidance sections
|
|
14
|
-
* for test methodology, architecture patterns, and UI design context.
|
|
15
|
-
*
|
|
16
|
-
* @module spawn-guidance-generators
|
|
17
|
-
*/
|
|
18
1
|
import type { ResolvedPolicy } from './resolve-policy.js';
|
|
19
2
|
/** Generate type-aware test guidance (WU-1142, WU-1192) */
|
|
20
3
|
export declare function generateTestGuidance(wuType: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-guidance-generators.d.ts","sourceRoot":"","sources":["../src/spawn-guidance-generators.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spawn-guidance-generators.d.ts","sourceRoot":"","sources":["../src/spawn-guidance-generators.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AA4B1D,2DAA2D;AAC3D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAoB3D;AAmFD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,kFAAkF;IAClF,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,iFAAiF;AACjF,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAkDzE;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,MAAM,CAkCR;AAiDD,uEAAuE;AACvE,wBAAgB,uCAAuC,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA8CtF;AAED,sEAAsE;AACtE,wBAAgB,4BAA4B,CAAC,cAAc,EAAE;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,GAAG,MAAM,CAiCT;AAED,iEAAiE;AACjE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAqBzE;AAED,yDAAyD;AACzD,wBAAgB,oCAAoC,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CA8BjF"}
|
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
// Copyright (c) 2026 Hellmai Ltd
|
|
2
2
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
3
|
+
/**
|
|
4
|
+
* @file spawn-guidance-generators.ts
|
|
5
|
+
* WU-2012: Extracted from wu-spawn.ts
|
|
6
|
+
*
|
|
7
|
+
* Generates methodology-aware guidance sections for spawn prompts:
|
|
8
|
+
* - Test guidance (TDD, test-after, smoke-test, refactor, docs-only)
|
|
9
|
+
* - Architecture guidance (hexagonal, layered, none)
|
|
10
|
+
* - Design context for UI-classified work
|
|
11
|
+
* - Enforcement summary from resolved policy
|
|
12
|
+
* - Mandatory standards section
|
|
13
|
+
* - Worktree block recovery guidance
|
|
14
|
+
*
|
|
15
|
+
* Single responsibility: Generate type-aware and policy-aware guidance sections
|
|
16
|
+
* for test methodology, architecture patterns, and UI design context.
|
|
17
|
+
*
|
|
18
|
+
* @module spawn-guidance-generators
|
|
19
|
+
*/
|
|
20
|
+
import { DIRECTORIES } from './wu-constants.js';
|
|
21
|
+
import { createWuPaths } from './wu-paths.js';
|
|
22
|
+
const DEFAULT_WORKTREES_DIR_SEGMENT = DIRECTORIES.WORKTREES.replace(/\/+$/g, '');
|
|
23
|
+
function normalizeDirectorySegment(value, fallback) {
|
|
24
|
+
const normalized = value.replace(/\\/g, '/').replace(/^\/+|\/+$/g, '');
|
|
25
|
+
return normalized.length > 0 ? normalized : fallback;
|
|
26
|
+
}
|
|
27
|
+
function resolveWorktreePathFallback() {
|
|
28
|
+
try {
|
|
29
|
+
const configuredWorktreesDir = createWuPaths({ projectRoot: process.cwd() }).WORKTREES_DIR();
|
|
30
|
+
const normalizedDir = normalizeDirectorySegment(configuredWorktreesDir, DEFAULT_WORKTREES_DIR_SEGMENT);
|
|
31
|
+
return `${normalizedDir}/<lane>-wu-xxx`;
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return `${DEFAULT_WORKTREES_DIR_SEGMENT}/<lane>-wu-xxx`;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
3
37
|
/** WU types by test methodology */
|
|
4
38
|
const _TDD_REQUIRED_TYPES = ['feature', 'bug', 'tooling', 'enhancement'];
|
|
5
39
|
const EXISTING_TESTS_TYPES = ['refactor'];
|
|
@@ -314,12 +348,13 @@ export function generateEnforcementSummary(policy) {
|
|
|
314
348
|
}
|
|
315
349
|
/** Generate worktree block recovery section (WU-1192) */
|
|
316
350
|
export function generateWorktreeBlockRecoverySection(worktreePath) {
|
|
351
|
+
const worktreePathHint = worktreePath || resolveWorktreePathFallback();
|
|
317
352
|
return `## When Blocked by Worktree Hook
|
|
318
353
|
|
|
319
354
|
If you encounter a "worktree required" or "commit blocked" error:
|
|
320
355
|
|
|
321
356
|
1. **Check existing worktrees**: \`git worktree list\`
|
|
322
|
-
2. **Navigate to the worktree**: \`cd ${
|
|
357
|
+
2. **Navigate to the worktree**: \`cd ${worktreePathHint}\`
|
|
323
358
|
3. **Retry your operation** from within the worktree
|
|
324
359
|
4. **Use relative paths only** (never absolute paths)
|
|
325
360
|
|
|
@@ -337,7 +372,7 @@ pwd
|
|
|
337
372
|
git worktree list
|
|
338
373
|
|
|
339
374
|
# Navigate to your worktree
|
|
340
|
-
cd ${
|
|
375
|
+
cd ${worktreePathHint}
|
|
341
376
|
|
|
342
377
|
# Retry your commit
|
|
343
378
|
git add . && git commit -m "your message"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-guidance-generators.js","sourceRoot":"","sources":["../src/spawn-guidance-generators.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;
|
|
1
|
+
{"version":3,"file":"spawn-guidance-generators.js","sourceRoot":"","sources":["../src/spawn-guidance-generators.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-strategy.d.ts","sourceRoot":"","sources":["../src/spawn-strategy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spawn-strategy.d.ts","sourceRoot":"","sources":["../src/spawn-strategy.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAElC;;OAEG;IACH,0BAA0B,IAAI,MAAM,CAAC;CACtC;AAED;;GAEG;AACH,uBAAe,iBAAkB,YAAW,aAAa;IACvD,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAY/C,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAE1C;;;OAGG;IACH,0BAA0B,IAAI,MAAM;CAMrC;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,iBAAiB;IACvD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAmBjC,0BAA0B,IAAI,MAAM;CAQrC;AAED;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,iBAAiB;IACtD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CASlC;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,iBAAiB;IACpD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAGlC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CA0BrE;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;CAEhC,CAAC"}
|
package/dist/spawn-strategy.js
CHANGED
|
@@ -1,19 +1,23 @@
|
|
|
1
1
|
// Copyright (c) 2026 Hellmai Ltd
|
|
2
2
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
3
3
|
import { existsSync } from 'node:fs';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import { getConfig } from './lumenflow-config.js';
|
|
6
|
+
import { createWuPaths } from './wu-paths.js';
|
|
4
7
|
/**
|
|
5
8
|
* Base class with shared preamble logic
|
|
6
9
|
*/
|
|
7
10
|
class BaseSpawnStrategy {
|
|
8
11
|
getCorePreamble(wuId) {
|
|
12
|
+
const wuPaths = createWuPaths();
|
|
9
13
|
return `Load the following context in this order:
|
|
10
14
|
|
|
11
15
|
1. Read LUMENFLOW.md (workflow fundamentals and critical rules)
|
|
12
16
|
2. Read .lumenflow/constraints.md (non-negotiable constraints)
|
|
13
17
|
3. Read README.md (project structure and tech stack)
|
|
14
|
-
4. Read
|
|
15
|
-
5. Read
|
|
16
|
-
6. Read
|
|
18
|
+
4. Read ${wuPaths.COMPLETE_GUIDE_PATH()} sections 1-7 (TDD, gates, Definition of Done)
|
|
19
|
+
5. Read ${wuPaths.WU(wuId)} (the specific WU you're working on)
|
|
20
|
+
6. Read ${wuPaths.QUICK_REF_PATH()} (CLI tooling reference - USE THESE COMMANDS)`;
|
|
17
21
|
}
|
|
18
22
|
/**
|
|
19
23
|
* Default skill loading instruction - shared by GenericStrategy and GeminiCliStrategy
|
|
@@ -32,23 +36,26 @@ class BaseSpawnStrategy {
|
|
|
32
36
|
export class ClaudeCodeStrategy extends BaseSpawnStrategy {
|
|
33
37
|
getPreamble(wuId) {
|
|
34
38
|
let preamble = this.getCorePreamble(wuId);
|
|
39
|
+
const claudeDir = getConfig().directories.claude;
|
|
40
|
+
const claudeOverlayPath = path.join(claudeDir, 'CLAUDE.md');
|
|
35
41
|
// Vendor overlay
|
|
36
|
-
if (existsSync(
|
|
42
|
+
if (existsSync(claudeOverlayPath)) {
|
|
37
43
|
// Insert after LUMENFLOW.md if possible, or just append/prepend
|
|
38
44
|
// For simplicity and clarity, we'll prepend the vendor specific instructions
|
|
39
45
|
// relying on the user to follow the specific order if stated.
|
|
40
46
|
// Actually, checking original behavior: CLAUDE.md was #1.
|
|
41
47
|
// But new plan says LUMENFLOW.md is core.
|
|
42
48
|
// We will append it as an overlay step.
|
|
43
|
-
preamble += `\n7. Read .
|
|
49
|
+
preamble += `\n7. Read ${claudeOverlayPath.replace(/\\/g, '/')} (Claude-specific workflow overlay)`;
|
|
44
50
|
}
|
|
45
51
|
return preamble;
|
|
46
52
|
}
|
|
47
53
|
getSkillLoadingInstruction() {
|
|
54
|
+
const agentsDir = getConfig().directories.agentsDir;
|
|
48
55
|
return `## Skills Selection
|
|
49
56
|
|
|
50
57
|
1. Check \`.lumenflow/agents\` for available skills.
|
|
51
|
-
2. Check
|
|
58
|
+
2. Check \`${agentsDir}\` for Claude-specific overrides or additions.
|
|
52
59
|
3. Select relevant skills for this task.`;
|
|
53
60
|
}
|
|
54
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-strategy.js","sourceRoot":"","sources":["../src/spawn-strategy.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"spawn-strategy.js","sourceRoot":"","sources":["../src/spawn-strategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-task-builder.d.ts","sourceRoot":"","sources":["../src/spawn-task-builder.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"spawn-task-builder.d.ts","sourceRoot":"","sources":["../src/spawn-task-builder.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAYzD,OAAO,EACL,KAAK,KAAK,EAaX,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,aAAa,EAQnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAMlE;;GAEG;AACH,UAAU,4BAA4B;IACpC,2CAA2C;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAyBD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6EAA6E;IAC7E,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAMD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,KAAK,EACV,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,aAAa,EACvB,OAAO,GAAE,YAAiB,GACzB,MAAM,CA8MR;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,KAAK,EACV,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,aAAa,EACvB,OAAO,GAAE,YAAiB,GACzB,MAAM,CA6GR;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAMrE;AAED;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAC3C,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,4BAAiC,GACzC,MAAM,CAiBR"}
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
import { getConfig } from './lumenflow-config.js';
|
|
19
19
|
import { resolvePolicy } from './resolve-policy.js';
|
|
20
20
|
import { classifyWork } from './work-classifier.js';
|
|
21
|
+
import { DIRECTORIES } from './wu-constants.js';
|
|
21
22
|
import { generateExecutionModeSection, generateThinkToolGuidance } from './wu-spawn-helpers.js';
|
|
22
23
|
import { generateClientSkillsGuidance, generateSkillsSelectionSection } from './wu-spawn-skills.js';
|
|
23
24
|
import { TRUNCATION_WARNING_BANNER } from './spawn-template-assembler.js';
|
|
@@ -26,6 +27,20 @@ import { generateConstraints, generateCodexConstraints } from './spawn-constrain
|
|
|
26
27
|
import { generateEffortScalingRules, generateParallelToolCallGuidance, generateIterativeSearchHeuristics, generateTokenBudgetAwareness, generateCompletionFormat, generateAgentCoordinationSection, generateQuickFixCommands, generateLaneSelectionSection, generateWorktreePathGuidance, generateBugDiscoverySection, generateLaneGuidance, generateActionSection, } from './spawn-agent-guidance.js';
|
|
27
28
|
import { formatAcceptance, generateImplementationContext, detectMandatoryAgents, generateMandatoryAgentSection, generatePreamble, generateClientBlocksSection, generateInvariantsPriorArtSection, } from './spawn-prompt-helpers.js';
|
|
28
29
|
import { checkLaneLock } from './lane-lock.js';
|
|
30
|
+
const DEFAULT_WORKTREES_DIR_SEGMENT = DIRECTORIES.WORKTREES.replace(/\/+$/g, '');
|
|
31
|
+
function normalizeDirectorySegment(value) {
|
|
32
|
+
return value.replace(/\\/g, '/').replace(/^\/+|\/+$/g, '');
|
|
33
|
+
}
|
|
34
|
+
function resolveWorktreesDirSegment(config) {
|
|
35
|
+
const normalized = normalizeDirectorySegment(config.directories.worktrees);
|
|
36
|
+
return normalized.length > 0 ? normalized : DEFAULT_WORKTREES_DIR_SEGMENT;
|
|
37
|
+
}
|
|
38
|
+
function resolveWorktreePathHint(doc, id, config) {
|
|
39
|
+
if (doc.worktree_path) {
|
|
40
|
+
return doc.worktree_path;
|
|
41
|
+
}
|
|
42
|
+
return `${resolveWorktreesDirSegment(config)}/<lane>-${id.toLowerCase()}`;
|
|
43
|
+
}
|
|
29
44
|
// ============================================================================
|
|
30
45
|
// Exported Functions
|
|
31
46
|
// ============================================================================
|
|
@@ -44,6 +59,9 @@ export function generateTaskInvocation(doc, id, strategy, options = {}) {
|
|
|
44
59
|
const preamble = generatePreamble(id, strategy);
|
|
45
60
|
const clientContext = options.client;
|
|
46
61
|
const config = options.config || getConfig();
|
|
62
|
+
const worktreesDirSegment = resolveWorktreesDirSegment(config);
|
|
63
|
+
const worktreePathHint = resolveWorktreePathHint(doc, id, config);
|
|
64
|
+
const mainRef = `${config.git.defaultRemote}/${config.git.mainBranch}`;
|
|
47
65
|
// WU-1279: Resolve policy and use policy-based test guidance
|
|
48
66
|
const policy = resolvePolicy(config);
|
|
49
67
|
// WU-1900: Run work classifier for domain-aware prompt generation
|
|
@@ -69,10 +87,13 @@ export function generateTaskInvocation(doc, id, strategy, options = {}) {
|
|
|
69
87
|
const mandatorySection = generateMandatoryAgentSection(mandatoryAgents, id);
|
|
70
88
|
const laneGuidance = generateLaneGuidance(doc.lane);
|
|
71
89
|
const bugDiscoverySection = generateBugDiscoverySection(id);
|
|
90
|
+
const action = generateActionSection(doc, id, config);
|
|
72
91
|
// WU-1900: Generate constraints with conditional TDD CHECKPOINT
|
|
73
92
|
const shouldIncludeTddCheckpoint = classification.domain !== 'ui' && policy.testing !== 'none';
|
|
74
93
|
const constraints = generateConstraints(id, {
|
|
75
94
|
includeTddCheckpoint: shouldIncludeTddCheckpoint,
|
|
95
|
+
mainRef,
|
|
96
|
+
worktreesDirSegment,
|
|
76
97
|
});
|
|
77
98
|
// WU-1900: Generate design context section for UI-classified work
|
|
78
99
|
const designContextSection = generateDesignContextSection(classification);
|
|
@@ -123,7 +144,7 @@ ${testGuidance}
|
|
|
123
144
|
- **Lane:** ${doc.lane || 'Unknown'}
|
|
124
145
|
- **Type:** ${doc.type || 'feature'}
|
|
125
146
|
- **Status:** ${doc.status || 'unknown'}
|
|
126
|
-
- **Worktree:** ${
|
|
147
|
+
- **Worktree:** ${worktreePathHint}
|
|
127
148
|
|
|
128
149
|
## Description
|
|
129
150
|
|
|
@@ -187,7 +208,7 @@ ${laneSelection}
|
|
|
187
208
|
|
|
188
209
|
${laneGuidance}${laneGuidance ? '\n\n---\n\n' : ''}## Action
|
|
189
210
|
|
|
190
|
-
${
|
|
211
|
+
${action}
|
|
191
212
|
|
|
192
213
|
${constraints}`;
|
|
193
214
|
// Escape special characters for XML output
|
|
@@ -229,10 +250,16 @@ export function generateCodexPrompt(doc, id, strategy, options = {}) {
|
|
|
229
250
|
const laneGuidance = generateLaneGuidance(doc.lane);
|
|
230
251
|
const bugDiscoverySection = generateBugDiscoverySection(id);
|
|
231
252
|
const implementationContext = generateImplementationContext(doc);
|
|
232
|
-
const action = generateActionSection(doc, id);
|
|
233
|
-
const constraints = generateCodexConstraints(id);
|
|
234
253
|
const clientContext = options.client;
|
|
235
254
|
const config = options.config || getConfig();
|
|
255
|
+
const worktreesDirSegment = resolveWorktreesDirSegment(config);
|
|
256
|
+
const worktreePathHint = resolveWorktreePathHint(doc, id, config);
|
|
257
|
+
const mainRef = `${config.git.defaultRemote}/${config.git.mainBranch}`;
|
|
258
|
+
const action = generateActionSection(doc, id, config);
|
|
259
|
+
const constraints = generateCodexConstraints(id, {
|
|
260
|
+
mainRef,
|
|
261
|
+
worktreesDirSegment,
|
|
262
|
+
});
|
|
236
263
|
const clientSkillsGuidance = generateClientSkillsGuidance(clientContext);
|
|
237
264
|
const skillsSection = generateSkillsSelectionSection(doc, config, clientContext?.name) +
|
|
238
265
|
(clientSkillsGuidance ? `\n${clientSkillsGuidance}` : '');
|
|
@@ -268,7 +295,7 @@ ${preamble}
|
|
|
268
295
|
- **Lane:** ${doc.lane || 'Unknown'}
|
|
269
296
|
- **Type:** ${doc.type || 'feature'}
|
|
270
297
|
- **Status:** ${doc.status || 'unknown'}
|
|
271
|
-
- **Worktree:** ${
|
|
298
|
+
- **Worktree:** ${worktreePathHint}
|
|
272
299
|
|
|
273
300
|
## Description
|
|
274
301
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-task-builder.js","sourceRoot":"","sources":["../src/spawn-task-builder.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,4BAA4B,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,EAAE,4BAA4B,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EACL,+BAA+B,EAC/B,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjG,OAAO,EAEL,0BAA0B,EAC1B,gCAAgC,EAChC,iCAAiC,EACjC,4BAA4B,EAC5B,wBAAwB,EACxB,gCAAgC,EAChC,wBAAwB,EACxB,4BAA4B,EAC5B,4BAA4B,EAC5B,2BAA2B,EAC3B,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,gBAAgB,EAChB,6BAA6B,EAC7B,qBAAqB,EACrB,6BAA6B,EAC7B,gBAAgB,EAChB,2BAA2B,EAC3B,iCAAiC,GAClC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAqB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"spawn-task-builder.js","sourceRoot":"","sources":["../src/spawn-task-builder.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,4BAA4B,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,EAAE,4BAA4B,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EACL,+BAA+B,EAC/B,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjG,OAAO,EAEL,0BAA0B,EAC1B,gCAAgC,EAChC,iCAAiC,EACjC,4BAA4B,EAC5B,wBAAwB,EACxB,gCAAgC,EAChC,wBAAwB,EACxB,4BAA4B,EAC5B,4BAA4B,EAC5B,2BAA2B,EAC3B,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,gBAAgB,EAChB,6BAA6B,EAC7B,qBAAqB,EACrB,6BAA6B,EAC7B,gBAAgB,EAChB,2BAA2B,EAC3B,iCAAiC,GAClC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAqB,MAAM,gBAAgB,CAAC;AAclE,MAAM,6BAA6B,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAEjF,SAAS,yBAAyB,CAAC,KAAa;IAC9C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,0BAA0B,CAAC,MAAuB;IACzD,MAAM,UAAU,GAAG,yBAAyB,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC3E,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,6BAA6B,CAAC;AAC5E,CAAC;AAED,SAAS,uBAAuB,CAAC,GAAU,EAAE,EAAU,EAAE,MAAuB;IAC9E,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC,aAAa,CAAC;IAC3B,CAAC;IAED,OAAO,GAAG,0BAA0B,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;AAC5E,CAAC;AAyBD,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,GAAU,EACV,EAAU,EACV,QAAuB,EACvB,UAAwB,EAAE;IAE1B,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;IACvC,MAAM,eAAe,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAEzD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IACrC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;IAC7C,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAC/D,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IAEvE,6DAA6D;IAC7D,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAErC,kEAAkE;IAClE,MAAM,oBAAoB,GAAG,MAAM,EAAE,WAAW,EAAE,mBAAmB,CAAC;IACtE,MAAM,cAAc,GAAG,YAAY,CACjC;QACE,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,WAAW,EAAE,GAAG,CAAC,WAAW;KAC7B,EACD,oBAAoB,CACrB,CAAC;IAEF,iDAAiD;IACjD,MAAM,YAAY,GAAG,+BAA+B,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,EAAE,MAAM,EAAE;QAClF,mBAAmB,EAAE,cAAc,CAAC,mBAAmB;KACxD,CAAC,CAAC;IAEH,6DAA6D;IAC7D,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAE9D,iEAAiE;IACjE,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,oBAAoB,GAAG,4BAA4B,CAAC,aAAa,CAAC,CAAC;IACzE,MAAM,aAAa,GACjB,8BAA8B,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC;QAChE,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,2BAA2B,CAAC,aAAa,CAAC,CAAC;IAChE,MAAM,gBAAgB,GAAG,6BAA6B,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAC5E,MAAM,YAAY,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,mBAAmB,GAAG,2BAA2B,CAAC,EAAE,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAEtD,gEAAgE;IAChE,MAAM,0BAA0B,GAAG,cAAc,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC;IAC/F,MAAM,WAAW,GAAG,mBAAmB,CAAC,EAAE,EAAE;QAC1C,oBAAoB,EAAE,0BAA0B;QAChD,OAAO;QACP,mBAAmB;KACpB,CAAC,CAAC;IAEH,kEAAkE;IAClE,MAAM,oBAAoB,GAAG,4BAA4B,CAAC,cAAc,CAAC,CAAC;IAE1E,MAAM,qBAAqB,GAAG,6BAA6B,CAAC,GAAG,CAAC,CAAC;IAEjE,gEAAgE;IAChE,MAAM,kBAAkB,GAAG,iCAAiC,CAAC,SAAS,CAAC,CAAC;IAExE,yDAAyD;IACzD,MAAM,aAAa,GAAG,0BAA0B,EAAE,CAAC;IACnD,MAAM,iBAAiB,GAAG,gCAAgC,EAAE,CAAC;IAC7D,MAAM,gBAAgB,GAAG,iCAAiC,EAAE,CAAC;IAC7D,MAAM,WAAW,GAAG,4BAA4B,CAAC,EAAE,CAAC,CAAC;IACrD,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,EAAE,CAAC,CAAC;IAEtD,qDAAqD;IACrD,MAAM,iBAAiB,GAAG,gCAAgC,CAAC,EAAE,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,wBAAwB,EAAE,CAAC;IAE5C,mCAAmC;IACnC,MAAM,aAAa,GAAG,4BAA4B,EAAE,CAAC;IAErD,iDAAiD;IACjD,MAAM,gBAAgB,GAAG,4BAA4B,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAEzE,kCAAkC;IAClC,MAAM,0BAA0B,GAAG,OAAO,CAAC,oBAAoB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IACtF,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAElG,gDAAgD;IAChD,MAAM,oBAAoB,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAC;IACnE,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAE7D,iCAAiC;IACjC,MAAM,gBAAgB,GAAG,CAAC,oBAAoB,EAAE,iBAAiB,CAAC;SAC/D,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;SACvC,IAAI,CAAC,aAAa,CAAC,CAAC;IAEvB,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,gBAAgB,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/E,wBAAwB;IACxB,sGAAsG;IACtG,MAAM,UAAU,GAAG,GAAG,yBAAyB;EAC/C,QAAQ;;;;;EAKR,YAAY;;;;IAIV,EAAE,KAAK,GAAG,CAAC,KAAK,IAAI,UAAU;;;;YAItB,EAAE;cACA,GAAG,CAAC,IAAI,IAAI,SAAS;cACrB,GAAG,CAAC,IAAI,IAAI,SAAS;gBACnB,GAAG,CAAC,MAAM,IAAI,SAAS;kBACrB,gBAAgB;;;;EAIhC,GAAG,CAAC,WAAW,IAAI,0BAA0B;;;;EAI7C,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC;;;;EAIhC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,yBAAyB;EAC5F,gBAAgB,GAAG,kBAAkB,CAAC,CAAC,CAAC,UAAU,kBAAkB,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,qBAAqB,CAAC,CAAC,CAAC,UAAU,qBAAqB,MAAM,CAAC,CAAC,CAAC,EAAE;;EAEpJ,aAAa,GAAG,aAAa;EAC7B,oBAAoB,CAAC,CAAC,CAAC,UAAU,oBAAoB,MAAM,CAAC,CAAC,CAAC,EAAE;;EAEhE,kBAAkB;;;;EAIlB,kBAAkB;;EAElB,oBAAoB,CAAC,CAAC,CAAC,UAAU,oBAAoB,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,UAAU,YAAY,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,CAAC,CAAC,EAAE;;EAE9K,mBAAmB;;;;EAInB,aAAa;;;;EAIb,iBAAiB;;;;EAIjB,gBAAgB;;;;EAIhB,WAAW;;;;EAIX,gBAAgB;;;;EAIhB,iBAAiB;;;;EAIjB,QAAQ;;;;EAIR,aAAa;;;;EAIb,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;;EAEhD,MAAM;;EAEN,WAAW,EAAE,CAAC;IAEd,2CAA2C;IAC3C,MAAM,aAAa,GAAG,UAAU;SAC7B,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAEzB,0DAA0D;IAC1D,+CAA+C;IAC/C,MAAM,OAAO,GAAG,GAAG,GAAG,2BAA2B,CAAC;IAClD,MAAM,QAAQ,GAAG,IAAI,GAAG,eAAe,CAAC;IACxC,MAAM,SAAS,GAAG,GAAG,GAAG,wBAAwB,CAAC;IACjD,MAAM,UAAU,GAAG,IAAI,GAAG,kBAAkB,CAAC;IAE7C,MAAM,UAAU,GAAG;QACjB,GAAG,GAAG,uBAAuB;QAC7B,OAAO;QACP,GAAG,SAAS,iCAAiC,UAAU,EAAE;QACzD,GAAG,SAAS,wBAAwB,EAAE,GAAG,UAAU,EAAE;QACrD,GAAG,SAAS,WAAW,aAAa,GAAG,UAAU,EAAE;QACnD,QAAQ;QACR,IAAI,GAAG,uBAAuB;KAC/B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAU,EACV,EAAU,EACV,QAAuB,EACvB,UAAwB,EAAE;IAE1B,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;IACvC,MAAM,eAAe,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAEzD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,gBAAgB,GAAG,6BAA6B,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAC5E,MAAM,YAAY,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,mBAAmB,GAAG,2BAA2B,CAAC,EAAE,CAAC,CAAC;IAC5D,MAAM,qBAAqB,GAAG,6BAA6B,CAAC,GAAG,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IACrC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;IAC7C,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAC/D,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IACvE,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,wBAAwB,CAAC,EAAE,EAAE;QAC/C,OAAO;QACP,mBAAmB;KACpB,CAAC,CAAC;IACH,MAAM,oBAAoB,GAAG,4BAA4B,CAAC,aAAa,CAAC,CAAC;IACzE,MAAM,aAAa,GACjB,8BAA8B,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC;QAChE,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,2BAA2B,CAAC,aAAa,CAAC,CAAC;IAEhE,6DAA6D;IAC7D,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,YAAY,GAAG,+BAA+B,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,EAAE,MAAM,CAAC,CAAC;IAEpF,6DAA6D;IAC7D,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAE9D,iEAAiE;IACjE,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAE9D,MAAM,oBAAoB,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAC;IACnE,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC7D,MAAM,gBAAgB,GAAG,CAAC,oBAAoB,EAAE,iBAAiB,CAAC;SAC/D,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;SACvC,IAAI,CAAC,aAAa,CAAC,CAAC;IACvB,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,gBAAgB,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/E,OAAO,KAAK,EAAE,KAAK,GAAG,CAAC,KAAK,IAAI,UAAU;;EAE1C,YAAY;;;;;;EAMZ,QAAQ;;;;;;YAME,EAAE;cACA,GAAG,CAAC,IAAI,IAAI,SAAS;cACrB,GAAG,CAAC,IAAI,IAAI,SAAS;gBACnB,GAAG,CAAC,MAAM,IAAI,SAAS;kBACrB,gBAAgB;;;;EAIhC,GAAG,CAAC,WAAW,IAAI,0BAA0B;;;;;;EAM7C,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,yBAAyB;;;;EAI5F,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC;;;;EAIhC,kBAAkB;;;;EAIlB,kBAAkB;;;;EAIlB,aAAa;;;;;;EAMb,MAAM;;;;;;;wEAOgE,EAAE;;;;EAIxE,gBAAgB,GAAG,qBAAqB,CAAC,CAAC,CAAC,GAAG,qBAAqB,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,aAAa,GAAG,mBAAmB;;;;EAI9K,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW;CAC/D,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC7C,OAAO,UAAU,CAAC,QAAQ,CAAC;IAC7B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,6BAA6B,CAC3C,YAA0B,EAC1B,UAAkB,EAClB,UAAwC,EAAE;IAE1C,MAAM,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAEpC,IAAI,OAAO,GAAG,uBAAuB,YAAY,CAAC,IAAI,oBAAoB,YAAY,CAAC,IAAI,IAAI,CAAC;IAChG,OAAO,IAAI,oEAAoE,CAAC;IAEhF,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,IAAI,2EAA2E,CAAC;QACvF,OAAO,IAAI,wCAAwC,YAAY,CAAC,IAAI,0BAA0B,CAAC;IACjG,CAAC;IAED,OAAO,IAAI,eAAe,CAAC;IAC3B,OAAO,IAAI,kBAAkB,YAAY,CAAC,IAAI,yBAAyB,CAAC;IACxE,OAAO,IAAI,qCAAqC,UAAU,IAAI,CAAC;IAC/D,OAAO,IAAI,eAAe,YAAY,CAAC,IAAI,2CAA2C,YAAY,CAAC,IAAI,EAAE,CAAC;IAE1G,OAAO,OAAO,CAAC;AACjB,CAAC"}
|