@guyghost/swarm-dao-core 0.1.2 → 0.1.3
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 +8 -0
- package/dist/persistence.d.ts.map +1 -1
- package/dist/persistence.js +182 -57
- package/dist/persistence.js.map +1 -1
- package/dist/types/index.d.ts +2 -0
- 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
|
@@ -21,11 +21,19 @@ export declare function removeAgent(agentId: string): Promise<boolean>;
|
|
|
21
21
|
export declare function getAgent(agentId: string): DAOAgent | undefined;
|
|
22
22
|
export declare function listAgents(): DAOAgent[];
|
|
23
23
|
export declare function createProposal(title: string, type: string, description: string, proposedBy: string, context?: string): Promise<Proposal>;
|
|
24
|
+
export declare function createProposalsBatch(entries: Array<{
|
|
25
|
+
title: string;
|
|
26
|
+
type: string;
|
|
27
|
+
description: string;
|
|
28
|
+
proposedBy: string;
|
|
29
|
+
context?: string;
|
|
30
|
+
}>): Promise<Proposal[]>;
|
|
24
31
|
export declare function getProposal(proposalId: number): Proposal | undefined;
|
|
25
32
|
export declare function listProposals(): Proposal[];
|
|
26
33
|
export declare function updateProposalStatus(proposalId: number, status: ProposalStatus): Promise<boolean>;
|
|
27
34
|
export declare function addVote(proposalId: number, vote: Vote): Promise<boolean>;
|
|
28
35
|
export declare function storeAgentOutput(proposalId: number, output: AgentOutput): Promise<boolean>;
|
|
36
|
+
export declare function storeDeliberationBatch(proposalId: number, votes: Vote[], outputs: AgentOutput[]): Promise<boolean>;
|
|
29
37
|
export declare function storeSynthesis(proposalId: number, synthesis: string): Promise<boolean>;
|
|
30
38
|
export declare function storeCompositeScore(proposalId: number, score: CompositeScore | undefined): Promise<boolean>;
|
|
31
39
|
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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"}
|