@guyghost/swarm-dao-core 0.4.0 → 0.6.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 +7 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +7 -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/adapters/ship-audit/fs-ship-audit.store.d.ts +12 -0
- package/dist/adapters/ship-audit/fs-ship-audit.store.d.ts.map +1 -0
- package/dist/adapters/ship-audit/fs-ship-audit.store.js +69 -0
- package/dist/adapters/ship-audit/fs-ship-audit.store.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/registry.d.ts.map +1 -1
- package/dist/commands/registry.js +18 -3
- package/dist/commands/registry.js.map +1 -1
- package/dist/config.d.ts +23 -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 +5 -10
- package/dist/control/gates.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/index.d.ts +2 -0
- package/dist/delivery/index.d.ts.map +1 -1
- package/dist/delivery/index.js +2 -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/delivery/ship-audit.d.ts +36 -0
- package/dist/delivery/ship-audit.d.ts.map +1 -0
- package/dist/delivery/ship-audit.js +155 -0
- package/dist/delivery/ship-audit.js.map +1 -0
- 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.map +1 -1
- package/dist/governance/agents.js +107 -169
- 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/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 +1 -0
- package/dist/governance/index.d.ts.map +1 -1
- package/dist/governance/index.js +1 -0
- package/dist/governance/index.js.map +1 -1
- package/dist/governance/proposal.machine.d.ts +2 -114
- package/dist/governance/proposal.machine.d.ts.map +1 -1
- package/dist/governance/proposal.machine.js +2 -180
- package/dist/governance/proposal.machine.js.map +1 -1
- package/dist/governance/proposal.utils.d.ts +5 -2
- package/dist/governance/proposal.utils.d.ts.map +1 -1
- package/dist/governance/proposal.utils.js +7 -4
- package/dist/governance/proposal.utils.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 +247 -341
- package/dist/host-tools/handlers.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -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/intelligence/delegation.d.ts +3 -2
- package/dist/intelligence/delegation.d.ts.map +1 -1
- package/dist/intelligence/delegation.js.map +1 -1
- package/dist/intelligence/index.d.ts +1 -0
- package/dist/intelligence/index.d.ts.map +1 -1
- package/dist/intelligence/index.js +1 -0
- package/dist/intelligence/index.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 +8 -4
- package/dist/intelligence/swarm.d.ts.map +1 -1
- package/dist/intelligence/swarm.js +10 -3
- 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 +6 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +6 -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/models/ship-audit.machine.d.ts +103 -0
- package/dist/models/ship-audit.machine.d.ts.map +1 -0
- package/dist/models/ship-audit.machine.js +113 -0
- package/dist/models/ship-audit.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 +3 -0
- package/dist/persistence.d.ts.map +1 -1
- package/dist/persistence.js +88 -17
- 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 +6 -0
- package/dist/ports/index.d.ts.map +1 -0
- package/dist/ports/index.js +6 -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/ship-audit.d.ts +26 -0
- package/dist/ports/ship-audit.d.ts.map +1 -0
- package/dist/ports/ship-audit.js +9 -0
- package/dist/ports/ship-audit.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/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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-loop.machine.js","sourceRoot":"","sources":["../../src/models/product-loop.machine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { ControlCheckResult, Proposal, ProposalStatus, TallyResult } from "../types/index.js";
|
|
2
|
+
export interface ProposalContext {
|
|
3
|
+
proposal: Proposal;
|
|
4
|
+
errorMessage?: string;
|
|
5
|
+
lastTransitionTime: string;
|
|
6
|
+
transitionTime: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ProposalMachineInput {
|
|
9
|
+
proposal: Proposal;
|
|
10
|
+
transitionTime: string;
|
|
11
|
+
lastTransitionTime?: string;
|
|
12
|
+
}
|
|
13
|
+
export type ProposalEvent = {
|
|
14
|
+
type: "DELIBERATE";
|
|
15
|
+
} | {
|
|
16
|
+
type: "APPROVE";
|
|
17
|
+
tally: TallyResult;
|
|
18
|
+
} | {
|
|
19
|
+
type: "REJECT";
|
|
20
|
+
} | {
|
|
21
|
+
type: "CONTROL_PASS";
|
|
22
|
+
result: ControlCheckResult;
|
|
23
|
+
} | {
|
|
24
|
+
type: "CONTROL_FAIL";
|
|
25
|
+
} | {
|
|
26
|
+
type: "EXECUTE_SUCCESS";
|
|
27
|
+
} | {
|
|
28
|
+
type: "FAIL";
|
|
29
|
+
} | {
|
|
30
|
+
type: "DISCARD";
|
|
31
|
+
} | {
|
|
32
|
+
type: "ERROR";
|
|
33
|
+
message: string;
|
|
34
|
+
};
|
|
35
|
+
export declare const PROPOSAL_FINAL_STATUSES: ReadonlySet<ProposalStatus>;
|
|
36
|
+
export declare function isProposalFinal(status: ProposalStatus): boolean;
|
|
37
|
+
export declare function createProposalMachine(initial?: ProposalStatus): import("xstate").StateMachine<ProposalContext, {
|
|
38
|
+
type: "DELIBERATE";
|
|
39
|
+
} | {
|
|
40
|
+
type: "APPROVE";
|
|
41
|
+
tally: TallyResult;
|
|
42
|
+
} | {
|
|
43
|
+
type: "REJECT";
|
|
44
|
+
} | {
|
|
45
|
+
type: "CONTROL_PASS";
|
|
46
|
+
result: ControlCheckResult;
|
|
47
|
+
} | {
|
|
48
|
+
type: "CONTROL_FAIL";
|
|
49
|
+
} | {
|
|
50
|
+
type: "EXECUTE_SUCCESS";
|
|
51
|
+
} | {
|
|
52
|
+
type: "FAIL";
|
|
53
|
+
} | {
|
|
54
|
+
type: "DISCARD";
|
|
55
|
+
} | {
|
|
56
|
+
type: "ERROR";
|
|
57
|
+
message: string;
|
|
58
|
+
}, {}, never, {
|
|
59
|
+
type: "recordTransition";
|
|
60
|
+
params: import("xstate").NonReducibleUnknown;
|
|
61
|
+
} | {
|
|
62
|
+
type: "recordError";
|
|
63
|
+
params: import("xstate").NonReducibleUnknown;
|
|
64
|
+
}, {
|
|
65
|
+
type: "tallyApproved";
|
|
66
|
+
params: unknown;
|
|
67
|
+
} | {
|
|
68
|
+
type: "gatesPassed";
|
|
69
|
+
params: unknown;
|
|
70
|
+
}, never, "open" | "deliberating" | "approved" | "controlled" | "rejected" | "executed" | "failed", string, ProposalMachineInput, import("xstate").NonReducibleUnknown, import("xstate").EventObject, import("xstate").MetaObject, {
|
|
71
|
+
id: "proposalLifecycle";
|
|
72
|
+
states: {
|
|
73
|
+
readonly open: {};
|
|
74
|
+
readonly deliberating: {};
|
|
75
|
+
readonly approved: {};
|
|
76
|
+
readonly controlled: {};
|
|
77
|
+
readonly executed: {};
|
|
78
|
+
readonly failed: {};
|
|
79
|
+
readonly rejected: {};
|
|
80
|
+
};
|
|
81
|
+
}>;
|
|
82
|
+
//# sourceMappingURL=proposal.machine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proposal.machine.d.ts","sourceRoot":"","sources":["../../src/models/proposal.machine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEnG,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,cAAc,CAA+C,CAAC;AAEhH,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAE/D;AA2BD,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,cAAuB;UAzC1D,YAAY;;UACZ,SAAS;WAAS,WAAW;;UAC7B,QAAQ;;UACR,cAAc;YAAU,kBAAkB;;UAC1C,cAAc;;UACd,iBAAiB;;UACjB,MAAM;;UACN,SAAS;;UACT,OAAO;aAAW,MAAM;;;;;;;;;;;;;;;;;;;;;;;;GAwEnC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { assign, setup } from "xstate";
|
|
2
|
+
export const PROPOSAL_FINAL_STATUSES = new Set(["executed", "failed", "rejected"]);
|
|
3
|
+
export function isProposalFinal(status) {
|
|
4
|
+
return PROPOSAL_FINAL_STATUSES.has(status);
|
|
5
|
+
}
|
|
6
|
+
const proposalSetup = setup({
|
|
7
|
+
types: {
|
|
8
|
+
context: {},
|
|
9
|
+
input: {},
|
|
10
|
+
events: {},
|
|
11
|
+
},
|
|
12
|
+
guards: {
|
|
13
|
+
tallyApproved: ({ event }) => event.type === "APPROVE" && event.tally.approved === true,
|
|
14
|
+
gatesPassed: ({ event }) => event.type === "CONTROL_PASS" && event.result.allGatesPassed === true && event.result.blockerCount === 0,
|
|
15
|
+
},
|
|
16
|
+
actions: {
|
|
17
|
+
recordTransition: assign({ lastTransitionTime: ({ context }) => context.transitionTime }),
|
|
18
|
+
recordError: assign({
|
|
19
|
+
lastTransitionTime: ({ context }) => context.transitionTime,
|
|
20
|
+
errorMessage: ({ event }) => (event.type === "ERROR" ? event.message : ""),
|
|
21
|
+
}),
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
const escapeHatches = {
|
|
25
|
+
DISCARD: { target: "rejected", actions: "recordTransition" },
|
|
26
|
+
ERROR: { target: "failed", actions: "recordError" },
|
|
27
|
+
};
|
|
28
|
+
export function createProposalMachine(initial = "open") {
|
|
29
|
+
return proposalSetup.createMachine({
|
|
30
|
+
id: "proposalLifecycle",
|
|
31
|
+
initial,
|
|
32
|
+
context: ({ input }) => ({
|
|
33
|
+
proposal: input.proposal,
|
|
34
|
+
transitionTime: input.transitionTime,
|
|
35
|
+
lastTransitionTime: input.lastTransitionTime ?? input.transitionTime,
|
|
36
|
+
}),
|
|
37
|
+
states: {
|
|
38
|
+
open: { on: { DELIBERATE: { target: "deliberating", actions: "recordTransition" }, ...escapeHatches } },
|
|
39
|
+
deliberating: {
|
|
40
|
+
on: {
|
|
41
|
+
APPROVE: { target: "approved", guard: "tallyApproved", actions: "recordTransition" },
|
|
42
|
+
REJECT: { target: "rejected", actions: "recordTransition" },
|
|
43
|
+
...escapeHatches,
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
approved: {
|
|
47
|
+
on: {
|
|
48
|
+
CONTROL_PASS: { target: "controlled", guard: "gatesPassed", actions: "recordTransition" },
|
|
49
|
+
CONTROL_FAIL: { target: "failed", actions: "recordTransition" },
|
|
50
|
+
REJECT: { target: "rejected", actions: "recordTransition" },
|
|
51
|
+
FAIL: { target: "failed", actions: "recordTransition" },
|
|
52
|
+
...escapeHatches,
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
controlled: {
|
|
56
|
+
on: {
|
|
57
|
+
EXECUTE_SUCCESS: { target: "executed", actions: "recordTransition" },
|
|
58
|
+
FAIL: { target: "failed", actions: "recordTransition" },
|
|
59
|
+
...escapeHatches,
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
executed: { type: "final" },
|
|
63
|
+
failed: { type: "final" },
|
|
64
|
+
rejected: { type: "final" },
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=proposal.machine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proposal.machine.js","sourceRoot":"","sources":["../../src/models/proposal.machine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { type ActorRefFrom } from "xstate";
|
|
2
|
+
export declare const SHIP_AUDIT_TERMINAL_STATES: readonly ["bypassed", "cancelled"];
|
|
3
|
+
export type ShipAuditState = "fresh" | "challenged" | "confirmed" | (typeof SHIP_AUDIT_TERMINAL_STATES)[number];
|
|
4
|
+
export type ShipAuditEvent = {
|
|
5
|
+
type: "SHIP_REQUESTED";
|
|
6
|
+
source: "system";
|
|
7
|
+
fingerprint: string;
|
|
8
|
+
occurredAt: string;
|
|
9
|
+
} | {
|
|
10
|
+
type: "SHIP_CONSUMED";
|
|
11
|
+
source: "system";
|
|
12
|
+
occurredAt: string;
|
|
13
|
+
} | {
|
|
14
|
+
type: "FORCE_OVERRIDE";
|
|
15
|
+
source: "human";
|
|
16
|
+
reason: string;
|
|
17
|
+
occurredAt: string;
|
|
18
|
+
} | {
|
|
19
|
+
type: "CANCEL";
|
|
20
|
+
source: "human";
|
|
21
|
+
reason: string;
|
|
22
|
+
occurredAt: string;
|
|
23
|
+
};
|
|
24
|
+
export interface ShipAuditContext {
|
|
25
|
+
/** Immutable correlation — grants no proposal-state permission (INV-4). */
|
|
26
|
+
proposalId: number;
|
|
27
|
+
/** Fingerprint at challenge time; null outside a challenge cycle. */
|
|
28
|
+
fingerprint: string | null;
|
|
29
|
+
/** Cumulative challenges issued (observability; cycles do not reset it). */
|
|
30
|
+
challengeCount: number;
|
|
31
|
+
confirmedAt: string | null;
|
|
32
|
+
terminalReason: string | null;
|
|
33
|
+
}
|
|
34
|
+
export declare const freshShipAuditContext: (proposalId: number) => ShipAuditContext;
|
|
35
|
+
/** What the deterministic ship handler must do for a given audit state. */
|
|
36
|
+
export declare function computeShipAuditDecision(state: ShipAuditState): "PROCEED" | "AUDIT_REQUIRED" | "BLOCKED";
|
|
37
|
+
export declare const shipAuditMachine: import("xstate").StateMachine<ShipAuditContext, {
|
|
38
|
+
type: "SHIP_REQUESTED";
|
|
39
|
+
source: "system";
|
|
40
|
+
fingerprint: string;
|
|
41
|
+
occurredAt: string;
|
|
42
|
+
} | {
|
|
43
|
+
type: "SHIP_CONSUMED";
|
|
44
|
+
source: "system";
|
|
45
|
+
occurredAt: string;
|
|
46
|
+
} | {
|
|
47
|
+
type: "FORCE_OVERRIDE";
|
|
48
|
+
source: "human";
|
|
49
|
+
reason: string;
|
|
50
|
+
occurredAt: string;
|
|
51
|
+
} | {
|
|
52
|
+
type: "CANCEL";
|
|
53
|
+
source: "human";
|
|
54
|
+
reason: string;
|
|
55
|
+
occurredAt: string;
|
|
56
|
+
}, {}, never, {
|
|
57
|
+
type: "recordChallenge";
|
|
58
|
+
params: import("xstate").NonReducibleUnknown;
|
|
59
|
+
} | {
|
|
60
|
+
type: "recordConfirmation";
|
|
61
|
+
params: import("xstate").NonReducibleUnknown;
|
|
62
|
+
} | {
|
|
63
|
+
type: "consumeConfirmation";
|
|
64
|
+
params: import("xstate").NonReducibleUnknown;
|
|
65
|
+
} | {
|
|
66
|
+
type: "recordBypass";
|
|
67
|
+
params: import("xstate").NonReducibleUnknown;
|
|
68
|
+
} | {
|
|
69
|
+
type: "recordCancellation";
|
|
70
|
+
params: import("xstate").NonReducibleUnknown;
|
|
71
|
+
}, {
|
|
72
|
+
type: "isSystemShipRequest";
|
|
73
|
+
params: unknown;
|
|
74
|
+
} | {
|
|
75
|
+
type: "isSystemConsume";
|
|
76
|
+
params: unknown;
|
|
77
|
+
} | {
|
|
78
|
+
type: "isHumanForce";
|
|
79
|
+
params: unknown;
|
|
80
|
+
} | {
|
|
81
|
+
type: "isHumanCancel";
|
|
82
|
+
params: unknown;
|
|
83
|
+
} | {
|
|
84
|
+
type: "isSystemRequestMatchingFingerprint";
|
|
85
|
+
params: unknown;
|
|
86
|
+
} | {
|
|
87
|
+
type: "isSystemRequestChangingFingerprint";
|
|
88
|
+
params: unknown;
|
|
89
|
+
}, never, "cancelled" | "bypassed" | "fresh" | "challenged" | "confirmed", string, {
|
|
90
|
+
proposalId: number;
|
|
91
|
+
}, import("xstate").NonReducibleUnknown, import("xstate").EventObject, import("xstate").MetaObject, {
|
|
92
|
+
id: "ship-audit";
|
|
93
|
+
states: {
|
|
94
|
+
readonly fresh: {};
|
|
95
|
+
readonly challenged: {};
|
|
96
|
+
readonly confirmed: {};
|
|
97
|
+
readonly bypassed: {};
|
|
98
|
+
readonly cancelled: {};
|
|
99
|
+
};
|
|
100
|
+
}>;
|
|
101
|
+
export type ShipAuditActor = ActorRefFrom<typeof shipAuditMachine>;
|
|
102
|
+
export declare const createShipAuditActor: (proposalId: number) => ShipAuditActor;
|
|
103
|
+
//# sourceMappingURL=ship-audit.machine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ship-audit.machine.d.ts","sourceRoot":"","sources":["../../src/models/ship-audit.machine.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,YAAY,EAA8B,MAAM,QAAQ,CAAC;AAEvE,eAAO,MAAM,0BAA0B,oCAAqC,CAAC;AAE7E,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,YAAY,GAAG,WAAW,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhH,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACrF;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC/E;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5E,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,4EAA4E;IAC5E,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,eAAO,MAAM,qBAAqB,GAAI,YAAY,MAAM,KAAG,gBAMzD,CAAC;AAEH,2EAA2E;AAC3E,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS,CAIxG;AAID,eAAO,MAAM,gBAAgB;UAjCjB,gBAAgB;YAAU,QAAQ;iBAAe,MAAM;gBAAc,MAAM;;UAC3E,eAAe;YAAU,QAAQ;gBAAc,MAAM;;UACrD,gBAAgB;YAAU,OAAO;YAAU,MAAM;gBAAc,MAAM;;UACrE,QAAQ;YAAU,OAAO;YAAU,MAAM;gBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAkC1C,MAAM;;;;;;;;;;EAyEnC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEnE,eAAO,MAAM,oBAAoB,GAAI,YAAY,MAAM,KAAG,cAIzD,CAAC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// Swarm DAO Core — Ship Audit Challenge Machine (pure)
|
|
3
|
+
// ============================================================
|
|
4
|
+
// swarm-forge's AUDIT_REQUIRED adapted to proposal shipping: when enabled,
|
|
5
|
+
// the first ship call challenges instead of executing; only an unchanged
|
|
6
|
+
// second call confirms. Any change to the decision re-challenges. There is
|
|
7
|
+
// deliberately no AI role — confirmation is a deterministic property of two
|
|
8
|
+
// identical requests (INV-3).
|
|
9
|
+
//
|
|
10
|
+
// Authority boundary (models/ship-audit.md): this machine owns only a
|
|
11
|
+
// proposal's audit-challenge state. It never mutates proposal state, never
|
|
12
|
+
// emits proposal events (proposalStateAuthority: "none"), and performs no
|
|
13
|
+
// I/O — fingerprints and timestamps arrive as event payloads.
|
|
14
|
+
import { assign, createActor, setup } from "xstate";
|
|
15
|
+
export const SHIP_AUDIT_TERMINAL_STATES = ["bypassed", "cancelled"];
|
|
16
|
+
export const freshShipAuditContext = (proposalId) => ({
|
|
17
|
+
proposalId,
|
|
18
|
+
fingerprint: null,
|
|
19
|
+
challengeCount: 0,
|
|
20
|
+
confirmedAt: null,
|
|
21
|
+
terminalReason: null,
|
|
22
|
+
});
|
|
23
|
+
/** What the deterministic ship handler must do for a given audit state. */
|
|
24
|
+
export function computeShipAuditDecision(state) {
|
|
25
|
+
if (state === "confirmed" || state === "bypassed")
|
|
26
|
+
return "PROCEED";
|
|
27
|
+
if (state === "cancelled")
|
|
28
|
+
return "BLOCKED";
|
|
29
|
+
return "AUDIT_REQUIRED";
|
|
30
|
+
}
|
|
31
|
+
const nonEmpty = (value) => typeof value === "string" && value.trim().length > 0;
|
|
32
|
+
export const shipAuditMachine = setup({
|
|
33
|
+
types: {
|
|
34
|
+
context: {},
|
|
35
|
+
events: {},
|
|
36
|
+
input: {},
|
|
37
|
+
},
|
|
38
|
+
guards: {
|
|
39
|
+
isSystemShipRequest: ({ event }) => event.type === "SHIP_REQUESTED" && event.source === "system",
|
|
40
|
+
isSystemConsume: ({ event }) => event.type === "SHIP_CONSUMED" && event.source === "system",
|
|
41
|
+
isHumanForce: ({ event }) => event.type === "FORCE_OVERRIDE" && event.source === "human" && nonEmpty(event.reason),
|
|
42
|
+
isHumanCancel: ({ event }) => event.type === "CANCEL" && event.source === "human" && nonEmpty(event.reason),
|
|
43
|
+
isSystemRequestMatchingFingerprint: ({ event, context }) => event.type === "SHIP_REQUESTED" && event.source === "system" && context.fingerprint === event.fingerprint,
|
|
44
|
+
isSystemRequestChangingFingerprint: ({ event, context }) => event.type === "SHIP_REQUESTED" && event.source === "system" && context.fingerprint !== event.fingerprint,
|
|
45
|
+
},
|
|
46
|
+
actions: {
|
|
47
|
+
recordChallenge: assign(({ event, context }) => ({
|
|
48
|
+
fingerprint: event.type === "SHIP_REQUESTED" ? event.fingerprint : context.fingerprint,
|
|
49
|
+
challengeCount: context.challengeCount + 1,
|
|
50
|
+
confirmedAt: null,
|
|
51
|
+
})),
|
|
52
|
+
recordConfirmation: assign(({ event }) => ({
|
|
53
|
+
confirmedAt: event.type === "SHIP_REQUESTED" ? event.occurredAt : null,
|
|
54
|
+
})),
|
|
55
|
+
consumeConfirmation: assign(() => ({
|
|
56
|
+
fingerprint: null,
|
|
57
|
+
confirmedAt: null,
|
|
58
|
+
})),
|
|
59
|
+
recordBypass: assign(({ event }) => ({
|
|
60
|
+
terminalReason: event.type === "FORCE_OVERRIDE" ? `force override: ${event.reason}` : null,
|
|
61
|
+
})),
|
|
62
|
+
recordCancellation: assign(({ event }) => ({
|
|
63
|
+
terminalReason: event.type === "CANCEL" ? `cancelled: ${event.reason}` : null,
|
|
64
|
+
})),
|
|
65
|
+
},
|
|
66
|
+
}).createMachine({
|
|
67
|
+
id: "ship-audit",
|
|
68
|
+
initial: "fresh",
|
|
69
|
+
context: ({ input }) => freshShipAuditContext(input.proposalId),
|
|
70
|
+
on: {
|
|
71
|
+
CANCEL: { guard: "isHumanCancel", target: ".cancelled", actions: "recordCancellation" },
|
|
72
|
+
},
|
|
73
|
+
states: {
|
|
74
|
+
fresh: {
|
|
75
|
+
on: {
|
|
76
|
+
SHIP_REQUESTED: { guard: "isSystemShipRequest", target: "challenged", actions: "recordChallenge" },
|
|
77
|
+
FORCE_OVERRIDE: { guard: "isHumanForce", target: "bypassed", actions: "recordBypass" },
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
challenged: {
|
|
81
|
+
on: {
|
|
82
|
+
SHIP_REQUESTED: [
|
|
83
|
+
// INV-2: only the exact challenged fingerprint confirms.
|
|
84
|
+
{
|
|
85
|
+
guard: "isSystemRequestMatchingFingerprint",
|
|
86
|
+
target: "confirmed",
|
|
87
|
+
actions: "recordConfirmation",
|
|
88
|
+
},
|
|
89
|
+
// A changed decision voids the audit and re-challenges.
|
|
90
|
+
{ guard: "isSystemRequestChangingFingerprint", target: "challenged", actions: "recordChallenge" },
|
|
91
|
+
],
|
|
92
|
+
FORCE_OVERRIDE: { guard: "isHumanForce", target: "bypassed", actions: "recordBypass" },
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
confirmed: {
|
|
96
|
+
on: {
|
|
97
|
+
// A matching re-request stays confirmed so the handler can proceed;
|
|
98
|
+
// the single spend happens via SHIP_CONSUMED (INV-6).
|
|
99
|
+
SHIP_REQUESTED: { guard: "isSystemRequestMatchingFingerprint", target: "confirmed" },
|
|
100
|
+
SHIP_CONSUMED: { guard: "isSystemConsume", target: "fresh", actions: "consumeConfirmation" },
|
|
101
|
+
FORCE_OVERRIDE: { guard: "isHumanForce", target: "bypassed", actions: "recordBypass" },
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
bypassed: { type: "final" },
|
|
105
|
+
cancelled: { type: "final" },
|
|
106
|
+
},
|
|
107
|
+
});
|
|
108
|
+
export const createShipAuditActor = (proposalId) => {
|
|
109
|
+
const actor = createActor(shipAuditMachine, { input: { proposalId } });
|
|
110
|
+
actor.start();
|
|
111
|
+
return actor;
|
|
112
|
+
};
|
|
113
|
+
//# sourceMappingURL=ship-audit.machine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ship-audit.machine.js","sourceRoot":"","sources":["../../src/models/ship-audit.machine.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,uDAAuD;AACvD,+DAA+D;AAC/D,2EAA2E;AAC3E,yEAAyE;AACzE,2EAA2E;AAC3E,4EAA4E;AAC5E,8BAA8B;AAC9B,EAAE;AACF,sEAAsE;AACtE,2EAA2E;AAC3E,0EAA0E;AAC1E,8DAA8D;AAE9D,OAAO,EAAqB,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEvE,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,UAAU,EAAE,WAAW,CAAU,CAAC;AAqB7E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,UAAkB,EAAoB,EAAE,CAAC,CAAC;IAC9E,UAAU;IACV,WAAW,EAAE,IAAI;IACjB,cAAc,EAAE,CAAC;IACjB,WAAW,EAAE,IAAI;IACjB,cAAc,EAAE,IAAI;CACrB,CAAC,CAAC;AAEH,2EAA2E;AAC3E,MAAM,UAAU,wBAAwB,CAAC,KAAqB;IAC5D,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IACpE,IAAI,KAAK,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IAC5C,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAEnG,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC;IACpC,KAAK,EAAE;QACL,OAAO,EAAE,EAAsB;QAC/B,MAAM,EAAE,EAAoB;QAC5B,KAAK,EAAE,EAA4B;KACpC;IACD,MAAM,EAAE;QACN,mBAAmB,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ;QAChG,eAAe,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ;QAC3F,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;QAClH,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;QAC3G,kCAAkC,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CACzD,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW;QAC3G,kCAAkC,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CACzD,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW;KAC5G;IACD,OAAO,EAAE;QACP,eAAe,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;YAC/C,WAAW,EAAE,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW;YACtF,cAAc,EAAE,OAAO,CAAC,cAAc,GAAG,CAAC;YAC1C,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,kBAAkB,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YACzC,WAAW,EAAE,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;SACvE,CAAC,CAAC;QACH,mBAAmB,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;YACjC,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,YAAY,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YACnC,cAAc,EAAE,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,mBAAmB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI;SAC3F,CAAC,CAAC;QACH,kBAAkB,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YACzC,cAAc,EAAE,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI;SAC9E,CAAC,CAAC;KACJ;CACF,CAAC,CAAC,aAAa,CAAC;IACf,EAAE,EAAE,YAAY;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,UAAU,CAAC;IAC/D,EAAE,EAAE;QACF,MAAM,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,oBAAoB,EAAE;KACxF;IACD,MAAM,EAAE;QACN,KAAK,EAAE;YACL,EAAE,EAAE;gBACF,cAAc,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE;gBAClG,cAAc,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE;aACvF;SACF;QACD,UAAU,EAAE;YACV,EAAE,EAAE;gBACF,cAAc,EAAE;oBACd,yDAAyD;oBACzD;wBACE,KAAK,EAAE,oCAAoC;wBAC3C,MAAM,EAAE,WAAW;wBACnB,OAAO,EAAE,oBAAoB;qBAC9B;oBACD,wDAAwD;oBACxD,EAAE,KAAK,EAAE,oCAAoC,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE;iBAClG;gBACD,cAAc,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE;aACvF;SACF;QACD,SAAS,EAAE;YACT,EAAE,EAAE;gBACF,oEAAoE;gBACpE,sDAAsD;gBACtD,cAAc,EAAE,EAAE,KAAK,EAAE,oCAAoC,EAAE,MAAM,EAAE,WAAW,EAAE;gBACpF,aAAa,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE;gBAC5F,cAAc,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE;aACvF;SACF;QACD,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;QAC3B,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;KAC7B;CACF,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,UAAkB,EAAkB,EAAE;IACzE,MAAM,KAAK,GAAG,WAAW,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IACvE,KAAK,CAAC,KAAK,EAAE,CAAC;IACd,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export type AttentionSource = "graph-engineering" | "improvement-loop" | "product-loop";
|
|
2
|
+
/** Minimal persisted-snapshot shape shared by the three runners. */
|
|
3
|
+
export interface AttentionSnapshot {
|
|
4
|
+
runId: string;
|
|
5
|
+
state: string;
|
|
6
|
+
status: string;
|
|
7
|
+
context?: Record<string, unknown> | null;
|
|
8
|
+
}
|
|
9
|
+
export interface AttentionItem {
|
|
10
|
+
source: AttentionSource;
|
|
11
|
+
runId: string;
|
|
12
|
+
state: string;
|
|
13
|
+
/** What the human owner must decide. */
|
|
14
|
+
action: string;
|
|
15
|
+
/** Suggested resolution command, if any. */
|
|
16
|
+
command: string | null;
|
|
17
|
+
/** Concrete anchor for the decision (model hash, reference hash, reason). */
|
|
18
|
+
detail: string | null;
|
|
19
|
+
}
|
|
20
|
+
/** Filesystem view over the evidence roots (injected; no ambient I/O here). */
|
|
21
|
+
export interface AttentionStorePort {
|
|
22
|
+
/** Stable run identifiers persisted under the source's evidence root. */
|
|
23
|
+
listRuns(source: AttentionSource): Promise<readonly string[]>;
|
|
24
|
+
/** Persisted snapshot for a run, or null when unreadable. */
|
|
25
|
+
readSnapshot(source: AttentionSource, runId: string): Promise<AttentionSnapshot | null>;
|
|
26
|
+
}
|
|
27
|
+
/** Documented evidence roots per source (relative to the repository root). */
|
|
28
|
+
export declare const ATTENTION_EVIDENCE_DIRS: Readonly<Record<AttentionSource, string>>;
|
|
29
|
+
export declare const ATTENTION_SOURCES: readonly AttentionSource[];
|
|
30
|
+
/** Classify one persisted snapshot; null when no human decision is pending. */
|
|
31
|
+
export declare function classifyAttention(source: AttentionSource, snapshot: AttentionSnapshot): AttentionItem | null;
|
|
32
|
+
/**
|
|
33
|
+
* Sweep every source (or a filtered subset) and return the pending human
|
|
34
|
+
* gates, sorted by source then run id. Unreadable snapshots are skipped:
|
|
35
|
+
* the sweep itself must never fail because one run is corrupted.
|
|
36
|
+
*/
|
|
37
|
+
export declare function collectAttention(store: AttentionStorePort, sources?: readonly AttentionSource[]): Promise<AttentionItem[]>;
|
|
38
|
+
/** Human-readable table; pure formatting, no decisions. */
|
|
39
|
+
export declare function formatAttention(items: readonly AttentionItem[]): string;
|
|
40
|
+
//# sourceMappingURL=attention.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attention.d.ts","sourceRoot":"","sources":["../../src/observability/attention.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,cAAc,CAAC;AAExF,oEAAoE;AACpE,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,6EAA6E;IAC7E,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,+EAA+E;AAC/E,MAAM,WAAW,kBAAkB;IACjC,yEAAyE;IACzE,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAC9D,6DAA6D;IAC7D,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;CACzF;AAED,8EAA8E;AAC9E,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAI7E,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,SAAS,eAAe,EAA8D,CAAC;AAmDvH,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,iBAAiB,GAAG,aAAa,GAAG,IAAI,CAgB5G;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,kBAAkB,EACzB,OAAO,GAAE,SAAS,eAAe,EAAsB,GACtD,OAAO,CAAC,aAAa,EAAE,CAAC,CAkB1B;AAED,2DAA2D;AAC3D,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,MAAM,CAWvE"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// Swarm DAO Core — Attention Queue (read-only human-gate view)
|
|
3
|
+
// ============================================================
|
|
4
|
+
// Aggregates the pending human decisions across the repository-local
|
|
5
|
+
// workflow machines (Graph Engineering runs, Improvement Loop cycles,
|
|
6
|
+
// Product Loop runs). Read-only: this module never sends events, never
|
|
7
|
+
// mutates machine state, and never writes evidence. It only projects
|
|
8
|
+
// persisted snapshots into an actionable list for the human owner.
|
|
9
|
+
//
|
|
10
|
+
// Authority boundary (unchanged): the machines decide states; this view
|
|
11
|
+
// merely classifies which persisted states await a human-source event.
|
|
12
|
+
/** Documented evidence roots per source (relative to the repository root). */
|
|
13
|
+
export const ATTENTION_EVIDENCE_DIRS = {
|
|
14
|
+
"graph-engineering": "evidence/graph-runs",
|
|
15
|
+
"improvement-loop": "evidence/improvement-cycles",
|
|
16
|
+
"product-loop": "evidence/product-loops",
|
|
17
|
+
};
|
|
18
|
+
export const ATTENTION_SOURCES = ["graph-engineering", "improvement-loop", "product-loop"];
|
|
19
|
+
const stringField = (context, field) => {
|
|
20
|
+
const value = context?.[field];
|
|
21
|
+
return typeof value === "string" && value.length > 0 ? value : null;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* States that persist only while a human decision is pending. Terminal
|
|
25
|
+
* outcomes (succeeded, failed, blocked, cancelled, validated, rejected) are
|
|
26
|
+
* deliberately excluded: they are closed, not awaiting attention.
|
|
27
|
+
* `budgetBlocked` is transient (always -> review) and never persists.
|
|
28
|
+
*/
|
|
29
|
+
const HUMAN_GATES = {
|
|
30
|
+
"graph-engineering": {
|
|
31
|
+
awaitingApproval: {
|
|
32
|
+
action: "Approve or reject the exact model hash (MODEL_APPROVED / MODEL_REJECTED)",
|
|
33
|
+
command: "bun run graph:submit -- --run-id <id> --signal <signal.json>",
|
|
34
|
+
detail: (ctx) => stringField(ctx, "modelHash"),
|
|
35
|
+
},
|
|
36
|
+
retrying: {
|
|
37
|
+
action: "Authorize a retry (RETRY_AUTHORIZED) or cancel the run",
|
|
38
|
+
command: "bun run graph:submit -- --run-id <id> --signal <signal.json>",
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
"improvement-loop": {
|
|
42
|
+
adjusting: {
|
|
43
|
+
action: "Approve or reject the reference change (REFERENCE_CHANGE_APPROVED / REJECTED)",
|
|
44
|
+
command: "bun run improvement:submit -- --cycle-id <id> --signal <signal.json>",
|
|
45
|
+
detail: (ctx) => stringField(ctx, "referenceHash"),
|
|
46
|
+
},
|
|
47
|
+
retrying: {
|
|
48
|
+
action: "Authorize a retry (RETRY_AUTHORIZED) or cancel the cycle",
|
|
49
|
+
command: "bun run improvement:submit -- --cycle-id <id> --signal <signal.json>",
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
"product-loop": {
|
|
53
|
+
review: {
|
|
54
|
+
action: "Resolve the review: reduce scope, expand budget, retry verification, or abandon",
|
|
55
|
+
command: "bun run product:submit -- --run-id <id> --signal <signal.json>",
|
|
56
|
+
detail: (ctx) => stringField(ctx, "reviewReason"),
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
/** Classify one persisted snapshot; null when no human decision is pending. */
|
|
61
|
+
export function classifyAttention(source, snapshot) {
|
|
62
|
+
const gate = HUMAN_GATES[source]?.[snapshot.state];
|
|
63
|
+
if (!gate)
|
|
64
|
+
return null;
|
|
65
|
+
const runId = typeof snapshot.context?.cycleId === "string" && snapshot.context.cycleId.length > 0
|
|
66
|
+
? snapshot.context.cycleId
|
|
67
|
+
: snapshot.runId;
|
|
68
|
+
return {
|
|
69
|
+
source,
|
|
70
|
+
runId,
|
|
71
|
+
state: snapshot.state,
|
|
72
|
+
action: gate.action,
|
|
73
|
+
// Substitute the run id so the suggested command is directly runnable.
|
|
74
|
+
command: gate.command ? gate.command.replaceAll("<id>", runId) : null,
|
|
75
|
+
detail: gate.detail ? gate.detail(snapshot.context) : null,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Sweep every source (or a filtered subset) and return the pending human
|
|
80
|
+
* gates, sorted by source then run id. Unreadable snapshots are skipped:
|
|
81
|
+
* the sweep itself must never fail because one run is corrupted.
|
|
82
|
+
*/
|
|
83
|
+
export async function collectAttention(store, sources = ATTENTION_SOURCES) {
|
|
84
|
+
const items = [];
|
|
85
|
+
for (const source of ATTENTION_SOURCES) {
|
|
86
|
+
if (!sources.includes(source))
|
|
87
|
+
continue;
|
|
88
|
+
let runIds = [];
|
|
89
|
+
try {
|
|
90
|
+
runIds = await store.listRuns(source);
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
for (const runId of runIds) {
|
|
96
|
+
const snapshot = await store.readSnapshot(source, runId).catch(() => null);
|
|
97
|
+
if (!snapshot)
|
|
98
|
+
continue;
|
|
99
|
+
const item = classifyAttention(source, snapshot);
|
|
100
|
+
if (item)
|
|
101
|
+
items.push(item);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return items.sort((a, b) => `${a.source}/${a.runId}`.localeCompare(`${b.source}/${b.runId}`));
|
|
105
|
+
}
|
|
106
|
+
/** Human-readable table; pure formatting, no decisions. */
|
|
107
|
+
export function formatAttention(items) {
|
|
108
|
+
if (items.length === 0) {
|
|
109
|
+
return "Attention: no pending human gates. All workflow runs are either progressing or terminal.";
|
|
110
|
+
}
|
|
111
|
+
const width = Math.max(...items.map((i) => `${i.source}/${i.runId}`.length));
|
|
112
|
+
const lines = items.map((item) => {
|
|
113
|
+
const id = `${item.source}/${item.runId}`.padEnd(width);
|
|
114
|
+
const detail = item.detail ? ` [${item.detail}]` : "";
|
|
115
|
+
return `${id} ${item.state.padEnd(17)}${detail}\n → ${item.action}`;
|
|
116
|
+
});
|
|
117
|
+
return [`Attention: ${items.length} pending human gate${items.length === 1 ? "" : "s"}`, ...lines].join("\n");
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=attention.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attention.js","sourceRoot":"","sources":["../../src/observability/attention.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/observability/index.ts"],"names":[],"mappings":"AAEA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/observability/index.ts"],"names":[],"mappings":"AAEA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
|