@guyghost/swarm-dao-core 0.2.0 → 0.4.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/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 +352 -0
- package/dist/commands/registry.js.map +1 -0
- package/dist/control/gates.d.ts.map +1 -1
- package/dist/control/gates.js +17 -0
- 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/execution.d.ts.map +1 -1
- package/dist/delivery/execution.js +7 -5
- package/dist/delivery/execution.js.map +1 -1
- package/dist/governance/agents.d.ts +2 -0
- package/dist/governance/agents.d.ts.map +1 -1
- package/dist/governance/agents.js +49 -12
- package/dist/governance/agents.js.map +1 -1
- 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/index.d.ts +2 -0
- package/dist/governance/index.d.ts.map +1 -1
- package/dist/governance/index.js +2 -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 +65 -81
- package/dist/governance/proposal.machine.d.ts.map +1 -1
- package/dist/governance/proposal.machine.js +160 -357
- package/dist/governance/proposal.machine.js.map +1 -1
- package/dist/governance/proposal.utils.d.ts +19 -165
- package/dist/governance/proposal.utils.d.ts.map +1 -1
- package/dist/governance/proposal.utils.js +49 -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/host-tools/github-config.d.ts +7 -0
- package/dist/host-tools/github-config.d.ts.map +1 -0
- package/dist/host-tools/github-config.js +33 -0
- package/dist/host-tools/github-config.js.map +1 -0
- package/dist/host-tools/handlers.d.ts +87 -0
- package/dist/host-tools/handlers.d.ts.map +1 -0
- package/dist/host-tools/handlers.js +556 -0
- package/dist/host-tools/handlers.js.map +1 -0
- package/dist/host-tools/index.d.ts +5 -0
- package/dist/host-tools/index.d.ts.map +1 -0
- package/dist/host-tools/index.js +5 -0
- package/dist/host-tools/index.js.map +1 -0
- package/dist/host-tools/messages.d.ts +12 -0
- package/dist/host-tools/messages.d.ts.map +1 -0
- package/dist/host-tools/messages.js +34 -0
- package/dist/host-tools/messages.js.map +1 -0
- package/dist/host-tools/utils.d.ts +3 -0
- package/dist/host-tools/utils.d.ts.map +1 -0
- package/dist/host-tools/utils.js +29 -0
- package/dist/host-tools/utils.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.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 +40 -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 +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/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/swarm.d.ts +13 -2
- package/dist/intelligence/swarm.d.ts.map +1 -1
- package/dist/intelligence/swarm.js +97 -50
- package/dist/intelligence/swarm.js.map +1 -1
- package/dist/persistence.d.ts +2 -6
- package/dist/persistence.d.ts.map +1 -1
- package/dist/persistence.js +109 -123
- package/dist/persistence.js.map +1 -1
- 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/package.json +1 -1
|
@@ -0,0 +1,556 @@
|
|
|
1
|
+
import { loadConfig } from "../config.js";
|
|
2
|
+
import { formatAuditTrail } from "../control/audit.js";
|
|
3
|
+
import { formatControlResult, runGates } from "../control/gates.js";
|
|
4
|
+
import { formatAllArtefacts, generateAllArtefacts } from "../delivery/artefacts.js";
|
|
5
|
+
import { getUnexecutedDependencies } from "../delivery/dependencies.js";
|
|
6
|
+
import { formatDryRun, formatRollback, performDryRun, performRollback } from "../delivery/dry-run.js";
|
|
7
|
+
import { executeProposal } from "../delivery/execution.js";
|
|
8
|
+
import { formatPlan, generateDeliveryPlan, getPlan } from "../delivery/plans.js";
|
|
9
|
+
import { formatAgentsTable, initializeAgents, loadAgentDefinitions } from "../governance/agents.js";
|
|
10
|
+
import { validateAmendmentPayload } from "../governance/amendments.js";
|
|
11
|
+
import { classifyRiskZone } from "../governance/lifecycle.js";
|
|
12
|
+
import { dispatchProposalEvent } from "../governance/proposal.utils.js";
|
|
13
|
+
import { calculateCompositeScore, formatCompositeScore } from "../governance/scoring.js";
|
|
14
|
+
import { formatTallyResult, parseVoteFromOutput, tallyVotes } from "../governance/voting.js";
|
|
15
|
+
import { computeHealthScore, formatHealthScore, generateDashboard } from "../health-score.js";
|
|
16
|
+
import { ghBranchNameFor, ghCreateBranch, ghCreatePullRequest, isGitHubEnabled } from "../integrations/github.js";
|
|
17
|
+
import { formatRoundTableResults, runRoundTable } from "../intelligence/roundtable.js";
|
|
18
|
+
import { buildDispatchInstructions, createDispatchModelContext, dispatchSwarm, formatDispatchPlan, } from "../intelligence/swarm.js";
|
|
19
|
+
import { synthesize } from "../intelligence/synthesis.js";
|
|
20
|
+
import { addRating, createProposal, createProposalsBatch, getAllAuditLog, getOrCreateState, getProposal, getState, initStorage, recordAudit, saveState, storeCompositeScore, storeDeliberationBatch, storeDeliveryPlan, storeSynthesis, } from "../persistence.js";
|
|
21
|
+
import { PROPOSAL_TYPE_LABELS, PROPOSAL_TYPES } from "../types/index.js";
|
|
22
|
+
import { loadGitHubConfigFromDaoRoot, saveGitHubConfigToDaoRoot } from "./github-config.js";
|
|
23
|
+
import { DAO_ONBOARDING_MESSAGE } from "./messages.js";
|
|
24
|
+
import { parseSafeJson } from "./utils.js";
|
|
25
|
+
function requireInitialized() {
|
|
26
|
+
const state = getState();
|
|
27
|
+
if (!state.initialized)
|
|
28
|
+
return DAO_ONBOARDING_MESSAGE;
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
export async function handleDaoSetup(ctx, useDefaults = true) {
|
|
32
|
+
await initStorage(ctx.workDir);
|
|
33
|
+
const state = getOrCreateState(ctx.workDir);
|
|
34
|
+
if (state.initialized) {
|
|
35
|
+
return `DAO already initialized with ${state.agents.length} agents.`;
|
|
36
|
+
}
|
|
37
|
+
const agents = initializeAgents(useDefaults ? undefined : []);
|
|
38
|
+
state.agents = agents;
|
|
39
|
+
state.initialized = true;
|
|
40
|
+
await saveState();
|
|
41
|
+
return `# DAO Initialized\n\n${formatAgentsTable(agents)}\n\nRun \`dao_help\` to discover the workflow, then \`dao_propose\` to create proposals.`;
|
|
42
|
+
}
|
|
43
|
+
export async function handleDaoPropose(args) {
|
|
44
|
+
const notReady = requireInitialized();
|
|
45
|
+
if (notReady)
|
|
46
|
+
return notReady;
|
|
47
|
+
const proposal = await createProposal(args.title, args.type, args.description, "user", args.context);
|
|
48
|
+
if (args.problemStatement !== undefined)
|
|
49
|
+
proposal.problemStatement = args.problemStatement;
|
|
50
|
+
if (args.acceptanceCriteria !== undefined)
|
|
51
|
+
proposal.acceptanceCriteria = args.acceptanceCriteria;
|
|
52
|
+
if (args.successMetrics !== undefined)
|
|
53
|
+
proposal.successMetrics = args.successMetrics;
|
|
54
|
+
if (args.rollbackConditions !== undefined)
|
|
55
|
+
proposal.rollbackConditions = args.rollbackConditions;
|
|
56
|
+
if (args.affectedPaths !== undefined)
|
|
57
|
+
proposal.affectedPaths = args.affectedPaths;
|
|
58
|
+
proposal.riskZone = classifyRiskZone(proposal);
|
|
59
|
+
await saveState();
|
|
60
|
+
await recordAudit(proposal.id, "governance", "proposal_created", "user", `Proposal "${args.title}" created`);
|
|
61
|
+
const typeLabel = PROPOSAL_TYPE_LABELS[args.type] ?? args.type;
|
|
62
|
+
return `# 📋 Proposal Created — #${proposal.id}\n\n**Title:** ${args.title}\n**Type:** ${typeLabel}\n**Zone:** ${proposal.riskZone}\n\nRun \`dao_deliberate proposalId=${proposal.id}\``;
|
|
63
|
+
}
|
|
64
|
+
export async function handleDaoDeliberate(ctx, proposalId) {
|
|
65
|
+
const notReady = requireInitialized();
|
|
66
|
+
if (notReady)
|
|
67
|
+
return notReady;
|
|
68
|
+
const state = getState();
|
|
69
|
+
const proposal = getProposal(proposalId);
|
|
70
|
+
if (!proposal)
|
|
71
|
+
return `Proposal #${proposalId} not found.`;
|
|
72
|
+
if (proposal.status !== "open")
|
|
73
|
+
return `Proposal #${proposal.id} is ${proposal.status}, must be open.`;
|
|
74
|
+
const deliberation = dispatchProposalEvent(proposal, { type: "DELIBERATE" });
|
|
75
|
+
if (!deliberation.ok)
|
|
76
|
+
return `Cannot deliberate: ${deliberation.error}`;
|
|
77
|
+
await recordAudit(proposal.id, "governance", "deliberation_started", "system", `Deliberation on #${proposal.id}`);
|
|
78
|
+
await saveState();
|
|
79
|
+
const projectConfig = await loadConfig(state.daoRoot);
|
|
80
|
+
const agents = await loadAgentDefinitions(state.daoRoot, projectConfig);
|
|
81
|
+
const modelContext = createDispatchModelContext(state.config.defaultModel, ctx.adapter, {
|
|
82
|
+
parentSessionModel: ctx.getSessionModel?.(),
|
|
83
|
+
hostDefaultModel: ctx.hostDefaultModel,
|
|
84
|
+
});
|
|
85
|
+
if (ctx.deliberationMode === "manual") {
|
|
86
|
+
const instructions = buildDispatchInstructions(proposal, agents, modelContext);
|
|
87
|
+
const plan = formatDispatchPlan(proposal, instructions);
|
|
88
|
+
const parentModel = ctx.getSessionModel?.() ?? ctx.hostDefaultModel;
|
|
89
|
+
const parentNote = parentModel ? `\n\n**Parent session model:** ${parentModel}` : "";
|
|
90
|
+
return `${plan}${parentNote}`;
|
|
91
|
+
}
|
|
92
|
+
const startTime = Date.now();
|
|
93
|
+
const outputs = await dispatchSwarm(proposal, agents, ctx.adapter, state.config.maxConcurrent, modelContext, (update) => ctx.onDeliberationProgress?.(update));
|
|
94
|
+
const votes = [];
|
|
95
|
+
const persistedOutputs = [];
|
|
96
|
+
const agentById = new Map(agents.map((a) => [a.id, a]));
|
|
97
|
+
for (const output of outputs) {
|
|
98
|
+
if (output.content) {
|
|
99
|
+
const weight = agentById.get(output.agentId)?.weight ?? 1;
|
|
100
|
+
const vote = parseVoteFromOutput(output.agentId, output.agentName, weight, output.content);
|
|
101
|
+
if (vote) {
|
|
102
|
+
vote.weight = weight;
|
|
103
|
+
votes.push(vote);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
persistedOutputs.push(output);
|
|
107
|
+
}
|
|
108
|
+
if (votes.length > 0 || persistedOutputs.length > 0) {
|
|
109
|
+
await storeDeliberationBatch(proposal.id, votes, persistedOutputs);
|
|
110
|
+
}
|
|
111
|
+
proposal.votes = votes;
|
|
112
|
+
const compositeScore = calculateCompositeScore(outputs);
|
|
113
|
+
proposal.compositeScore = compositeScore;
|
|
114
|
+
await storeCompositeScore(proposal.id, compositeScore);
|
|
115
|
+
const tally = tallyVotes(proposal, state.config);
|
|
116
|
+
const synthesisText = synthesize(proposal, agents, outputs, tally);
|
|
117
|
+
proposal.synthesis = synthesisText;
|
|
118
|
+
await storeSynthesis(proposal.id, synthesisText);
|
|
119
|
+
if (tally.approved) {
|
|
120
|
+
dispatchProposalEvent(proposal, { type: "APPROVE", tally });
|
|
121
|
+
await recordAudit(proposal.id, "intelligence", "deliberation_approved", "system", `Approved: ${tally.approvalScore}%`);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
dispatchProposalEvent(proposal, { type: "REJECT" });
|
|
125
|
+
await recordAudit(proposal.id, "intelligence", "deliberation_rejected", "system", `Rejected: ${tally.approvalScore}%`);
|
|
126
|
+
}
|
|
127
|
+
await saveState();
|
|
128
|
+
const duration = Date.now() - startTime;
|
|
129
|
+
return `# 🗳️ Deliberation Complete — #${proposal.id} (${duration}ms)\n\n${formatTallyResult(tally)}\n\n${formatCompositeScore(compositeScore)}\n\n${synthesisText}\n\n> Next: \`${ctx.controlToolName} proposalId=${proposal.id}\``;
|
|
130
|
+
}
|
|
131
|
+
export async function handleDaoRecordOutputs(ctx, proposalId, outputs) {
|
|
132
|
+
const notReady = requireInitialized();
|
|
133
|
+
if (notReady)
|
|
134
|
+
return notReady;
|
|
135
|
+
const state = getState();
|
|
136
|
+
const proposal = getProposal(proposalId);
|
|
137
|
+
if (!proposal)
|
|
138
|
+
return `Proposal #${proposalId} not found.`;
|
|
139
|
+
if (proposal.status !== "deliberating")
|
|
140
|
+
return `Expected deliberating (current: ${proposal.status})`;
|
|
141
|
+
const votes = [];
|
|
142
|
+
const enrichedOutputs = [];
|
|
143
|
+
for (const raw of outputs) {
|
|
144
|
+
const agent = state.agents.find((a) => a.id === raw.agentId);
|
|
145
|
+
if (!agent)
|
|
146
|
+
continue;
|
|
147
|
+
const output = {
|
|
148
|
+
agentId: agent.id,
|
|
149
|
+
agentName: agent.name,
|
|
150
|
+
role: agent.role,
|
|
151
|
+
content: raw.content || "",
|
|
152
|
+
durationMs: raw.durationMs ?? 0,
|
|
153
|
+
error: raw.error,
|
|
154
|
+
};
|
|
155
|
+
const vote = parseVoteFromOutput(agent.id, agent.name, agent.weight, output.content);
|
|
156
|
+
if (vote) {
|
|
157
|
+
output.vote = vote;
|
|
158
|
+
votes.push(vote);
|
|
159
|
+
}
|
|
160
|
+
enrichedOutputs.push(output);
|
|
161
|
+
}
|
|
162
|
+
await storeDeliberationBatch(proposal.id, votes, enrichedOutputs);
|
|
163
|
+
proposal.votes = votes;
|
|
164
|
+
const compositeScore = calculateCompositeScore(enrichedOutputs);
|
|
165
|
+
proposal.compositeScore = compositeScore;
|
|
166
|
+
await storeCompositeScore(proposal.id, compositeScore);
|
|
167
|
+
const synthesisText = synthesize(proposal, state.agents, enrichedOutputs);
|
|
168
|
+
proposal.synthesis = synthesisText;
|
|
169
|
+
await storeSynthesis(proposal.id, synthesisText);
|
|
170
|
+
const tally = tallyVotes(proposal, state.config);
|
|
171
|
+
if (tally.approved) {
|
|
172
|
+
dispatchProposalEvent(proposal, { type: "APPROVE", tally });
|
|
173
|
+
await recordAudit(proposal.id, "intelligence", "deliberation_approved", "system", `Approved: ${tally.approvalScore}%`);
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
dispatchProposalEvent(proposal, { type: "REJECT" });
|
|
177
|
+
await recordAudit(proposal.id, "intelligence", "deliberation_rejected", "system", `Rejected: ${tally.approvalScore}%`);
|
|
178
|
+
}
|
|
179
|
+
await saveState();
|
|
180
|
+
return `# 🗳️ Deliberation Complete — #${proposal.id}\n\n${formatTallyResult(tally)}\n\n${formatCompositeScore(compositeScore)}\n\n${synthesisText}\n\n> Next: \`${ctx.controlToolName} proposalId=${proposal.id}\``;
|
|
181
|
+
}
|
|
182
|
+
export async function handleDaoControl(ctx, proposalId) {
|
|
183
|
+
const notReady = requireInitialized();
|
|
184
|
+
if (notReady)
|
|
185
|
+
return notReady;
|
|
186
|
+
const state = getState();
|
|
187
|
+
const proposal = getProposal(proposalId);
|
|
188
|
+
if (!proposal)
|
|
189
|
+
return `Proposal #${proposalId} not found.`;
|
|
190
|
+
if (proposal.status !== "approved")
|
|
191
|
+
return `Must be approved (current: ${proposal.status})`;
|
|
192
|
+
const result = runGates(proposal, state.config);
|
|
193
|
+
if (result.allGatesPassed) {
|
|
194
|
+
dispatchProposalEvent(proposal, { type: "CONTROL_PASS", result });
|
|
195
|
+
await recordAudit(proposal.id, "control", "gates_passed", "system", "All gates passed");
|
|
196
|
+
if (!state.deliveryPlans[proposal.id]) {
|
|
197
|
+
const plan = generateDeliveryPlan(proposal);
|
|
198
|
+
await storeDeliveryPlan(proposal.id, plan);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
if (ctx.failOnGateFailure) {
|
|
203
|
+
dispatchProposalEvent(proposal, { type: "CONTROL_FAIL" });
|
|
204
|
+
}
|
|
205
|
+
await recordAudit(proposal.id, "control", "gates_failed", "system", `${result.blockerCount} blockers`);
|
|
206
|
+
}
|
|
207
|
+
await saveState();
|
|
208
|
+
return formatControlResult(result);
|
|
209
|
+
}
|
|
210
|
+
export async function handleDaoExecute(proposalId) {
|
|
211
|
+
const proposal = getProposal(proposalId);
|
|
212
|
+
if (!proposal)
|
|
213
|
+
return `Proposal #${proposalId} not found.`;
|
|
214
|
+
if (proposal.status !== "controlled") {
|
|
215
|
+
return `Must be controlled (current: ${proposal.status}). Run dao_control first.`;
|
|
216
|
+
}
|
|
217
|
+
const result = await executeProposal(proposal);
|
|
218
|
+
await saveState();
|
|
219
|
+
await recordAudit(proposal.id, "delivery", "proposal_executed", "user", `Executed #${proposal.id}`);
|
|
220
|
+
return result.result;
|
|
221
|
+
}
|
|
222
|
+
export async function handleDaoShip(ctx, proposalId, options) {
|
|
223
|
+
const notReady = requireInitialized();
|
|
224
|
+
if (notReady)
|
|
225
|
+
return notReady;
|
|
226
|
+
const state = getState();
|
|
227
|
+
const proposal = getProposal(proposalId);
|
|
228
|
+
if (!proposal)
|
|
229
|
+
return `Proposal #${proposalId} not found.`;
|
|
230
|
+
const cascade = options?.cascade === true;
|
|
231
|
+
const force = options?.force === true;
|
|
232
|
+
const shipped = [];
|
|
233
|
+
const shipOne = async (id) => {
|
|
234
|
+
const target = getProposal(id);
|
|
235
|
+
if (!target)
|
|
236
|
+
return `Proposal #${id} not found.`;
|
|
237
|
+
if (target.status !== "controlled") {
|
|
238
|
+
return `Proposal #${target.id} must be in 'controlled' state to ship (current: ${target.status})`;
|
|
239
|
+
}
|
|
240
|
+
const result = await executeProposal(target);
|
|
241
|
+
if (!result.success)
|
|
242
|
+
return result.result;
|
|
243
|
+
await recordAudit(target.id, "delivery", "proposal-shipped", ctx.adapter.hostId, "shipped via dao_ship");
|
|
244
|
+
return null;
|
|
245
|
+
};
|
|
246
|
+
if (!force) {
|
|
247
|
+
const depsResolution = getUnexecutedDependencies(proposal.id, state.proposals);
|
|
248
|
+
if (depsResolution.error)
|
|
249
|
+
return depsResolution.error;
|
|
250
|
+
const pendingDeps = depsResolution.order ?? [];
|
|
251
|
+
if (pendingDeps.length > 0 && !cascade) {
|
|
252
|
+
const lines = pendingDeps.map((depId) => {
|
|
253
|
+
const dep = getProposal(depId);
|
|
254
|
+
return dep ? `- #${dep.id} [${dep.status}] ${dep.title}` : `- #${depId} [missing]`;
|
|
255
|
+
});
|
|
256
|
+
return `Cannot ship proposal #${proposal.id}: unexecuted dependencies found.\n\n${lines.join("\n")}\n\nRetry with \`dao_ship proposalId=${proposal.id} cascade=true\` or \`force=true\`.`;
|
|
257
|
+
}
|
|
258
|
+
if (cascade && pendingDeps.length > 0) {
|
|
259
|
+
const notControlled = pendingDeps.filter((depId) => getProposal(depId)?.status !== "controlled");
|
|
260
|
+
if (notControlled.length > 0) {
|
|
261
|
+
const details = notControlled
|
|
262
|
+
.map((depId) => {
|
|
263
|
+
const dep = getProposal(depId);
|
|
264
|
+
return dep ? `#${dep.id} (${dep.status})` : `#${depId} (missing)`;
|
|
265
|
+
})
|
|
266
|
+
.join(", ");
|
|
267
|
+
return `Cannot cascade ship: dependencies not in 'controlled' state: ${details}`;
|
|
268
|
+
}
|
|
269
|
+
for (const depId of pendingDeps) {
|
|
270
|
+
const dep = getProposal(depId);
|
|
271
|
+
if (!dep || dep.status === "executed")
|
|
272
|
+
continue;
|
|
273
|
+
const depError = await shipOne(depId);
|
|
274
|
+
if (depError)
|
|
275
|
+
return depError;
|
|
276
|
+
shipped.push(depId);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
const targetError = await shipOne(proposal.id);
|
|
281
|
+
if (targetError)
|
|
282
|
+
return targetError;
|
|
283
|
+
shipped.push(proposal.id);
|
|
284
|
+
await saveState();
|
|
285
|
+
const summary = shipped.map((id) => `- #${id}`).join("\n");
|
|
286
|
+
return `# 🚀 Ship Complete\n\nShipped proposals:\n${summary}`;
|
|
287
|
+
}
|
|
288
|
+
export async function handleDaoList() {
|
|
289
|
+
const notReady = requireInitialized();
|
|
290
|
+
if (notReady)
|
|
291
|
+
return notReady;
|
|
292
|
+
const state = getState();
|
|
293
|
+
if (state.proposals.length === 0)
|
|
294
|
+
return "No proposals yet.";
|
|
295
|
+
let output = "# DAO Proposals\n\n";
|
|
296
|
+
for (const p of state.proposals) {
|
|
297
|
+
output += `## #${p.id}: ${p.title}\n${p.status} · ${p.type}\n\n`;
|
|
298
|
+
}
|
|
299
|
+
return output;
|
|
300
|
+
}
|
|
301
|
+
export async function handleDaoAgents() {
|
|
302
|
+
const notReady = requireInitialized();
|
|
303
|
+
if (notReady)
|
|
304
|
+
return notReady;
|
|
305
|
+
return `# DAO Agents\n\n${formatAgentsTable(getState().agents)}`;
|
|
306
|
+
}
|
|
307
|
+
export async function handleDaoPlan(proposalId, controlToolName) {
|
|
308
|
+
const proposal = getProposal(proposalId);
|
|
309
|
+
if (!proposal)
|
|
310
|
+
return `Proposal #${proposalId} not found.`;
|
|
311
|
+
const plan = getPlan(proposalId);
|
|
312
|
+
if (!plan) {
|
|
313
|
+
if (proposal.status === "open") {
|
|
314
|
+
return `Plan not available yet. Run \`dao_record_outputs\` (after starting deliberation with \`dao_propose\` and running deliberation), then \`${controlToolName}\`, to generate the plan.`;
|
|
315
|
+
}
|
|
316
|
+
if (proposal.status === "deliberating") {
|
|
317
|
+
return "Plan not available yet. Deliberation is still running. Run `dao_record_outputs` to completion first.";
|
|
318
|
+
}
|
|
319
|
+
if (proposal.status === "approved") {
|
|
320
|
+
return `Plan not available yet. Proposal must pass gates first. Run \`${controlToolName}\` to proceed.`;
|
|
321
|
+
}
|
|
322
|
+
if (proposal.status === "controlled") {
|
|
323
|
+
return "Plan should be available. If missing, run `dao_execute` to generate it.";
|
|
324
|
+
}
|
|
325
|
+
if (proposal.status === "rejected") {
|
|
326
|
+
return "Proposal was rejected and cannot be executed.";
|
|
327
|
+
}
|
|
328
|
+
return "Plan not available for this proposal.";
|
|
329
|
+
}
|
|
330
|
+
return formatPlan(plan);
|
|
331
|
+
}
|
|
332
|
+
export async function handleDaoArtefacts(proposalId) {
|
|
333
|
+
const proposal = getProposal(proposalId);
|
|
334
|
+
if (!proposal)
|
|
335
|
+
return `Proposal #${proposalId} not found.`;
|
|
336
|
+
return formatAllArtefacts(generateAllArtefacts(proposal));
|
|
337
|
+
}
|
|
338
|
+
export async function handleDaoDryRun(proposalId) {
|
|
339
|
+
const proposal = getProposal(proposalId);
|
|
340
|
+
if (!proposal)
|
|
341
|
+
return `Proposal #${proposalId} not found.`;
|
|
342
|
+
const result = await performDryRun(proposal);
|
|
343
|
+
proposal.dryRunAt = new Date().toISOString();
|
|
344
|
+
proposal.dryRunCanProceed = result.canProceed;
|
|
345
|
+
await saveState();
|
|
346
|
+
return formatDryRun(result);
|
|
347
|
+
}
|
|
348
|
+
export async function handleDaoRollback(proposalId) {
|
|
349
|
+
return formatRollback(await performRollback(proposalId));
|
|
350
|
+
}
|
|
351
|
+
export async function handleDaoDashboard() {
|
|
352
|
+
const notReady = requireInitialized();
|
|
353
|
+
if (notReady)
|
|
354
|
+
return notReady;
|
|
355
|
+
const state = getState();
|
|
356
|
+
const dashboard = generateDashboard(state.proposals, state.outcomes, state.agents, state.healthSnapshots);
|
|
357
|
+
const health = computeHealthScore(state.proposals, state.outcomes, state.config.healthWeights);
|
|
358
|
+
return `${dashboard}\n\n${formatHealthScore(health)}`;
|
|
359
|
+
}
|
|
360
|
+
export async function handleDaoRoundtable(ctx) {
|
|
361
|
+
const notReady = requireInitialized();
|
|
362
|
+
if (notReady)
|
|
363
|
+
return notReady;
|
|
364
|
+
const state = getState();
|
|
365
|
+
const projectConfig = await loadConfig(state.daoRoot);
|
|
366
|
+
const agents = await loadAgentDefinitions(state.daoRoot, projectConfig);
|
|
367
|
+
const modelContext = createDispatchModelContext(state.config.defaultModel, ctx.adapter, {
|
|
368
|
+
parentSessionModel: ctx.getSessionModel?.(),
|
|
369
|
+
hostDefaultModel: ctx.hostDefaultModel,
|
|
370
|
+
});
|
|
371
|
+
const suggestions = await runRoundTable(ctx.adapter, agents, state.config.maxConcurrent, modelContext);
|
|
372
|
+
const proposalIds = new Map();
|
|
373
|
+
const parsedSuggestions = suggestions
|
|
374
|
+
.map((suggestion) => ({ suggestion, parsed: suggestion.parsed }))
|
|
375
|
+
.filter((entry) => Boolean(entry.parsed));
|
|
376
|
+
try {
|
|
377
|
+
const proposals = await createProposalsBatch(parsedSuggestions.map(({ suggestion, parsed }) => ({
|
|
378
|
+
title: parsed.title,
|
|
379
|
+
type: parsed.type,
|
|
380
|
+
description: parsed.description,
|
|
381
|
+
proposedBy: suggestion.agentId,
|
|
382
|
+
})));
|
|
383
|
+
for (const [index, { suggestion }] of parsedSuggestions.entries()) {
|
|
384
|
+
const proposal = proposals[index];
|
|
385
|
+
if (!proposal)
|
|
386
|
+
continue;
|
|
387
|
+
proposal.riskZone = classifyRiskZone(proposal);
|
|
388
|
+
suggestion.proposalId = proposal.id;
|
|
389
|
+
proposalIds.set(suggestion.agentId, proposal.id);
|
|
390
|
+
state.auditLog.push({
|
|
391
|
+
id: state.nextAuditId++,
|
|
392
|
+
timestamp: new Date().toISOString(),
|
|
393
|
+
proposalId: proposal.id,
|
|
394
|
+
layer: "intelligence",
|
|
395
|
+
action: "roundtable_proposal_created",
|
|
396
|
+
actor: suggestion.agentId,
|
|
397
|
+
details: "Auto-created from round table",
|
|
398
|
+
});
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
catch (error) {
|
|
402
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
403
|
+
for (const { suggestion } of parsedSuggestions) {
|
|
404
|
+
suggestion.error = `Failed to create proposal: ${message}`;
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
await saveState();
|
|
408
|
+
return formatRoundTableResults(suggestions, proposalIds);
|
|
409
|
+
}
|
|
410
|
+
export async function handleDaoAudit(proposalId) {
|
|
411
|
+
const entries = proposalId ? getAllAuditLog().filter((e) => e.proposalId === proposalId) : getAllAuditLog();
|
|
412
|
+
return formatAuditTrail(entries, proposalId);
|
|
413
|
+
}
|
|
414
|
+
export async function handleDaoRate(proposalId, score, comment) {
|
|
415
|
+
const proposal = getProposal(proposalId);
|
|
416
|
+
if (!proposal)
|
|
417
|
+
return `Proposal #${proposalId} not found.`;
|
|
418
|
+
if (proposal.status !== "executed")
|
|
419
|
+
return `Proposal #${proposal.id} is ${proposal.status}, must be executed.`;
|
|
420
|
+
await addRating(proposal.id, {
|
|
421
|
+
proposalId: proposal.id,
|
|
422
|
+
rater: "user",
|
|
423
|
+
score,
|
|
424
|
+
comment,
|
|
425
|
+
ratedAt: new Date().toISOString(),
|
|
426
|
+
});
|
|
427
|
+
await saveState();
|
|
428
|
+
return `# ⭐ Rating Recorded — #${proposal.id}\n\n**Score:** ${score}/5\n**Comment:** ${comment}`;
|
|
429
|
+
}
|
|
430
|
+
export async function handleDaoUpdateProposal(proposalId, fields) {
|
|
431
|
+
const proposal = getProposal(proposalId);
|
|
432
|
+
if (!proposal)
|
|
433
|
+
return `Proposal #${proposalId} not found.`;
|
|
434
|
+
if (proposal.status !== "open")
|
|
435
|
+
return `Must be open (current: ${proposal.status})`;
|
|
436
|
+
if (fields.problemStatement !== undefined)
|
|
437
|
+
proposal.problemStatement = fields.problemStatement;
|
|
438
|
+
if (fields.acceptanceCriteria !== undefined)
|
|
439
|
+
proposal.acceptanceCriteria = fields.acceptanceCriteria;
|
|
440
|
+
if (fields.successMetrics !== undefined)
|
|
441
|
+
proposal.successMetrics = fields.successMetrics;
|
|
442
|
+
if (fields.rollbackConditions !== undefined)
|
|
443
|
+
proposal.rollbackConditions = fields.rollbackConditions;
|
|
444
|
+
await saveState();
|
|
445
|
+
return `# 📝 Proposal Updated — #${proposal.id}\n\nUpdated fields applied.`;
|
|
446
|
+
}
|
|
447
|
+
export async function handleDaoProposeAmendment(args) {
|
|
448
|
+
const notReady = requireInitialized();
|
|
449
|
+
if (notReady)
|
|
450
|
+
return notReady;
|
|
451
|
+
let payload;
|
|
452
|
+
try {
|
|
453
|
+
switch (args.amendmentType) {
|
|
454
|
+
case "agent-update":
|
|
455
|
+
payload = {
|
|
456
|
+
type: "agent-update",
|
|
457
|
+
agentId: args.agentId ?? "",
|
|
458
|
+
changes: parseSafeJson(args.agentChanges ?? "{}", "agentChanges"),
|
|
459
|
+
};
|
|
460
|
+
break;
|
|
461
|
+
case "agent-add":
|
|
462
|
+
payload = {
|
|
463
|
+
type: "agent-add",
|
|
464
|
+
agent: {
|
|
465
|
+
id: args.newAgentId ?? "",
|
|
466
|
+
name: args.newAgentName ?? "",
|
|
467
|
+
role: args.newAgentRole ?? "",
|
|
468
|
+
weight: args.newAgentWeight ?? 1,
|
|
469
|
+
description: "Custom agent",
|
|
470
|
+
systemPrompt: "",
|
|
471
|
+
},
|
|
472
|
+
};
|
|
473
|
+
break;
|
|
474
|
+
case "agent-remove":
|
|
475
|
+
payload = { type: "agent-remove", agentId: args.agentId ?? "" };
|
|
476
|
+
break;
|
|
477
|
+
case "config-update":
|
|
478
|
+
payload = { type: "config-update", changes: parseSafeJson(args.configChanges ?? "{}", "configChanges") };
|
|
479
|
+
break;
|
|
480
|
+
case "quorum-update":
|
|
481
|
+
payload = { type: "quorum-update", typeQuorum: parseSafeJson(args.quorumChanges ?? "{}", "quorumChanges") };
|
|
482
|
+
break;
|
|
483
|
+
case "gate-update":
|
|
484
|
+
payload = { type: "gate-update", addGates: args.addGates, removeGates: args.removeGates };
|
|
485
|
+
break;
|
|
486
|
+
default:
|
|
487
|
+
return `Error: Unknown amendment type "${String(args.amendmentType)}"`;
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
catch (err) {
|
|
491
|
+
return `Error: ${err instanceof Error ? err.message : String(err)}`;
|
|
492
|
+
}
|
|
493
|
+
if (!payload)
|
|
494
|
+
return "Error: amendment payload could not be constructed";
|
|
495
|
+
const validation = validateAmendmentPayload(payload);
|
|
496
|
+
if (!validation.valid)
|
|
497
|
+
return `❌ Validation failed:\n${validation.errors.join("\n")}`;
|
|
498
|
+
const proposal = await createProposal(args.title, "governance-change", args.description, "user");
|
|
499
|
+
proposal.amendmentPayload = payload;
|
|
500
|
+
proposal.amendmentOrigin = { source: "human" };
|
|
501
|
+
proposal.amendmentState = "pending-vote";
|
|
502
|
+
proposal.riskZone = classifyRiskZone(proposal);
|
|
503
|
+
await saveState();
|
|
504
|
+
await recordAudit(proposal.id, "governance", "amendment_proposed", "user", `Amendment: ${payload.type}`);
|
|
505
|
+
return `# 📜 Amendment Proposed — #${proposal.id}\n\nType: ${payload.type}\n\nRun \`dao_deliberate proposalId=${proposal.id}\``;
|
|
506
|
+
}
|
|
507
|
+
export async function handleDaoConfigGithub(_ctx, args) {
|
|
508
|
+
const state = getState();
|
|
509
|
+
await saveGitHubConfigToDaoRoot(state.daoRoot, args);
|
|
510
|
+
return [
|
|
511
|
+
`# GitHub Configured`,
|
|
512
|
+
"",
|
|
513
|
+
`**Repository:** ${args.owner}/${args.repo}`,
|
|
514
|
+
"",
|
|
515
|
+
"Token redacted in `.dao/config.json`. Set `DAO_GITHUB_TOKEN` env var to avoid re-entering it.",
|
|
516
|
+
"",
|
|
517
|
+
"Available: `dao_github_create_branch`, `dao_github_open_pr`",
|
|
518
|
+
].join("\n");
|
|
519
|
+
}
|
|
520
|
+
export async function handleDaoGithubCreateBranch(_ctx, proposalId) {
|
|
521
|
+
const notReady = requireInitialized();
|
|
522
|
+
if (notReady)
|
|
523
|
+
return notReady;
|
|
524
|
+
const proposal = getProposal(proposalId);
|
|
525
|
+
if (!proposal)
|
|
526
|
+
return `Proposal #${proposalId} not found.`;
|
|
527
|
+
const configured = await loadGitHubConfigFromDaoRoot(getState().daoRoot);
|
|
528
|
+
if (!configured || !isGitHubEnabled()) {
|
|
529
|
+
return "GitHub not configured. Run `dao_config_github` with token, owner, and repo.";
|
|
530
|
+
}
|
|
531
|
+
const branchName = ghBranchNameFor(proposal);
|
|
532
|
+
const result = await ghCreateBranch(branchName);
|
|
533
|
+
if (!result)
|
|
534
|
+
return "Failed to create branch (GitHub API returned null)";
|
|
535
|
+
return `# Branch Created\n\n**Branch:** ${branchName}\n**SHA:** ${result.sha.slice(0, 7)}`;
|
|
536
|
+
}
|
|
537
|
+
export async function handleDaoGithubOpenPr(_ctx, proposalId, headBranch) {
|
|
538
|
+
const notReady = requireInitialized();
|
|
539
|
+
if (notReady)
|
|
540
|
+
return notReady;
|
|
541
|
+
const proposal = getProposal(proposalId);
|
|
542
|
+
if (!proposal)
|
|
543
|
+
return `Proposal #${proposalId} not found.`;
|
|
544
|
+
if (!headBranch)
|
|
545
|
+
return "headBranch is required";
|
|
546
|
+
const configured = await loadGitHubConfigFromDaoRoot(getState().daoRoot);
|
|
547
|
+
if (!configured || !isGitHubEnabled()) {
|
|
548
|
+
return "GitHub not configured. Run `dao_config_github` with token, owner, and repo.";
|
|
549
|
+
}
|
|
550
|
+
const result = await ghCreatePullRequest(proposal, { headBranch });
|
|
551
|
+
if (!result)
|
|
552
|
+
return "Failed to create PR (GitHub API returned null)";
|
|
553
|
+
return `# PR Created\n\n**Number:** #${result.number}\n**URL:** ${result.url}`;
|
|
554
|
+
}
|
|
555
|
+
export { DAO_ONBOARDING_MESSAGE, PROPOSAL_TYPES };
|
|
556
|
+
//# sourceMappingURL=handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/host-tools/handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/host-tools/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/host-tools/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type DaoCommandHost } from "../commands/registry.js";
|
|
2
|
+
export declare const DAO_ONBOARDING_MESSAGE: string;
|
|
3
|
+
export interface BuildDaoHelpMessageOptions {
|
|
4
|
+
manualDeliberation?: boolean;
|
|
5
|
+
controlTool?: string;
|
|
6
|
+
/** Filter the command catalogue to a single host (default: all commands). */
|
|
7
|
+
host?: DaoCommandHost;
|
|
8
|
+
/** Render only the procedural flow, without the full command catalogue. */
|
|
9
|
+
hideCatalogue?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare function buildDaoHelpMessage(options?: BuildDaoHelpMessageOptions): string;
|
|
12
|
+
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/host-tools/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEnF,eAAO,MAAM,sBAAsB,QAMvB,CAAC;AAEb,MAAM,WAAW,0BAA0B;IACzC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,0BAA+B,GAAG,MAAM,CA2BpF"}
|