@osovv/vv-opencode 1.6.0 → 2.0.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.
Files changed (100) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +24 -4
  3. package/dist/commands/preset.js +1 -1
  4. package/dist/commands/preset.js.map +1 -1
  5. package/dist/index.d.ts +7 -11
  6. package/dist/index.js +53 -20
  7. package/dist/index.js.map +1 -1
  8. package/dist/plugins/analytics/index.d.ts +2 -0
  9. package/dist/plugins/analytics/index.js +13 -2
  10. package/dist/plugins/analytics/index.js.map +1 -1
  11. package/dist/plugins/analytics/v2.d.ts +21 -0
  12. package/dist/plugins/analytics/v2.js +133 -0
  13. package/dist/plugins/analytics/v2.js.map +1 -0
  14. package/dist/plugins/guardian/index.d.ts +46 -0
  15. package/dist/plugins/guardian/index.js +21 -6
  16. package/dist/plugins/guardian/index.js.map +1 -1
  17. package/dist/plugins/guardian/v2.d.ts +13 -0
  18. package/dist/plugins/guardian/v2.js +161 -0
  19. package/dist/plugins/guardian/v2.js.map +1 -0
  20. package/dist/plugins/hashline-edit/index.d.ts +33 -1
  21. package/dist/plugins/hashline-edit/index.js +38 -14
  22. package/dist/plugins/hashline-edit/index.js.map +1 -1
  23. package/dist/plugins/hashline-edit/schemas.d.ts +7 -7
  24. package/dist/plugins/hashline-edit/v2.d.ts +12 -0
  25. package/dist/plugins/hashline-edit/v2.js +145 -0
  26. package/dist/plugins/hashline-edit/v2.js.map +1 -0
  27. package/dist/plugins/model-roles/index.d.ts +2 -0
  28. package/dist/plugins/model-roles/index.js +13 -2
  29. package/dist/plugins/model-roles/index.js.map +1 -1
  30. package/dist/plugins/model-roles/v2.d.ts +24 -0
  31. package/dist/plugins/model-roles/v2.js +274 -0
  32. package/dist/plugins/model-roles/v2.js.map +1 -0
  33. package/dist/plugins/peak-hours/index.d.ts +2 -0
  34. package/dist/plugins/peak-hours/index.js +13 -2
  35. package/dist/plugins/peak-hours/index.js.map +1 -1
  36. package/dist/plugins/peak-hours/v2.d.ts +12 -0
  37. package/dist/plugins/peak-hours/v2.js +95 -0
  38. package/dist/plugins/peak-hours/v2.js.map +1 -0
  39. package/dist/plugins/secrets-redaction/index.d.ts +7 -0
  40. package/dist/plugins/secrets-redaction/index.js +17 -4
  41. package/dist/plugins/secrets-redaction/index.js.map +1 -1
  42. package/dist/plugins/secrets-redaction/v2.d.ts +14 -0
  43. package/dist/plugins/secrets-redaction/v2.js +100 -0
  44. package/dist/plugins/secrets-redaction/v2.js.map +1 -0
  45. package/dist/plugins/spec-guard/index.d.ts +2 -0
  46. package/dist/plugins/spec-guard/index.js +13 -2
  47. package/dist/plugins/spec-guard/index.js.map +1 -1
  48. package/dist/plugins/spec-guard/v2.d.ts +12 -0
  49. package/dist/plugins/spec-guard/v2.js +139 -0
  50. package/dist/plugins/spec-guard/v2.js.map +1 -0
  51. package/dist/plugins/system-context-injection/agent-contexts.d.ts +5 -0
  52. package/dist/plugins/system-context-injection/agent-contexts.js +164 -0
  53. package/dist/plugins/system-context-injection/agent-contexts.js.map +1 -0
  54. package/dist/plugins/system-context-injection/index.d.ts +2 -0
  55. package/dist/plugins/system-context-injection/index.js +19 -144
  56. package/dist/plugins/system-context-injection/index.js.map +1 -1
  57. package/dist/plugins/system-context-injection/v2.d.ts +13 -0
  58. package/dist/plugins/system-context-injection/v2.js +60 -0
  59. package/dist/plugins/system-context-injection/v2.js.map +1 -0
  60. package/dist/plugins/tool-history-compaction/index.d.ts +2 -0
  61. package/dist/plugins/tool-history-compaction/index.js +13 -2
  62. package/dist/plugins/tool-history-compaction/index.js.map +1 -1
  63. package/dist/plugins/tool-history-compaction/v2.d.ts +11 -0
  64. package/dist/plugins/tool-history-compaction/v2.js +56 -0
  65. package/dist/plugins/tool-history-compaction/v2.js.map +1 -0
  66. package/dist/plugins/v2-runtime/config-watcher.d.ts +26 -0
  67. package/dist/plugins/v2-runtime/config-watcher.js +111 -0
  68. package/dist/plugins/v2-runtime/config-watcher.js.map +1 -0
  69. package/dist/plugins/v2-runtime/index.d.ts +50 -0
  70. package/dist/plugins/v2-runtime/index.js +114 -0
  71. package/dist/plugins/v2-runtime/index.js.map +1 -0
  72. package/dist/plugins/v2-runtime/location-config.d.ts +51 -0
  73. package/dist/plugins/v2-runtime/location-config.js +91 -0
  74. package/dist/plugins/v2-runtime/location-config.js.map +1 -0
  75. package/dist/plugins/v2-runtime/setup.d.ts +48 -0
  76. package/dist/plugins/v2-runtime/setup.js +174 -0
  77. package/dist/plugins/v2-runtime/setup.js.map +1 -0
  78. package/dist/plugins/web-tools/index.d.ts +2 -0
  79. package/dist/plugins/web-tools/index.js +13 -2
  80. package/dist/plugins/web-tools/index.js.map +1 -1
  81. package/dist/plugins/web-tools/v2.d.ts +11 -0
  82. package/dist/plugins/web-tools/v2.js +99 -0
  83. package/dist/plugins/web-tools/v2.js.map +1 -0
  84. package/dist/plugins/workflow/index.d.ts +2 -0
  85. package/dist/plugins/workflow/index.js +13 -2
  86. package/dist/plugins/workflow/index.js.map +1 -1
  87. package/dist/plugins/workflow/results.d.ts +16 -16
  88. package/dist/plugins/workflow/v2.d.ts +58 -0
  89. package/dist/plugins/workflow/v2.js +181 -0
  90. package/dist/plugins/workflow/v2.js.map +1 -0
  91. package/dist/tui.d.ts +1 -0
  92. package/dist/tui.js +41 -6
  93. package/dist/tui.js.map +1 -1
  94. package/package.json +13 -5
  95. package/schemas/vvoc/v3.json +1 -1
  96. package/server.js +7 -0
  97. package/templates/agents/vv-controller.md +17 -0
  98. package/templates/agents/vv-implementer.md +4 -0
  99. package/templates/skills/vv-execute/references/tool-contracts.md +1 -1
  100. package/tui.js +7 -0
