@guyghost/swarm-dao-core 0.3.0 → 0.5.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/adapters/attention/fs-attention.store.d.ts +17 -0
- package/dist/adapters/attention/fs-attention.store.d.ts.map +1 -0
- package/dist/adapters/attention/fs-attention.store.js +59 -0
- package/dist/adapters/attention/fs-attention.store.js.map +1 -0
- package/dist/adapters/git-workspace.d.ts +26 -0
- package/dist/adapters/git-workspace.d.ts.map +1 -0
- package/dist/adapters/git-workspace.js +84 -0
- package/dist/adapters/git-workspace.js.map +1 -0
- package/dist/adapters/index.d.ts +6 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +6 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/persistence/file-dao-state.repository.d.ts +15 -0
- package/dist/adapters/persistence/file-dao-state.repository.d.ts.map +1 -0
- package/dist/adapters/persistence/file-dao-state.repository.js +85 -0
- package/dist/adapters/persistence/file-dao-state.repository.js.map +1 -0
- package/dist/adapters/persistence/in-memory-dao-state.repository.d.ts +10 -0
- package/dist/adapters/persistence/in-memory-dao-state.repository.d.ts.map +1 -0
- package/dist/adapters/persistence/in-memory-dao-state.repository.js +14 -0
- package/dist/adapters/persistence/in-memory-dao-state.repository.js.map +1 -0
- package/dist/adapters/persistence/legacy-dao-state.repository.d.ts +11 -0
- package/dist/adapters/persistence/legacy-dao-state.repository.d.ts.map +1 -0
- package/dist/adapters/persistence/legacy-dao-state.repository.js +14 -0
- package/dist/adapters/persistence/legacy-dao-state.repository.js.map +1 -0
- package/dist/application/index.d.ts +16 -0
- package/dist/application/index.d.ts.map +1 -0
- package/dist/application/index.js +16 -0
- package/dist/application/index.js.map +1 -0
- package/dist/application/initialize-dao.use-case.d.ts +20 -0
- package/dist/application/initialize-dao.use-case.d.ts.map +1 -0
- package/dist/application/initialize-dao.use-case.js +17 -0
- package/dist/application/initialize-dao.use-case.js.map +1 -0
- package/dist/application/proposals/control-proposal.use-case.d.ts +23 -0
- package/dist/application/proposals/control-proposal.use-case.d.ts.map +1 -0
- package/dist/application/proposals/control-proposal.use-case.js +53 -0
- package/dist/application/proposals/control-proposal.use-case.js.map +1 -0
- package/dist/application/proposals/create-amendment-proposal.use-case.d.ts +25 -0
- package/dist/application/proposals/create-amendment-proposal.use-case.d.ts.map +1 -0
- package/dist/application/proposals/create-amendment-proposal.use-case.js +39 -0
- package/dist/application/proposals/create-amendment-proposal.use-case.js.map +1 -0
- package/dist/application/proposals/create-proposal.use-case.d.ts +34 -0
- package/dist/application/proposals/create-proposal.use-case.d.ts.map +1 -0
- package/dist/application/proposals/create-proposal.use-case.js +49 -0
- package/dist/application/proposals/create-proposal.use-case.js.map +1 -0
- package/dist/application/proposals/deliberate-proposal.use-case.d.ts +35 -0
- package/dist/application/proposals/deliberate-proposal.use-case.d.ts.map +1 -0
- package/dist/application/proposals/deliberate-proposal.use-case.js +67 -0
- package/dist/application/proposals/deliberate-proposal.use-case.js.map +1 -0
- package/dist/application/proposals/dry-run-proposal.use-case.d.ts +21 -0
- package/dist/application/proposals/dry-run-proposal.use-case.d.ts.map +1 -0
- package/dist/application/proposals/dry-run-proposal.use-case.js +20 -0
- package/dist/application/proposals/dry-run-proposal.use-case.js.map +1 -0
- package/dist/application/proposals/execute-proposal.use-case.d.ts +29 -0
- package/dist/application/proposals/execute-proposal.use-case.d.ts.map +1 -0
- package/dist/application/proposals/execute-proposal.use-case.js +66 -0
- package/dist/application/proposals/execute-proposal.use-case.js.map +1 -0
- package/dist/application/proposals/rate-proposal.use-case.d.ts +24 -0
- package/dist/application/proposals/rate-proposal.use-case.d.ts.map +1 -0
- package/dist/application/proposals/rate-proposal.use-case.js +33 -0
- package/dist/application/proposals/rate-proposal.use-case.js.map +1 -0
- package/dist/application/proposals/record-deliberation-outputs.use-case.d.ts +21 -0
- package/dist/application/proposals/record-deliberation-outputs.use-case.d.ts.map +1 -0
- package/dist/application/proposals/record-deliberation-outputs.use-case.js +65 -0
- package/dist/application/proposals/record-deliberation-outputs.use-case.js.map +1 -0
- package/dist/application/proposals/rollback-proposal.use-case.d.ts +20 -0
- package/dist/application/proposals/rollback-proposal.use-case.d.ts.map +1 -0
- package/dist/application/proposals/rollback-proposal.use-case.js +17 -0
- package/dist/application/proposals/rollback-proposal.use-case.js.map +1 -0
- package/dist/application/proposals/round-table.use-case.d.ts +27 -0
- package/dist/application/proposals/round-table.use-case.d.ts.map +1 -0
- package/dist/application/proposals/round-table.use-case.js +55 -0
- package/dist/application/proposals/round-table.use-case.js.map +1 -0
- package/dist/application/proposals/ship-proposal.use-case.d.ts +26 -0
- package/dist/application/proposals/ship-proposal.use-case.d.ts.map +1 -0
- package/dist/application/proposals/ship-proposal.use-case.js +60 -0
- package/dist/application/proposals/ship-proposal.use-case.js.map +1 -0
- package/dist/application/proposals/start-deliberation.use-case.d.ts +21 -0
- package/dist/application/proposals/start-deliberation.use-case.d.ts.map +1 -0
- package/dist/application/proposals/start-deliberation.use-case.js +30 -0
- package/dist/application/proposals/start-deliberation.use-case.js.map +1 -0
- package/dist/application/proposals/transition-proposal.use-case.d.ts +20 -0
- package/dist/application/proposals/transition-proposal.use-case.d.ts.map +1 -0
- package/dist/application/proposals/transition-proposal.use-case.js +19 -0
- package/dist/application/proposals/transition-proposal.use-case.js.map +1 -0
- package/dist/application/proposals/update-proposal.use-case.d.ts +26 -0
- package/dist/application/proposals/update-proposal.use-case.d.ts.map +1 -0
- package/dist/application/proposals/update-proposal.use-case.js +19 -0
- package/dist/application/proposals/update-proposal.use-case.js.map +1 -0
- package/dist/commands/index.d.ts +2 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +2 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/registry.d.ts +46 -0
- package/dist/commands/registry.d.ts.map +1 -0
- package/dist/commands/registry.js +367 -0
- package/dist/commands/registry.js.map +1 -0
- package/dist/config.d.ts +17 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +9 -1
- package/dist/config.js.map +1 -1
- package/dist/control/gates.d.ts +4 -1
- package/dist/control/gates.d.ts.map +1 -1
- package/dist/control/gates.js +22 -10
- package/dist/control/gates.js.map +1 -1
- package/dist/delivery/dependencies.d.ts.map +1 -1
- package/dist/delivery/dependencies.js +15 -7
- package/dist/delivery/dependencies.js.map +1 -1
- package/dist/delivery/dry-run.d.ts.map +1 -1
- package/dist/delivery/dry-run.js +3 -44
- package/dist/delivery/dry-run.js.map +1 -1
- package/dist/delivery/execution-isolation.d.ts +34 -0
- package/dist/delivery/execution-isolation.d.ts.map +1 -0
- package/dist/delivery/execution-isolation.js +97 -0
- package/dist/delivery/execution-isolation.js.map +1 -0
- package/dist/delivery/execution.d.ts.map +1 -1
- package/dist/delivery/execution.js +7 -5
- package/dist/delivery/execution.js.map +1 -1
- package/dist/delivery/index.d.ts +1 -0
- package/dist/delivery/index.d.ts.map +1 -1
- package/dist/delivery/index.js +1 -0
- package/dist/delivery/index.js.map +1 -1
- package/dist/delivery/plans.d.ts +3 -1
- package/dist/delivery/plans.d.ts.map +1 -1
- package/dist/delivery/plans.js +2 -2
- package/dist/delivery/plans.js.map +1 -1
- package/dist/domain/dry-run.d.ts +3 -0
- package/dist/domain/dry-run.d.ts.map +1 -0
- package/dist/domain/dry-run.js +28 -0
- package/dist/domain/dry-run.js.map +1 -0
- package/dist/domain/index.d.ts +6 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +7 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/governance/agents.d.ts +2 -0
- package/dist/governance/agents.d.ts.map +1 -1
- package/dist/governance/agents.js +148 -173
- package/dist/governance/agents.js.map +1 -1
- package/dist/governance/charter.d.ts +14 -0
- package/dist/governance/charter.d.ts.map +1 -0
- package/dist/governance/charter.js +65 -0
- package/dist/governance/charter.js.map +1 -0
- package/dist/governance/delegation.machine.d.ts +316 -0
- package/dist/governance/delegation.machine.d.ts.map +1 -0
- package/dist/governance/delegation.machine.js +387 -0
- package/dist/governance/delegation.machine.js.map +1 -0
- package/dist/governance/delegation.utils.d.ts +55 -0
- package/dist/governance/delegation.utils.d.ts.map +1 -0
- package/dist/governance/delegation.utils.js +157 -0
- package/dist/governance/delegation.utils.js.map +1 -0
- package/dist/governance/edit-gate.d.ts +47 -0
- package/dist/governance/edit-gate.d.ts.map +1 -0
- package/dist/governance/edit-gate.js +156 -0
- package/dist/governance/edit-gate.js.map +1 -0
- package/dist/governance/index.d.ts +3 -0
- package/dist/governance/index.d.ts.map +1 -1
- package/dist/governance/index.js +3 -0
- package/dist/governance/index.js.map +1 -1
- package/dist/governance/lifecycle.d.ts +0 -6
- package/dist/governance/lifecycle.d.ts.map +1 -1
- package/dist/governance/lifecycle.js +7 -31
- package/dist/governance/lifecycle.js.map +1 -1
- package/dist/governance/proposal.machine.d.ts +2 -130
- package/dist/governance/proposal.machine.d.ts.map +1 -1
- package/dist/governance/proposal.machine.js +2 -377
- package/dist/governance/proposal.machine.js.map +1 -1
- package/dist/governance/proposal.utils.d.ts +22 -165
- package/dist/governance/proposal.utils.d.ts.map +1 -1
- package/dist/governance/proposal.utils.js +52 -119
- package/dist/governance/proposal.utils.js.map +1 -1
- package/dist/governance/scoring.d.ts.map +1 -1
- package/dist/governance/scoring.js +36 -16
- package/dist/governance/scoring.js.map +1 -1
- package/dist/governance/voting.d.ts.map +1 -1
- package/dist/governance/voting.js +24 -14
- package/dist/governance/voting.js.map +1 -1
- package/dist/host-tools/github-config.d.ts.map +1 -1
- package/dist/host-tools/github-config.js +17 -5
- package/dist/host-tools/github-config.js.map +1 -1
- package/dist/host-tools/handlers.d.ts +14 -11
- package/dist/host-tools/handlers.d.ts.map +1 -1
- package/dist/host-tools/handlers.js +204 -335
- package/dist/host-tools/handlers.js.map +1 -1
- package/dist/host-tools/messages.d.ts +10 -4
- package/dist/host-tools/messages.d.ts.map +1 -1
- package/dist/host-tools/messages.js +14 -17
- package/dist/host-tools/messages.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/integrations/github.d.ts.map +1 -1
- package/dist/integrations/github.js +5 -2
- package/dist/integrations/github.js.map +1 -1
- package/dist/integrations/http.d.ts +12 -1
- package/dist/integrations/http.d.ts.map +1 -1
- package/dist/integrations/http.js +114 -17
- package/dist/integrations/http.js.map +1 -1
- package/dist/intelligence/delegation.d.ts +41 -0
- package/dist/intelligence/delegation.d.ts.map +1 -0
- package/dist/intelligence/delegation.js +162 -0
- package/dist/intelligence/delegation.js.map +1 -0
- package/dist/intelligence/index.d.ts +2 -0
- package/dist/intelligence/index.d.ts.map +1 -1
- package/dist/intelligence/index.js +2 -0
- package/dist/intelligence/index.js.map +1 -1
- package/dist/intelligence/model.d.ts +28 -2
- package/dist/intelligence/model.d.ts.map +1 -1
- package/dist/intelligence/model.js +36 -3
- package/dist/intelligence/model.js.map +1 -1
- package/dist/intelligence/roundtable.d.ts +4 -2
- package/dist/intelligence/roundtable.d.ts.map +1 -1
- package/dist/intelligence/roundtable.js +2 -2
- package/dist/intelligence/roundtable.js.map +1 -1
- package/dist/intelligence/sequential.d.ts +36 -0
- package/dist/intelligence/sequential.d.ts.map +1 -0
- package/dist/intelligence/sequential.js +91 -0
- package/dist/intelligence/sequential.js.map +1 -0
- package/dist/intelligence/swarm.d.ts +19 -4
- package/dist/intelligence/swarm.d.ts.map +1 -1
- package/dist/intelligence/swarm.js +107 -53
- package/dist/intelligence/swarm.js.map +1 -1
- package/dist/intelligence/synthesis.d.ts.map +1 -1
- package/dist/intelligence/synthesis.js +16 -4
- package/dist/intelligence/synthesis.js.map +1 -1
- package/dist/models/graph-engineering.machine.d.ts +219 -0
- package/dist/models/graph-engineering.machine.d.ts.map +1 -0
- package/dist/models/graph-engineering.machine.js +214 -0
- package/dist/models/graph-engineering.machine.js.map +1 -0
- package/dist/models/improvement-loop.machine.d.ts +239 -0
- package/dist/models/improvement-loop.machine.d.ts.map +1 -0
- package/dist/models/improvement-loop.machine.js +254 -0
- package/dist/models/improvement-loop.machine.js.map +1 -0
- package/dist/models/index.d.ts +5 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +5 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/product-loop.machine.d.ts +531 -0
- package/dist/models/product-loop.machine.d.ts.map +1 -0
- package/dist/models/product-loop.machine.js +699 -0
- package/dist/models/product-loop.machine.js.map +1 -0
- package/dist/models/proposal.machine.d.ts +82 -0
- package/dist/models/proposal.machine.d.ts.map +1 -0
- package/dist/models/proposal.machine.js +68 -0
- package/dist/models/proposal.machine.js.map +1 -0
- package/dist/observability/attention.d.ts +40 -0
- package/dist/observability/attention.d.ts.map +1 -0
- package/dist/observability/attention.js +119 -0
- package/dist/observability/attention.js.map +1 -0
- package/dist/observability/index.d.ts +1 -0
- package/dist/observability/index.d.ts.map +1 -1
- package/dist/observability/index.js +1 -0
- package/dist/observability/index.js.map +1 -1
- package/dist/observability/logging.d.ts +6 -0
- package/dist/observability/logging.d.ts.map +1 -1
- package/dist/observability/logging.js +36 -6
- package/dist/observability/logging.js.map +1 -1
- package/dist/observability/metrics.d.ts +7 -0
- package/dist/observability/metrics.d.ts.map +1 -1
- package/dist/observability/metrics.js +179 -43
- package/dist/observability/metrics.js.map +1 -1
- package/dist/persistence.d.ts +5 -6
- package/dist/persistence.d.ts.map +1 -1
- package/dist/persistence.js +197 -140
- package/dist/persistence.js.map +1 -1
- package/dist/ports/clock.d.ts +7 -0
- package/dist/ports/clock.d.ts.map +1 -0
- package/dist/ports/clock.js +5 -0
- package/dist/ports/clock.js.map +1 -0
- package/dist/ports/host.d.ts +8 -0
- package/dist/ports/host.d.ts.map +1 -0
- package/dist/ports/host.js +2 -0
- package/dist/ports/host.js.map +1 -0
- package/dist/ports/index.d.ts +5 -0
- package/dist/ports/index.d.ts.map +1 -0
- package/dist/ports/index.js +5 -0
- package/dist/ports/index.js.map +1 -0
- package/dist/ports/repository.d.ts +7 -0
- package/dist/ports/repository.d.ts.map +1 -0
- package/dist/ports/repository.js +2 -0
- package/dist/ports/repository.js.map +1 -0
- package/dist/ports/workspace.d.ts +14 -0
- package/dist/ports/workspace.d.ts.map +1 -0
- package/dist/ports/workspace.js +14 -0
- package/dist/ports/workspace.js.map +1 -0
- package/dist/presenters/index.d.ts +2 -0
- package/dist/presenters/index.d.ts.map +1 -0
- package/dist/presenters/index.js +2 -0
- package/dist/presenters/index.js.map +1 -0
- package/dist/presenters/proposal.presenter.d.ts +30 -0
- package/dist/presenters/proposal.presenter.d.ts.map +1 -0
- package/dist/presenters/proposal.presenter.js +47 -0
- package/dist/presenters/proposal.presenter.js.map +1 -0
- package/dist/types/index.d.ts +70 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +12 -0
- package/dist/types/index.js.map +1 -1
- package/dist/utils/host.d.ts.map +1 -1
- package/dist/utils/host.js +77 -6
- package/dist/utils/host.js.map +1 -1
- package/dist/utils/security.d.ts +7 -1
- package/dist/utils/security.d.ts.map +1 -1
- package/dist/utils/security.js +18 -2
- package/dist/utils/security.js.map +1 -1
- package/package.json +13 -1
|
@@ -2,12 +2,11 @@
|
|
|
2
2
|
// Swarm DAO Core — Inter-Proposal Dependency Resolution
|
|
3
3
|
// ============================================================
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* Core DFS that resolves the execution order for a proposal and all its transitive
|
|
6
|
+
* dependencies given a pre-built proposal map. Shared by both public functions so the
|
|
7
|
+
* proposal map is built exactly once per call.
|
|
8
8
|
*/
|
|
9
|
-
|
|
10
|
-
const proposalMap = new Map(proposals.map((p) => [p.id, p]));
|
|
9
|
+
function resolveOrderWithMap(targetId, proposalMap) {
|
|
11
10
|
const order = [];
|
|
12
11
|
const visited = new Set();
|
|
13
12
|
const visiting = new Set(); // in-progress nodes for cycle detection
|
|
@@ -37,15 +36,24 @@ export function resolveDependencyOrder(targetId, proposals) {
|
|
|
37
36
|
return { error: cycleError };
|
|
38
37
|
return { order };
|
|
39
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Resolve the execution order for a proposal and all its transitive dependencies.
|
|
41
|
+
* Returns a topologically sorted list of proposal IDs (leaves first, target last).
|
|
42
|
+
* Errors on cycles or missing dependency references.
|
|
43
|
+
*/
|
|
44
|
+
export function resolveDependencyOrder(targetId, proposals) {
|
|
45
|
+
const proposalMap = new Map(proposals.map((p) => [p.id, p]));
|
|
46
|
+
return resolveOrderWithMap(targetId, proposalMap);
|
|
47
|
+
}
|
|
40
48
|
/**
|
|
41
49
|
* Return only the unexecuted dependencies (excluding the target itself)
|
|
42
50
|
* in the order they must be shipped.
|
|
43
51
|
*/
|
|
44
52
|
export function getUnexecutedDependencies(targetId, proposals) {
|
|
45
|
-
const
|
|
53
|
+
const proposalMap = new Map(proposals.map((p) => [p.id, p]));
|
|
54
|
+
const resolution = resolveOrderWithMap(targetId, proposalMap);
|
|
46
55
|
if (resolution.error)
|
|
47
56
|
return resolution;
|
|
48
|
-
const proposalMap = new Map(proposals.map((p) => [p.id, p]));
|
|
49
57
|
const allOrder = resolution.order ?? [];
|
|
50
58
|
const unexecuted = allOrder
|
|
51
59
|
.filter((id) => id !== targetId)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/delivery/dependencies.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,wDAAwD;AACxD,+DAA+D;AAM/D;;;;GAIG;AACH,
|
|
1
|
+
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/delivery/dependencies.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,wDAAwD;AACxD,+DAA+D;AAM/D;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,QAAgB,EAAE,WAAkC;IAC/E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC,CAAC,wCAAwC;IAE5E,SAAS,GAAG,CAAC,EAAU,EAAE,eAAe,GAAG,KAAK;QAC9C,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACrB,OAAO,oDAAoD,EAAE,EAAE,CAAC;QAClE,CAAC;QACD,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;QAEjC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,eAAe,CAAC,CAAC,CAAC,aAAa,EAAE,sCAAsC,CAAC,CAAC,CAAC,aAAa,EAAE,YAAY,CAAC;QAC/G,CAAC;QAED,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjB,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;YAC7C,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACpC,IAAI,UAAU;gBAAE,OAAO,UAAU,CAAC;QACpC,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAI,UAAU;QAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAC7C,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAgB,EAAE,SAAqB;IAC5E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAmB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,OAAO,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,QAAgB,EAAE,SAAqB;IAC/E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAmB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,MAAM,UAAU,GAAG,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC9D,IAAI,UAAU,CAAC,KAAK;QAAE,OAAO,UAAU,CAAC;IAExC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,QAAQ;SACxB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC;SAC/B,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC;IAE9D,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC/B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dry-run.d.ts","sourceRoot":"","sources":["../../src/delivery/dry-run.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dry-run.d.ts","sourceRoot":"","sources":["../../src/delivery/dry-run.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGnF,wBAAsB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAE7E;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAYzD;AAID,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAuBzG;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAUxG;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEpF"}
|
package/dist/delivery/dry-run.js
CHANGED
|
@@ -1,41 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { analyzeProposalDryRun } from "../domain/dry-run.js";
|
|
2
|
+
import { captureSnapshot, getSnapshot, getState } from "../persistence.js";
|
|
3
3
|
import { execCommand } from "../utils/host.js";
|
|
4
4
|
export async function performDryRun(proposal) {
|
|
5
|
-
|
|
6
|
-
// Analyze what would change
|
|
7
|
-
const filesAffected = [];
|
|
8
|
-
const risks = [];
|
|
9
|
-
// Check affected paths
|
|
10
|
-
if (proposal.affectedPaths && proposal.affectedPaths.length > 0) {
|
|
11
|
-
filesAffected.push(...proposal.affectedPaths);
|
|
12
|
-
}
|
|
13
|
-
// Risk assessment based on proposal type
|
|
14
|
-
if (proposal.type === PROPOSAL_TYPE.SECURITY_CHANGE) {
|
|
15
|
-
risks.push("Security-sensitive changes require extra review");
|
|
16
|
-
}
|
|
17
|
-
if (proposal.riskZone === "red") {
|
|
18
|
-
risks.push("Red-zone proposal: high risk detected");
|
|
19
|
-
}
|
|
20
|
-
if (!Array.isArray(proposal.acceptanceCriteria) || proposal.acceptanceCriteria.length === 0) {
|
|
21
|
-
risks.push("No acceptance criteria defined");
|
|
22
|
-
}
|
|
23
|
-
// Estimate duration based on proposal type
|
|
24
|
-
const durationMap = {
|
|
25
|
-
[PROPOSAL_TYPE.PRODUCT_FEATURE]: "3-7 days",
|
|
26
|
-
[PROPOSAL_TYPE.SECURITY_CHANGE]: "1-2 weeks",
|
|
27
|
-
[PROPOSAL_TYPE.TECHNICAL_CHANGE]: "2-5 days",
|
|
28
|
-
[PROPOSAL_TYPE.RELEASE_CHANGE]: "1-3 days",
|
|
29
|
-
[PROPOSAL_TYPE.GOVERNANCE_CHANGE]: "1-2 days",
|
|
30
|
-
};
|
|
31
|
-
return {
|
|
32
|
-
proposalId: proposal.id,
|
|
33
|
-
preview: `This proposal would modify ${filesAffected.length || "unknown number of"} files and requires ${durationMap[proposal.type] || "unknown duration"}.`,
|
|
34
|
-
filesAffected,
|
|
35
|
-
risks,
|
|
36
|
-
estimatedDuration: durationMap[proposal.type] || "TBD",
|
|
37
|
-
canProceed: risks.filter((r) => r.includes("high risk") || r.includes("Security-sensitive")).length === 0,
|
|
38
|
-
};
|
|
5
|
+
return analyzeProposalDryRun(proposal);
|
|
39
6
|
}
|
|
40
7
|
export function formatDryRun(result) {
|
|
41
8
|
let output = `# 🔍 Dry-Run — Proposal #${result.proposalId}\n\n`;
|
|
@@ -78,14 +45,6 @@ export async function performRollback(proposalId) {
|
|
|
78
45
|
if (!snapshot) {
|
|
79
46
|
return { success: false, message: `No snapshot found for proposal #${proposalId}` };
|
|
80
47
|
}
|
|
81
|
-
// In a real implementation, this would restore files and git state
|
|
82
|
-
// For now, we mark the proposal as rolled back conceptually
|
|
83
|
-
const proposal = getState().proposals.find((p) => p.id === proposalId);
|
|
84
|
-
if (proposal) {
|
|
85
|
-
proposal.status = "open";
|
|
86
|
-
proposal.resolvedAt = undefined;
|
|
87
|
-
await saveState();
|
|
88
|
-
}
|
|
89
48
|
return {
|
|
90
49
|
success: true,
|
|
91
50
|
message: `Proposal #${proposalId} rolled back to commit ${snapshot.commitSha.slice(0, 8)} on branch ${snapshot.branch}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dry-run.js","sourceRoot":"","sources":["../../src/delivery/dry-run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"dry-run.js","sourceRoot":"","sources":["../../src/delivery/dry-run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Proposal } from "../types/index.js";
|
|
2
|
+
export type ExecutionIsolationMode = "none" | "worktree";
|
|
3
|
+
export interface ExecutionIsolationOptions {
|
|
4
|
+
/** "none" (default, no isolation) or "worktree" (dedicated worktree). */
|
|
5
|
+
isolation?: ExecutionIsolationMode;
|
|
6
|
+
/** Directory (relative to the repository root) holding worktrees. */
|
|
7
|
+
worktreeRoot?: string;
|
|
8
|
+
/** Base branch for the execution branch; null lets git use HEAD. */
|
|
9
|
+
baseBranch?: string | null;
|
|
10
|
+
}
|
|
11
|
+
export type ExecutionIsolationPlan = {
|
|
12
|
+
mode: "none";
|
|
13
|
+
} | {
|
|
14
|
+
mode: "invalid";
|
|
15
|
+
/** Why the requested isolation was refused (surfaced to the operator). */
|
|
16
|
+
error: string;
|
|
17
|
+
} | {
|
|
18
|
+
mode: "worktree";
|
|
19
|
+
/** Branch checked out in the worktree (same scheme as GitHub branches). */
|
|
20
|
+
branch: string;
|
|
21
|
+
/** Worktree path relative to the repository root. */
|
|
22
|
+
path: string;
|
|
23
|
+
/** Configured base branch, or null for git's default (HEAD). */
|
|
24
|
+
baseBranch: string | null;
|
|
25
|
+
};
|
|
26
|
+
export declare const DEFAULT_WORKTREE_ROOT = ".dao/worktrees";
|
|
27
|
+
/**
|
|
28
|
+
* Derive the isolation plan for a proposal. Deterministic and side-effect
|
|
29
|
+
* free: the same proposal and options always yield the same branch and
|
|
30
|
+
* path. Unknown modes fail closed to "none"; unsafe configuration fails
|
|
31
|
+
* closed to "invalid" (never to silent shell interpolation).
|
|
32
|
+
*/
|
|
33
|
+
export declare function planExecutionIsolation(proposal: Pick<Proposal, "id" | "title">, options?: ExecutionIsolationOptions): ExecutionIsolationPlan;
|
|
34
|
+
//# sourceMappingURL=execution-isolation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-isolation.d.ts","sourceRoot":"","sources":["../../src/delivery/execution-isolation.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,UAAU,CAAC;AAEzD,MAAM,WAAW,yBAAyB;IACxC,yEAAyE;IACzE,SAAS,CAAC,EAAE,sBAAsB,CAAC;IACnC,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEN,eAAO,MAAM,qBAAqB,mBAAmB,CAAC;AA0CtD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC,EACxC,OAAO,GAAE,yBAA8B,GACtC,sBAAsB,CAyBxB"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// Swarm DAO Core — Execution Isolation (pure planning)
|
|
3
|
+
// ============================================================
|
|
4
|
+
// Plans how a proposal's execution workspace is isolated. Inspired by
|
|
5
|
+
// swarm-forge's per-role worktrees: concurrent executions must never step
|
|
6
|
+
// on each other in the shared checkout.
|
|
7
|
+
//
|
|
8
|
+
// This module is pure: it derives a deterministic plan (branch + worktree
|
|
9
|
+
// path) from the proposal. Running `git worktree add` is a technical effect
|
|
10
|
+
// that lives behind a port (see ports/workspace.ts and
|
|
11
|
+
// adapters/git-workspace.ts). The proposal machine remains the only
|
|
12
|
+
// authority for proposal state; isolation never transitions anything.
|
|
13
|
+
//
|
|
14
|
+
// Security: every value that later reaches a shell command line (worktree
|
|
15
|
+
// root, base branch) is validated here against a strict charset. Anything
|
|
16
|
+
// ambiguous — absolute paths, `..` segments, leading dashes, shell
|
|
17
|
+
// metacharacters — fails closed as an `invalid` plan, which surfaces as a
|
|
18
|
+
// preparation error and leaves the proposal `controlled`.
|
|
19
|
+
import { slugify } from "../integrations/utils.js";
|
|
20
|
+
export const DEFAULT_WORKTREE_ROOT = ".dao/worktrees";
|
|
21
|
+
/**
|
|
22
|
+
* Relative path segment charset: alphanumerics plus `._-`, optionally
|
|
23
|
+
* leading with `.` (dotfile roots like `.dao`). Never leading with `-`
|
|
24
|
+
* (option smuggling); the literal `.` and `..` segments are rejected
|
|
25
|
+
* separately below. This set excludes every shell metacharacter and path
|
|
26
|
+
* separators.
|
|
27
|
+
*/
|
|
28
|
+
const SAFE_SEGMENT = /^[A-Za-z0-9.][A-Za-z0-9._-]*$/;
|
|
29
|
+
/**
|
|
30
|
+
* Git refname charset for a base branch: segments as above joined by `/`,
|
|
31
|
+
* with no `..`, no leading `-`, no trailing `/` or `/.`, no consecutive
|
|
32
|
+
* slashes, and no trailing `.lock`.
|
|
33
|
+
*/
|
|
34
|
+
const SAFE_REF = /^[A-Za-z0-9][A-Za-z0-9._/-]*$/;
|
|
35
|
+
function validateWorktreeRoot(root) {
|
|
36
|
+
if (root.length === 0)
|
|
37
|
+
return "worktreeRoot must not be empty";
|
|
38
|
+
if (root.startsWith("/"))
|
|
39
|
+
return "worktreeRoot must be relative to the repository root";
|
|
40
|
+
const segments = root.split("/");
|
|
41
|
+
for (const segment of segments) {
|
|
42
|
+
if (segment.length === 0)
|
|
43
|
+
return "worktreeRoot must not contain empty or consecutive '/' segments";
|
|
44
|
+
if (segment === "." || segment === "..")
|
|
45
|
+
return `worktreeRoot must not contain '${segment}' segments`;
|
|
46
|
+
if (!SAFE_SEGMENT.test(segment)) {
|
|
47
|
+
return `worktreeRoot segment '${segment}' must match ${SAFE_SEGMENT.toString()}`;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
function validateBaseBranch(branch) {
|
|
53
|
+
if (branch.length === 0)
|
|
54
|
+
return "baseBranch must not be empty";
|
|
55
|
+
if (!SAFE_REF.test(branch))
|
|
56
|
+
return `baseBranch '${branch}' must match ${SAFE_REF.toString()}`;
|
|
57
|
+
if (branch.includes(".."))
|
|
58
|
+
return "baseBranch must not contain '..'";
|
|
59
|
+
if (branch.endsWith("/") || branch.endsWith("/.") || branch.endsWith(".lock")) {
|
|
60
|
+
return `baseBranch '${branch}' is not a valid git refname`;
|
|
61
|
+
}
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Derive the isolation plan for a proposal. Deterministic and side-effect
|
|
66
|
+
* free: the same proposal and options always yield the same branch and
|
|
67
|
+
* path. Unknown modes fail closed to "none"; unsafe configuration fails
|
|
68
|
+
* closed to "invalid" (never to silent shell interpolation).
|
|
69
|
+
*/
|
|
70
|
+
export function planExecutionIsolation(proposal, options = {}) {
|
|
71
|
+
if (options.isolation !== "worktree")
|
|
72
|
+
return { mode: "none" };
|
|
73
|
+
const root = options.worktreeRoot && options.worktreeRoot.length > 0 ? options.worktreeRoot : DEFAULT_WORKTREE_ROOT;
|
|
74
|
+
const rootError = validateWorktreeRoot(root);
|
|
75
|
+
if (rootError)
|
|
76
|
+
return { mode: "invalid", error: rootError };
|
|
77
|
+
const rawBase = options.baseBranch;
|
|
78
|
+
if (typeof rawBase === "string") {
|
|
79
|
+
if (rawBase.length === 0)
|
|
80
|
+
return { mode: "invalid", error: "baseBranch must not be empty" };
|
|
81
|
+
const branchError = validateBaseBranch(rawBase);
|
|
82
|
+
if (branchError)
|
|
83
|
+
return { mode: "invalid", error: branchError };
|
|
84
|
+
}
|
|
85
|
+
const baseBranch = typeof rawBase === "string" ? rawBase : null;
|
|
86
|
+
// slugify() output is strictly [a-z0-9-], so the derived branch and path
|
|
87
|
+
// inherit the validated charset of the root.
|
|
88
|
+
const slug = slugify(proposal.title) || "proposal";
|
|
89
|
+
const trimmedRoot = root.replace(/\/+$/, "");
|
|
90
|
+
return {
|
|
91
|
+
mode: "worktree",
|
|
92
|
+
branch: `dao/${proposal.id}-${slug}`,
|
|
93
|
+
path: `${trimmedRoot}/${proposal.id}-${slug}`,
|
|
94
|
+
baseBranch,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=execution-isolation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-isolation.js","sourceRoot":"","sources":["../../src/delivery/execution-isolation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/delivery/execution.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/delivery/execution.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAqB,qBAAqB,EAAE,QAAQ,EAAsB,MAAM,mBAAmB,CAAC;AAGhH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,GAAG,yBAAyB,CAcrF;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,eAAe,CAAC,CA+ClF;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE;IACP,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GACA,OAAO,CAAC,qBAAqB,CAAC,CAwBhC;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAWnE"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// ============================================================
|
|
2
2
|
// Swarm DAO Core — Proposal Execution
|
|
3
3
|
// ============================================================
|
|
4
|
-
import {
|
|
4
|
+
import { dispatchProposalEvent } from "../governance/proposal.utils.js";
|
|
5
|
+
import { recordProposalExecuted } from "../observability/metrics.js";
|
|
5
6
|
import { captureSnapshot, getState, storeVerification } from "../persistence.js";
|
|
6
7
|
import { generateDeliveryPlan } from "./plans.js";
|
|
7
8
|
export function validateProposalQuality(proposal) {
|
|
@@ -25,7 +26,7 @@ export async function executeProposal(proposal) {
|
|
|
25
26
|
plan = generateDeliveryPlan(proposal);
|
|
26
27
|
state.deliveryPlans[proposal.id] = plan;
|
|
27
28
|
}
|
|
28
|
-
if (
|
|
29
|
+
if (proposal.status !== "controlled") {
|
|
29
30
|
return { success: false, result: `Cannot execute proposal from status "${proposal.status}"` };
|
|
30
31
|
}
|
|
31
32
|
// Capture snapshot (conceptual — actual file snapshot done by adapter)
|
|
@@ -42,10 +43,11 @@ export async function executeProposal(proposal) {
|
|
|
42
43
|
};
|
|
43
44
|
await captureSnapshot(proposal.id, snapshot);
|
|
44
45
|
// Advance state machine: controlled → executed
|
|
45
|
-
const transition =
|
|
46
|
-
if (!transition.
|
|
47
|
-
return { success: false, result: transition.error
|
|
46
|
+
const transition = dispatchProposalEvent(proposal, { type: "EXECUTE_SUCCESS" });
|
|
47
|
+
if (!transition.ok) {
|
|
48
|
+
return { success: false, result: transition.error };
|
|
48
49
|
}
|
|
50
|
+
recordProposalExecuted(proposal.id, proposal.type);
|
|
49
51
|
proposal.executionResult = `Executed with delivery plan: ${plan.branchStrategy}`;
|
|
50
52
|
return {
|
|
51
53
|
success: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/delivery/execution.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,sCAAsC;AACtC,+DAA+D;AAE/D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/delivery/execution.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,sCAAsC;AACtC,+DAA+D;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAalD,MAAM,UAAU,uBAAuB,CAAC,QAAkB;IACxD,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,IAAI,CAAC,QAAQ,CAAC,gBAAgB,IAAI,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAC/E,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,QAAQ,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5F,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpF,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAkB;IACtD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IAEzB,qCAAqC;IACrC,IAAI,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC5C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACtC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IAC1C,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QACrC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,wCAAwC,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC;IAChG,CAAC;IAED,uEAAuE;IACvE,MAAM,QAAQ,GAAsB;QAClC,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,MAAM,EAAE,IAAI,CAAC,cAAc;QAC3B,SAAS,EAAE,SAAS;QACpB,YAAY,EAAE,EAAE;QAChB,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC;YAC5B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;YAC3B,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;SACxC,CAAC;KACH,CAAC;IACF,MAAM,eAAe,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAE7C,+CAA+C;IAC/C,MAAM,UAAU,GAAG,qBAAqB,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAChF,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;IACtD,CAAC;IACD,sBAAsB,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnD,QAAQ,CAAC,eAAe,GAAG,gCAAgC,IAAI,CAAC,cAAc,EAAE,CAAC;IAEjF,OAAO;QACL,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,4BAA4B,QAAQ,CAAC,EAAE;;aAEtC,QAAQ,CAAC,KAAK;;gBAEX,IAAI,CAAC,cAAc;YACvB,IAAI,CAAC,MAAM,CAAC,MAAM,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;;mGAEE;KAChG,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAkB,EAClB,OAQC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEnG,IAAI,MAAM,GAAuB,SAAS,CAAC;IAC3C,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,GAAG,SAAS,CAAC;IAChD,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,GAAG,CAAC;QAAE,MAAM,GAAG,SAAS,CAAC;IACvE,IAAI,OAAO,CAAC,aAAa,KAAK,KAAK;QAAE,MAAM,GAAG,QAAQ,CAAC;IAEvD,MAAM,YAAY,GAA0B;QAC1C,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,MAAM;QACN,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,YAAY;QACZ,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;QAC5C,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;QAClC,OAAO,EAAE,gBAAgB,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,MAAM,mBAAmB,YAAY,CAAC,MAAM,mBAAmB,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE;KAC9M,CAAC;IAEF,MAAM,iBAAiB,CAAC,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;IACnD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,CAAwB;IACzD,OAAO,wBAAwB,CAAC,CAAC,UAAU;;cAE/B,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM;qBACvE,CAAC,CAAC,YAAY,CAAC,MAAM;qBACrB,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;aACtE,CAAC,CAAC,WAAW,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,SAAS,CAAC,CAAC,CAAC,EAAE;mBACtE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;iBAC7B,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;;EAErC,CAAC,CAAC,OAAO,EAAE,CAAC;AACd,CAAC"}
|
package/dist/delivery/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/delivery/index.ts"],"names":[],"mappings":"AAEA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/delivery/index.ts"],"names":[],"mappings":"AAEA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC"}
|
package/dist/delivery/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/delivery/index.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/delivery/index.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC"}
|
package/dist/delivery/plans.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { getDeliveryPlan as persistGetDeliveryPlan, storeDeliveryPlan } from "../persistence.js";
|
|
2
2
|
import type { DeliveryPlan, Proposal } from "../types/index.js";
|
|
3
3
|
export { persistGetDeliveryPlan as getPlan, storeDeliveryPlan as storePlan };
|
|
4
|
-
export declare function generateDeliveryPlan(proposal: Proposal
|
|
4
|
+
export declare function generateDeliveryPlan(proposal: Proposal, options?: {
|
|
5
|
+
now?: string;
|
|
6
|
+
}): DeliveryPlan;
|
|
5
7
|
export declare function parseDeliveryPlan(markdown: string): Partial<DeliveryPlan>;
|
|
6
8
|
export declare function formatPlan(plan: DeliveryPlan): string;
|
|
7
9
|
//# sourceMappingURL=plans.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../src/delivery/plans.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,IAAI,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACjG,OAAO,KAAK,EAAiB,YAAY,EAAgB,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7F,OAAO,EAAE,sBAAsB,IAAI,OAAO,EAAE,iBAAiB,IAAI,SAAS,EAAE,CAAC;AA2H7E,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../src/delivery/plans.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,IAAI,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACjG,OAAO,KAAK,EAAiB,YAAY,EAAgB,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7F,OAAO,EAAE,sBAAsB,IAAI,OAAO,EAAE,iBAAiB,IAAI,SAAS,EAAE,CAAC;AA2H7E,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,YAAY,CASrG;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAmCzE;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAkBrD"}
|
package/dist/delivery/plans.js
CHANGED
|
@@ -122,10 +122,10 @@ function generateBranchName(proposal) {
|
|
|
122
122
|
.slice(0, 30);
|
|
123
123
|
return `feature/dao-${proposal.id}-${slug}`;
|
|
124
124
|
}
|
|
125
|
-
export function generateDeliveryPlan(proposal) {
|
|
125
|
+
export function generateDeliveryPlan(proposal, options = {}) {
|
|
126
126
|
return {
|
|
127
127
|
proposalId: proposal.id,
|
|
128
|
-
createdAt: new Date().toISOString(),
|
|
128
|
+
createdAt: options.now ?? new Date().toISOString(),
|
|
129
129
|
phases: createDefaultPhases(),
|
|
130
130
|
branchStrategy: generateBranchName(proposal),
|
|
131
131
|
rollbackPlan: "Revert the merge commit and redeploy previous version",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plans.js","sourceRoot":"","sources":["../../src/delivery/plans.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"plans.js","sourceRoot":"","sources":["../../src/delivery/plans.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dry-run.d.ts","sourceRoot":"","sources":["../../src/domain/dry-run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAWhE,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,CAetE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { PROPOSAL_TYPE } from "../types/index.js";
|
|
2
|
+
const DURATION_BY_TYPE = {
|
|
3
|
+
[PROPOSAL_TYPE.PRODUCT_FEATURE]: "3-7 days",
|
|
4
|
+
[PROPOSAL_TYPE.SECURITY_CHANGE]: "1-2 weeks",
|
|
5
|
+
[PROPOSAL_TYPE.TECHNICAL_CHANGE]: "2-5 days",
|
|
6
|
+
[PROPOSAL_TYPE.RELEASE_CHANGE]: "1-3 days",
|
|
7
|
+
[PROPOSAL_TYPE.GOVERNANCE_CHANGE]: "1-2 days",
|
|
8
|
+
};
|
|
9
|
+
export function analyzeProposalDryRun(proposal) {
|
|
10
|
+
const filesAffected = [...(proposal.affectedPaths ?? [])];
|
|
11
|
+
const risks = [];
|
|
12
|
+
if (proposal.type === PROPOSAL_TYPE.SECURITY_CHANGE)
|
|
13
|
+
risks.push("Security-sensitive changes require extra review");
|
|
14
|
+
if (proposal.riskZone === "red")
|
|
15
|
+
risks.push("Red-zone proposal: high risk detected");
|
|
16
|
+
if (!proposal.acceptanceCriteria?.length)
|
|
17
|
+
risks.push("No acceptance criteria defined");
|
|
18
|
+
const estimatedDuration = DURATION_BY_TYPE[proposal.type];
|
|
19
|
+
return {
|
|
20
|
+
proposalId: proposal.id,
|
|
21
|
+
preview: `This proposal would modify ${filesAffected.length || "unknown number of"} files and requires ${estimatedDuration}.`,
|
|
22
|
+
filesAffected,
|
|
23
|
+
risks,
|
|
24
|
+
estimatedDuration,
|
|
25
|
+
canProceed: !risks.some((risk) => risk.includes("high risk") || risk.includes("Security-sensitive")),
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=dry-run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dry-run.js","sourceRoot":"","sources":["../../src/domain/dry-run.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,gBAAgB,GAAqC;IACzD,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,UAAU;IAC3C,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,WAAW;IAC5C,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,UAAU;IAC5C,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,UAAU;IAC1C,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAE,UAAU;CAC9C,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,QAAkB;IACtD,MAAM,aAAa,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,QAAQ,CAAC,IAAI,KAAK,aAAa,CAAC,eAAe;QAAE,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IACnH,IAAI,QAAQ,CAAC,QAAQ,KAAK,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACrF,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IACvF,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1D,OAAO;QACL,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,OAAO,EAAE,8BAA8B,aAAa,CAAC,MAAM,IAAI,mBAAmB,uBAAuB,iBAAiB,GAAG;QAC7H,aAAa;QACb,KAAK;QACL,iBAAiB;QACjB,UAAU,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;KACrG,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAEA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Pure domain surface. These modules contain calculations and rules only.
|
|
2
|
+
export * from "../delivery/dependencies.js";
|
|
3
|
+
export * from "../governance/lifecycle.js";
|
|
4
|
+
export * from "../governance/scoring.js";
|
|
5
|
+
export * from "../governance/voting.js";
|
|
6
|
+
export * from "./dry-run.js";
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAE1E,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC"}
|
|
@@ -2,6 +2,8 @@ import type { ProjectConfig } from "../config.js";
|
|
|
2
2
|
import type { DAOAgent } from "../types/index.js";
|
|
3
3
|
export declare const DEFAULT_AGENT_MODEL = "z.ai/GLM-5.1";
|
|
4
4
|
export declare const DEFAULT_AGENTS: DAOAgent[];
|
|
5
|
+
/** Clear the module-level agent definition cache. Intended for use in tests. */
|
|
6
|
+
export declare function __resetAgentDefinitionCache(): void;
|
|
5
7
|
export declare function loadAgentDefinitionsFromMarkdown(agentsDir: string, baseAgents?: DAOAgent[]): Promise<DAOAgent[]>;
|
|
6
8
|
export declare function loadAgentDefinitions(daoRoot: string, projectConfig?: ProjectConfig): Promise<DAOAgent[]>;
|
|
7
9
|
export declare function initializeAgents(customAgents?: DAOAgent[]): DAOAgent[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/governance/agents.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/governance/agents.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGlD,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAElD,eAAO,MAAM,cAAc,EAAE,QAAQ,EAoJpC,CAAC;AAgEF,gFAAgF;AAChF,wBAAgB,2BAA2B,IAAI,IAAI,CAElD;AA+DD,wBAAsB,gCAAgC,CACpD,SAAS,EAAE,MAAM,EACjB,UAAU,GAAE,QAAQ,EAAmB,GACtC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAiDrB;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CA2B9G;AA2BD,wBAAgB,gBAAgB,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAStE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAM5D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAMvD;AAED,wBAAgB,sBAAsB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE/D"}
|