@guyghost/swarm-dao-core 0.1.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.
Files changed (141) hide show
  1. package/dist/agents/index.d.ts +2 -0
  2. package/dist/agents/index.d.ts.map +1 -0
  3. package/dist/agents/index.js +3 -0
  4. package/dist/agents/index.js.map +1 -0
  5. package/dist/agents/prompts.d.ts +38 -0
  6. package/dist/agents/prompts.d.ts.map +1 -0
  7. package/dist/agents/prompts.js +142 -0
  8. package/dist/agents/prompts.js.map +1 -0
  9. package/dist/config.d.ts +31 -0
  10. package/dist/config.d.ts.map +1 -0
  11. package/dist/config.js +100 -0
  12. package/dist/config.js.map +1 -0
  13. package/dist/control/audit.d.ts +7 -0
  14. package/dist/control/audit.d.ts.map +1 -0
  15. package/dist/control/audit.js +25 -0
  16. package/dist/control/audit.js.map +1 -0
  17. package/dist/control/gates.d.ts +4 -0
  18. package/dist/control/gates.d.ts.map +1 -0
  19. package/dist/control/gates.js +252 -0
  20. package/dist/control/gates.js.map +1 -0
  21. package/dist/control/index.d.ts +3 -0
  22. package/dist/control/index.d.ts.map +1 -0
  23. package/dist/control/index.js +4 -0
  24. package/dist/control/index.js.map +1 -0
  25. package/dist/delivery/artefacts.d.ts +20 -0
  26. package/dist/delivery/artefacts.d.ts.map +1 -0
  27. package/dist/delivery/artefacts.js +222 -0
  28. package/dist/delivery/artefacts.js.map +1 -0
  29. package/dist/delivery/dry-run.d.ts +14 -0
  30. package/dist/delivery/dry-run.d.ts.map +1 -0
  31. package/dist/delivery/dry-run.js +100 -0
  32. package/dist/delivery/dry-run.js.map +1 -0
  33. package/dist/delivery/execution.d.ts +23 -0
  34. package/dist/delivery/execution.d.ts.map +1 -0
  35. package/dist/delivery/execution.js +99 -0
  36. package/dist/delivery/execution.js.map +1 -0
  37. package/dist/delivery/index.d.ts +5 -0
  38. package/dist/delivery/index.d.ts.map +1 -0
  39. package/dist/delivery/index.js +6 -0
  40. package/dist/delivery/index.js.map +1 -0
  41. package/dist/delivery/plans.d.ts +7 -0
  42. package/dist/delivery/plans.d.ts.map +1 -0
  43. package/dist/delivery/plans.js +172 -0
  44. package/dist/delivery/plans.js.map +1 -0
  45. package/dist/governance/agents.d.ts +7 -0
  46. package/dist/governance/agents.d.ts.map +1 -0
  47. package/dist/governance/agents.js +310 -0
  48. package/dist/governance/agents.js.map +1 -0
  49. package/dist/governance/amendments.d.ts +20 -0
  50. package/dist/governance/amendments.d.ts.map +1 -0
  51. package/dist/governance/amendments.js +242 -0
  52. package/dist/governance/amendments.js.map +1 -0
  53. package/dist/governance/index.d.ts +6 -0
  54. package/dist/governance/index.d.ts.map +1 -0
  55. package/dist/governance/index.js +7 -0
  56. package/dist/governance/index.js.map +1 -0
  57. package/dist/governance/lifecycle.d.ts +13 -0
  58. package/dist/governance/lifecycle.d.ts.map +1 -0
  59. package/dist/governance/lifecycle.js +86 -0
  60. package/dist/governance/lifecycle.js.map +1 -0
  61. package/dist/governance/scoring.d.ts +16 -0
  62. package/dist/governance/scoring.d.ts.map +1 -0
  63. package/dist/governance/scoring.js +118 -0
  64. package/dist/governance/scoring.js.map +1 -0
  65. package/dist/governance/voting.d.ts +6 -0
  66. package/dist/governance/voting.d.ts.map +1 -0
  67. package/dist/governance/voting.js +73 -0
  68. package/dist/governance/voting.js.map +1 -0
  69. package/dist/health-score.d.ts +25 -0
  70. package/dist/health-score.d.ts.map +1 -0
  71. package/dist/health-score.js +201 -0
  72. package/dist/health-score.js.map +1 -0
  73. package/dist/index.d.ts +14 -0
  74. package/dist/index.d.ts.map +1 -0
  75. package/dist/index.js +29 -0
  76. package/dist/index.js.map +1 -0
  77. package/dist/integrations/bitbucket.d.ts +26 -0
  78. package/dist/integrations/bitbucket.d.ts.map +1 -0
  79. package/dist/integrations/bitbucket.js +76 -0
  80. package/dist/integrations/bitbucket.js.map +1 -0
  81. package/dist/integrations/github.d.ts +39 -0
  82. package/dist/integrations/github.d.ts.map +1 -0
  83. package/dist/integrations/github.js +126 -0
  84. package/dist/integrations/github.js.map +1 -0
  85. package/dist/integrations/gitlab.d.ts +29 -0
  86. package/dist/integrations/gitlab.d.ts.map +1 -0
  87. package/dist/integrations/gitlab.js +86 -0
  88. package/dist/integrations/gitlab.js.map +1 -0
  89. package/dist/integrations/index.d.ts +4 -0
  90. package/dist/integrations/index.d.ts.map +1 -0
  91. package/dist/integrations/index.js +5 -0
  92. package/dist/integrations/index.js.map +1 -0
  93. package/dist/integrations/utils.d.ts +2 -0
  94. package/dist/integrations/utils.d.ts.map +1 -0
  95. package/dist/integrations/utils.js +8 -0
  96. package/dist/integrations/utils.js.map +1 -0
  97. package/dist/intelligence/index.d.ts +3 -0
  98. package/dist/intelligence/index.d.ts.map +1 -0
  99. package/dist/intelligence/index.js +4 -0
  100. package/dist/intelligence/index.js.map +1 -0
  101. package/dist/intelligence/roundtable.d.ts +16 -0
  102. package/dist/intelligence/roundtable.d.ts.map +1 -0
  103. package/dist/intelligence/roundtable.js +113 -0
  104. package/dist/intelligence/roundtable.js.map +1 -0
  105. package/dist/intelligence/swarm.d.ts +27 -0
  106. package/dist/intelligence/swarm.d.ts.map +1 -0
  107. package/dist/intelligence/swarm.js +113 -0
  108. package/dist/intelligence/swarm.js.map +1 -0
  109. package/dist/intelligence/synthesis.d.ts +4 -0
  110. package/dist/intelligence/synthesis.d.ts.map +1 -0
  111. package/dist/intelligence/synthesis.js +84 -0
  112. package/dist/intelligence/synthesis.js.map +1 -0
  113. package/dist/observability/alerts.d.ts +40 -0
  114. package/dist/observability/alerts.d.ts.map +1 -0
  115. package/dist/observability/alerts.js +162 -0
  116. package/dist/observability/alerts.js.map +1 -0
  117. package/dist/observability/index.d.ts +4 -0
  118. package/dist/observability/index.d.ts.map +1 -0
  119. package/dist/observability/index.js +5 -0
  120. package/dist/observability/index.js.map +1 -0
  121. package/dist/observability/metrics.d.ts +64 -0
  122. package/dist/observability/metrics.d.ts.map +1 -0
  123. package/dist/observability/metrics.js +224 -0
  124. package/dist/observability/metrics.js.map +1 -0
  125. package/dist/observability/tracing.d.ts +44 -0
  126. package/dist/observability/tracing.d.ts.map +1 -0
  127. package/dist/observability/tracing.js +129 -0
  128. package/dist/observability/tracing.js.map +1 -0
  129. package/dist/persistence.d.ts +50 -0
  130. package/dist/persistence.d.ts.map +1 -0
  131. package/dist/persistence.js +486 -0
  132. package/dist/persistence.js.map +1 -0
  133. package/dist/types/index.d.ts +652 -0
  134. package/dist/types/index.d.ts.map +1 -0
  135. package/dist/types/index.js +131 -0
  136. package/dist/types/index.js.map +1 -0
  137. package/dist/utils/host.d.ts +14 -0
  138. package/dist/utils/host.d.ts.map +1 -0
  139. package/dist/utils/host.js +42 -0
  140. package/dist/utils/host.js.map +1 -0
  141. package/package.json +64 -0