@@ -3,7 +3,7 @@
3
3
  // START_MODULE_CONTRACT
4
4
  // PURPOSE: Review OpenCode permission requests with a constrained Guardian agent and safe deny behavior.
5
5
  // SCOPE: Guardian runtime config resolution from the shared startup vvoc config snapshot, managed prompt loading, transcript extraction, risk-assessment prompt construction, permission reply orchestration, and plugin event hooks.
6
- // DEPENDS: [@opencode-ai/plugin, @opencode-ai/sdk, node:fs/promises, src/lib/config-layers.ts, src/lib/managed-agents.ts, src/lib/model-roles.ts, src/lib/vvoc-config.ts]
6
+ // DEPENDS: [@opencode-ai/plugin, @opencode-ai/sdk, node:fs/promises, src/lib/config-layers.ts, src/lib/managed-agents.ts, src/lib/model-roles.ts, src/lib/vvoc-config.ts, src/plugins/v2-runtime/index.ts]
7
7
  // LINKS: [M-PLUGIN-GUARDIAN]
8
8
  // ROLE: RUNTIME
9
9
  // MAP_MODE: EXPORTS
@@ -11,10 +11,15 @@
11
11
  //
12
12
  // START_MODULE_MAP
13
13
  // GuardianPlugin - Registers Guardian agent config, permission review flow, and tool/command intent capture hooks.
14
+ // default - Dual subpath entrypoint: v2 setup() seam plus v1 server() delegating to the named factory.
15
+ // GUARDIAN_AGENT - Guardian agent id shared with the managed agent files.
16
+ // GUARDIAN_DISABLED_ENV - Env var enabling the nested-review auto-deny mode.
17
+ // resolveGuardianRuntimeConfig - Resolve guardian runtime config from a vvoc snapshot.
18
+ // reviewPermissionRequest - Full permission review flow reused by both runtimes.
14
19
  // END_MODULE_MAP
15
20
  //
