@smartmemory/compose 0.2.8-beta → 0.2.10-beta
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/bin/compose.js +75 -1
- package/contracts/gsd-state.json +140 -0
- package/contracts/par-merge-bounce.json +39 -0
- package/dist/assets/{App-D3ehVPvi.js → App-CG-2euMe.js} +164 -164
- package/dist/assets/{arc-Dmf69iHG.js → arc-7QBWoLra.js} +1 -1
- package/dist/assets/{architectureDiagram-3BPJPVTR-xYo993Yw.js → architectureDiagram-3BPJPVTR-CUw-7uLm.js} +1 -1
- package/dist/assets/{blockDiagram-GPEHLZMM-UX4EF98O.js → blockDiagram-GPEHLZMM-COU1vmr7.js} +1 -1
- package/dist/assets/{c4Diagram-AAUBKEIU-DaP9CGWb.js → c4Diagram-AAUBKEIU-XPO9PSJL.js} +1 -1
- package/dist/assets/channel-Bcu04MIK.js +1 -0
- package/dist/assets/{chunk-2J33WTMH-CKk_RN3A.js → chunk-2J33WTMH-zMzVB2a6.js} +1 -1
- package/dist/assets/{chunk-4BX2VUAB-DboAwYKw.js → chunk-4BX2VUAB-Kke_qcHU.js} +1 -1
- package/dist/assets/{chunk-55IACEB6-Dsy9RYvI.js → chunk-55IACEB6-hMeFx5Nh.js} +1 -1
- package/dist/assets/{chunk-727SXJPM-fAH0QO9v.js → chunk-727SXJPM-DesUnrEw.js} +1 -1
- package/dist/assets/{chunk-AQP2D5EJ-DyZYerFP.js → chunk-AQP2D5EJ-1uGGvkxW.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-BnboGO5t.js → chunk-FMBD7UC4-DYHv1PcZ.js} +1 -1
- package/dist/assets/{chunk-ND2GUHAM-Di9tYXme.js → chunk-ND2GUHAM-D0MENOLX.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-zRPRlAIL.js → chunk-QZHKN3VN-8nn3HP-N.js} +1 -1
- package/dist/assets/classDiagram-4FO5ZUOK-DU4yxldU.js +1 -0
- package/dist/assets/classDiagram-v2-Q7XG4LA2-DU4yxldU.js +1 -0
- package/dist/assets/{cose-bilkent-S5V4N54A-C7Hqukaf.js → cose-bilkent-S5V4N54A-BoZPVIny.js} +1 -1
- package/dist/assets/{dagre-BM42HDAG-B-cR-BjI.js → dagre-BM42HDAG-BgZzdLG9.js} +1 -1
- package/dist/assets/{diagram-2AECGRRQ-B6-5onDk.js → diagram-2AECGRRQ-CknAnpSu.js} +1 -1
- package/dist/assets/{diagram-5GNKFQAL-DoZZgFAM.js → diagram-5GNKFQAL-CZUEbKim.js} +1 -1
- package/dist/assets/{diagram-KO2AKTUF-77jEGlJh.js → diagram-KO2AKTUF-DCs-pLdH.js} +1 -1
- package/dist/assets/{diagram-LMA3HP47-D3S7XDRD.js → diagram-LMA3HP47-lRaDjIfM.js} +1 -1
- package/dist/assets/{diagram-OG6HWLK6-KbYL9aCY.js → diagram-OG6HWLK6-CIGqmehP.js} +1 -1
- package/dist/assets/{erDiagram-TEJ5UH35-DezFbJP-.js → erDiagram-TEJ5UH35-Lx3c2N6F.js} +1 -1
- package/dist/assets/{flowDiagram-I6XJVG4X-4x31cK9j.js → flowDiagram-I6XJVG4X-VoluKqSq.js} +1 -1
- package/dist/assets/{ganttDiagram-6RSMTGT7-FopfSTyZ.js → ganttDiagram-6RSMTGT7-D7hETiNZ.js} +1 -1
- package/dist/assets/{gitGraphDiagram-PVQCEYII-DSiQGKbN.js → gitGraphDiagram-PVQCEYII-DenEcUvY.js} +1 -1
- package/dist/assets/{index-ClX6LVAf.js → index-B4dv3acY.js} +2 -2
- package/dist/assets/{infoDiagram-5YYISTIA-DE6BqzK_.js → infoDiagram-5YYISTIA-v7cq9Er9.js} +1 -1
- package/dist/assets/{ishikawaDiagram-YF4QCWOH-Dml8NwQI.js → ishikawaDiagram-YF4QCWOH-CfCCXt2x.js} +1 -1
- package/dist/assets/{journeyDiagram-JHISSGLW-CwWeJgjE.js → journeyDiagram-JHISSGLW-Bbokl_xO.js} +1 -1
- package/dist/assets/{kanban-definition-UN3LZRKU-DnG956Wh.js → kanban-definition-UN3LZRKU-DhkOZ2hg.js} +1 -1
- package/dist/assets/{linear-CA3N7Rpi.js → linear-bHjluRm2.js} +1 -1
- package/dist/assets/{mindmap-definition-RKZ34NQL-CxfIOjLX.js → mindmap-definition-RKZ34NQL-C1bHpoXH.js} +1 -1
- package/dist/assets/{pieDiagram-4H26LBE5-O7aIwy1x.js → pieDiagram-4H26LBE5-CZb1i55T.js} +1 -1
- package/dist/assets/{quadrantDiagram-W4KKPZXB-CPQ2qq7c.js → quadrantDiagram-W4KKPZXB-o37AwRHB.js} +1 -1
- package/dist/assets/{requirementDiagram-4Y6WPE33-C23horL4.js → requirementDiagram-4Y6WPE33-BVErWDzU.js} +1 -1
- package/dist/assets/{sankeyDiagram-5OEKKPKP-DPY04kOW.js → sankeyDiagram-5OEKKPKP-BhBK8gHQ.js} +1 -1
- package/dist/assets/{sequenceDiagram-3UESZ5HK-BKaTfIvo.js → sequenceDiagram-3UESZ5HK-CsICF23P.js} +1 -1
- package/dist/assets/{stateDiagram-AJRCARHV-B9na_6mY.js → stateDiagram-AJRCARHV-TN1AXwim.js} +1 -1
- package/dist/assets/stateDiagram-v2-BHNVJYJU-BLR6AkKX.js +1 -0
- package/dist/assets/{timeline-definition-PNZ67QCA-BBWPqd7X.js → timeline-definition-PNZ67QCA-DftAajbU.js} +1 -1
- package/dist/assets/{vennDiagram-CIIHVFJN-tWqiHsOZ.js → vennDiagram-CIIHVFJN-cFTMstT7.js} +1 -1
- package/dist/assets/{wardley-L42UT6IY-DorxG6os.js → wardley-L42UT6IY-DL8CivzO.js} +1 -1
- package/dist/assets/{wardleyDiagram-YWT4CUSO-B49f8GzW.js → wardleyDiagram-YWT4CUSO-BDZT1hQj.js} +1 -1
- package/dist/assets/{xychartDiagram-2RQKCTM6-BgKSj8Qb.js → xychartDiagram-2RQKCTM6-DQQSkfC4.js} +1 -1
- package/dist/index.html +1 -1
- package/lib/build.js +140 -17
- package/lib/gsd-diff-capture.js +34 -0
- package/lib/gsd-events.js +61 -0
- package/lib/gsd-headless-config.js +110 -0
- package/lib/gsd-milestone-report.js +323 -0
- package/lib/gsd-state.js +165 -0
- package/lib/gsd-supervisor.js +223 -0
- package/lib/gsd-timing.js +89 -0
- package/lib/gsd.js +504 -49
- package/lib/step-prompt.js +6 -0
- package/lib/stratum-mcp-client.js +3 -1
- package/package.json +1 -1
- package/pipelines/gsd.stratum.yaml +12 -4
- package/dist/assets/channel-D_RXsFFT.js +0 -1
- package/dist/assets/classDiagram-4FO5ZUOK-K6wdB4ic.js +0 -1
- package/dist/assets/classDiagram-v2-Q7XG4LA2-K6wdB4ic.js +0 -1
- package/dist/assets/stateDiagram-v2-BHNVJYJU-Cf84VDiH.js +0 -1
package/lib/step-prompt.js
CHANGED
|
@@ -162,6 +162,12 @@ function buildConflictSection(conflicts) {
|
|
|
162
162
|
return lines.join('\n');
|
|
163
163
|
}
|
|
164
164
|
|
|
165
|
+
// COMP-PAR-MERGE-QUEUE note: pre-merge bounce context (gate_failed / merge_conflict)
|
|
166
|
+
// is injected into a re-dispatched task's prompt SERVER-SIDE, in Stratum's
|
|
167
|
+
// ParallelExecutor._render_prompt — because the server re-resolves the task list
|
|
168
|
+
// from flow state on each re-dispatch, so a Compose-side prompt edit here would
|
|
169
|
+
// never reach the re-run task. See parallel_exec.py `_format_bounce_for_prompt`.
|
|
170
|
+
|
|
165
171
|
/**
|
|
166
172
|
* Build a retry prompt when postconditions failed.
|
|
167
173
|
*
|
|
@@ -444,7 +444,9 @@ export class StratumMcpClient {
|
|
|
444
444
|
*
|
|
445
445
|
* @param {string} flowId
|
|
446
446
|
* @param {string} stepId
|
|
447
|
-
* @param {'clean'|'conflict'} mergeStatus
|
|
447
|
+
* @param {'clean'|'conflict'|{status:'clean'|'conflict',bounced_tasks?:object[]}} mergeStatus
|
|
448
|
+
* COMP-PAR-MERGE-QUEUE: either a bare status string (back-compat) or a
|
|
449
|
+
* structured object carrying merge_conflict bounce records. Serializes as-is.
|
|
448
450
|
* @returns {Promise<object>}
|
|
449
451
|
*/
|
|
450
452
|
async parallelAdvance(flowId, stepId, mergeStatus) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smartmemory/compose",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.10-beta",
|
|
4
4
|
"description": "Structured AI dev pipeline — goal-to-product orchestration with gates, iteration loops, and feature lifecycle management.",
|
|
5
5
|
"author": "SmartMemory",
|
|
6
6
|
"license": "MIT",
|
|
@@ -18,6 +18,9 @@ workflow:
|
|
|
18
18
|
gateCommands:
|
|
19
19
|
type: array
|
|
20
20
|
required: true # injected by runGsd from loadProjectConfig() with default fallback
|
|
21
|
+
pre_merge_gate:
|
|
22
|
+
type: array
|
|
23
|
+
required: false # COMP-PAR-MERGE-QUEUE: fast per-task enforced gate (lint+build); injected by runGsd
|
|
21
24
|
|
|
22
25
|
contracts:
|
|
23
26
|
PhaseResult:
|
|
@@ -36,6 +39,7 @@ flows:
|
|
|
36
39
|
input:
|
|
37
40
|
featureCode: {type: string}
|
|
38
41
|
gateCommands: {type: array}
|
|
42
|
+
pre_merge_gate: {type: array} # COMP-PAR-MERGE-QUEUE
|
|
39
43
|
output: PhaseResult
|
|
40
44
|
max_rounds: 10
|
|
41
45
|
steps:
|
|
@@ -61,7 +65,7 @@ flows:
|
|
|
61
65
|
- "Upstream tasks (spec-level summary; their code lands at end-of-step
|
|
62
66
|
merge):" + one line per upstream task listing its declared produces
|
|
63
67
|
- "GATES — you MUST run each command and they MUST pass before
|
|
64
|
-
declaring done:" + each command from the
|
|
68
|
+
declaring done:" + each command from the pre_merge_gate array
|
|
65
69
|
- "Fix and re-run within this invocation. Do NOT declare done while
|
|
66
70
|
gates are red."
|
|
67
71
|
|
|
@@ -75,10 +79,12 @@ flows:
|
|
|
75
79
|
has no matching task or its File Plan files are split across
|
|
76
80
|
multiple tasks.
|
|
77
81
|
|
|
78
|
-
|
|
82
|
+
pre_merge_gate commands to embed (the fast per-task gate; the full
|
|
83
|
+
test suite runs once at ship): {input.pre_merge_gate}
|
|
79
84
|
inputs:
|
|
80
|
-
featureCode:
|
|
81
|
-
gateCommands:
|
|
85
|
+
featureCode: "$.input.featureCode"
|
|
86
|
+
gateCommands: "$.input.gateCommands"
|
|
87
|
+
pre_merge_gate: "$.input.pre_merge_gate"
|
|
82
88
|
output_contract: TaskGraph
|
|
83
89
|
ensure:
|
|
84
90
|
- "no_file_conflicts(result.tasks)"
|
|
@@ -93,6 +99,8 @@ flows:
|
|
|
93
99
|
max_concurrent: 1
|
|
94
100
|
isolation: worktree
|
|
95
101
|
capture_diff: true
|
|
102
|
+
defer_advance: true # COMP-PAR-MERGE-QUEUE: consumer merges + reports status, enabling conflict-bounce
|
|
103
|
+
pre_merge_verify: "$.input.pre_merge_gate" # COMP-PAR-MERGE-QUEUE: enforced fast gate per task worktree
|
|
96
104
|
require: all
|
|
97
105
|
merge: sequential_apply
|
|
98
106
|
retries: 2
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ai as o,aj as n}from"./App-D3ehVPvi.js";const t=(a,r)=>o.lang.round(n.parse(a)[r]);export{t as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-727SXJPM-fAH0QO9v.js";import{_ as i}from"./App-D3ehVPvi.js";import"./chunk-FMBD7UC4-BnboGO5t.js";import"./chunk-ND2GUHAM-Di9tYXme.js";import"./chunk-55IACEB6-Dsy9RYvI.js";import"./chunk-2J33WTMH-CKk_RN3A.js";import"./mobile-CG5tLa2S.js";import"./index-ClX6LVAf.js";import"./graph-Cs_vqCR0.js";var b={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{b as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-727SXJPM-fAH0QO9v.js";import{_ as i}from"./App-D3ehVPvi.js";import"./chunk-FMBD7UC4-BnboGO5t.js";import"./chunk-ND2GUHAM-Di9tYXme.js";import"./chunk-55IACEB6-Dsy9RYvI.js";import"./chunk-2J33WTMH-CKk_RN3A.js";import"./mobile-CG5tLa2S.js";import"./index-ClX6LVAf.js";import"./graph-Cs_vqCR0.js";var b={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{b as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as r,b as e,a,S as s}from"./chunk-AQP2D5EJ-DyZYerFP.js";import{_ as i}from"./App-D3ehVPvi.js";import"./chunk-55IACEB6-Dsy9RYvI.js";import"./chunk-2J33WTMH-CKk_RN3A.js";import"./mobile-CG5tLa2S.js";import"./index-ClX6LVAf.js";import"./graph-Cs_vqCR0.js";var n={parser:a,get db(){return new s(2)},renderer:e,styles:r,init:i(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{n as diagram};
|