@guyghost/swarm-dao-core 0.1.2 → 0.1.4
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/config.d.ts.map +1 -1
- package/dist/config.js +63 -11
- package/dist/config.js.map +1 -1
- package/dist/control/gates.d.ts.map +1 -1
- package/dist/control/gates.js +42 -2
- package/dist/control/gates.js.map +1 -1
- package/dist/delivery/artefacts.d.ts.map +1 -1
- package/dist/delivery/artefacts.js +4 -3
- package/dist/delivery/artefacts.js.map +1 -1
- package/dist/delivery/dependencies.d.ts +20 -0
- package/dist/delivery/dependencies.d.ts.map +1 -0
- package/dist/delivery/dependencies.js +55 -0
- package/dist/delivery/dependencies.js.map +1 -0
- package/dist/delivery/index.d.ts +1 -0
- package/dist/delivery/index.d.ts.map +1 -1
- package/dist/delivery/index.js +1 -0
- package/dist/delivery/index.js.map +1 -1
- package/dist/governance/voting.d.ts.map +1 -1
- package/dist/governance/voting.js +13 -4
- package/dist/governance/voting.js.map +1 -1
- package/dist/integrations/github.d.ts.map +1 -1
- package/dist/integrations/github.js +59 -39
- package/dist/integrations/github.js.map +1 -1
- package/dist/integrations/http.d.ts +18 -0
- package/dist/integrations/http.d.ts.map +1 -0
- package/dist/integrations/http.js +52 -0
- package/dist/integrations/http.js.map +1 -0
- package/dist/persistence.d.ts +12 -2
- package/dist/persistence.d.ts.map +1 -1
- package/dist/persistence.js +218 -67
- package/dist/persistence.js.map +1 -1
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/host.d.ts +1 -1
- package/dist/utils/host.d.ts.map +1 -1
- package/dist/utils/host.js +74 -5
- package/dist/utils/host.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// ============================================================
|
|
2
2
|
// Swarm DAO Core — GitHub Integration
|
|
3
3
|
// ============================================================
|
|
4
|
+
import { HttpRequestError, requestJson } from "./http.js";
|
|
4
5
|
import { slugify } from "./utils.js";
|
|
5
6
|
let config = null;
|
|
6
7
|
export function configureGitHub(cfg) {
|
|
@@ -30,70 +31,89 @@ export async function ghCreateBranch(branchName, baseBranch) {
|
|
|
30
31
|
return null;
|
|
31
32
|
const base = baseBranch || config?.defaultBranch || "main";
|
|
32
33
|
// Get base branch SHA
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
let refData;
|
|
35
|
+
try {
|
|
36
|
+
({ data: refData } = await requestJson(`${getApiBase()}/repos/${config?.owner}/${config?.repo}/git/ref/heads/${base}`, {
|
|
37
|
+
headers: getAuthHeaders(),
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
if (error instanceof HttpRequestError) {
|
|
42
|
+
throw new Error(`Failed to get ref for ${base}: ${error.status}`);
|
|
43
|
+
}
|
|
44
|
+
throw error;
|
|
38
45
|
}
|
|
39
|
-
const
|
|
40
|
-
const sha = refData.object?.sha;
|
|
46
|
+
const sha = refData?.object?.sha;
|
|
41
47
|
if (!sha)
|
|
42
48
|
return null;
|
|
43
49
|
// Create branch
|
|
44
|
-
|
|
50
|
+
await requestJson(`${getApiBase()}/repos/${config?.owner}/${config?.repo}/git/refs`, {
|
|
45
51
|
method: "POST",
|
|
46
52
|
headers: { ...getAuthHeaders(), "Content-Type": "application/json" },
|
|
47
53
|
body: JSON.stringify({ ref: `refs/heads/${branchName}`, sha }),
|
|
54
|
+
allowStatuses: [422],
|
|
48
55
|
});
|
|
49
|
-
if (!createRes.ok && createRes.status !== 422) {
|
|
50
|
-
throw new Error(`Failed to create branch: ${createRes.status}`);
|
|
51
|
-
}
|
|
52
56
|
return { ref: `refs/heads/${branchName}`, sha };
|
|
53
57
|
}
|
|
54
58
|
export async function ghCreatePullRequest(proposal, options) {
|
|
55
59
|
if (!isGitHubEnabled())
|
|
56
60
|
return null;
|
|
57
61
|
const body = buildPRBody(proposal, options.linkedIssue);
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
body
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
62
|
+
let data;
|
|
63
|
+
try {
|
|
64
|
+
({ data } = await requestJson(`${getApiBase()}/repos/${config?.owner}/${config?.repo}/pulls`, {
|
|
65
|
+
method: "POST",
|
|
66
|
+
headers: { ...getAuthHeaders(), "Content-Type": "application/json" },
|
|
67
|
+
body: JSON.stringify({
|
|
68
|
+
title: proposal.title,
|
|
69
|
+
body,
|
|
70
|
+
head: options.headBranch,
|
|
71
|
+
base: options.baseBranch || config?.defaultBranch || "main",
|
|
72
|
+
draft: options.draft ?? false,
|
|
73
|
+
}),
|
|
74
|
+
}));
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
if (error instanceof HttpRequestError) {
|
|
78
|
+
throw new Error(`Failed to create PR: ${error.status}`);
|
|
79
|
+
}
|
|
80
|
+
throw error;
|
|
71
81
|
}
|
|
72
|
-
|
|
82
|
+
if (!data)
|
|
83
|
+
return null;
|
|
73
84
|
return { number: data.number, url: data.html_url };
|
|
74
85
|
}
|
|
75
86
|
export async function ghCreateIssue(title, body, labels) {
|
|
76
87
|
if (!isGitHubEnabled())
|
|
77
88
|
return null;
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
89
|
+
try {
|
|
90
|
+
const { data } = await requestJson(`${getApiBase()}/repos/${config?.owner}/${config?.repo}/issues`, {
|
|
91
|
+
method: "POST",
|
|
92
|
+
headers: { ...getAuthHeaders(), "Content-Type": "application/json" },
|
|
93
|
+
body: JSON.stringify({ title, body, labels: labels ?? ["dao-proposal"] }),
|
|
94
|
+
});
|
|
95
|
+
if (!data)
|
|
96
|
+
return null;
|
|
97
|
+
return { number: data.number, url: data.html_url };
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
84
100
|
return null;
|
|
85
|
-
|
|
86
|
-
return { number: data.number, url: data.html_url };
|
|
101
|
+
}
|
|
87
102
|
}
|
|
88
103
|
export async function ghUpdateIssue(issueNumber, updates) {
|
|
89
104
|
if (!isGitHubEnabled())
|
|
90
105
|
return false;
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
106
|
+
try {
|
|
107
|
+
await requestJson(`${getApiBase()}/repos/${config?.owner}/${config?.repo}/issues/${issueNumber}`, {
|
|
108
|
+
method: "PATCH",
|
|
109
|
+
headers: { ...getAuthHeaders(), "Content-Type": "application/json" },
|
|
110
|
+
body: JSON.stringify(updates),
|
|
111
|
+
});
|
|
112
|
+
return true;
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
97
117
|
}
|
|
98
118
|
function buildPRBody(proposal, linkedIssue) {
|
|
99
119
|
let body = `## Proposal #${proposal.id}: ${proposal.title}\n\n**Type:** ${proposal.type}\n**Status:** ${proposal.status}\n\n### Description\n${proposal.description}\n`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/integrations/github.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,sCAAsC;AACtC,+DAA+D;AAG/D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAWrC,IAAI,MAAM,GAAwB,IAAI,CAAC;AAEvC,MAAM,UAAU,eAAe,CAAC,GAA0B;IACxD,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,GAAG,EAAkB,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,MAAM,EAAE,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;AACvF,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,MAAM,EAAE,OAAO,IAAI,wBAAwB,CAAC;AACrD,CAAC;AAED,SAAS,cAAc;IACrB,OAAO;QACL,aAAa,EAAE,UAAU,MAAM,EAAE,KAAK,EAAE;QACxC,MAAM,EAAE,6BAA6B;QACrC,sBAAsB,EAAE,YAAY;KACrC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAkB;IAChD,OAAO,OAAO,QAAQ,CAAC,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,UAAkB,EAClB,UAAmB;IAEnB,IAAI,CAAC,eAAe,EAAE;QAAE,OAAO,IAAI,CAAC;IAEpC,MAAM,IAAI,GAAG,UAAU,IAAI,MAAM,EAAE,aAAa,IAAI,MAAM,CAAC;IAE3D,sBAAsB;IACtB,
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/integrations/github.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
interface JsonRequestOptions {
|
|
2
|
+
method?: string;
|
|
3
|
+
headers?: Record<string, string>;
|
|
4
|
+
body?: string;
|
|
5
|
+
timeoutMs?: number;
|
|
6
|
+
allowStatuses?: number[];
|
|
7
|
+
}
|
|
8
|
+
export declare class HttpRequestError extends Error {
|
|
9
|
+
readonly status: number;
|
|
10
|
+
readonly url: string;
|
|
11
|
+
constructor(message: string, status: number, url: string);
|
|
12
|
+
}
|
|
13
|
+
export declare function requestJson<T>(url: string, { timeoutMs, allowStatuses, ...options }?: JsonRequestOptions): Promise<{
|
|
14
|
+
status: number;
|
|
15
|
+
data: T | null;
|
|
16
|
+
}>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/integrations/http.ts"],"names":[],"mappings":"AAAA,UAAU,kBAAkB;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,qBAAa,gBAAiB,SAAQ,KAAK;aAGvB,MAAM,EAAE,MAAM;aACd,GAAG,EAAE,MAAM;gBAF3B,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM;CAK9B;AAMD,wBAAsB,WAAW,CAAC,CAAC,EACjC,GAAG,EAAE,MAAM,EACX,EAAE,SAAkB,EAAE,aAAkB,EAAE,GAAG,OAAO,EAAE,GAAE,kBAAuB,GAC9E,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAA;CAAE,CAAC,CAkC7C"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export class HttpRequestError extends Error {
|
|
2
|
+
status;
|
|
3
|
+
url;
|
|
4
|
+
constructor(message, status, url) {
|
|
5
|
+
super(message);
|
|
6
|
+
this.status = status;
|
|
7
|
+
this.url = url;
|
|
8
|
+
this.name = "HttpRequestError";
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
function truncate(text, maxLength) {
|
|
12
|
+
return text.length > maxLength ? `${text.slice(0, maxLength)}...` : text;
|
|
13
|
+
}
|
|
14
|
+
export async function requestJson(url, { timeoutMs = 15_000, allowStatuses = [], ...options } = {}) {
|
|
15
|
+
const controller = new AbortController();
|
|
16
|
+
const timeout = setTimeout(() => controller.abort(), timeoutMs);
|
|
17
|
+
try {
|
|
18
|
+
const response = await fetch(url, {
|
|
19
|
+
method: options.method,
|
|
20
|
+
headers: options.headers,
|
|
21
|
+
body: options.body,
|
|
22
|
+
signal: controller.signal,
|
|
23
|
+
});
|
|
24
|
+
const text = typeof response.text === "function" ? await response.text() : "";
|
|
25
|
+
const isAllowedFailure = allowStatuses.includes(response.status);
|
|
26
|
+
if (!response.ok && !isAllowedFailure) {
|
|
27
|
+
const snippet = text.trim() ? ` - ${truncate(text.trim(), 300)}` : "";
|
|
28
|
+
throw new HttpRequestError(`HTTP ${response.status} for ${url}${snippet}`, response.status, url);
|
|
29
|
+
}
|
|
30
|
+
if (!text.trim()) {
|
|
31
|
+
return { status: response.status, data: null };
|
|
32
|
+
}
|
|
33
|
+
let data;
|
|
34
|
+
try {
|
|
35
|
+
data = JSON.parse(text);
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
throw new Error(`Invalid JSON response from ${url}: ${error instanceof Error ? error.message : String(error)}`);
|
|
39
|
+
}
|
|
40
|
+
return { status: response.status, data: data };
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
if (error instanceof Error && error.name === "AbortError") {
|
|
44
|
+
throw new Error(`Request timed out after ${timeoutMs}ms for ${url}`);
|
|
45
|
+
}
|
|
46
|
+
throw error;
|
|
47
|
+
}
|
|
48
|
+
finally {
|
|
49
|
+
clearTimeout(timeout);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=http.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/integrations/http.ts"],"names":[],"mappings":"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"}
|
package/dist/persistence.d.ts
CHANGED
|
@@ -5,11 +5,13 @@ export declare function getDecisionsDir(daoRoot: string): string;
|
|
|
5
5
|
export declare function padId(id: number): string;
|
|
6
6
|
export declare function getProposalPath(daoRoot: string, id: number): string;
|
|
7
7
|
export declare function initStorage(cwd: string): Promise<string>;
|
|
8
|
-
export declare function migrateFromLegacy(cwd: string): Promise<boolean>;
|
|
8
|
+
export declare function migrateFromLegacy(cwd: string, legacyDirectories?: string[]): Promise<boolean>;
|
|
9
9
|
export declare function getState(): DAOState;
|
|
10
10
|
export declare function setState(newState: DAOState | null): void;
|
|
11
11
|
export declare function getOrCreateState(cwd: string): DAOState;
|
|
12
|
-
export declare function loadState(cwd: string
|
|
12
|
+
export declare function loadState(cwd: string, options?: {
|
|
13
|
+
legacyDirectories?: string[];
|
|
14
|
+
}): Promise<DAOState | null>;
|
|
13
15
|
export declare function loadProposalsFromDisk(daoRoot: string): Promise<Proposal[]>;
|
|
14
16
|
export declare function saveProposal(proposalId: number): Promise<string | null>;
|
|
15
17
|
export declare function saveState(): Promise<void>;
|
|
@@ -21,11 +23,19 @@ export declare function removeAgent(agentId: string): Promise<boolean>;
|
|
|
21
23
|
export declare function getAgent(agentId: string): DAOAgent | undefined;
|
|
22
24
|
export declare function listAgents(): DAOAgent[];
|
|
23
25
|
export declare function createProposal(title: string, type: string, description: string, proposedBy: string, context?: string): Promise<Proposal>;
|
|
26
|
+
export declare function createProposalsBatch(entries: Array<{
|
|
27
|
+
title: string;
|
|
28
|
+
type: string;
|
|
29
|
+
description: string;
|
|
30
|
+
proposedBy: string;
|
|
31
|
+
context?: string;
|
|
32
|
+
}>): Promise<Proposal[]>;
|
|
24
33
|
export declare function getProposal(proposalId: number): Proposal | undefined;
|
|
25
34
|
export declare function listProposals(): Proposal[];
|
|
26
35
|
export declare function updateProposalStatus(proposalId: number, status: ProposalStatus): Promise<boolean>;
|
|
27
36
|
export declare function addVote(proposalId: number, vote: Vote): Promise<boolean>;
|
|
28
37
|
export declare function storeAgentOutput(proposalId: number, output: AgentOutput): Promise<boolean>;
|
|
38
|
+
export declare function storeDeliberationBatch(proposalId: number, votes: Vote[], outputs: AgentOutput[]): Promise<boolean>;
|
|
29
39
|
export declare function storeSynthesis(proposalId: number, synthesis: string): Promise<boolean>;
|
|
30
40
|
export declare function storeCompositeScore(proposalId: number, score: CompositeScore | undefined): Promise<boolean>;
|
|
31
41
|
export declare function storeControlResult(proposalId: number, result: ControlCheckResult): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../src/persistence.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,QAAQ,EACR,YAAY,EACZ,QAAQ,EAER,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,EACrB,QAAQ,EACR,eAAe,EACf,cAAc,EACd,eAAe,EACf,IAAI,EACL,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../src/persistence.ts"],"names":[],"mappings":"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"}
|