16
21
  // START_CHANGE_SUMMARY
17
- // LAST_CHANGE: [Direct fix - Restored legacy SDK permission respond fallback for embedded OpenCode clients where client.permission.reply is absent, and preserved the reply failure cause in Guardian logs.]
22
+ // LAST_CHANGE: [C-OPENCODE-V2-MIGRATION T-001 - Added the dual subpath entrypoint so the plugin loads under OpenCode v1 via server() and v2 via setup(). Prior: Direct fix - Restored legacy SDK permission respond fallback for embedded OpenCode clients where client.permission.reply is absent, and preserved the reply failure cause in Guardian logs.]
18
23
  // END_CHANGE_SUMMARY
19
24
  import { appendFile, unlink } from "node:fs/promises";
20
25
  import { loadVvocConfig } from "../../lib/config-layers.js";
@@ -22,8 +27,8 @@ import { loadManagedAgentPromptText } from "../../lib/managed-agents.js";
22
27
  import { ROLE_REFERENCE_PREFIX, resolveRoleReference, } from "../../lib/model-roles.js";
23
28
  import { createGuardianConfig } from "../../lib/vvoc-config.js";
24
29
  import { isVvocPluginEnabled } from "../../lib/plugin-toggle-config.js";
25
- const GUARDIAN_AGENT = "guardian";
26
- const GUARDIAN_DISABLED_ENV = "OPENCODE_GUARDIAN_DISABLED";
30
+ export const GUARDIAN_AGENT = "guardian";
31
+ export const GUARDIAN_DISABLED_ENV = "OPENCODE_GUARDIAN_DISABLED";
27
32
  const GUARDIAN_RUN_DIRECTORY = "/tmp";
28
33
  const GUARDIAN_DEBUG_LOG_PATH = "/tmp/opencode-guardian-debug.log";
29
34
  const GUARDIAN_DEBUG_ENV = "OPENCODE_GUARDIAN_DEBUG";
@@ -196,7 +201,7 @@ function resolveGuardianRoleSelection(roleMap) {
196
201
  });
197
202
  }
198
203
  }