@@ -0,0 +1,652 @@
1
+ /** Typed proposal categories — each maps to a council and approval flow */
2
+ export type ProposalType = "product-feature" | "security-change" | "technical-change" | "release-change" | "governance-change";
3
+ export declare const PROPOSAL_TYPES: ProposalType[];
4
+ export declare const PROPOSAL_TYPE_LABELS: Record<ProposalType, string>;
5
+ export type Council = "product-council" | "security-council" | "delivery-council" | "governance-council" | "user-council";
6
+ export declare const PROPOSAL_COUNCIL: Record<ProposalType, Council[]>;
7
+ export type RiskZone = "green" | "orange" | "red";
8
+ export declare const RISK_ZONE_LABELS: Record<RiskZone, string>;
9
+ export declare const RISK_ZONE_DEFINITIONS: Record<RiskZone, {
10
+ criteria: string;
11
+ process: string;
12
+ humanApprovals: number;
13
+ requiresSecurityReview: boolean;
14
+ requiresFormalVote: boolean;
15
+ }>;
16
+ export interface TypeQuorumConfig {
17
+ quorumPercent: number;
18
+ approvalPercent: number;
19
+ description: string;
20
+ }
21
+ export declare const TYPE_QUORUM: Record<ProposalType, TypeQuorumConfig>;
22
+ export type PipelineStage = "intake" | "qualification" | "analysis" | "critique" | "scoring" | "council" | "vote" | "spec" | "execution-gate" | "postmortem";
23
+ export declare const PIPELINE_STAGES: PipelineStage[];
24
+ export declare const PIPELINE_STAGE_LABELS: Record<PipelineStage, string>;
25
+ export interface AxisScore {
26
+ userImpact: number;
27
+ businessImpact: number;
28
+ effort: number;
29
+ securityRisk: number;
30
+ confidence: number;
31
+ }
32
+ export declare const SCORING_WEIGHTS: Record<keyof AxisScore, number>;
33
+ export interface CompositeScore {
34
+ axes: AxisScore;
35
+ weighted: number;
36
+ riskZone: RiskZone;
37
+ breakdown: string;
38
+ }
39
+ export interface RICEScore {
40
+ reach: number;
41
+ impact: number;
42
+ confidence: number;
43
+ effort: number;
44
+ riceScore: number;
45
+ rank?: number;
46
+ }
47
+ export interface ProposalContent {
48
+ title: string;
49
+ type: ProposalType;
50
+ problemStatement: string;
51
+ targetUser: string;
52
+ expectedOutcome: string;
53
+ successMetrics: string[];
54
+ scopeIn: string[];
55
+ scopeOut: string[];
56
+ permissionsImpact: string[];
57
+ dataImpact: string[];
58
+ technicalOptions: string[];
59
+ risks: string[];
60
+ dependencies: string[];
61
+ estimatedEffort: string;
62
+ confidenceScore: number;
63
+ recommendedDecision: string;
64
+ }
65
+ export interface AcceptanceCriterion {
66
+ id: string;
67
+ given: string;
68
+ when: string;
69
+ then: string;
70
+ met?: boolean;
71
+ evidence?: string;
72
+ }
73
+ export type ProposalStatus = "open" | "deliberating" | "approved" | "controlled" | "rejected" | "executed" | "failed";
74
+ export type VotePosition = "for" | "against" | "abstain";
75
+ export interface Vote {
76
+ agentId: string;
77
+ agentName: string;
78
+ position: VotePosition;
79
+ reasoning: string;
80
+ weight: number;
81
+ }
82
+ export interface AgentOutput {
83
+ agentId: string;
84
+ agentName: string;
85
+ role: string;
86
+ content: string;
87
+ vote?: Vote;
88
+ durationMs: number;
89
+ error?: string;
90
+ }
91
+ export type AgentRiskLevel = "low" | "medium" | "high" | "critical";
92
+ export interface StopCondition {
93
+ type: "timeout" | "error" | "threshold" | "manual";
94
+ description: string;
95
+ value?: string;
96
+ }
97
+ export interface AgentKPI {
98
+ name: string;
99
+ description: string;
100
+ target: string;
101
+ }
102
+ export interface CouncilMembership {
103
+ council: Council;
104
+ role: "lead" | "member" | "advisor";
105
+ }
106
+ export interface DAOAgent {
107
+ id: string;
108
+ name: string;
109
+ role: string;
110
+ description: string;
111
+ weight: number;
112
+ systemPrompt: string;
113
+ model?: string;
114
+ tools?: string[];
115
+ owner?: string;
116
+ mission?: string;
117
+ authorizedInputs?: string[];
118
+ authorizedData?: string[];
119
+ riskLevel?: AgentRiskLevel;
120
+ authorizedEnvironments?: string[];
121
+ stopConditions?: StopCondition[];
122
+ kpis?: AgentKPI[];
123
+ councils?: CouncilMembership[];
124
+ enabled?: boolean;
125
+ }
126
+ export interface HealthWeights {
127
+ passRate: number;
128
+ avgRating: number;
129
+ deliberationDepth: number;
130
+ participation: number;
131
+ }
132
+ export interface DAOConfig {
133
+ quorumPercent: number;
134
+ approvalThreshold: number;
135
+ defaultModel: string;
136
+ maxConcurrent: number;
137
+ riskThreshold: number;
138
+ requiredGates: string[];
139
+ typeQuorum: Partial<Record<ProposalType, TypeQuorumConfig>>;
140
+ quorumFloor: number;
141
+ staleThresholdHours?: number;
142
+ healthWeights?: HealthWeights;
143
+ }
144
+ export declare const DEFAULT_CONFIG: DAOConfig;
145
+ export interface Proposal {
146
+ id: number;
147
+ title: string;
148
+ type: ProposalType;
149
+ description: string;
150
+ context?: string;
151
+ problemStatement?: string;
152
+ acceptanceCriteria?: AcceptanceCriterion[] | string[];
153
+ successMetrics?: string[];
154
+ rollbackConditions?: string[];
155
+ affectedPaths?: string[];
156
+ content?: ProposalContent;
157
+ riskZone?: RiskZone;
158
+ compositeScore?: CompositeScore;
159
+ riceScore?: RICEScore;
160
+ stage?: PipelineStage;
161
+ proposedBy: string;
162
+ status: ProposalStatus;
163
+ votes: Vote[];
164
+ agentOutputs: AgentOutput[];
165
+ synthesis?: string;
166
+ executionResult?: string;
167
+ postmortem?: Postmortem;
168
+ amendmentPayload?: AmendmentPayload;
169
+ amendmentOrigin?: AmendmentOrigin;
170
+ amendmentState?: AmendmentState;
171
+ preAmendmentSnapshot?: AmendmentSnapshot;
172
+ dryRunAt?: string;
173
+ dryRunCanProceed?: boolean;
174
+ createdAt: string;
175
+ resolvedAt?: string;
176
+ }
177
+ export interface Postmortem {
178
+ outcome: "success" | "partial" | "failed";
179
+ metrics: {
180
+ name: string;
181
+ expected: string;
182
+ actual: string;
183
+ }[];
184
+ learnings: string[];
185
+ followUpActions: string[];
186
+ recordedAt: string;
187
+ recordedBy: string;
188
+ }
189
+ export type AmendmentType = "agent-update" | "agent-add" | "agent-remove" | "config-update" | "quorum-update" | "gate-update" | "council-update";
190
+ export interface AmendmentOrigin {
191
+ source: "human" | "agent";
192
+ agentId?: string;
193
+ }
194
+ export type AmendmentState = "pending-vote" | "approved-pending-human" | "approved" | "executed" | "rolled-back";
195
+ export interface AmendmentSnapshot {
196
+ agents: DAOAgent[];
197
+ config: DAOConfig;
198
+ capturedAt: string;
199
+ }
200
+ export interface AgentUpdatePayload {
201
+ type: "agent-update";
202
+ agentId: string;
203
+ changes: Partial<Omit<DAOAgent, "id">>;
204
+ }
205
+ export interface AgentAddPayload {
206
+ type: "agent-add";
207
+ agent: Omit<DAOAgent, "systemPrompt"> & {
208
+ systemPrompt?: string;
209
+ };
210
+ }
211
+ export interface AgentRemovePayload {
212
+ type: "agent-remove";
213
+ agentId: string;
214
+ }
215
+ export interface ConfigUpdatePayload {
216
+ type: "config-update";
217
+ changes: Partial<Omit<DAOConfig, "typeQuorum">>;
218
+ }
219
+ export interface QuorumUpdatePayload {
220
+ type: "quorum-update";
221
+ typeQuorum: Partial<Record<ProposalType, Partial<TypeQuorumConfig>>>;
222
+ }
223
+ export interface GateUpdatePayload {
224
+ type: "gate-update";
225
+ addGates?: string[];
226
+ removeGates?: string[];
227
+ }
228
+ export interface CouncilUpdatePayload {
229
+ type: "council-update";
230
+ agentId: string;
231
+ councils: CouncilMembership[];
232
+ }
233
+ export type AmendmentPayload = AgentUpdatePayload | AgentAddPayload | AgentRemovePayload | ConfigUpdatePayload | QuorumUpdatePayload | GateUpdatePayload | CouncilUpdatePayload;
234
+ export interface AuditEntry {
235
+ id: number;
236
+ timestamp: string;
237
+ proposalId: number;
238
+ layer: "governance" | "intelligence" | "delivery" | "control";
239
+ action: string;
240
+ actor: string;
241
+ details: string;
242
+ metadata?: Record<string, unknown>;
243
+ }
244
+ export interface GateResult {
245
+ gateId: string;
246
+ name: string;
247
+ passed: boolean;
248
+ severity: "blocker" | "warning" | "info";
249
+ message: string;
250
+ details?: Record<string, unknown>;
251
+ }
252
+ export interface ChecklistItem {
253
+ id: string;
254
+ category: "security" | "compliance" | "quality" | "operational";
255
+ label: string;
256
+ checked: boolean;
257
+ autoChecked: boolean;
258
+ details?: string;
259
+ }
260
+ export interface ControlCheckResult {
261
+ proposalId: number;
262
+ timestamp: string;
263
+ allGatesPassed: boolean;
264
+ blockerCount: number;
265
+ warningCount: number;
266
+ gates: GateResult[];
267
+ checklist: ChecklistItem[];
268
+ }
269
+ export interface DeliveryTask {
270
+ id: string;
271
+ title: string;
272
+ description: string;
273
+ effort: "xs" | "s" | "m" | "l" | "xl";
274
+ phase: number;
275
+ dependencies: string[];
276
+ status: "pending" | "in_progress" | "done";
277
+ }
278
+ export interface DeliveryPhase {
279
+ number: number;
280
+ name: string;
281
+ tasks: DeliveryTask[];
282
+ duration: string;
283
+ }
284
+ export interface DeliveryPlan {
285
+ proposalId: number;
286
+ createdAt: string;
287
+ phases: DeliveryPhase[];
288
+ branchStrategy: string;
289
+ rollbackPlan: string;
290
+ estimatedDuration: string;
291
+ }
292
+ export interface ExecutionSnapshot {
293
+ proposalId: number;
294
+ timestamp: string;
295
+ branch: string;
296
+ commitSha: string;
297
+ filesChanged: string[];
298
+ stateSnapshot: string;
299
+ }
300
+ export interface DryRunResult {
301
+ proposalId: number;
302
+ preview: string;
303
+ filesAffected: string[];
304
+ risks: string[];
305
+ estimatedDuration: string;
306
+ canProceed: boolean;
307
+ }
308
+ export type VerificationStatus = "unverified" | "success" | "partial" | "failed";
309
+ export interface ExecutionVerification {
310
+ proposalId: number;
311
+ status: VerificationStatus;
312
+ timestamp: string;
313
+ filesChanged: string[];
314
+ missingFiles: string[];
315
+ testOutput?: string;
316
+ testsPassed?: number;
317
+ testsFailed?: number;
318
+ compilationOk: boolean;
319
+ gitClean: boolean;
320
+ summary: string;
321
+ }
322
+ export interface OutcomeRating {
323
+ proposalId: number;
324
+ rater: string;
325
+ score: 1 | 2 | 3 | 4 | 5;
326
+ comment: string;
327
+ ratedAt: string;
328
+ }
329
+ export interface MetricSnapshot {
330
+ name: string;
331
+ before: string;
332
+ after: string;
333
+ unit?: string;
334
+ capturedAt: string;
335
+ }
336
+ export interface ProposalOutcome {
337
+ proposalId: number;
338
+ ratings: OutcomeRating[];
339
+ metrics: MetricSnapshot[];
340
+ overallScore: number;
341
+ status: "pending" | "tracked" | "reviewed";
342
+ createdAt: string;
343
+ updatedAt: string;
344
+ }
345
+ export interface HealthMetric {
346
+ name: string;
347
+ rawValue: number;
348
+ normalizedScore: number;
349
+ weight: number;
350
+ contribution: number;
351
+ displayValue: string;
352
+ }
353
+ export interface HealthScore {
354
+ score: number;
355
+ label: string;
356
+ metrics: HealthMetric[];
357
+ insufficientData: boolean;
358
+ proposalCount: number;
359
+ }
360
+ export interface HealthSnapshot {
361
+ weekKey: string;
362
+ year: number;
363
+ week: number;
364
+ score: number;
365
+ metrics: HealthMetric[];
366
+ proposalCount: number;
367
+ createdAt: string;
368
+ }
369
+ export interface SchemaField {
370
+ name: string;
371
+ label: string;
372
+ accessor: (proposal: Proposal) => unknown;
373
+ validator: (value: unknown) => boolean;
374
+ }
375
+ export interface GateSchema {
376
+ proposalType: ProposalType;
377
+ requiredFields: {
378
+ name: string;
379
+ label: string;
380
+ validator: (proposal: Proposal) => boolean;
381
+ }[];
382
+ requiredSections: {
383
+ heading: string;
384
+ label: string;
385
+ }[];
386
+ riskThresholdOverride?: number;
387
+ description: string;
388
+ }
389
+ export interface SchemaValidationResult {
390
+ passed: boolean;
391
+ gateId: string;
392
+ name: string;
393
+ severity: "blocker" | "warning" | "info";
394
+ message: string;
395
+ failures: {
396
+ field?: string;
397
+ section?: string;
398
+ expected: string;
399
+ actual: string;
400
+ }[];
401
+ details?: Record<string, unknown>;
402
+ }
403
+ export interface DAOState {
404
+ agents: DAOAgent[];
405
+ proposals: Proposal[];
406
+ config: DAOConfig;
407
+ nextProposalId: number;
408
+ initialized: boolean;
409
+ auditLog: AuditEntry[];
410
+ nextAuditId: number;
411
+ controlResults: Record<number, ControlCheckResult>;
412
+ deliveryPlans: Record<number, DeliveryPlan>;
413
+ artefacts: Record<number, DAOArtefacts>;
414
+ outcomes: Record<number, ProposalOutcome>;
415
+ snapshots: Record<number, ExecutionSnapshot>;
416
+ verifications: Record<number, ExecutionVerification>;
417
+ hostContext?: HostProjectContext;
418
+ healthSnapshots?: HealthSnapshot[];
419
+ daoRoot: string;
420
+ }
421
+ export interface HostProjectContext {
422
+ rootDir: string;
423
+ repoName: string;
424
+ repoOwner: string;
425
+ repoSlug: string;
426
+ branch: string;
427
+ language: string;
428
+ framework: string;
429
+ packageManager: string;
430
+ isSelfRepo: boolean;
431
+ }
432
+ export interface DecisionRecord {
433
+ id: number;
434
+ title: string;
435
+ type: ProposalType;
436
+ status: ProposalStatus;
437
+ riskZone?: RiskZone;
438
+ createdAt: string;
439
+ resolvedAt?: string;
440
+ }
441
+ export interface TallyResult {
442
+ proposalId: number;
443
+ approved: boolean;
444
+ quorumMet: boolean;
445
+ totalAgents: number;
446
+ votingAgents: number;
447
+ quorumPercent: number;
448
+ weightedFor: number;
449
+ weightedAgainst: number;
450
+ totalVotingWeight: number;
451
+ approvalScore: number;
452
+ votes: Vote[];
453
+ }
454
+ export interface DeliberationResult {
455
+ proposalId: number;
456
+ proposal: Proposal;
457
+ agentOutputs: AgentOutput[];
458
+ synthesis: string;
459
+ tally: TallyResult;
460
+ status: "approved" | "rejected";
461
+ durationMs: number;
462
+ }
463
+ export interface DecisionBrief {
464
+ proposalId: number;
465
+ title: string;
466
+ type: ProposalType;
467
+ objective: string;
468
+ summary: string;
469
+ approvalScore: number;
470
+ quorumPercent: number;
471
+ decision: "approved" | "rejected";
472
+ date: string;
473
+ keyAgents: {
474
+ name: string;
475
+ position: VotePosition;
476
+ weight: number;
477
+ }[];
478
+ }
479
+ export interface ADR {
480
+ proposalId: number;
481
+ adrId: string;
482
+ title: string;
483
+ status: "proposed" | "accepted" | "deprecated" | "superseded";
484
+ context: string;
485
+ decision: string;
486
+ options: {
487
+ name: string;
488
+ description: string;
489
+ selected: boolean;
490
+ pros: string[];
491
+ cons: string[];
492
+ }[];
493
+ consequences: string[];
494
+ rejectedAlternatives: string[];
495
+ }
496
+ export interface RiskReport {
497
+ proposalId: number;
498
+ overallRiskScore: number;
499
+ riskLevel: AgentRiskLevel;
500
+ risks: {
501
+ category: string;
502
+ description: string;
503
+ severity: "low" | "medium" | "high" | "critical";
504
+ likelihood: "low" | "medium" | "high";
505
+ mitigation: string;
506
+ }[];
507
+ permissions: string[];
508
+ dataSurfaces: string[];
509
+ guardrails: string[];
510
+ }
511
+ export interface PRDLite {
512
+ proposalId: number;
513
+ objective: string;
514
+ userStories: {
515
+ id: string;
516
+ title: string;
517
+ asA: string;
518
+ iWant: string;
519
+ soThat: string;
520
+ acceptanceCriteria: string[];
521
+ }[];
522
+ inScope: string[];
523
+ outOfScope: string[];
524
+ metrics: {
525
+ name: string;
526
+ baseline: string;
527
+ target: string;
528
+ }[];
529
+ openQuestions: string[];
530
+ }
531
+ export interface ImplementationPlan {
532
+ proposalId: number;
533
+ phases: {
534
+ number: number;
535
+ name: string;
536
+ tasks: {
537
+ id: string;
538
+ title: string;
539
+ effort: string;
540
+ dependencies: string[];
541
+ }[];
542
+ }[];
543
+ branchStrategy: string;
544
+ estimatedDuration: string;
545
+ criticalPath: string[];
546
+ }
547
+ export interface TestPlan {
548
+ proposalId: number;
549
+ unitTests: {
550
+ target: string;
551
+ description: string;
552
+ }[];
553
+ integrationTests: {
554
+ target: string;
555
+ description: string;
556
+ }[];
557
+ e2eTests: {
558
+ scenario: string;
559
+ steps: string;
560
+ }[];
561
+ nonRegressionChecks: string[];
562
+ testEnvironments: string[];
563
+ }
564
+ export interface ReleasePacket {
565
+ proposalId: number;
566
+ version: string;
567
+ changelog: string;
568
+ releaseNotes: string;
569
+ preReleaseChecklist: {
570
+ item: string;
571
+ checked: boolean;
572
+ }[];
573
+ rollbackPlan: string;
574
+ storeNotes: string;
575
+ }
576
+ export interface ArtefactFileReference {
577
+ path: string;
578
+ url?: string;
579
+ }
580
+ export interface ArtefactFileIndex {
581
+ decisionBrief: ArtefactFileReference;
582
+ adr: ArtefactFileReference;
583
+ riskReport: ArtefactFileReference;
584
+ prdLite: ArtefactFileReference;
585
+ implementationPlan: ArtefactFileReference;
586
+ testPlan: ArtefactFileReference;
587
+ releasePacket: ArtefactFileReference;
588
+ }
589
+ export interface DAOArtefacts {
590
+ proposalId: number;
591
+ generatedAt: string;
592
+ decisionBrief: DecisionBrief;
593
+ adr: ADR;
594
+ riskReport: RiskReport;
595
+ prdLite: PRDLite;
596
+ implementationPlan: ImplementationPlan;
597
+ testPlan: TestPlan;
598
+ releasePacket: ReleasePacket;
599
+ files?: ArtefactFileIndex;
600
+ }
601
+ export interface StorageSettings {
602
+ mode: "local" | "github" | "hybrid";
603
+ githubSyncEnabled: boolean;
604
+ daoRoot: string;
605
+ }
606
+ /**
607
+ * Interface that every host adapter must implement.
608
+ * The core is host-agnostic — it calls these methods to interact
609
+ * with the outside world (spawn agents, read files, etc.)
610
+ */
611
+ export interface HostAdapter {
612
+ /** Unique identifier for this host (e.g. "pi", "opencode") */
613
+ readonly hostId: string;
614
+ /** Spawn a single agent and return its output */
615
+ spawnAgent(params: {
616
+ agent: DAOAgent;
617
+ proposal: Proposal;
618
+ systemPrompt: string;
619
+ timeoutMs?: number;
620
+ }): Promise<AgentOutput>;
621
+ /** Spawn multiple agents concurrently (up to maxConcurrent) */
622
+ spawnAgents(params: {
623
+ agents: DAOAgent[];
624
+ proposal: Proposal;
625
+ maxConcurrent: number;
626
+ }): Promise<AgentOutput[]>;
627
+ /** Log a message to the host's logging system */
628
+ log(params: {
629
+ level: "info" | "warn" | "error";
630
+ message: string;
631
+ service: string;
632
+ }): Promise<void>;
633
+ /** Get the current working directory */
634
+ getWorkingDirectory(): string;
635
+ /** Read a file from disk */
636
+ readFile(path: string): Promise<string>;
637
+ /** Write a file to disk */
638
+ writeFile(path: string, content: string): Promise<void>;
639
+ /** Execute a shell command */
640
+ exec(command: string, options?: {
641
+ cwd?: string;
642
+ timeout?: number;
643
+ }): Promise<{
644
+ stdout: string;
645
+ stderr: string;
646
+ exitCode: number;
647
+ }>;
648
+ /** Check if the host has a specific capability */
649
+ hasCapability(capability: string): boolean;
650
+ }
651
+ export declare function createInitialState(daoRoot: string): DAOState;
652
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}