@intrect/openswarm 0.8.1 → 0.9.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/README.md +15 -28
- package/dist/adapters/claude.d.ts +5 -0
- package/dist/adapters/claude.d.ts.map +1 -1
- package/dist/adapters/claude.js +11 -1
- package/dist/adapters/claude.js.map +1 -1
- package/dist/adapters/codex.d.ts +2 -0
- package/dist/adapters/codex.d.ts.map +1 -1
- package/dist/adapters/codex.js +8 -1
- package/dist/adapters/codex.js.map +1 -1
- package/dist/adapters/codexResponses.d.ts +2 -0
- package/dist/adapters/codexResponses.d.ts.map +1 -1
- package/dist/adapters/codexResponses.js +7 -1
- package/dist/adapters/codexResponses.js.map +1 -1
- package/dist/adapters/gpt.d.ts +1 -0
- package/dist/adapters/gpt.d.ts.map +1 -1
- package/dist/adapters/gpt.js +4 -1
- package/dist/adapters/gpt.js.map +1 -1
- package/dist/adapters/local.d.ts +2 -0
- package/dist/adapters/local.d.ts.map +1 -1
- package/dist/adapters/local.js +6 -1
- package/dist/adapters/local.js.map +1 -1
- package/dist/adapters/memoryMcp.d.ts +21 -0
- package/dist/adapters/memoryMcp.d.ts.map +1 -0
- package/dist/adapters/memoryMcp.js +51 -0
- package/dist/adapters/memoryMcp.js.map +1 -0
- package/dist/adapters/openrouter.d.ts +1 -0
- package/dist/adapters/openrouter.d.ts.map +1 -1
- package/dist/adapters/openrouter.js +4 -1
- package/dist/adapters/openrouter.js.map +1 -1
- package/dist/adapters/tools.d.ts.map +1 -1
- package/dist/adapters/tools.js +32 -0
- package/dist/adapters/tools.js.map +1 -1
- package/dist/adapters/types.d.ts +8 -0
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/agents/draftAnalyzer.js +3 -3
- package/dist/agents/draftAnalyzer.js.map +1 -1
- package/dist/automation/autonomousRunner.d.ts +4 -4
- package/dist/automation/autonomousRunner.d.ts.map +1 -1
- package/dist/automation/autonomousRunner.js +19 -22
- package/dist/automation/autonomousRunner.js.map +1 -1
- package/dist/automation/runnerExecution.d.ts +1 -1
- package/dist/automation/runnerExecution.d.ts.map +1 -1
- package/dist/automation/runnerExecution.js +8 -9
- package/dist/automation/runnerExecution.js.map +1 -1
- package/dist/automation/workerAuditLog.d.ts.map +1 -1
- package/dist/automation/workerAuditLog.js +30 -31
- package/dist/automation/workerAuditLog.js.map +1 -1
- package/dist/cli/projectHandler.d.ts +18 -0
- package/dist/cli/projectHandler.d.ts.map +1 -0
- package/dist/cli/projectHandler.js +92 -0
- package/dist/cli/projectHandler.js.map +1 -0
- package/dist/cli.js +27 -0
- package/dist/cli.js.map +1 -1
- package/dist/core/config.d.ts +12 -12
- package/dist/core/config.js +2 -2
- package/dist/core/config.js.map +1 -1
- package/dist/core/types.d.ts +2 -2
- package/dist/core/types.d.ts.map +1 -1
- package/dist/issues/graphql/resolvers.d.ts +4 -4
- package/dist/issues/schema.d.ts +3 -3
- package/dist/knowledge/index.d.ts.map +1 -1
- package/dist/knowledge/index.js +12 -4
- package/dist/knowledge/index.js.map +1 -1
- package/dist/linear/format.d.ts +59 -0
- package/dist/linear/format.d.ts.map +1 -0
- package/dist/linear/format.js +108 -0
- package/dist/linear/format.js.map +1 -0
- package/dist/linear/linear.d.ts.map +1 -1
- package/dist/linear/linear.js +97 -155
- package/dist/linear/linear.js.map +1 -1
- package/dist/mcp/memoryServer.d.ts +3 -0
- package/dist/mcp/memoryServer.d.ts.map +1 -0
- package/dist/mcp/memoryServer.js +57 -0
- package/dist/mcp/memoryServer.js.map +1 -0
- package/dist/memory/memoryCore.d.ts +8 -0
- package/dist/memory/memoryCore.d.ts.map +1 -1
- package/dist/memory/memoryCore.js +21 -1
- package/dist/memory/memoryCore.js.map +1 -1
- package/dist/memory/repoKnowledge.d.ts +12 -0
- package/dist/memory/repoKnowledge.d.ts.map +1 -1
- package/dist/memory/repoKnowledge.js +33 -3
- package/dist/memory/repoKnowledge.js.map +1 -1
- package/dist/support/web.d.ts.map +1 -1
- package/dist/support/web.js +10 -10
- package/dist/support/web.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/knowledge/index.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,yCAAyC;AACzC,kCAAkC;AAClC,+CAA+C;AAG/C,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAc,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAuC,MAAM,eAAe,CAAC;AAE1G,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/knowledge/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/** Absolute date `YYYY-MM-DD` — bodies never use relative or full-ISO dates. */
|
|
2
|
+
export declare function isoDate(d?: Date): string;
|
|
3
|
+
/** A `file:line` code reference (or just the path when no line is given). */
|
|
4
|
+
export declare function codeRef(file: string, line?: number): string;
|
|
5
|
+
export interface CommentSection {
|
|
6
|
+
/** Short label, e.g. "Reviewer". */
|
|
7
|
+
label: string;
|
|
8
|
+
/** A one-liner (kept inline), a multi-line note, or a list (rendered as bullets). */
|
|
9
|
+
body: string | string[];
|
|
10
|
+
}
|
|
11
|
+
export interface AutomationCommentInput {
|
|
12
|
+
/** Short bold lead, e.g. "Task complete". */
|
|
13
|
+
heading: string;
|
|
14
|
+
/** A natural one- or two-line summary in plain language — the voice of the comment. */
|
|
15
|
+
summary?: string;
|
|
16
|
+
/** Supporting details — empty ones are dropped. */
|
|
17
|
+
sections?: CommentSection[];
|
|
18
|
+
/** Trace facts for the quiet sign-off (session, attempts, …). */
|
|
19
|
+
meta?: Record<string, string | number | undefined>;
|
|
20
|
+
/** Sign-off attribution. Default: "via OpenSwarm". */
|
|
21
|
+
attribution?: string;
|
|
22
|
+
/** Sign-off date (absolute). Defaults to today. */
|
|
23
|
+
date?: Date;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Build a comment that reads like a person wrote it: bold lead, a plain-language
|
|
27
|
+
* summary, a few supporting details, and a single muted (italic) sign-off line
|
|
28
|
+
* carrying just enough trace to find the run later.
|
|
29
|
+
*/
|
|
30
|
+
export declare function formatAutomationComment(input: AutomationCommentInput): string;
|
|
31
|
+
export interface IssueDescriptionInput {
|
|
32
|
+
problem?: string;
|
|
33
|
+
cause?: string;
|
|
34
|
+
solution?: string;
|
|
35
|
+
verification?: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Build a bug/work issue description in the Problem / Cause / Solution /
|
|
39
|
+
* Verification layout. Empty sections are omitted.
|
|
40
|
+
*/
|
|
41
|
+
export declare function formatIssueDescription(input: IssueDescriptionInput): string;
|
|
42
|
+
export interface TaskDescriptionInput {
|
|
43
|
+
/** One-line (or short) summary of the sub-task. */
|
|
44
|
+
summary: string;
|
|
45
|
+
scope?: string[];
|
|
46
|
+
verify?: string[];
|
|
47
|
+
dependsOn?: string[];
|
|
48
|
+
fileScope?: string[];
|
|
49
|
+
estimateMinutes?: number;
|
|
50
|
+
/** Parent title for the auto-decomposition sign-off. */
|
|
51
|
+
parentTitle?: string;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Build a decomposition sub-issue description: a summary, then scannable
|
|
55
|
+
* Scope / Verify sections and a short facts list (depends-on, file scope,
|
|
56
|
+
* estimate), with a quiet sign-off.
|
|
57
|
+
*/
|
|
58
|
+
export declare function formatTaskDescription(input: TaskDescriptionInput): string;
|
|
59
|
+
//# sourceMappingURL=format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/linear/format.ts"],"names":[],"mappings":"AAYA,gFAAgF;AAChF,wBAAgB,OAAO,CAAC,CAAC,GAAE,IAAiB,GAAG,MAAM,CAEpD;AAED,6EAA6E;AAC7E,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAE3D;AAID,MAAM,WAAW,cAAc;IAC7B,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,qFAAqF;IACrF,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACzB;AAkBD,MAAM,WAAW,sBAAsB;IACrC,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;IACnD,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAqB7E;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAW3E;AAED,MAAM,WAAW,oBAAoB;IACnC,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAqBzE"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
// ============================================
|
|
2
|
+
// OpenSwarm — Linear output formatter
|
|
3
|
+
// ============================================
|
|
4
|
+
//
|
|
5
|
+
// Writes Linear comments/issues the way an engineer would: a plain-language lead,
|
|
6
|
+
// short facts kept inline, lists only where they help, and a quiet sign-off — not
|
|
7
|
+
// a telemetry dump. Still scannable (conclusion first, code refs, absolute dates),
|
|
8
|
+
// just without the robotic feel.
|
|
9
|
+
//
|
|
10
|
+
// Pure string builders: no I/O, no side effects, so the style lives in one place
|
|
11
|
+
// and stays unit-testable.
|
|
12
|
+
/** Absolute date `YYYY-MM-DD` — bodies never use relative or full-ISO dates. */
|
|
13
|
+
export function isoDate(d = new Date()) {
|
|
14
|
+
return d.toISOString().slice(0, 10);
|
|
15
|
+
}
|
|
16
|
+
/** A `file:line` code reference (or just the path when no line is given). */
|
|
17
|
+
export function codeRef(file, line) {
|
|
18
|
+
return line != null ? `${file}:${line}` : file;
|
|
19
|
+
}
|
|
20
|
+
const BULLET = '- ';
|
|
21
|
+
/**
|
|
22
|
+
* Render a section the way someone would jot it down: a short single-line fact
|
|
23
|
+
* goes inline (`**Label:** value`); a list or a multi-line note gets its own block.
|
|
24
|
+
*/
|
|
25
|
+
function renderSection(section) {
|
|
26
|
+
if (Array.isArray(section.body)) {
|
|
27
|
+
const items = section.body.filter((line) => line && line.trim());
|
|
28
|
+
return items.length ? `**${section.label}:**\n${items.map((l) => `${BULLET}${l}`).join('\n')}` : '';
|
|
29
|
+
}
|
|
30
|
+
const text = section.body.trim();
|
|
31
|
+
if (!text)
|
|
32
|
+
return '';
|
|
33
|
+
return text.includes('\n')
|
|
34
|
+
? `**${section.label}:**\n${text}`
|
|
35
|
+
: `**${section.label}:** ${text}`;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Build a comment that reads like a person wrote it: bold lead, a plain-language
|
|
39
|
+
* summary, a few supporting details, and a single muted (italic) sign-off line
|
|
40
|
+
* carrying just enough trace to find the run later.
|
|
41
|
+
*/
|
|
42
|
+
export function formatAutomationComment(input) {
|
|
43
|
+
const parts = [`**${input.heading}**`];
|
|
44
|
+
if (input.summary?.trim())
|
|
45
|
+
parts.push(input.summary.trim());
|
|
46
|
+
for (const section of input.sections ?? []) {
|
|
47
|
+
const rendered = renderSection(section);
|
|
48
|
+
if (rendered)
|
|
49
|
+
parts.push(rendered);
|
|
50
|
+
}
|
|
51
|
+
const trace = [];
|
|
52
|
+
const attribution = input.attribution ?? 'via OpenSwarm';
|
|
53
|
+
if (attribution)
|
|
54
|
+
trace.push(attribution);
|
|
55
|
+
if (input.meta) {
|
|
56
|
+
for (const [key, value] of Object.entries(input.meta)) {
|
|
57
|
+
if (value !== undefined && value !== '')
|
|
58
|
+
trace.push(`${key} ${value}`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
trace.push(isoDate(input.date));
|
|
62
|
+
return `${parts.join('\n\n')}\n\n_${trace.join(' · ')}_`;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Build a bug/work issue description in the Problem / Cause / Solution /
|
|
66
|
+
* Verification layout. Empty sections are omitted.
|
|
67
|
+
*/
|
|
68
|
+
export function formatIssueDescription(input) {
|
|
69
|
+
const order = [
|
|
70
|
+
['problem', 'Problem'],
|
|
71
|
+
['cause', 'Cause'],
|
|
72
|
+
['solution', 'Solution'],
|
|
73
|
+
['verification', 'Verification'],
|
|
74
|
+
];
|
|
75
|
+
return order
|
|
76
|
+
.filter(([key]) => input[key]?.trim())
|
|
77
|
+
.map(([key, label]) => `**${label}** — ${input[key].trim()}`)
|
|
78
|
+
.join('\n\n');
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Build a decomposition sub-issue description: a summary, then scannable
|
|
82
|
+
* Scope / Verify sections and a short facts list (depends-on, file scope,
|
|
83
|
+
* estimate), with a quiet sign-off.
|
|
84
|
+
*/
|
|
85
|
+
export function formatTaskDescription(input) {
|
|
86
|
+
const parts = [input.summary.trim()];
|
|
87
|
+
if (input.scope?.length) {
|
|
88
|
+
parts.push(`**Scope:**\n${input.scope.map((s) => `${BULLET}${s}`).join('\n')}`);
|
|
89
|
+
}
|
|
90
|
+
if (input.verify?.length) {
|
|
91
|
+
parts.push(`**Verify:**\n${input.verify.map((s) => `${BULLET}${s}`).join('\n')}`);
|
|
92
|
+
}
|
|
93
|
+
const facts = [];
|
|
94
|
+
if (input.dependsOn?.length)
|
|
95
|
+
facts.push(`Depends on: ${input.dependsOn.join(', ')}`);
|
|
96
|
+
if (input.fileScope?.length)
|
|
97
|
+
facts.push(`File scope: ${input.fileScope.join(', ')}`);
|
|
98
|
+
if (input.estimateMinutes != null)
|
|
99
|
+
facts.push(`Estimate: ${input.estimateMinutes} min`);
|
|
100
|
+
if (facts.length)
|
|
101
|
+
parts.push(facts.map((f) => `${BULLET}${f}`).join('\n'));
|
|
102
|
+
let body = parts.join('\n\n');
|
|
103
|
+
if (input.parentTitle) {
|
|
104
|
+
body += `\n\n_Split out from "${input.parentTitle}" during planning._`;
|
|
105
|
+
}
|
|
106
|
+
return body;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/linear/format.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linear.d.ts","sourceRoot":"","sources":["../../src/linear/linear.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAkI3E;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAKvC;AAaD;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAGhD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAG3C;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,IAAI,CAUlF;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAc3D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,YAAY,CAKxC;AAED,2DAA2D;AAC3D,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,6EAA6E;AAC7E,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAQD;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAIlF;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAUxG;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,EAAE,CAAC,CA2D5B;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAgEjC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAsBtE;AAuDD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,mBAAmB,CAAC,EAAE,MAAM,GAAG,kBAAkB,GAChD,OAAO,CAAC,eAAe,EAAE,CAAC,CA4I5B;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAuD3F;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,aAAa,GAAG,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,EACpE,OAAO,SAAI,GACV,OAAO,CAAC,IAAI,CAAC,CAwCf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,uEAAuE;AACvE,wBAAsB,OAAO,CAC3B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GACxF,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"linear.d.ts","sourceRoot":"","sources":["../../src/linear/linear.ts"],"names":[],"mappings":"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"}
|
package/dist/linear/linear.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// OpenSwarm - Linear Integration
|
|
3
3
|
// ============================================
|
|
4
4
|
import { LinearClient } from '@linear/sdk';
|
|
5
|
-
import {
|
|
5
|
+
import { formatAutomationComment } from './format.js';
|
|
6
6
|
import { setLinearClient } from './projectUpdater.js';
|
|
7
7
|
import { withRateLimit } from '../support/rateLimiter.js';
|
|
8
8
|
/**
|
|
@@ -654,51 +654,54 @@ export async function addComment(issueId, body) {
|
|
|
654
654
|
}
|
|
655
655
|
/** Log a HALT event (low confidence) as a comment on a Linear issue */
|
|
656
656
|
export async function logHalt(issueId, sessionId, confidence, iteration, reason) {
|
|
657
|
-
await addComment(issueId,
|
|
657
|
+
await addComment(issueId, formatAutomationComment({
|
|
658
|
+
heading: 'HALT — low confidence',
|
|
659
|
+
summary: `Confidence ${confidence}% is below threshold on attempt #${iteration}; manual input needed.`,
|
|
660
|
+
sections: [
|
|
661
|
+
{ label: 'Reason', body: reason },
|
|
662
|
+
{ label: 'Suggested next step', body: ['Review the task requirements', 'Provide more context', 'Break it into smaller sub-tasks'] },
|
|
663
|
+
],
|
|
664
|
+
meta: { Session: sessionId, Confidence: `${confidence}%`, Attempt: `#${iteration}` },
|
|
665
|
+
}));
|
|
658
666
|
}
|
|
659
667
|
/** Log work start comment for an agent */
|
|
660
668
|
export async function logWorkStart(issueId, sessionName) {
|
|
661
|
-
await addComment(issueId,
|
|
669
|
+
await addComment(issueId, formatAutomationComment({
|
|
670
|
+
heading: 'Work started',
|
|
671
|
+
meta: { Agent: sessionName },
|
|
672
|
+
}));
|
|
662
673
|
await updateIssueState(issueId, 'In Progress');
|
|
663
674
|
}
|
|
664
675
|
/**
|
|
665
676
|
* Log progress comment for an agent
|
|
666
677
|
*/
|
|
667
678
|
export async function logProgress(issueId, sessionName, progress) {
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
Time: ${timestamp}`;
|
|
674
|
-
await addComment(issueId, body);
|
|
679
|
+
await addComment(issueId, formatAutomationComment({
|
|
680
|
+
heading: 'Progress update',
|
|
681
|
+
summary: progress,
|
|
682
|
+
meta: { Agent: sessionName },
|
|
683
|
+
}));
|
|
675
684
|
}
|
|
676
685
|
/**
|
|
677
686
|
* Log work completion comment for an agent
|
|
678
687
|
*/
|
|
679
688
|
export async function logWorkComplete(issueId, sessionName, summary) {
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
Time: ${timestamp}`;
|
|
686
|
-
await addComment(issueId, body);
|
|
689
|
+
await addComment(issueId, formatAutomationComment({
|
|
690
|
+
heading: 'Work complete',
|
|
691
|
+
summary: summary?.trim() || undefined,
|
|
692
|
+
meta: { Agent: sessionName },
|
|
693
|
+
}));
|
|
687
694
|
await updateIssueState(issueId, 'Done');
|
|
688
695
|
}
|
|
689
696
|
/**
|
|
690
697
|
* Log blocked comment for an agent
|
|
691
698
|
*/
|
|
692
699
|
export async function logBlocked(issueId, sessionName, reason) {
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
User intervention required
|
|
699
|
-
|
|
700
|
-
Time: ${timestamp}`;
|
|
701
|
-
await addComment(issueId, body);
|
|
700
|
+
await addComment(issueId, formatAutomationComment({
|
|
701
|
+
heading: 'Blocked — user intervention required',
|
|
702
|
+
sections: [{ label: 'Reason', body: reason }],
|
|
703
|
+
meta: { Agent: sessionName },
|
|
704
|
+
}));
|
|
702
705
|
// Use 'Todo' instead of 'Blocked' (Blocked state may not exist in team workflow)
|
|
703
706
|
await updateIssueState(issueId, 'Todo');
|
|
704
707
|
}
|
|
@@ -707,162 +710,107 @@ Time: ${timestamp}`;
|
|
|
707
710
|
* Log pair session start comment
|
|
708
711
|
*/
|
|
709
712
|
export async function logPairStart(issueId, sessionId, projectPath) {
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
⏰ Time: ${timestamp}
|
|
716
|
-
|
|
717
|
-
Starting work in Worker/Reviewer pair mode.
|
|
718
|
-
|
|
719
|
-
---
|
|
720
|
-
_Auto-generated_`;
|
|
721
|
-
await addComment(issueId, body);
|
|
713
|
+
await addComment(issueId, formatAutomationComment({
|
|
714
|
+
heading: 'Pair session started',
|
|
715
|
+
summary: 'Starting work in Worker/Reviewer pair mode.',
|
|
716
|
+
meta: { Session: sessionId, Project: projectPath },
|
|
717
|
+
}));
|
|
722
718
|
await updateIssueState(issueId, 'In Progress');
|
|
723
719
|
}
|
|
724
720
|
/**
|
|
725
721
|
* Log pair session review start comment
|
|
726
722
|
*/
|
|
727
723
|
export async function logPairReview(issueId, sessionId, attempt) {
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
⏰ Time: ${timestamp}
|
|
734
|
-
|
|
735
|
-
Reviewer is reviewing Worker's output.`;
|
|
736
|
-
await addComment(issueId, body);
|
|
724
|
+
await addComment(issueId, formatAutomationComment({
|
|
725
|
+
heading: 'Reviewing',
|
|
726
|
+
summary: "Reviewer is evaluating the Worker's output.",
|
|
727
|
+
meta: { Session: sessionId, Attempt: `#${attempt}` },
|
|
728
|
+
}));
|
|
737
729
|
await updateIssueState(issueId, 'In Review');
|
|
738
730
|
}
|
|
739
731
|
/**
|
|
740
732
|
* Log pair session revision request comment
|
|
741
733
|
*/
|
|
742
734
|
export async function logPairRevision(issueId, sessionId, feedback, issues) {
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
:
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
**Feedback:** ${feedback}
|
|
753
|
-
|
|
754
|
-
**Issues:**
|
|
755
|
-
${issueList}
|
|
756
|
-
|
|
757
|
-
Worker will proceed with revisions.`;
|
|
758
|
-
await addComment(issueId, body);
|
|
735
|
+
await addComment(issueId, formatAutomationComment({
|
|
736
|
+
heading: 'Revision requested',
|
|
737
|
+
summary: 'Worker will proceed with revisions.',
|
|
738
|
+
sections: [
|
|
739
|
+
{ label: 'Feedback', body: feedback },
|
|
740
|
+
{ label: 'Issues', body: issues.length > 0 ? issues : ['(none)'] },
|
|
741
|
+
],
|
|
742
|
+
meta: { Session: sessionId },
|
|
743
|
+
}));
|
|
759
744
|
await updateIssueState(issueId, 'In Progress');
|
|
760
745
|
}
|
|
761
746
|
/**
|
|
762
747
|
* Log pair session completion comment
|
|
763
748
|
*/
|
|
764
749
|
export async function logPairComplete(issueId, sessionId, stats) {
|
|
765
|
-
const timestamp = new Date().toLocaleString(getDateLocale());
|
|
766
750
|
const durationStr = stats.duration < 60
|
|
767
751
|
? `${stats.duration}s`
|
|
768
752
|
: `${Math.floor(stats.duration / 60)}m ${stats.duration % 60}s`;
|
|
769
|
-
const filesStr = stats.filesChanged.length > 0
|
|
770
|
-
? stats.filesChanged.slice(0, 10).map(f => `- \`${f}\``).join('\n')
|
|
771
|
-
: '(none)';
|
|
772
|
-
// Build sections
|
|
773
753
|
const sections = [];
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
sections.push(`## 🔨 Worker Report
|
|
777
|
-
|
|
778
|
-
**What was done:**
|
|
779
|
-
${stats.workerSummary}`);
|
|
780
|
-
if (stats.workerCommands && stats.workerCommands.length > 0) {
|
|
781
|
-
const cmdStr = stats.workerCommands.slice(0, 5).map(c => `- \`${c}\``).join('\n');
|
|
782
|
-
sections.push(`**Commands executed:**
|
|
783
|
-
${cmdStr}`);
|
|
784
|
-
}
|
|
754
|
+
if (stats.workerCommands && stats.workerCommands.length > 0) {
|
|
755
|
+
sections.push({ label: 'Commands run', body: stats.workerCommands.slice(0, 5).map((c) => `\`${c}\``) });
|
|
785
756
|
}
|
|
786
|
-
// Reviewer section
|
|
787
757
|
if (stats.reviewerFeedback) {
|
|
788
|
-
sections.push(
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
**Feedback:**
|
|
793
|
-
${stats.reviewerFeedback}`);
|
|
758
|
+
sections.push({
|
|
759
|
+
label: `Reviewer — ${stats.reviewerDecision || 'APPROVE'}`,
|
|
760
|
+
body: stats.reviewerFeedback.trim(),
|
|
761
|
+
});
|
|
794
762
|
}
|
|
795
|
-
// Tester section
|
|
796
763
|
if (stats.testResults) {
|
|
797
764
|
const { passed, failed, coverage, failedTests } = stats.testResults;
|
|
798
765
|
const totalTests = passed + failed;
|
|
799
766
|
const passRate = totalTests > 0 ? ((passed / totalTests) * 100).toFixed(1) : '0';
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
if (coverage !== undefined) {
|
|
804
|
-
testSection += `\n- 📊 Coverage: ${coverage.toFixed(1)}%`;
|
|
805
|
-
}
|
|
767
|
+
const lines = [`Passed ${passed}/${totalTests} (${passRate}%)`];
|
|
768
|
+
if (coverage !== undefined)
|
|
769
|
+
lines.push(`Coverage ${coverage.toFixed(1)}%`);
|
|
806
770
|
if (failed > 0 && failedTests && failedTests.length > 0) {
|
|
807
|
-
const
|
|
808
|
-
|
|
809
|
-
if (failedTests.length > 3) {
|
|
810
|
-
testSection += `\n- ... and ${failedTests.length - 3} more`;
|
|
811
|
-
}
|
|
771
|
+
const extra = failedTests.length > 3 ? ` (+${failedTests.length - 3} more)` : '';
|
|
772
|
+
lines.push(`Failed: ${failedTests.slice(0, 3).join(', ')}${extra}`);
|
|
812
773
|
}
|
|
813
|
-
sections.push(
|
|
774
|
+
sections.push({ label: 'Tests', body: lines });
|
|
814
775
|
}
|
|
815
|
-
// Remaining work section
|
|
816
776
|
if (stats.remainingWork) {
|
|
817
|
-
sections.push(
|
|
818
|
-
|
|
819
|
-
${stats.remainingWork}`);
|
|
777
|
+
sections.push({ label: 'Remaining work', body: stats.remainingWork.trim() });
|
|
820
778
|
}
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
_Automated by Worker/Reviewer/Tester pipeline_`;
|
|
840
|
-
await addComment(issueId, body);
|
|
779
|
+
sections.push({
|
|
780
|
+
label: 'Changed files',
|
|
781
|
+
body: stats.filesChanged.length > 0
|
|
782
|
+
? stats.filesChanged.slice(0, 10).map((f) => `\`${f}\``)
|
|
783
|
+
: ['(none)'],
|
|
784
|
+
});
|
|
785
|
+
await addComment(issueId, formatAutomationComment({
|
|
786
|
+
heading: 'Task complete',
|
|
787
|
+
summary: stats.workerSummary?.trim() || undefined,
|
|
788
|
+
sections,
|
|
789
|
+
meta: {
|
|
790
|
+
Session: sessionId,
|
|
791
|
+
Iterations: stats.attempts,
|
|
792
|
+
Duration: durationStr,
|
|
793
|
+
Files: stats.filesChanged.length,
|
|
794
|
+
},
|
|
795
|
+
attribution: 'Worker/Reviewer/Tester pipeline',
|
|
796
|
+
}));
|
|
841
797
|
await updateIssueState(issueId, 'Done');
|
|
842
798
|
}
|
|
843
799
|
/**
|
|
844
800
|
* Log pair session failure/rejection comment
|
|
845
801
|
*/
|
|
846
802
|
export async function logPairFailed(issueId, sessionId, reason, details) {
|
|
847
|
-
const timestamp = new Date().toLocaleString(getDateLocale());
|
|
848
803
|
const reasonText = {
|
|
849
|
-
rejected: '
|
|
850
|
-
max_attempts: '
|
|
851
|
-
error: '
|
|
804
|
+
rejected: 'Reviewer rejected the work',
|
|
805
|
+
max_attempts: 'Maximum retry attempts exceeded',
|
|
806
|
+
error: 'An error occurred',
|
|
852
807
|
}[reason];
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
**Details:**
|
|
861
|
-
${details}
|
|
862
|
-
|
|
863
|
-
---
|
|
864
|
-
_Manual intervention required_`;
|
|
865
|
-
await addComment(issueId, body);
|
|
808
|
+
await addComment(issueId, formatAutomationComment({
|
|
809
|
+
heading: 'Work failed — manual intervention required',
|
|
810
|
+
summary: reasonText,
|
|
811
|
+
sections: [{ label: 'Details', body: details }],
|
|
812
|
+
meta: { Session: sessionId },
|
|
813
|
+
}));
|
|
866
814
|
// Don't change state on failure; let the user decide
|
|
867
815
|
}
|
|
868
816
|
/**
|
|
@@ -973,21 +921,15 @@ export async function createSubIssue(parentId, title, description, options) {
|
|
|
973
921
|
* Mark a parent issue as 'decomposed'
|
|
974
922
|
*/
|
|
975
923
|
export async function markAsDecomposed(issueId, subIssueCount, totalMinutes) {
|
|
976
|
-
const
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
This issue has been decomposed into sub-issues.
|
|
986
|
-
The parent issue remains active while child issues execute.
|
|
987
|
-
Once all sub-issues are completed, OpenSwarm will close this issue automatically.
|
|
988
|
-
|
|
989
|
-
---
|
|
990
|
-
_Auto-decomposed by Planner agent_`;
|
|
924
|
+
const body = formatAutomationComment({
|
|
925
|
+
heading: 'Decomposed into sub-issues',
|
|
926
|
+
summary: 'The parent stays active while child issues execute; it closes automatically once all sub-issues complete.',
|
|
927
|
+
sections: [{
|
|
928
|
+
label: 'Result',
|
|
929
|
+
body: [`Sub-issues created: ${subIssueCount}`, `Total estimated time: ${totalMinutes} min`],
|
|
930
|
+
}],
|
|
931
|
+
attribution: 'Planner agent',
|
|
932
|
+
});
|
|
991
933
|
await addComment(issueId, body);
|
|
992
934
|
// Keep parent issue active until all child issues complete.
|
|
993
935
|
try {
|