199
- function resolveGuardianRuntimeConfig(loaded) {
204
+ export function resolveGuardianRuntimeConfig(loaded) {
200
205
  const sources = [loaded.source.path ?? loaded.source.kind];
201
206
  const warnings = [...loaded.warnings];
202
207
  const canonicalConfig = loaded.config;
@@ -742,7 +747,7 @@ async function replyToPermission(client, serverUrl, directory, sessionID, reques
742
747
  }
743
748
  // END_BLOCK_REPLY_TO_PERMISSION_REQUEST
744
749
  // START_BLOCK_REVIEW_PERMISSION_REQUEST
745
- async function reviewPermissionRequest(client, serverUrl, directory, guardianPrompt, guardianConfig, permissionEvent, toolIntentsByCallID, latestCommandIntentBySessionID, activeReviews, activeReview) {
750
+ export async function reviewPermissionRequest(client, serverUrl, directory, guardianPrompt, guardianConfig, permissionEvent, toolIntentsByCallID, latestCommandIntentBySessionID, activeReviews, activeReview) {
746
751
  try {
747
752
  await showGuardianToast(client, directory, "info", `Reviewing ${permissionEvent.permission ?? "unknown"} permission request...`, "Guardian", guardianConfig.reviewToastDurationMs);
748
753
  pruneMap(toolIntentsByCallID);
@@ -1045,4 +1050,14 @@ export const GuardianPlugin = async ({ client, directory, serverUrl }) => {
1045
1050
  };
1046
1051
  };
1047
1052
  // END_BLOCK_REGISTER_GUARDIAN_PLUGIN_HOOKS
1053
+ // START_BLOCK_DUAL_SUBPATH_ENTRY
1054
+ import { defineDualPlugin } from "../v2-runtime/index.js";
1055
+ import { createV2Adapter } from "../v2-runtime/setup.js";
1056
+ import { setupGuardianV2 } from "./v2.js";
1057
+ export default defineDualPlugin({
1058
+ id: "vvoc.guardian",
1059
+ v1: GuardianPlugin,
1060
+ v2: (ctx) => setupGuardianV2(createV2Adapter(ctx)),
1061
+ });
1062
+ // END_BLOCK_DUAL_SUBPATH_ENTRY
1048
1063
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/guardian/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/guardian/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { Plugin as V2Plugin } from "@opencode/plugin";
2
+ import type { V2AdapterContext } from "../v2-runtime/setup.js";
3
+ /**
4
+ * Register the Guardian review flow on the v2 runtime.
5
+ *
6
+ * The v2 permission.asked and permission.replied events carry the same
7
+ * request fields the v1 events did, so the review flow itself is reused
8
+ * unchanged through the client shim. Tool intents keep flowing from the
9
+ * execute.before hook; the guardian agent definition itself comes from the
10
+ * managed agent files vvoc sync installs, replacing the v1 runtime config
11
+ * hook installation.
12
+ */
13
+ export declare function setupGuardianV2(adapter: V2AdapterContext): Promise<V2Plugin.Cleanup | void>;
@@ -0,0 +1,161 @@
1
+ // FILE: src/plugins/guardian/v2.ts
2
+ // VERSION: 1.0.0
3
+ // START_MODULE_CONTRACT
4
+ // PURPOSE: Review OpenCode v2 permission requests with the constrained Guardian agent through a v1-shaped client shim over the v2 plugin domains.
5
+ // SCOPE: v2 setup only: subscribe to permission.asked and permission.replied events, track tool intents on the execute.before hook, adapt the four client surfaces the shared review flow needs (logging, toast no-op, session transcript, permission reply) onto v2 domains, and keep the nested-review auto-deny and cancellation semantics unchanged.
6
+ // DEPENDS: [@opencode/plugin, src/lib/config-layers.ts, src/lib/managed-agents.ts, src/plugins/guardian/index.ts, src/plugins/v2-runtime/setup.ts]
7
+ // LINKS: [M-PLUGIN-GUARDIAN, V-M-PLUGIN-GUARDIAN, M-PLUGIN-V2-RUNTIME]
8
+ // ROLE: RUNTIME
9
+ // MAP_MODE: EXPORTS
10
+ // END_MODULE_CONTRACT
11
+ //
12
+ // START_MODULE_MAP
13
+ // setupGuardianV2 - Register the permission review flow for one OpenCode v2 plugin context.
14
+ // END_MODULE_MAP
15
+ //
16
+ // START_CHANGE_SUMMARY
17
+ // LAST_CHANGE: [C-OPENCODE-V2-MIGRATION T-003 - Ported the Guardian permission review onto v2 events and domains through a client shim.]
18
+ // END_CHANGE_SUMMARY
19
+ import { loadVvocConfigForRead } from "../../lib/config-layers.js";
20
+ import { loadManagedAgentPromptText } from "../../lib/managed-agents.js";
21
+ import { GUARDIAN_AGENT, GUARDIAN_DISABLED_ENV, reviewPermissionRequest, resolveGuardianRuntimeConfig, } from "./index.js";
22
+ // START_BLOCK_GUARDIAN_V2_CLIENT_SHIM
23
+ /**
24
+ * A v1-shaped client built on v2 domains, providing exactly the four
25
+ * surfaces the shared review flow consumes. Toasts degrade to a no-op
26
+ * because v2 server plugins have no TUI channel; the TUI banner surface
27
+ * belongs to the CLI plugin.
28
+ */
29
+ function createClientShim(adapter, directory) {
30
+ return {
31
+ app: {
32
+ log: async () => { },
33
+ },
34
+ tui: {
35
+ show: async () => { },
36
+ },
37
+ session: {
38
+ messages: async (input) => {
39
+ try {
40
+ const data = await adapter.ctx.session.context({ sessionID: input.path.id });
41
+ return { data };
42
+ }
43
+ catch (error) {
44
+ return { data: undefined, error };
45
+ }
46
+ },
47
+ },
48
+ permission: {
49
+ reply: async (input) => {
50
+ await adapter.ctx.permission.reply({
51
+ requestID: input.requestID,
52
+ decision: input.reply,
53
+ message: input.message,
54
+ });
55
+ return { data: true };
56
+ },
57
+ },
58
+ directory,
59
+ };
60
+ }
61
+ // END_BLOCK_GUARDIAN_V2_CLIENT_SHIM
62
+ // START_BLOCK_SETUP_GUARDIAN_V2
63
+ /**
64
+ * Register the Guardian review flow on the v2 runtime.
65
+ *
66
+ * The v2 permission.asked and permission.replied events carry the same
67
+ * request fields the v1 events did, so the review flow itself is reused
68
+ * unchanged through the client shim. Tool intents keep flowing from the
69
+ * execute.before hook; the guardian agent definition itself comes from the
70
+ * managed agent files vvoc sync installs, replacing the v1 runtime config
71
+ * hook installation.
72
+ */
73
+ export async function setupGuardianV2(adapter) {
74
+ const directory = adapter.ctx.location.directory;
75
+ const read = await loadVvocConfigForRead({
76
+ cwd: directory,
77
+ scope: "effective",
78
+ allowDefault: true,
79
+ });
80
+ const vvoc = {
81
+ config: read.config,
82
+ source: read.source,
83
+ warnings: read.warnings,
84
+ loadedAt: new Date().toISOString(),
85
+ };
86
+ const { isVvocPluginEnabled } = await import("../../lib/plugin-toggle-config.js");
87
+ if (!isVvocPluginEnabled(read.config, "guardian"))
88
+ return undefined;
89
+ if (process.env[GUARDIAN_DISABLED_ENV] === "1") {
90
+ // Nested reviews must never grant permissions: auto-deny stays active.
91
+ const controller = new AbortController();
92
+ void (async () => {
93
+ try {
94
+ for await (const event of adapter.ctx.event.subscribe({ signal: controller.signal })) {
95
+ const typed = event;
96
+ if (typed.type !== "permission.asked" || !typed.data?.id || !typed.data.sessionID)
97
+ continue;
98
+ try {
99
+ await adapter.ctx.permission.reply({
100
+ requestID: typed.data.id,
101
+ decision: "reject",
102
+ message: "Guardian nested reviews do not allow additional permissions.",
103
+ });
104
+ }
105
+ catch {
106
+ // Nested deny is best-effort.
107
+ }
108
+ }
109
+ }
110
+ catch {
111
+ // Stream failures never break the host.
112
+ }
113
+ })();
114
+ return () => controller.abort();
115
+ }
116
+ const guardianConfig = resolveGuardianRuntimeConfig(vvoc);
117
+ const guardianPrompt = await loadManagedAgentPromptText(directory, GUARDIAN_AGENT);
118
+ const client = createClientShim(adapter, directory);
119
+ const dummyUrl = new URL("http://127.0.0.1:1");
120
+ const toolIntentsByCallID = new Map();
121
+ const latestCommandIntentBySessionID = new Map();
122
+ const activeReviews = new Map();
123
+ const controller = new AbortController();
124
+ void (async () => {
125
+ try {
126
+ for await (const event of adapter.ctx.event.subscribe({ signal: controller.signal })) {
127
+ const typed = event;
128
+ if (typed.type === "permission.asked" &&
129
+ typed.data?.id &&
130
+ !activeReviews.has(typed.data.id)) {
131
+ const activeReview = {
132
+ cancelled: false,
133
+ internalReply: false,
134
+ cancellationNoticeShown: false,
135
+ };
136
+ activeReviews.set(typed.data.id, activeReview);
137
+ void reviewPermissionRequest(client, dummyUrl, directory, guardianPrompt, guardianConfig, typed.data, toolIntentsByCallID, latestCommandIntentBySessionID, activeReviews, activeReview).catch((error) => {
138
+ console.error(`[vvoc][guardian] review failed: ${String(error)}`);
139
+ });
140
+ continue;
141
+ }
142
+ if (typed.type === "permission.replied") {
143
+ const permissionID = typed.data?.requestID;
144
+ if (typeof permissionID !== "string")
145
+ continue;
146
+ const activeReview = activeReviews.get(permissionID);
147
+ if (!activeReview || activeReview.internalReply)
148
+ continue;
149
+ activeReview.cancelled = true;
150
+ activeReview.cancel?.();
151
+ }
152
+ }
153
+ }
154
+ catch (error) {
155
+ console.error(`[vvoc][guardian] event stream failed: ${String(error)}`);
156
+ }
157
+ })();
158
+ return () => controller.abort();
159
+ }
160
+ // END_BLOCK_SETUP_GUARDIAN_V2
161
+ //# sourceMappingURL=v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v2.js","sourceRoot":"","sources":["../../../src/plugins/guardian/v2.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,34 @@
1
- import { type Plugin } from "@opencode-ai/plugin";
1
+ import { type Plugin, type ToolContext } from "@opencode-ai/plugin";
2
+ import { type EditMode } from "./routing.js";
3
+ import { type HashlineEditToolArgs } from "./schemas.js";
4
+ import { SessionFileCache, type FileSnapshot } from "./session-state.js";
5
+ import { type StrReplaceEditorArgs } from "./str-replace-editor.js";
6
+ export declare const EDIT_VISIBILITY_TOOLS: readonly ["hashline_edit", "edit", "str_replace_editor"];
7
+ declare const EDIT_TYPE_TOOLS: readonly ["hashline_edit", "str_replace_editor"];
8
+ type EditTypeTool = (typeof EDIT_TYPE_TOOLS)[number];
9
+ export declare function isEditTypeTool(toolName: string): toolName is EditTypeTool;
10
+ export declare function visibleToolsForMode(mode: EditMode): EditTypeTool[];
11
+ /**
12
+ * Shared per-session model visibility guard. Both the tool.execute.before hook
13
+ * and every registered execute entry use it, so a directly invoked registered
14
+ * tool cannot bypass the model routing the hook enforces. It resolves only the
15
+ * session's cached model identity and performs no argument inspection, filesystem
16
+ * access, cache update, or metadata report.
17
+ */
18
+ export declare function assertEditToolVisible(toolName: EditTypeTool, sessionID: string, resolveMode: (sessionID: string) => EditMode): void;
19
+ interface EditTelemetry {
20
+ editMode: EditMode;
21
+ providerID?: string;
22
+ modelID?: string;
23
+ }
24
+ export declare function statSnapshot(filePath: string): Promise<FileSnapshot | undefined>;
25
+ export declare function isReadTool(toolName: string): boolean;
26
+ export declare function isHashlineEligibleReadOutput(output: string): boolean;
27
+ export declare function readArgFilePath(args: unknown): string | undefined;
28
+ export declare function readSourceLines(args: unknown): Promise<string[] | undefined>;
29
+ export declare function transformReadOutput(output: string, sourceLines?: string[]): string;
30
+ export declare function executeHashlineEdit(args: HashlineEditToolArgs, context: ToolContext, telemetry: EditTelemetry): Promise<string>;
31
+ export declare function executeStrReplaceEditor(args: StrReplaceEditorArgs, context: ToolContext, sessionID: string, fileCache: SessionFileCache, telemetry: EditTelemetry): Promise<string>;
2
32
  export declare const HashlineEditPlugin: Plugin;
33
+ declare const _default: import("../v2-runtime/index.js").DualPlugin;
34
+ export default _default;
@@ -3,7 +3,7 @@
3
3
  // START_MODULE_CONTRACT
4
4
  // PURPOSE: Route per-model edit tooling: register hashline_edit and dsh str_replace_editor from the single-source contracts, publish their strict input JSON Schemas, validate owned-tool arguments at the hook and direct entries, resolve the session edit mode from vvoc routing config, expose exactly one edit tool per model (the host built-in edit/apply_patch for their cohorts, the plugin profiles otherwise), and transform read output with anchors for hashline sessions.
5
5
  // SCOPE: Routing config loading, session model/file caches, chat.message tool-visibility mutation, a shared per-session model visibility guard applied first by both the tool.execute.before hook and every registered execute entry, owned tool.definition publication plus structural/branch argument guards, routed read transformation, hashline/str_replace_editor execution through the schema validators and normalizer, bounded post-edit diff feedback, and editMode telemetry metadata with a bounded reporting-failure distinction that never echoes the thrown message and never misreports an applied edit as invalid or pristine.
6
- // DEPENDS: [@opencode-ai/plugin, node:fs/promises, node:path, src/lib/agent-tool-contract.ts, src/lib/config-layers.ts, src/plugins/hashline-edit/diff-summary.ts, src/plugins/hashline-edit/edit-operations.ts, src/plugins/hashline-edit/file-text-canonicalization.ts, src/plugins/hashline-edit/hash-computation.ts, src/plugins/hashline-edit/normalize-edits.ts, src/plugins/hashline-edit/routing.ts, src/plugins/hashline-edit/schemas.ts, src/plugins/hashline-edit/session-state.ts, src/plugins/hashline-edit/str-replace-editor.ts, src/plugins/hashline-edit/validation.ts]
6
+ // DEPENDS: [@opencode-ai/plugin, node:fs/promises, node:path, src/lib/agent-tool-contract.ts, src/lib/config-layers.ts, src/plugins/hashline-edit/diff-summary.ts, src/plugins/hashline-edit/edit-operations.ts, src/plugins/hashline-edit/file-text-canonicalization.ts, src/plugins/hashline-edit/hash-computation.ts, src/plugins/hashline-edit/normalize-edits.ts, src/plugins/hashline-edit/routing.ts, src/plugins/hashline-edit/schemas.ts, src/plugins/hashline-edit/session-state.ts, src/plugins/hashline-edit/str-replace-editor.ts, src/plugins/hashline-edit/validation.ts, src/plugins/v2-runtime/index.ts]
7
7
  // LINKS: [M-PLUGIN-HASHLINE-EDIT, M-AGENT-TOOL-CONTRACT]
8
8
  // ROLE: RUNTIME
9
9
  // MAP_MODE: EXPORTS
@@ -11,10 +11,24 @@
11
11
  //
12
12
  // START_MODULE_MAP
13
13
  // HashlineEditPlugin - Registers routed edit tools (hashline_edit, str_replace_editor), per-model tool visibility, owned contract hooks, and the routed read-output enhancer.
14
+ // default - Dual subpath entrypoint: v2 setup() seam plus v1 server() delegating to the named factory.
15
+ // EDIT_VISIBILITY_TOOLS - Edit tool ids whose visibility routing manages.
16
+ // isEditTypeTool - Type guard for the two owned edit tool ids.
17
+ // visibleToolsForMode - Edit tools visible for one edit mode.
18
+ // assertEditToolVisible - Deny a hidden edit tool for a session before argument detail.
19
+ // statSnapshot - File stat snapshot for the session file cache.
20
+ // isReadTool - Read tool id guard.
21
+ // isHashlineEligibleReadOutput - Guard for read outputs worth transforming.
22
+ // readArgFilePath - FilePath extraction from read tool arguments.
23
+ // readSourceLines - Source lines for read arguments when available.
24
+ // transformReadOutput - Routed read transformation with anchors.
25
+ // executeHashlineEdit - Owned hashline_edit executor.
26
+ // executeStrReplaceEditor - Owned str_replace_editor executor.
27
+ // default - Dual subpath entrypoint: v2 setup() seam plus v1 server() delegating to the named factory.
14
28
  // END_MODULE_MAP
15
29
  //
16
30
  // START_CHANGE_SUMMARY
17
- // LAST_CHANGE: [C-AGENT-TOOL-CONTRACTS T-005 - Registered both edit tools from schemas.ts, published the strict input JSON Schema through tool.definition, added owned argument validation after the existing visibility denial and at direct entries, and narrowed post-write metadata reporting failures without changing literal edit, routing, or anchor semantics.]
31
+ // LAST_CHANGE: [C-OPENCODE-V2-MIGRATION T-001 - Added the dual subpath entrypoint so the plugin loads under OpenCode v1 via server() and v2 via setup(). Prior: C-AGENT-TOOL-CONTRACTS T-005 - Registered both edit tools from schemas.ts, published the strict input JSON Schema through tool.definition, added owned argument validation after the existing visibility denial and at direct entries, and narrowed post-write metadata reporting failures without changing literal edit, routing, or anchor semantics.]
18
32
  // END_CHANGE_SUMMARY
19
33
  import { tool } from "@opencode-ai/plugin";
20
34
  import { resolve } from "node:path";
@@ -43,15 +57,15 @@ const PIPE_READ_LINE_PATTERN = /^\s*(\d+)\| ?(.*)$/;
43
57
  // built-in `edit` so deepseek/hashline cohorts see exactly one edit tool;
44
58
  // `apply_patch` is deliberately absent (its visibility is owned by the host
45
59
  // gate and never forced by this plugin).
46
- const EDIT_VISIBILITY_TOOLS = ["hashline_edit", "edit", "str_replace_editor"];
60
+ export const EDIT_VISIBILITY_TOOLS = ["hashline_edit", "edit", "str_replace_editor"];
47
61
  // Plugin-owned edit tools only. The host built-in edit/apply_patch are never
48
62
  // registered or blocked by this plugin; they serve the `edit`/`apply_patch`
49
63
  // routing modes with their native behavior.
50
64
  const EDIT_TYPE_TOOLS = ["hashline_edit", "str_replace_editor"];
51
- function isEditTypeTool(toolName) {
65
+ export function isEditTypeTool(toolName) {
52
66
  return EDIT_TYPE_TOOLS.includes(toolName);
53
67
  }
54
- function visibleToolsForMode(mode) {
68
+ export function visibleToolsForMode(mode) {
55
69
  switch (mode) {
56
70
  case "hashline_edit":
57
71
  return ["hashline_edit"];
@@ -72,7 +86,7 @@ function visibleToolsForMode(mode) {
72
86
  * session's cached model identity and performs no argument inspection, filesystem
73
87
  * access, cache update, or metadata report.
74
88
  */
75
- function assertEditToolVisible(toolName, sessionID, resolveMode) {
89
+ export function assertEditToolVisible(toolName, sessionID, resolveMode) {
76
90
  const mode = resolveMode(sessionID);
77
91
  const visible = visibleToolsForMode(mode);
78
92
  if (visible.includes(toolName)) {
@@ -82,7 +96,7 @@ function assertEditToolVisible(toolName, sessionID, resolveMode) {
82
96
  throw new Error(`${toolName} is not available for this session's model (edit mode: ${mode}). Use ${preferred} instead.`);
83
97
  }
84
98
  // START_BLOCK_FS_HELPERS
85
- async function statSnapshot(filePath) {
99
+ export async function statSnapshot(filePath) {
86
100
  try {
87
101
  const info = await stat(filePath);
88
102
  if (!info.isFile()) {
@@ -167,14 +181,14 @@ function publishSuccessMetadata(args) {
167
181
  },
168
182
  });
169
183
  }
170
- function isReadTool(toolName) {
184
+ export function isReadTool(toolName) {
171
185
  return toolName.toLowerCase() === "read";
172
186
  }
173
187
  function isTextFileOutput(output) {
174
188
  const firstLine = output.split("\n")[0] ?? "";
175
189
  return COLON_READ_LINE_PATTERN.test(firstLine) || PIPE_READ_LINE_PATTERN.test(firstLine);
176
190
  }
177
- function isHashlineEligibleReadOutput(output) {
191
+ export function isHashlineEligibleReadOutput(output) {
178
192
  if (!output) {
179
193
  return false;
180
194
  }
@@ -194,7 +208,7 @@ function isHashlineEligibleReadOutput(output) {
194
208
  }
195
209
  return isTextFileOutput(lines[0] ?? "");
196
210
  }
197
- function readArgFilePath(args) {
211
+ export function readArgFilePath(args) {
198
212
  if (!args || typeof args !== "object") {
199
213
  return undefined;
200
214
  }
@@ -206,7 +220,7 @@ function readArgFilePath(args) {
206
220
  }
207
221
  return undefined;
208
222
  }
209
- async function readSourceLines(args) {
223
+ export async function readSourceLines(args) {
210
224
  const filePath = readArgFilePath(args);
211
225
  if (!filePath) {
212
226
  return undefined;
@@ -302,7 +316,7 @@ function formatReadLines(parsedLines, rawLines, sourceLines) {
302
316
  }
303
317
  return result;
304
318
  }
305
- function transformReadOutput(output, sourceLines) {
319
+ export function transformReadOutput(output, sourceLines) {
306
320
  if (!output) {
307
321
  return output;
308
322
  }
@@ -352,7 +366,7 @@ function transformReadOutput(output, sourceLines) {
352
366
  return result.join("\n");
353
367
  }
354
368
  // START_BLOCK_HASHLINE_EXECUTE
355
- async function executeHashlineEdit(args, context, telemetry) {
369
+ export async function executeHashlineEdit(args, context, telemetry) {
356
370
  try {
357
371
  const validation = validateHashlineEditToolInput(args);
358
372
  if (!validation.ok) {
@@ -447,7 +461,7 @@ async function executeHashlineEdit(args, context, telemetry) {
447
461
  }
448
462
  // END_BLOCK_HASHLINE_EXECUTE
449
463
  // START_BLOCK_STR_REPLACE_EXECUTE
450
- async function executeStrReplaceEditor(args, context, sessionID, fileCache, telemetry) {
464
+ export async function executeStrReplaceEditor(args, context, sessionID, fileCache, telemetry) {
451
465
  const editor = new StrReplaceEditor({
452
466
  fs: createNodeStrReplaceFs(),
453
467
  onViewed: (path, snapshot) => fileCache.record(sessionID, path, snapshot),
@@ -593,4 +607,14 @@ export const HashlineEditPlugin = async ({ directory }) => {
593
607
  };
594
608
  };
595
609
  // END_BLOCK_PLUGIN
610
+ // START_BLOCK_DUAL_SUBPATH_ENTRY
611
+ import { defineDualPlugin } from "../v2-runtime/index.js";
612
+ import { createV2Adapter } from "../v2-runtime/setup.js";
613
+ import { setupHashlineEditV2 } from "./v2.js";
614
+ export default defineDualPlugin({
615
+ id: "vvoc.hashline-edit",
616
+ v1: HashlineEditPlugin,
617
+ v2: (ctx) => setupHashlineEditV2(createV2Adapter(ctx)),
618
+ });
619
+ // END_BLOCK_DUAL_SUBPATH_ENTRY
596
620
  //# sourceMappingURL=index.js.map