mcp-server-opencode 1.2.0 → 1.3.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/CHANGELOG.md +27 -0
- package/README.md +34 -5
- package/build/src/index.js +19 -6
- package/build/src/index.js.map +1 -1
- package/build/src/modules/shared/execution-report.d.ts +66 -0
- package/build/src/modules/shared/execution-report.d.ts.map +1 -0
- package/build/src/modules/shared/execution-report.js +407 -0
- package/build/src/modules/shared/execution-report.js.map +1 -0
- package/build/src/modules/shared/execution-usage.d.ts +50 -0
- package/build/src/modules/shared/execution-usage.d.ts.map +1 -0
- package/build/src/modules/shared/execution-usage.js +89 -0
- package/build/src/modules/shared/execution-usage.js.map +1 -0
- package/build/src/modules/shared/git-workspace.d.ts +34 -0
- package/build/src/modules/shared/git-workspace.d.ts.map +1 -0
- package/build/src/modules/shared/git-workspace.js +193 -0
- package/build/src/modules/shared/git-workspace.js.map +1 -0
- package/build/src/modules/shared/instructions.d.ts.map +1 -1
- package/build/src/modules/shared/instructions.js +8 -2
- package/build/src/modules/shared/instructions.js.map +1 -1
- package/build/src/modules/shared/message-id.d.ts +3 -0
- package/build/src/modules/shared/message-id.d.ts.map +1 -0
- package/build/src/modules/shared/message-id.js +6 -0
- package/build/src/modules/shared/message-id.js.map +1 -0
- package/build/src/modules/shared/opencode-client.d.ts +12 -2
- package/build/src/modules/shared/opencode-client.d.ts.map +1 -1
- package/build/src/modules/shared/opencode-client.js +117 -34
- package/build/src/modules/shared/opencode-client.js.map +1 -1
- package/build/src/modules/shared/permission-scopes.d.ts +6 -0
- package/build/src/modules/shared/permission-scopes.d.ts.map +1 -0
- package/build/src/modules/shared/permission-scopes.js +60 -0
- package/build/src/modules/shared/permission-scopes.js.map +1 -0
- package/build/src/modules/shared/permissions.d.ts +2 -0
- package/build/src/modules/shared/permissions.d.ts.map +1 -1
- package/build/src/modules/shared/permissions.js +24 -3
- package/build/src/modules/shared/permissions.js.map +1 -1
- package/build/src/modules/shared/prompt-dispatch.d.ts +13 -0
- package/build/src/modules/shared/prompt-dispatch.d.ts.map +1 -0
- package/build/src/modules/shared/prompt-dispatch.js +34 -0
- package/build/src/modules/shared/prompt-dispatch.js.map +1 -0
- package/build/src/modules/shared/run-observer.d.ts +5 -0
- package/build/src/modules/shared/run-observer.d.ts.map +1 -0
- package/build/src/modules/shared/run-observer.js +421 -0
- package/build/src/modules/shared/run-observer.js.map +1 -0
- package/build/src/modules/shared/server-registry.d.ts +4 -0
- package/build/src/modules/shared/server-registry.d.ts.map +1 -1
- package/build/src/modules/shared/server-registry.js.map +1 -1
- package/build/src/modules/shared/task-registry.d.ts +64 -0
- package/build/src/modules/shared/task-registry.d.ts.map +1 -1
- package/build/src/modules/shared/task-registry.js +75 -0
- package/build/src/modules/shared/task-registry.js.map +1 -1
- package/build/src/modules/shared/workspace-manager.d.ts +25 -0
- package/build/src/modules/shared/workspace-manager.d.ts.map +1 -0
- package/build/src/modules/shared/workspace-manager.js +105 -0
- package/build/src/modules/shared/workspace-manager.js.map +1 -0
- package/build/src/modules/tools/cancel_task.d.ts.map +1 -1
- package/build/src/modules/tools/cancel_task.js +26 -2
- package/build/src/modules/tools/cancel_task.js.map +1 -1
- package/build/src/modules/tools/cleanup_workspace.d.ts +3 -0
- package/build/src/modules/tools/cleanup_workspace.d.ts.map +1 -0
- package/build/src/modules/tools/cleanup_workspace.js +82 -0
- package/build/src/modules/tools/cleanup_workspace.js.map +1 -0
- package/build/src/modules/tools/continue_task.d.ts.map +1 -1
- package/build/src/modules/tools/continue_task.js +116 -6
- package/build/src/modules/tools/continue_task.js.map +1 -1
- package/build/src/modules/tools/get_task_result.d.ts.map +1 -1
- package/build/src/modules/tools/get_task_result.js +108 -40
- package/build/src/modules/tools/get_task_result.js.map +1 -1
- package/build/src/modules/tools/get_task_status.d.ts.map +1 -1
- package/build/src/modules/tools/get_task_status.js +69 -6
- package/build/src/modules/tools/get_task_status.js.map +1 -1
- package/build/src/modules/tools/index.d.ts.map +1 -1
- package/build/src/modules/tools/index.js +2 -0
- package/build/src/modules/tools/index.js.map +1 -1
- package/build/src/modules/tools/list_agents.d.ts.map +1 -1
- package/build/src/modules/tools/list_agents.js +26 -3
- package/build/src/modules/tools/list_agents.js.map +1 -1
- package/build/src/modules/tools/start_server.d.ts.map +1 -1
- package/build/src/modules/tools/start_server.js +9 -9
- package/build/src/modules/tools/start_server.js.map +1 -1
- package/build/src/modules/tools/start_task.d.ts.map +1 -1
- package/build/src/modules/tools/start_task.js +218 -13
- package/build/src/modules/tools/start_task.js.map +1 -1
- package/build/src/modules/tools/stop_server.d.ts.map +1 -1
- package/build/src/modules/tools/stop_server.js +17 -0
- package/build/src/modules/tools/stop_server.js.map +1 -1
- package/build/src/modules/tools/wait_for_task.d.ts.map +1 -1
- package/build/src/modules/tools/wait_for_task.js +110 -24
- package/build/src/modules/tools/wait_for_task.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-report.js","sourceRoot":"","sources":["../../../../src/modules/shared/execution-report.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { AssistantEntry } from "./opencode-client.js";
|
|
2
|
+
export type UsageMetricName = "input" | "output" | "reasoning" | "cache_read" | "cache_write" | "reported_cost";
|
|
3
|
+
export type UsageMetric = {
|
|
4
|
+
value: number | null;
|
|
5
|
+
complete: boolean;
|
|
6
|
+
missing_messages: number;
|
|
7
|
+
};
|
|
8
|
+
export type UsageBreakdown = {
|
|
9
|
+
provider_id: string | null;
|
|
10
|
+
model_id: string | null;
|
|
11
|
+
message_count: number;
|
|
12
|
+
input: UsageMetric;
|
|
13
|
+
output: UsageMetric;
|
|
14
|
+
reasoning: UsageMetric;
|
|
15
|
+
cache_read: UsageMetric;
|
|
16
|
+
cache_write: UsageMetric;
|
|
17
|
+
reported_cost: UsageMetric;
|
|
18
|
+
};
|
|
19
|
+
export type UsageSummary = {
|
|
20
|
+
message_count: number;
|
|
21
|
+
input: UsageMetric;
|
|
22
|
+
output: UsageMetric;
|
|
23
|
+
reasoning: UsageMetric;
|
|
24
|
+
cache_read: UsageMetric;
|
|
25
|
+
cache_write: UsageMetric;
|
|
26
|
+
reported_cost: UsageMetric;
|
|
27
|
+
breakdown: UsageBreakdown[];
|
|
28
|
+
};
|
|
29
|
+
export type ExecutionUsageReport = {
|
|
30
|
+
currency: null;
|
|
31
|
+
cost_label: "reported_by_opencode_not_invoiced_cost";
|
|
32
|
+
scope: {
|
|
33
|
+
session_messages: "all_direct_assistant_messages_passed";
|
|
34
|
+
run_messages: "direct_assistant_messages_parented_to_current_user_message";
|
|
35
|
+
descendants_included: false;
|
|
36
|
+
subagent_sessions_included: false;
|
|
37
|
+
};
|
|
38
|
+
run: UsageSummary | null;
|
|
39
|
+
session: UsageSummary;
|
|
40
|
+
};
|
|
41
|
+
export type ExecutionUsageSnapshot = {
|
|
42
|
+
captured_at: string;
|
|
43
|
+
snapshot_kind: "live_observation" | "run_finalization";
|
|
44
|
+
/** Null when the SDK message snapshot could not be fetched. */
|
|
45
|
+
report: ExecutionUsageReport | null;
|
|
46
|
+
diagnostic?: string;
|
|
47
|
+
};
|
|
48
|
+
/** Aggregate only direct assistant-message INFO metrics; parts are deliberately ignored. */
|
|
49
|
+
export declare function buildExecutionUsage(entries: AssistantEntry[], currentMessageID?: string | null): ExecutionUsageReport;
|
|
50
|
+
//# sourceMappingURL=execution-usage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-usage.d.ts","sourceRoot":"","sources":["../../../../src/modules/shared/execution-usage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,MAAM,eAAe,GACvB,OAAO,GACP,QAAQ,GACR,WAAW,GACX,YAAY,GACZ,aAAa,GACb,eAAe,CAAC;AAEpB,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,WAAW,CAAC;IACvB,UAAU,EAAE,WAAW,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,WAAW,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,WAAW,CAAC;IACvB,UAAU,EAAE,WAAW,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,WAAW,CAAC;IAC3B,SAAS,EAAE,cAAc,EAAE,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,IAAI,CAAC;IACf,UAAU,EAAE,wCAAwC,CAAC;IACrD,KAAK,EAAE;QACL,gBAAgB,EAAE,sCAAsC,CAAC;QACzD,YAAY,EAAE,4DAA4D,CAAC;QAC3E,oBAAoB,EAAE,KAAK,CAAC;QAC5B,0BAA0B,EAAE,KAAK,CAAC;KACnC,CAAC;IACF,GAAG,EAAE,YAAY,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,kBAAkB,GAAG,kBAAkB,CAAC;IACvD,+DAA+D;IAC/D,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAwFF,4FAA4F;AAC5F,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,cAAc,EAAE,EACzB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAC/B,oBAAoB,CAoBtB"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
const METRICS = [
|
|
2
|
+
"input",
|
|
3
|
+
"output",
|
|
4
|
+
"reasoning",
|
|
5
|
+
"cache_read",
|
|
6
|
+
"cache_write",
|
|
7
|
+
"reported_cost",
|
|
8
|
+
];
|
|
9
|
+
function finiteMetric(value) {
|
|
10
|
+
return typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : null;
|
|
11
|
+
}
|
|
12
|
+
function metric(values) {
|
|
13
|
+
let value = values.length === 0 ? null : 0;
|
|
14
|
+
let missingMessages = 0;
|
|
15
|
+
for (const item of values) {
|
|
16
|
+
if (item === null) {
|
|
17
|
+
missingMessages += 1;
|
|
18
|
+
value = null;
|
|
19
|
+
}
|
|
20
|
+
else if (value !== null) {
|
|
21
|
+
value += item;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
value,
|
|
26
|
+
complete: missingMessages === 0 && values.length > 0,
|
|
27
|
+
missing_messages: missingMessages,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function metricValue(info, key) {
|
|
31
|
+
if (key === "reported_cost")
|
|
32
|
+
return finiteMetric(info.cost);
|
|
33
|
+
const tokens = info.tokens;
|
|
34
|
+
if (typeof tokens !== "object" || tokens === null)
|
|
35
|
+
return null;
|
|
36
|
+
const tokenFields = tokens;
|
|
37
|
+
if (key === "cache_read" || key === "cache_write") {
|
|
38
|
+
const cache = tokenFields.cache;
|
|
39
|
+
return typeof cache === "object" && cache !== null
|
|
40
|
+
? finiteMetric(cache[key === "cache_read" ? "read" : "write"])
|
|
41
|
+
: null;
|
|
42
|
+
}
|
|
43
|
+
return finiteMetric(tokenFields[key]);
|
|
44
|
+
}
|
|
45
|
+
function summarize(entries) {
|
|
46
|
+
const unique = new Map();
|
|
47
|
+
let anonymousIndex = 0;
|
|
48
|
+
for (const entry of entries) {
|
|
49
|
+
const info = entry.info;
|
|
50
|
+
const id = typeof info.id === "string" && info.id.length > 0
|
|
51
|
+
? info.id
|
|
52
|
+
: `__anonymous_${anonymousIndex++}`;
|
|
53
|
+
unique.set(id, info);
|
|
54
|
+
}
|
|
55
|
+
const messages = [...unique.values()];
|
|
56
|
+
const makeMetrics = (items) => Object.fromEntries(METRICS.map((key) => [key, metric(items.map((item) => metricValue(item, key)))]));
|
|
57
|
+
const groups = new Map();
|
|
58
|
+
for (const item of messages) {
|
|
59
|
+
const provider = typeof item.providerID === "string" && item.providerID ? item.providerID : null;
|
|
60
|
+
const model = typeof item.modelID === "string" && item.modelID ? item.modelID : null;
|
|
61
|
+
const key = JSON.stringify([provider, model]);
|
|
62
|
+
groups.set(key, [...(groups.get(key) ?? []), item]);
|
|
63
|
+
}
|
|
64
|
+
const breakdown = [...groups.entries()].map(([key, items]) => {
|
|
65
|
+
const [provider_id, model_id] = JSON.parse(key);
|
|
66
|
+
return { provider_id, model_id, message_count: items.length, ...makeMetrics(items) };
|
|
67
|
+
});
|
|
68
|
+
return { message_count: messages.length, ...makeMetrics(messages), breakdown };
|
|
69
|
+
}
|
|
70
|
+
/** Aggregate only direct assistant-message INFO metrics; parts are deliberately ignored. */
|
|
71
|
+
export function buildExecutionUsage(entries, currentMessageID) {
|
|
72
|
+
const session = summarize(entries);
|
|
73
|
+
const run = typeof currentMessageID === "string"
|
|
74
|
+
? summarize(entries.filter((entry) => entry.info.parentID === currentMessageID))
|
|
75
|
+
: null;
|
|
76
|
+
return {
|
|
77
|
+
currency: null,
|
|
78
|
+
cost_label: "reported_by_opencode_not_invoiced_cost",
|
|
79
|
+
scope: {
|
|
80
|
+
session_messages: "all_direct_assistant_messages_passed",
|
|
81
|
+
run_messages: "direct_assistant_messages_parented_to_current_user_message",
|
|
82
|
+
descendants_included: false,
|
|
83
|
+
subagent_sessions_included: false,
|
|
84
|
+
},
|
|
85
|
+
run,
|
|
86
|
+
session,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=execution-usage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-usage.js","sourceRoot":"","sources":["../../../../src/modules/shared/execution-usage.ts"],"names":[],"mappings":"AAsEA,MAAM,OAAO,GAAyB;IACpC,OAAO;IACP,QAAQ;IACR,WAAW;IACX,YAAY;IACZ,aAAa;IACb,eAAe;CAChB,CAAC;AAEF,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1F,CAAC;AAED,SAAS,MAAM,CAAC,MAA4B;IAC1C,IAAI,KAAK,GAAkB,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,eAAe,IAAI,CAAC,CAAC;YACrB,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;aAAM,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1B,KAAK,IAAI,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO;QACL,KAAK;QACL,QAAQ,EAAE,eAAe,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QACpD,gBAAgB,EAAE,eAAe;KAClC,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,IAAiB,EAAE,GAAc;IACpD,IAAI,GAAG,KAAK,eAAe;QAAE,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/D,MAAM,WAAW,GAAG,MAAiC,CAAC;IACtD,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QAChC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAChD,CAAC,CAAC,YAAY,CAAE,KAAiC,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC3F,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IACD,OAAO,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,SAAS,CAAC,OAAyB;IAC1C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC9C,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAmB,CAAC;QACvC,MAAM,EAAE,GACN,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC;YAC/C,CAAC,CAAC,IAAI,CAAC,EAAE;YACT,CAAC,CAAC,eAAe,cAAc,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACvB,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,CAAC,KAAoB,EAAE,EAAE,CAC3C,MAAM,CAAC,WAAW,CAChB,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAChD,CAAC;IACrC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,QAAQ,GACZ,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;QAClF,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACrF,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,SAAS,GAAqB,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC7E,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmC,CAAC;QAClF,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;IACvF,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;AACjF,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,mBAAmB,CACjC,OAAyB,EACzB,gBAAgC;IAEhC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,GAAG,GACP,OAAO,gBAAgB,KAAK,QAAQ;QAClC,CAAC,CAAC,SAAS,CACP,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAE,KAAK,CAAC,IAAoB,CAAC,QAAQ,KAAK,gBAAgB,CAAC,CACrF;QACH,CAAC,CAAC,IAAI,CAAC;IACX,OAAO;QACL,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,wCAAwC;QACpD,KAAK,EAAE;YACL,gBAAgB,EAAE,sCAAsC;YACxD,YAAY,EAAE,4DAA4D;YAC1E,oBAAoB,EAAE,KAAK;YAC3B,0BAA0B,EAAE,KAAK;SAClC;QACD,GAAG;QACH,OAAO;KACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export type GitRunner = (cwd: string, args: string[]) => Promise<string>;
|
|
2
|
+
export type GitWorkspace = {
|
|
3
|
+
id: string;
|
|
4
|
+
sourceDirectory: string;
|
|
5
|
+
repositoryDirectory: string;
|
|
6
|
+
worktreeDirectory: string;
|
|
7
|
+
executionDirectory: string;
|
|
8
|
+
baseCommit: string;
|
|
9
|
+
sourceDirty: boolean;
|
|
10
|
+
managed: true;
|
|
11
|
+
};
|
|
12
|
+
export type CreateGitWorkspaceOptions = {
|
|
13
|
+
baseRef?: string;
|
|
14
|
+
/** Internal test seam; production callers should use the managed cache parent. */
|
|
15
|
+
workspaceParent?: string;
|
|
16
|
+
/** Internal command boundary for deterministic failure-path tests. */
|
|
17
|
+
gitRunner?: GitRunner;
|
|
18
|
+
/** Internal executable override for testing missing-Git behavior. */
|
|
19
|
+
gitExecutable?: string;
|
|
20
|
+
};
|
|
21
|
+
export type RemoveGitWorkspaceOptions = {
|
|
22
|
+
discardChanges?: boolean;
|
|
23
|
+
};
|
|
24
|
+
export type GitWorkspaceErrorCode = "git_unavailable" | "not_repository" | "invalid_base_ref" | "missing_execution_directory" | "provision_failed" | "not_owned" | "tampered" | "dirty" | "remove_failed";
|
|
25
|
+
export declare class GitWorkspaceError extends Error {
|
|
26
|
+
readonly code: GitWorkspaceErrorCode;
|
|
27
|
+
constructor(code: GitWorkspaceErrorCode, message: string);
|
|
28
|
+
}
|
|
29
|
+
export declare function createGitWorkspace(sourcePath: string, options?: CreateGitWorkspaceOptions): Promise<GitWorkspace>;
|
|
30
|
+
export declare function describeGitWorkspace(handle: GitWorkspace): GitWorkspace;
|
|
31
|
+
export declare function removeGitWorkspace(handle: GitWorkspace, options?: RemoveGitWorkspaceOptions): Promise<{
|
|
32
|
+
status: "removed";
|
|
33
|
+
}>;
|
|
34
|
+
//# sourceMappingURL=git-workspace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-workspace.d.ts","sourceRoot":"","sources":["../../../../src/modules/shared/git-workspace.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEzE,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,IAAI,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AACrE,MAAM,MAAM,qBAAqB,GAC7B,iBAAiB,GACjB,gBAAgB,GAChB,kBAAkB,GAClB,6BAA6B,GAC7B,kBAAkB,GAClB,WAAW,GACX,UAAU,GACV,OAAO,GACP,eAAe,CAAC;AAEpB,qBAAa,iBAAkB,SAAQ,KAAK;aAExB,IAAI,EAAE,qBAAqB;IAD7C,YACkB,IAAI,EAAE,qBAAqB,EAC3C,OAAO,EAAE,MAAM,EAIhB;CACF;AAqCD,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,YAAY,CAAC,CAmGvB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAMvE;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC,CA6DhC"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import { execFile } from "node:child_process";
|
|
2
|
+
import { randomUUID } from "node:crypto";
|
|
3
|
+
import { mkdir, realpath } from "node:fs/promises";
|
|
4
|
+
import { homedir } from "node:os";
|
|
5
|
+
import { join, relative, resolve } from "node:path";
|
|
6
|
+
import { promisify } from "node:util";
|
|
7
|
+
const execFileAsync = promisify(execFile);
|
|
8
|
+
const COMMAND_TIMEOUT_MS = 10_000;
|
|
9
|
+
const handles = new Map();
|
|
10
|
+
export class GitWorkspaceError extends Error {
|
|
11
|
+
code;
|
|
12
|
+
constructor(code, message) {
|
|
13
|
+
super(message);
|
|
14
|
+
this.code = code;
|
|
15
|
+
this.name = "GitWorkspaceError";
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function gitRunner(executable) {
|
|
19
|
+
return async (cwd, args) => {
|
|
20
|
+
try {
|
|
21
|
+
const result = await execFileAsync(executable, args, {
|
|
22
|
+
cwd,
|
|
23
|
+
encoding: "utf8",
|
|
24
|
+
timeout: COMMAND_TIMEOUT_MS,
|
|
25
|
+
maxBuffer: 1024 * 1024,
|
|
26
|
+
windowsHide: true,
|
|
27
|
+
});
|
|
28
|
+
return result.stdout.trim();
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
if (error.code === "ENOENT") {
|
|
32
|
+
throw new GitWorkspaceError("git_unavailable", "Git executable is unavailable");
|
|
33
|
+
}
|
|
34
|
+
throw error;
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
async function canonical(path) {
|
|
39
|
+
return realpath(resolve(path));
|
|
40
|
+
}
|
|
41
|
+
async function isDirty(directory, command) {
|
|
42
|
+
return (await command(directory, ["status", "--porcelain", "--untracked-files=all"])).length > 0;
|
|
43
|
+
}
|
|
44
|
+
function managedParent() {
|
|
45
|
+
return (process.env.OPENCODE_MCP_WORKSPACE_DIR ??
|
|
46
|
+
join(process.env.XDG_CACHE_HOME ?? join(homedir(), ".cache"), "opencode-mcp", "workspaces"));
|
|
47
|
+
}
|
|
48
|
+
export async function createGitWorkspace(sourcePath, options = {}) {
|
|
49
|
+
const command = options.gitRunner ?? gitRunner(options.gitExecutable ?? "git");
|
|
50
|
+
let sourceDirectory;
|
|
51
|
+
let repositoryDirectory;
|
|
52
|
+
try {
|
|
53
|
+
sourceDirectory = await canonical(sourcePath);
|
|
54
|
+
repositoryDirectory = await canonical(await command(sourceDirectory, ["rev-parse", "--show-toplevel"]));
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
if (error instanceof GitWorkspaceError)
|
|
58
|
+
throw error;
|
|
59
|
+
if (error.code === "ENOENT") {
|
|
60
|
+
throw new GitWorkspaceError("not_repository", "Source directory does not exist or is not a Git repository");
|
|
61
|
+
}
|
|
62
|
+
throw new GitWorkspaceError("not_repository", "Source directory is not inside a Git repository");
|
|
63
|
+
}
|
|
64
|
+
const baseRef = options.baseRef ?? "HEAD";
|
|
65
|
+
let baseCommit;
|
|
66
|
+
try {
|
|
67
|
+
baseCommit = await command(repositoryDirectory, [
|
|
68
|
+
"rev-parse",
|
|
69
|
+
"--verify",
|
|
70
|
+
"--end-of-options",
|
|
71
|
+
`${baseRef}^{commit}`,
|
|
72
|
+
]);
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
throw new GitWorkspaceError("invalid_base_ref", `Base ref is not a valid commit: ${baseRef}`);
|
|
76
|
+
}
|
|
77
|
+
const relativeExecutionDirectory = relative(repositoryDirectory, sourceDirectory);
|
|
78
|
+
if (relativeExecutionDirectory &&
|
|
79
|
+
!(await command(repositoryDirectory, [
|
|
80
|
+
"ls-tree",
|
|
81
|
+
"--full-tree",
|
|
82
|
+
baseCommit,
|
|
83
|
+
"--",
|
|
84
|
+
relativeExecutionDirectory,
|
|
85
|
+
]))) {
|
|
86
|
+
throw new GitWorkspaceError("missing_execution_directory", `The selected base does not contain the requested source directory: ${relativeExecutionDirectory}`);
|
|
87
|
+
}
|
|
88
|
+
let sourceDirty;
|
|
89
|
+
let parentCanonical;
|
|
90
|
+
try {
|
|
91
|
+
sourceDirty = await isDirty(repositoryDirectory, command);
|
|
92
|
+
const parent = resolve(options.workspaceParent ?? managedParent());
|
|
93
|
+
await mkdir(parent, { recursive: true, mode: 0o700 });
|
|
94
|
+
parentCanonical = await canonical(parent);
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
throw new GitWorkspaceError("provision_failed", `Unable to prepare managed workspace: ${String(error)}`);
|
|
98
|
+
}
|
|
99
|
+
const worktreeDirectory = join(parentCanonical, `workspace-${randomUUID()}`);
|
|
100
|
+
const executionDirectory = join(worktreeDirectory, relativeExecutionDirectory);
|
|
101
|
+
try {
|
|
102
|
+
await command(repositoryDirectory, [
|
|
103
|
+
"-c",
|
|
104
|
+
"core.hooksPath=/dev/null",
|
|
105
|
+
"worktree",
|
|
106
|
+
"add",
|
|
107
|
+
"--detach",
|
|
108
|
+
"--",
|
|
109
|
+
worktreeDirectory,
|
|
110
|
+
baseCommit,
|
|
111
|
+
]);
|
|
112
|
+
const id = randomUUID();
|
|
113
|
+
const workspace = {
|
|
114
|
+
id,
|
|
115
|
+
sourceDirectory,
|
|
116
|
+
repositoryDirectory,
|
|
117
|
+
worktreeDirectory: await canonical(worktreeDirectory),
|
|
118
|
+
executionDirectory: await canonical(executionDirectory),
|
|
119
|
+
baseCommit,
|
|
120
|
+
sourceDirty,
|
|
121
|
+
managed: true,
|
|
122
|
+
};
|
|
123
|
+
handles.set(id, { workspace, runGit: command });
|
|
124
|
+
return workspace;
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
// Leave any partial worktree for explicit inspection; never force-clean unknown state.
|
|
128
|
+
throw new GitWorkspaceError("provision_failed", `Unable to create managed worktree: ${String(error)}`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
export function describeGitWorkspace(handle) {
|
|
132
|
+
const record = handles.get(handle.id);
|
|
133
|
+
if (!record || record.workspace !== handle) {
|
|
134
|
+
throw new GitWorkspaceError("not_owned", "Workspace handle is not owned by this process");
|
|
135
|
+
}
|
|
136
|
+
return { ...record.workspace };
|
|
137
|
+
}
|
|
138
|
+
export async function removeGitWorkspace(handle, options = {}) {
|
|
139
|
+
const record = handles.get(handle.id);
|
|
140
|
+
if (!record || record.workspace !== handle) {
|
|
141
|
+
throw new GitWorkspaceError("not_owned", "Workspace handle is not owned by this process");
|
|
142
|
+
}
|
|
143
|
+
const owned = record.workspace;
|
|
144
|
+
const command = record.runGit;
|
|
145
|
+
try {
|
|
146
|
+
if ((await canonical(owned.sourceDirectory)) === owned.worktreeDirectory) {
|
|
147
|
+
throw new GitWorkspaceError("tampered", "Worktree path aliases the source directory");
|
|
148
|
+
}
|
|
149
|
+
let canonicalRepository;
|
|
150
|
+
let canonicalWorktree;
|
|
151
|
+
try {
|
|
152
|
+
canonicalRepository = await canonical(owned.repositoryDirectory);
|
|
153
|
+
canonicalWorktree = await canonical(owned.worktreeDirectory);
|
|
154
|
+
}
|
|
155
|
+
catch {
|
|
156
|
+
throw new GitWorkspaceError("tampered", "Workspace root or source repository is missing");
|
|
157
|
+
}
|
|
158
|
+
if (canonicalRepository !== owned.repositoryDirectory ||
|
|
159
|
+
canonicalWorktree !== owned.worktreeDirectory) {
|
|
160
|
+
throw new GitWorkspaceError("tampered", "Workspace paths changed since provisioning");
|
|
161
|
+
}
|
|
162
|
+
const common = await command(owned.worktreeDirectory, ["rev-parse", "--git-common-dir"]);
|
|
163
|
+
const sourceCommon = await command(owned.repositoryDirectory, [
|
|
164
|
+
"rev-parse",
|
|
165
|
+
"--git-common-dir",
|
|
166
|
+
]);
|
|
167
|
+
const canonicalCommon = async (cwd, value) => canonical(resolve(cwd, value));
|
|
168
|
+
if ((await canonicalCommon(owned.worktreeDirectory, common)) !==
|
|
169
|
+
(await canonicalCommon(owned.repositoryDirectory, sourceCommon))) {
|
|
170
|
+
throw new GitWorkspaceError("tampered", "Worktree Git metadata no longer matches its source repository");
|
|
171
|
+
}
|
|
172
|
+
if (!options.discardChanges && (await isDirty(owned.worktreeDirectory, command))) {
|
|
173
|
+
throw new GitWorkspaceError("dirty", "Worktree has uncommitted or untracked changes");
|
|
174
|
+
}
|
|
175
|
+
await command(owned.repositoryDirectory, [
|
|
176
|
+
"-c",
|
|
177
|
+
"core.hooksPath=/dev/null",
|
|
178
|
+
"worktree",
|
|
179
|
+
"remove",
|
|
180
|
+
...(options.discardChanges ? ["--force"] : []),
|
|
181
|
+
"--",
|
|
182
|
+
owned.worktreeDirectory,
|
|
183
|
+
]);
|
|
184
|
+
handles.delete(owned.id);
|
|
185
|
+
return { status: "removed" };
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
if (error instanceof GitWorkspaceError)
|
|
189
|
+
throw error;
|
|
190
|
+
throw new GitWorkspaceError("remove_failed", `Unable to safely remove worktree: ${String(error)}`);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=git-workspace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-workspace.js","sourceRoot":"","sources":["../../../../src/modules/shared/git-workspace.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../../../src/modules/shared/instructions.ts"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,wBAAsB,8BAA8B,IAAI,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../../../src/modules/shared/instructions.ts"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,wBAAsB,8BAA8B,IAAI,OAAO,CAAC,MAAM,CAAC,CAiCtE"}
|
|
@@ -24,8 +24,8 @@ Spread parallel tasks across models instead of firing every task at the same sca
|
|
|
24
24
|
|
|
25
25
|
Workflow:
|
|
26
26
|
1. Ensure an OpenCode server is running. If you don't already have a server_id from a previous opencode_start_server call, call opencode_start_server first.
|
|
27
|
-
2. Call opencode_list_agents with the server_id to discover the available agents (native and custom), the exact model ids and their quotas. Agents may have a pre-assigned model ("provider/model"); you can still override it per task.
|
|
28
|
-
3. For each task, call opencode_start_task with the server_id and the task's prompt, optionally with an agent
|
|
27
|
+
2. Call opencode_list_agents with the server_id to discover the available agents (native and custom), the exact model ids and their quotas. Pass its optional directory when the task targets a different project so discovery matches task configuration. Agents may have a pre-assigned model ("provider/model"); you can still override it per task.
|
|
28
|
+
3. For each task, call opencode_start_task with the server_id and the task's prompt, optionally with an agent/model override, a directory relative to the server directory, and workspace_mode='shared'|'worktree'. Shared mode is the backward-compatible default. Worktree mode uses a detached committed base_ref (default HEAD), does not copy source changes, and returns workspace metadata including workspace_id.
|
|
29
29
|
4. Wait for completion with opencode_wait_for_task:
|
|
30
30
|
- Single task: mode "all" with the single task_id.
|
|
31
31
|
- Multiple tasks, incremental results: call it repeatedly with mode "any", removing completed task_ids each time.
|
|
@@ -33,6 +33,12 @@ Workflow:
|
|
|
33
33
|
5. Once a task is reported finished, call opencode_get_task_result for that task_id to retrieve its output.
|
|
34
34
|
6. Use opencode_get_task_status only for quick, non-blocking checks on a task's progress (e.g. to report status to the user) — it does not replace opencode_wait_for_task or opencode_get_task_result.
|
|
35
35
|
|
|
36
|
+
Execution reports: start_task and continue_task optionally accept expected_changes [{path, change: created|modified|deleted}] and checks [{executable, argv, cwd?, timeout_ms?}]. Status and result accept an optional run_id for historical retrieval. Use wait_for_task until='report' when the final report is required. Reports label filesystem evidence workspace_delta; concurrent writers can make attribution uncertain. Verified runs require an exclusive overlapping-workspace lease and return workspace_busy on conflict. Checks execute directly (no shell) and run once per accepted run. Final text/progress and reports are cached; getters never rerun checks. The recursive inventory excludes .git and node_modules but explicitly checks caller-declared paths. Prompt IDs must use OpenCode's msg_ prefix. If a prompt response ACK is lost, start_task/continue_task return dispatch_uncertain with trackable IDs while retaining the lease; poll or cancel that task rather than retrying the prompt as a new run. Definite HTTP 4xx rejection rolls back the provisional run. Evidence limits, failures, and output truncation are disclosed in the report.
|
|
37
|
+
|
|
38
|
+
Managed worktrees are retained when tasks finish; they are never automatically cleaned up. After a task's reports finalize, call opencode_cleanup_workspace with its workspace_id. Cleanup refuses active/pending reports and dirty worktrees unless discard_changes=true; it removes only an owned worktree and preserves cached results and history. Workspace metadata appears in task and wait responses, including historical runs. Permission responders route through the selected directory and approve only registered task sessions.
|
|
39
|
+
|
|
40
|
+
Usage reports aggregate only direct assistant-message INFO metrics (input, output, reasoning, cache read/write, and OpenCode-reported cost); step-finish parts are excluded to avoid double counting. Run and session metrics are independent, based on all direct assistant messages in the session snapshot, and do not include descendant or subagent sessions. Missing/invalid metrics remain unknown and make completeness explicit. Cost has no verified currency and is not an invoice total. Historical results retain the usage snapshot captured at run finalization; its session summary is historical, not the latest session total. Live status may expose a partial snapshot with its capture time, or a diagnostic when message data is unavailable.
|
|
41
|
+
|
|
36
42
|
Do not call opencode_get_task_result before the task has finished, and prefer opencode_wait_for_task over polling opencode_get_task_status in a loop.`;
|
|
37
43
|
}
|
|
38
44
|
//# sourceMappingURL=instructions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../../../src/modules/shared/instructions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEvF,MAAM,cAAc,GAAG;sHAC+F,CAAC;AAEvH;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B;IAClD,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;IACtC,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;IAEvE,OAAO;;EAEP,UAAU;;;;;;EAMV,eAAe,EAAE
|
|
1
|
+
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../../../src/modules/shared/instructions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEvF,MAAM,cAAc,GAAG;sHAC+F,CAAC;AAEvH;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B;IAClD,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;IACtC,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;IAEvE,OAAO;;EAEP,UAAU;;;;;;EAMV,eAAe,EAAE;;;;;;;;;;;;;;;;;;;;sJAoBmI,CAAC;AACvJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-id.d.ts","sourceRoot":"","sources":["../../../../src/modules/shared/message-id.ts"],"names":[],"mappings":"AAEA,sFAAsF;AACtF,wBAAgB,eAAe,IAAI,MAAM,CAExC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-id.js","sourceRoot":"","sources":["../../../../src/modules/shared/message-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,sFAAsF;AACtF,MAAM,UAAU,eAAe;IAC7B,OAAO,OAAO,UAAU,EAAE,EAAE,CAAC;AAC/B,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { type AssistantMessage, type OpencodeClient, type Part } from "@opencode-ai/sdk";
|
|
2
|
+
import { type ExecutionUsageSnapshot } from "./execution-usage.js";
|
|
3
|
+
export declare function fetchWithDeadline(request: Request): Promise<Response>;
|
|
2
4
|
/** Build an HTTP client for a tracked server, or undefined if the id is unknown. */
|
|
3
|
-
export declare function clientForServer(serverId: string): OpencodeClient | undefined;
|
|
5
|
+
export declare function clientForServer(serverId: string, directory?: string): OpencodeClient | undefined;
|
|
4
6
|
/** Resolve a task to its server client and session id, or undefined if unknown. */
|
|
5
7
|
export declare function clientForTask(taskId: string): {
|
|
6
8
|
client: OpencodeClient;
|
|
@@ -10,8 +12,11 @@ export interface AssistantEntry {
|
|
|
10
12
|
info: AssistantMessage;
|
|
11
13
|
parts: Part[];
|
|
12
14
|
}
|
|
15
|
+
export declare function isTerminalTaskStatus(status: string): boolean;
|
|
16
|
+
export declare function sdkResponseError(response: unknown): unknown;
|
|
13
17
|
/** Fetch every assistant message (with its parts) for a session, oldest first. */
|
|
14
|
-
export declare function assistantEntries(client: OpencodeClient, sessionId: string): Promise<AssistantEntry[]>;
|
|
18
|
+
export declare function assistantEntries(client: OpencodeClient, sessionId: string, signal?: AbortSignal): Promise<AssistantEntry[]>;
|
|
19
|
+
export declare function currentRunEntries(client: OpencodeClient, sessionId: string, taskId: string): Promise<AssistantEntry[]>;
|
|
15
20
|
/** Every part the assistant emitted across the whole session, oldest first. */
|
|
16
21
|
export declare function sessionParts(entries: AssistantEntry[]): Part[];
|
|
17
22
|
/** Fetch the most recent assistant message (with its parts) for a session. */
|
|
@@ -36,6 +41,7 @@ export interface TaskStatusResult {
|
|
|
36
41
|
status: TaskStatus;
|
|
37
42
|
error?: string;
|
|
38
43
|
progress?: TaskProgress;
|
|
44
|
+
usage?: ExecutionUsageSnapshot;
|
|
39
45
|
}
|
|
40
46
|
/**
|
|
41
47
|
* Whether an assistant turn actually produced anything.
|
|
@@ -66,7 +72,11 @@ export declare const CANCELLED_TASK_MESSAGE = "the task was cancelled via openco
|
|
|
66
72
|
export declare const EMPTY_TURN_MESSAGE = "the session finished without producing any text or tool calls; the prompt was likely rejected or the turn was aborted";
|
|
67
73
|
export interface DeriveTaskStatusOptions {
|
|
68
74
|
includeProgress?: boolean;
|
|
75
|
+
includeUsage?: boolean;
|
|
76
|
+
usageMessageID?: string;
|
|
77
|
+
signal?: AbortSignal;
|
|
69
78
|
}
|
|
79
|
+
export declare function deriveAssistantTurnStatus(entry: AssistantEntry | undefined): Pick<TaskStatusResult, "status" | "error">;
|
|
70
80
|
/**
|
|
71
81
|
* Derive the current status of a task by inspecting session busy state and
|
|
72
82
|
* the last assistant message. Shared by opencode_get_task_status and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-client.d.ts","sourceRoot":"","sources":["../../../../src/modules/shared/opencode-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EAErB,KAAK,cAAc,EACnB,KAAK,IAAI,EACV,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"opencode-client.d.ts","sourceRoot":"","sources":["../../../../src/modules/shared/opencode-client.ts"],"names":[],"mappings":"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"}
|