@newrelic/preflight 1.9.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.
@@ -0,0 +1,15 @@
1
+ import type { NormalizedToolCall, PlatformAdapter, PlatformConfig, PlatformSessionMetadata } from './types.js';
2
+ export declare class CodexAdapter implements PlatformAdapter {
3
+ readonly platformName = "codex";
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=codex-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-adapter.d.ts","sourceRoot":"","sources":["../../src/platforms/codex-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAsDpB,qBAAa,YAAa,YAAW,eAAe;IAClD,QAAQ,CAAC,YAAY,WAAW;IAChC,QAAQ,CAAC,eAAe,EAAG,YAAY,CAAU;IAKjD,QAAQ,CAAC,YAAY;;MAAoD;IAEnE,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxD,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB;IAsBnD,WAAW,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM;IAI7C,kBAAkB,IAAI,uBAAuB;IAM7C,0BAA0B,IAAI,MAAM;IA4BpC,WAAW,IAAI,OAAO;CAGvB"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Maps OpenAI Codex's built-in tool names to the normalized Claude Code tool
3
+ * vocabulary. Source: developers.openai.com/codex/hooks's "Tool coverage"
4
+ * table and PreToolUse/PostToolUse field reference. Codex's own hook
5
+ * payload already reports shell commands and unified-exec (exec_command)
6
+ * calls alike with the canonical literal tool_name "Bash", so no
7
+ * translation is needed there. apply_patch always reports tool_name
8
+ * literally as "apply_patch" (never "Edit" or "Write", even though Codex's
9
+ * own hook *matcher* config lets a user alias-match it as either) — mapped
10
+ * here to 'Edit' as a single collapsed value, since a patch body can touch
11
+ * multiple files with mixed add/update/delete actions and there's no clean
12
+ * 1:1 mapping to Preflight's Read/Write/Edit vocabulary regardless of
13
+ * approach (same precedent as Windsurf's pre_write_code -> 'Edit'). This
14
+ * means Codex's apply_patch calls don't get collector-script.ts's Edit-
15
+ * specific metadata extraction (oldStringLength/newStringLength/etc.),
16
+ * since that switches on the raw tool_name ("apply_patch", not "Edit")
17
+ * before mapToolName() ever runs — the same pre-existing gap Gemini CLI's
18
+ * replace and Droid's Create/Execute/Task calls are already in.
19
+ * spawn_agent's tool_name is confirmed literal (the coverage table's note
20
+ * "spawn_agent also matches Agent" documents Agent as a matcher *alias*,
21
+ * not the payload's actual tool_name value) -> mapped to 'Agent'.
22
+ * update_plan has no confirmed Preflight canonical equivalent and is left
23
+ * unmapped -> falls through to 'Unknown' with the original name preserved.
24
+ * Hosted tools (e.g. WebSearch) are confirmed unobservable by Codex's own
25
+ * hooks and are never reported through this path at all — see Known gaps
26
+ * in docs/ADAPTERS.md.
27
+ */
28
+ const CODEX_TOOL_MAP = {
29
+ Bash: 'Bash',
30
+ apply_patch: 'Edit',
31
+ spawn_agent: 'Agent',
32
+ };
33
+ function isCodexToolCallEvent(x) {
34
+ return typeof x === 'object' && x !== null;
35
+ }
36
+ export class CodexAdapter {
37
+ platformName = 'codex';
38
+ visibilityLevel = 'full-hooks';
39
+ // developers.openai.com/codex/config-file/config-reference's
40
+ // model_instructions_file field: "Replacement for built-in instructions
41
+ // instead of AGENTS.md." Same convention Droid, Cursor, and Gemini CLI
42
+ // also read.
43
+ capabilities = { instructionFilePaths: ['AGENTS.md'] };
44
+ async initialize(_config) {
45
+ // Codex hooks are configured externally (hooks.json or inline [hooks]
46
+ // tables in config.toml).
47
+ }
48
+ normalizeToolCall(raw) {
49
+ const event = isCodexToolCallEvent(raw) ? raw : {};
50
+ const platformToolName = event.tool ?? event.toolName ?? 'unknown';
51
+ const toolName = CODEX_TOOL_MAP[platformToolName] ?? 'Unknown';
52
+ const filePath = event.filePath ?? event.path;
53
+ return {
54
+ toolName,
55
+ platformToolName,
56
+ platform: this.platformName,
57
+ timestamp: event.timestamp ?? Date.now(),
58
+ durationMs: event.durationMs ?? null,
59
+ success: event.success ?? true,
60
+ ...(event.error !== undefined && { error: event.error }),
61
+ ...(event.inputSizeBytes !== undefined && { inputSizeBytes: event.inputSizeBytes }),
62
+ ...(event.outputSizeBytes !== undefined && { outputSizeBytes: event.outputSizeBytes }),
63
+ ...(filePath !== undefined && { filePath }),
64
+ ...(event.command !== undefined && { command: event.command }),
65
+ ...(event.sessionId !== undefined && { sessionId: event.sessionId }),
66
+ };
67
+ }
68
+ mapToolName(platformToolName) {
69
+ return CODEX_TOOL_MAP[platformToolName] ?? 'Unknown';
70
+ }
71
+ getSessionMetadata() {
72
+ return {
73
+ platform: this.platformName,
74
+ };
75
+ }
76
+ getHookInstallInstructions() {
77
+ return [
78
+ 'OpenAI Codex Setup:',
79
+ '',
80
+ '1. Add a PreToolUse/PostToolUse hook pair matching all tools to hooks.json',
81
+ ' (~/.codex/hooks.json user scope, or <repo>/.codex/hooks.json project scope):',
82
+ ' {',
83
+ ' "hooks": {',
84
+ ' "PreToolUse": [',
85
+ ' { "matcher": "*", "hooks": [{ "type": "command", "command": "preflight-collector" }] }',
86
+ ' ],',
87
+ ' "PostToolUse": [',
88
+ ' { "matcher": "*", "hooks": [{ "type": "command", "command": "preflight-collector" }] }',
89
+ ' ]',
90
+ ' }',
91
+ ' }',
92
+ '2. Non-managed hooks require one-time review and trust before they run —',
93
+ ' run `/hooks` in the Codex CLI to review and trust this hook definition.',
94
+ '3. Ensure preflight-collector is on your PATH (npm link, or npm install -g @newrelic/preflight)',
95
+ '4. Register the Preflight MCP server:',
96
+ ' codex mcp add preflight --env MCP_CLIENT=codex \\',
97
+ ' --env NEW_RELIC_LICENSE_KEY=<your-key> \\',
98
+ ' --env NEW_RELIC_ACCOUNT_ID=<your-account-id> \\',
99
+ ' -- npx preflight --stdio',
100
+ '5. Restart Codex',
101
+ ].join('\n');
102
+ }
103
+ isSupported() {
104
+ return process.env.MCP_CLIENT === 'codex' || process.env.NEW_RELIC_AI_PLATFORM === 'codex';
105
+ }
106
+ }
107
+ //# sourceMappingURL=codex-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-adapter.js","sourceRoot":"","sources":["../../src/platforms/codex-adapter.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,8 @@ export { KiroAdapter } from './kiro-adapter.js';
12
12
  export { DroidAdapter } from './droid-adapter.js';
13
13
  export { GeminiCliAdapter } from './gemini-cli-adapter.js';
14
14
  export { ClineAdapter } from './cline-adapter.js';
15
+ export { CodexAdapter } from './codex-adapter.js';
16
+ export { OpencodeAdapter } from './opencode-adapter.js';
15
17
  export { GenericMcpAdapter, validateReportToolCallInput } from './generic-mcp-adapter.js';
16
18
  export type { ReportToolCallInput, ReportSessionStartInput, ReportSessionEndInput, } from './generic-mcp-adapter.js';
17
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,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"}
@@ -10,6 +10,8 @@ export { KiroAdapter } from './kiro-adapter.js';
10
10
  export { DroidAdapter } from './droid-adapter.js';
11
11
  export { GeminiCliAdapter } from './gemini-cli-adapter.js';
12
12
  export { ClineAdapter } from './cline-adapter.js';
13
+ export { CodexAdapter } from './codex-adapter.js';
14
+ export { OpencodeAdapter } from './opencode-adapter.js';
13
15
  export { GenericMcpAdapter, validateReportToolCallInput } from './generic-mcp-adapter.js';
14
16
  export { REPORT_TOOL_CALL_TOOL, REPORT_SESSION_START_TOOL, REPORT_SESSION_END_TOOL, } from './generic-mcp-adapter.js';
15
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,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;AAgB3E,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,CAexD;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,IAAI,WAAW,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAKvF"}
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"}
@@ -10,6 +10,8 @@ import { KiroAdapter } from './kiro-adapter.js';
10
10
  import { DroidAdapter } from './droid-adapter.js';
11
11
  import { GeminiCliAdapter } from './gemini-cli-adapter.js';
12
12
  import { ClineAdapter } from './cline-adapter.js';
13
+ import { CodexAdapter } from './codex-adapter.js';
14
+ import { OpencodeAdapter } from './opencode-adapter.js';
13
15
  import { GenericMcpAdapter } from './generic-mcp-adapter.js';
14
16
  const logger = createLogger('platform-registry');
15
17
  export class PlatformRegistry {
@@ -56,6 +58,8 @@ export function createDefaultRegistry() {
56
58
  registry.register(new DroidAdapter());
57
59
  registry.register(new GeminiCliAdapter());
58
60
  registry.register(new ClineAdapter());
61
+ registry.register(new CodexAdapter());
62
+ registry.register(new OpencodeAdapter());
59
63
  registry.register(new GenericMcpAdapter()); // always last
60
64
  return registry;
61
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"platform-registry.js","sourceRoot":"","sources":["../../src/platforms/platform-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,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,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,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,MAAM,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC;AAEjD,MAAM,OAAO,gBAAgB;IACV,QAAQ,GAAsB,EAAE,CAAC;IAC1C,MAAM,GAA2B,IAAI,CAAC;IAE9C,QAAQ,CAAC,OAAwB;QAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,MAAM;QACJ,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;gBACtB,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;gBACrE,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS;QACP,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC;QAEpC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC/B,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,MAAM,IAAI,KAAK,CACb,wDAAwD;YACtD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACtD,CAAC;IACJ,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF;AAED,MAAM,UAAU,qBAAqB;IACnC,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;IAC3C,QAAQ,CAAC,QAAQ,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;IACzC,QAAQ,CAAC,QAAQ,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;IACzC,QAAQ,CAAC,QAAQ,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;IAC1C,QAAQ,CAAC,QAAQ,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC,CAAC,cAAc;IAC1D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB;IACtC,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAC;IACzC,OAAO,IAAI,GAAG,CACZ,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAC3F,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"platform-registry.js","sourceRoot":"","sources":["../../src/platforms/platform-registry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@newrelic/preflight",
3
- "version": "1.9.0",
3
+ "version": "1.11.0",
4
4
  "type": "module",
5
5
  "license": "Apache-2.0",
6
6
  "private": false,