@newrelic/preflight 1.10.0 → 1.11.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/dist/platforms/index.d.ts +1 -0
- package/dist/platforms/index.d.ts.map +1 -1
- package/dist/platforms/index.js +1 -0
- package/dist/platforms/index.js.map +1 -1
- package/dist/platforms/opencode-adapter.d.ts +15 -0
- package/dist/platforms/opencode-adapter.d.ts.map +1 -0
- package/dist/platforms/opencode-adapter.js +151 -0
- package/dist/platforms/opencode-adapter.js.map +1 -0
- package/dist/platforms/platform-registry.d.ts.map +1 -1
- package/dist/platforms/platform-registry.js +2 -0
- package/dist/platforms/platform-registry.js.map +1 -1
- package/package.json +1 -1
|
@@ -13,6 +13,7 @@ export { DroidAdapter } from './droid-adapter.js';
|
|
|
13
13
|
export { GeminiCliAdapter } from './gemini-cli-adapter.js';
|
|
14
14
|
export { ClineAdapter } from './cline-adapter.js';
|
|
15
15
|
export { CodexAdapter } from './codex-adapter.js';
|
|
16
|
+
export { OpencodeAdapter } from './opencode-adapter.js';
|
|
16
17
|
export { GenericMcpAdapter, validateReportToolCallInput } from './generic-mcp-adapter.js';
|
|
17
18
|
export type { ReportToolCallInput, ReportSessionStartInput, ReportSessionEndInput, } from './generic-mcp-adapter.js';
|
|
18
19
|
export { REPORT_TOOL_CALL_TOOL, REPORT_SESSION_START_TOOL, REPORT_SESSION_END_TOOL, } from './generic-mcp-adapter.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/platforms/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,uBAAuB,EACvB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAC1F,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/platforms/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,uBAAuB,EACvB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAC1F,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/platforms/index.js
CHANGED
|
@@ -11,6 +11,7 @@ export { DroidAdapter } from './droid-adapter.js';
|
|
|
11
11
|
export { GeminiCliAdapter } from './gemini-cli-adapter.js';
|
|
12
12
|
export { ClineAdapter } from './cline-adapter.js';
|
|
13
13
|
export { CodexAdapter } from './codex-adapter.js';
|
|
14
|
+
export { OpencodeAdapter } from './opencode-adapter.js';
|
|
14
15
|
export { GenericMcpAdapter, validateReportToolCallInput } from './generic-mcp-adapter.js';
|
|
15
16
|
export { REPORT_TOOL_CALL_TOOL, REPORT_SESSION_START_TOOL, REPORT_SESSION_END_TOOL, } from './generic-mcp-adapter.js';
|
|
16
17
|
export { PlatformRegistry, createDefaultRegistry } from './platform-registry.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/platforms/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAM1F,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/platforms/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAM1F,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { NormalizedToolCall, PlatformAdapter, PlatformConfig, PlatformSessionMetadata } from './types.js';
|
|
2
|
+
export declare class OpencodeAdapter implements PlatformAdapter {
|
|
3
|
+
readonly platformName = "opencode";
|
|
4
|
+
readonly visibilityLevel: "full-hooks";
|
|
5
|
+
readonly capabilities: {
|
|
6
|
+
instructionFilePaths: readonly ["AGENTS.md"];
|
|
7
|
+
};
|
|
8
|
+
initialize(_config: PlatformConfig): Promise<void>;
|
|
9
|
+
normalizeToolCall(raw: unknown): NormalizedToolCall;
|
|
10
|
+
mapToolName(platformToolName: string): string;
|
|
11
|
+
getSessionMetadata(): PlatformSessionMetadata;
|
|
12
|
+
getHookInstallInstructions(): string;
|
|
13
|
+
isSupported(): boolean;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=opencode-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-adapter.d.ts","sourceRoot":"","sources":["../../src/platforms/opencode-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAoDpB,qBAAa,eAAgB,YAAW,eAAe;IACrD,QAAQ,CAAC,YAAY,cAAc;IACnC,QAAQ,CAAC,eAAe,EAAG,YAAY,CAAU;IAGjD,QAAQ,CAAC,YAAY;;MAAoD;IAEnE,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxD,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB;IAsBnD,WAAW,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM;IAI7C,kBAAkB,IAAI,uBAAuB;IAM7C,0BAA0B,IAAI,MAAM;IA2EpC,WAAW,IAAI,OAAO;CAKvB"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maps opencode's built-in tool names (opencode.ai/docs/tools/) to the
|
|
3
|
+
* normalized Claude Code tool vocabulary. `bash`/`read`/`write`/`edit`/
|
|
4
|
+
* `grep`/`glob`/`webfetch`/`websearch` map directly. `apply_patch` collapses
|
|
5
|
+
* to 'Edit' — a single patch can touch multiple files with mixed
|
|
6
|
+
* add/update/delete actions, so there's no clean 1:1 mapping, same
|
|
7
|
+
* precedent as CodexAdapter's apply_patch -> 'Edit'. `skill` maps to 'Skill'
|
|
8
|
+
* (same precedent as ContinueAdapter's read_skill -> 'Skill'). `todowrite`
|
|
9
|
+
* maps to 'TaskCreate' (same precedent as AmazonQAdapter's todo_list ->
|
|
10
|
+
* 'TaskCreate'). `question` maps to 'AskUserQuestion' — opencode's own docs
|
|
11
|
+
* describe it as "Each question includes a header, the question text, and a
|
|
12
|
+
* list of options," matching AskUserQuestion's shape. `lsp` is experimental
|
|
13
|
+
* (gated behind OPENCODE_EXPERIMENTAL_LSP_TOOL) with no confirmed Preflight
|
|
14
|
+
* canonical equivalent and is left unmapped -> falls through to 'Unknown',
|
|
15
|
+
* same treatment as Codex's update_plan.
|
|
16
|
+
*/
|
|
17
|
+
const OPENCODE_TOOL_MAP = {
|
|
18
|
+
bash: 'Bash',
|
|
19
|
+
read: 'Read',
|
|
20
|
+
write: 'Write',
|
|
21
|
+
edit: 'Edit',
|
|
22
|
+
apply_patch: 'Edit',
|
|
23
|
+
grep: 'Grep',
|
|
24
|
+
glob: 'Glob',
|
|
25
|
+
webfetch: 'WebFetch',
|
|
26
|
+
websearch: 'WebSearch',
|
|
27
|
+
skill: 'Skill',
|
|
28
|
+
todowrite: 'TaskCreate',
|
|
29
|
+
question: 'AskUserQuestion',
|
|
30
|
+
};
|
|
31
|
+
function isOpencodeToolCallEvent(x) {
|
|
32
|
+
return typeof x === 'object' && x !== null;
|
|
33
|
+
}
|
|
34
|
+
export class OpencodeAdapter {
|
|
35
|
+
platformName = 'opencode';
|
|
36
|
+
visibilityLevel = 'full-hooks';
|
|
37
|
+
// opencode.ai/docs/rules/: project-level AGENTS.md, with CLAUDE.md as a
|
|
38
|
+
// documented fallback (opencode's own "Claude Code Compatibility" mode).
|
|
39
|
+
capabilities = { instructionFilePaths: ['AGENTS.md'] };
|
|
40
|
+
async initialize(_config) {
|
|
41
|
+
// opencode's tool-call capture is delivered via a user-installed plugin
|
|
42
|
+
// file (see getHookInstallInstructions()), not configured by this
|
|
43
|
+
// process — same no-op shape as every other full-hooks adapter.
|
|
44
|
+
}
|
|
45
|
+
normalizeToolCall(raw) {
|
|
46
|
+
const event = isOpencodeToolCallEvent(raw) ? raw : {};
|
|
47
|
+
const platformToolName = event.tool ?? event.toolName ?? 'unknown';
|
|
48
|
+
const toolName = OPENCODE_TOOL_MAP[platformToolName] ?? 'Unknown';
|
|
49
|
+
const filePath = event.filePath ?? event.path;
|
|
50
|
+
return {
|
|
51
|
+
toolName,
|
|
52
|
+
platformToolName,
|
|
53
|
+
platform: this.platformName,
|
|
54
|
+
timestamp: event.timestamp ?? Date.now(),
|
|
55
|
+
durationMs: event.durationMs ?? null,
|
|
56
|
+
success: event.success ?? true,
|
|
57
|
+
...(event.error !== undefined && { error: event.error }),
|
|
58
|
+
...(event.inputSizeBytes !== undefined && { inputSizeBytes: event.inputSizeBytes }),
|
|
59
|
+
...(event.outputSizeBytes !== undefined && { outputSizeBytes: event.outputSizeBytes }),
|
|
60
|
+
...(filePath !== undefined && { filePath }),
|
|
61
|
+
...(event.command !== undefined && { command: event.command }),
|
|
62
|
+
...(event.sessionId !== undefined && { sessionId: event.sessionId }),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
mapToolName(platformToolName) {
|
|
66
|
+
return OPENCODE_TOOL_MAP[platformToolName] ?? 'Unknown';
|
|
67
|
+
}
|
|
68
|
+
getSessionMetadata() {
|
|
69
|
+
return {
|
|
70
|
+
platform: this.platformName,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
getHookInstallInstructions() {
|
|
74
|
+
return [
|
|
75
|
+
'opencode Setup:',
|
|
76
|
+
'',
|
|
77
|
+
'1. Register the Preflight MCP server in opencode.json:',
|
|
78
|
+
' {',
|
|
79
|
+
' "mcp": {',
|
|
80
|
+
' "preflight": {',
|
|
81
|
+
' "type": "local",',
|
|
82
|
+
' "command": ["npx", "preflight", "--stdio"],',
|
|
83
|
+
' "environment": {',
|
|
84
|
+
' "MCP_CLIENT": "opencode",',
|
|
85
|
+
' "NEW_RELIC_LICENSE_KEY": "<your-key>",',
|
|
86
|
+
' "NEW_RELIC_ACCOUNT_ID": "<your-account-id>"',
|
|
87
|
+
' }',
|
|
88
|
+
' }',
|
|
89
|
+
' }',
|
|
90
|
+
' }',
|
|
91
|
+
'2. Ensure preflight-collector is on your PATH (npm link, or npm install -g @newrelic/preflight)',
|
|
92
|
+
'3. Built-in tool calls (bash, read, write, edit, etc.) require a plugin file, since',
|
|
93
|
+
' opencode has no external hooks.json — it only supports in-process JS/TS plugins.',
|
|
94
|
+
' Create .opencode/plugins/preflight.js (project) or',
|
|
95
|
+
' ~/.config/opencode/plugins/preflight.js (global) with:',
|
|
96
|
+
'',
|
|
97
|
+
' import { spawn } from "node:child_process"',
|
|
98
|
+
'',
|
|
99
|
+
' const TOOL_MAP = {',
|
|
100
|
+
' bash: "Bash", read: "Read", write: "Write", edit: "Edit",',
|
|
101
|
+
' apply_patch: "Edit", grep: "Grep", glob: "Glob",',
|
|
102
|
+
' webfetch: "WebFetch", websearch: "WebSearch", skill: "Skill",',
|
|
103
|
+
' todowrite: "TaskCreate", question: "AskUserQuestion",',
|
|
104
|
+
' }',
|
|
105
|
+
'',
|
|
106
|
+
' function report(payload) {',
|
|
107
|
+
' const child = spawn("preflight-collector", [], { stdio: ["pipe", "ignore", "ignore"] })',
|
|
108
|
+
' child.stdin.write(JSON.stringify(payload))',
|
|
109
|
+
' child.stdin.end()',
|
|
110
|
+
' }',
|
|
111
|
+
'',
|
|
112
|
+
' function toClaudeShape(tool, args) {',
|
|
113
|
+
' if (tool === "bash") return { command: args.command }',
|
|
114
|
+
' if (tool === "read" || tool === "edit" || tool === "write") return { file_path: args.filePath }',
|
|
115
|
+
' return args',
|
|
116
|
+
' }',
|
|
117
|
+
'',
|
|
118
|
+
' export const PreflightPlugin = async () => ({',
|
|
119
|
+
' "tool.execute.before": async (input, output) => {',
|
|
120
|
+
' report({',
|
|
121
|
+
' hook_event_name: "PreToolUse",',
|
|
122
|
+
' tool_name: TOOL_MAP[input.tool] ?? "Unknown",',
|
|
123
|
+
' tool_input: toClaudeShape(input.tool, output.args),',
|
|
124
|
+
' tool_use_id: input.callID,',
|
|
125
|
+
' session_id: input.sessionID,',
|
|
126
|
+
' })',
|
|
127
|
+
' },',
|
|
128
|
+
' "tool.execute.after": async (input, output) => {',
|
|
129
|
+
' report({',
|
|
130
|
+
' hook_event_name: "PostToolUse",',
|
|
131
|
+
' tool_name: TOOL_MAP[input.tool] ?? "Unknown",',
|
|
132
|
+
' tool_use_id: input.callID,',
|
|
133
|
+
' session_id: input.sessionID,',
|
|
134
|
+
' })',
|
|
135
|
+
' },',
|
|
136
|
+
' })',
|
|
137
|
+
'',
|
|
138
|
+
'4. Restart opencode.',
|
|
139
|
+
'',
|
|
140
|
+
"Known gaps: opencode's hook payload has no success/error field, so every",
|
|
141
|
+
'tool call reports success unconditionally. Only bash/read/edit/write',
|
|
142
|
+
"get structured input metadata; other tools' arg shapes (including apply_patch)",
|
|
143
|
+
'are undocumented and forwarded as-is. No output-side metadata (exit codes,',
|
|
144
|
+
'match counts, etc.) is captured — see docs/ADAPTERS.md for details.',
|
|
145
|
+
].join('\n');
|
|
146
|
+
}
|
|
147
|
+
isSupported() {
|
|
148
|
+
return (process.env.MCP_CLIENT === 'opencode' || process.env.NEW_RELIC_AI_PLATFORM === 'opencode');
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=opencode-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-adapter.js","sourceRoot":"","sources":["../../src/platforms/opencode-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-registry.d.ts","sourceRoot":"","sources":["../../src/platforms/platform-registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"platform-registry.d.ts","sourceRoot":"","sources":["../../src/platforms/platform-registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAkB3E,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,MAAM,CAAgC;IAE9C,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAKxC,MAAM,IAAI,eAAe,GAAG,IAAI;IAahC,SAAS,IAAI,eAAe;IAY5B,aAAa,IAAI,SAAS,eAAe,EAAE;CAG5C;AAED,wBAAgB,qBAAqB,IAAI,gBAAgB,CAiBxD;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,IAAI,WAAW,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAKvF"}
|
|
@@ -11,6 +11,7 @@ import { DroidAdapter } from './droid-adapter.js';
|
|
|
11
11
|
import { GeminiCliAdapter } from './gemini-cli-adapter.js';
|
|
12
12
|
import { ClineAdapter } from './cline-adapter.js';
|
|
13
13
|
import { CodexAdapter } from './codex-adapter.js';
|
|
14
|
+
import { OpencodeAdapter } from './opencode-adapter.js';
|
|
14
15
|
import { GenericMcpAdapter } from './generic-mcp-adapter.js';
|
|
15
16
|
const logger = createLogger('platform-registry');
|
|
16
17
|
export class PlatformRegistry {
|
|
@@ -58,6 +59,7 @@ export function createDefaultRegistry() {
|
|
|
58
59
|
registry.register(new GeminiCliAdapter());
|
|
59
60
|
registry.register(new ClineAdapter());
|
|
60
61
|
registry.register(new CodexAdapter());
|
|
62
|
+
registry.register(new OpencodeAdapter());
|
|
61
63
|
registry.register(new GenericMcpAdapter()); // always last
|
|
62
64
|
return registry;
|
|
63
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-registry.js","sourceRoot":"","sources":["../../src/platforms/platform-registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"platform-registry.js","sourceRoot":"","sources":["../../src/platforms/platform-registry.ts"],"names":[],"mappings":"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"}
|