@xemahq/worker-runtime-opencode 0.10.1 → 0.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/index.d.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  export { OpencodeWorkerRuntimeAdapter, OPENCODE_CONNECTOR_KIND, type OpencodePodSpec, } from './lib/opencode-worker-runtime';
2
2
  export { createOpencodeWorkerRuntimeAdapter } from './lib/factory';
3
3
  export { compileOpencodeRuntimeProfile } from './lib/runtime-profile-compiler';
4
- export { buildOpenCodeCompaction, deriveOpenCodeCompaction, deriveOpenCodeCompactionReserve, type OpenCodeCompactionConfig, } from './lib/compaction-policy';
4
+ export { buildOpencodeV2Compaction, deriveOpencodeV2Compaction, type OpencodeV2CompactionConfig, } from './lib/compaction-policy';
5
5
  export { OPENCODE_RUNTIME_PROFILE_SETTING_DEFAULTS, resolveOpencodeRuntimeProfileSettings, type OpencodeAuthoredRuntimeProfileSettings, } from './lib/runtime-profile';
6
- export { OPENCODE_AUTHORED_COMPACTION_KEYS, OPENCODE_AUTHORED_SETTINGS_KEYS, OPENCODE_EXCLUDED_NATIVE_PERMISSION_REFS, OPENCODE_NATIVE_PERMISSION_REFS, OPENCODE_RETIRED_COMPACTION_KEYS, OpencodeRuntimeProfileSchema, type OpencodeNativePermissionRef, type OpencodeRuntimeProfileSettings, } from './lib/runtime-profile';
6
+ export { OPENCODE_AUTHORED_COMPACTION_KEYS, OPENCODE_AUTHORED_SETTINGS_KEYS, OPENCODE_EXCLUDED_NATIVE_PERMISSION_REFS, OPENCODE_NATIVE_PERMISSION_REFS, OpencodeRuntimeProfileSchema, translateRuntimeProfileNativeRef, type OpencodeNativePermissionRef, type OpencodeRuntimeProfileSettings, } from './lib/runtime-profile';
7
+ export { evaluateOpencodeV2Permission, matchesV2Wildcard, OPENCODE_V1_PERMISSION_KEY_TRANSLATION, OPENCODE_V1_PERMISSION_KEYS_WITHOUT_V2_TARGET, OPENCODE_RUNTIME_TOOL_PERMISSION_KEYS, OPENCODE_V2_NATIVE_ACTIONS, OPENCODE_V2_PLATFORM_DENIED_ACTIONS, OpencodeV2Action, projectOpencodeV2Permissions, sanitizeMcpName, translateAuthoredPermissionKey, type AuthoredPermissionAction, type AuthoredPermissionMap, type AuthoredPermissionRule, type OpencodeV2PermissionEffect, type OpencodeV2PermissionRule, type ProjectOpencodeV2PermissionsInput, } from './lib/v2-permissions';
8
+ export { OPENCODE_V2_CONFIG_CONTRACT_SOURCE, OpencodeV2CompactionSchema, OpencodeV2ConfigContractSchema, OpencodeV2PermissionRulesetSchema, type OpencodeV2ConfigContract, } from './lib/v2-config-contract';
7
9
  export { assertDropArmApplies, collectOpencodeRuntimeProfileDiagnostics, } from './lib/runtime-profile-diagnostics';
8
10
  export { buildOpencodeSessionBundle, computeSessionBindingRevision, computeStaticBundleFingerprint, decodeOpencodeSessionBundle, type OpencodeBundleSubAgent, type OpencodeSessionBundlePayload, } from './lib/session-bundle';
9
11
  export type { BundleCallerContext, OpencodeRuntimeConfig, WorkerRef, } from './lib/worker-ref';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,KAAK,eAAe,GACrB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,kCAAkC,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,+BAA+B,EAC/B,KAAK,wBAAwB,GAC9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,yCAAyC,EACzC,qCAAqC,EACrC,KAAK,sCAAsC,GAC5C,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iCAAiC,EACjC,+BAA+B,EAC/B,wCAAwC,EACxC,+BAA+B,EAC/B,gCAAgC,EAChC,4BAA4B,EAC5B,KAAK,2BAA2B,EAChC,KAAK,8BAA8B,GACpC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,wCAAwC,GACzC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,8BAA8B,EAC9B,2BAA2B,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,GAClC,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,SAAS,GACV,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,KAAK,eAAe,GACrB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,kCAAkC,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,KAAK,0BAA0B,GAChC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,yCAAyC,EACzC,qCAAqC,EACrC,KAAK,sCAAsC,GAC5C,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iCAAiC,EACjC,+BAA+B,EAC/B,wCAAwC,EACxC,+BAA+B,EAC/B,4BAA4B,EAC5B,gCAAgC,EAChC,KAAK,2BAA2B,EAChC,KAAK,8BAA8B,GACpC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,4BAA4B,EAC5B,iBAAiB,EACjB,sCAAsC,EACtC,6CAA6C,EAC7C,qCAAqC,EACrC,0BAA0B,EAC1B,mCAAmC,EACnC,gBAAgB,EAChB,4BAA4B,EAC5B,eAAe,EACf,8BAA8B,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,iCAAiC,GACvC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kCAAkC,EAClC,0BAA0B,EAC1B,8BAA8B,EAC9B,iCAAiC,EACjC,KAAK,wBAAwB,GAC9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,oBAAoB,EACpB,wCAAwC,GACzC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,8BAA8B,EAC9B,2BAA2B,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,GAClC,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,SAAS,GACV,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.decodeOpencodeSessionBundle = exports.computeStaticBundleFingerprint = exports.computeSessionBindingRevision = exports.buildOpencodeSessionBundle = exports.collectOpencodeRuntimeProfileDiagnostics = exports.assertDropArmApplies = exports.OpencodeRuntimeProfileSchema = exports.OPENCODE_RETIRED_COMPACTION_KEYS = exports.OPENCODE_NATIVE_PERMISSION_REFS = exports.OPENCODE_EXCLUDED_NATIVE_PERMISSION_REFS = exports.OPENCODE_AUTHORED_SETTINGS_KEYS = exports.OPENCODE_AUTHORED_COMPACTION_KEYS = exports.resolveOpencodeRuntimeProfileSettings = exports.OPENCODE_RUNTIME_PROFILE_SETTING_DEFAULTS = exports.deriveOpenCodeCompactionReserve = exports.deriveOpenCodeCompaction = exports.buildOpenCodeCompaction = exports.compileOpencodeRuntimeProfile = exports.createOpencodeWorkerRuntimeAdapter = exports.OPENCODE_CONNECTOR_KIND = exports.OpencodeWorkerRuntimeAdapter = void 0;
3
+ exports.decodeOpencodeSessionBundle = exports.computeStaticBundleFingerprint = exports.computeSessionBindingRevision = exports.buildOpencodeSessionBundle = exports.collectOpencodeRuntimeProfileDiagnostics = exports.assertDropArmApplies = exports.OpencodeV2PermissionRulesetSchema = exports.OpencodeV2ConfigContractSchema = exports.OpencodeV2CompactionSchema = exports.OPENCODE_V2_CONFIG_CONTRACT_SOURCE = exports.translateAuthoredPermissionKey = exports.sanitizeMcpName = exports.projectOpencodeV2Permissions = exports.OpencodeV2Action = exports.OPENCODE_V2_PLATFORM_DENIED_ACTIONS = exports.OPENCODE_V2_NATIVE_ACTIONS = exports.OPENCODE_RUNTIME_TOOL_PERMISSION_KEYS = exports.OPENCODE_V1_PERMISSION_KEYS_WITHOUT_V2_TARGET = exports.OPENCODE_V1_PERMISSION_KEY_TRANSLATION = exports.matchesV2Wildcard = exports.evaluateOpencodeV2Permission = exports.translateRuntimeProfileNativeRef = exports.OpencodeRuntimeProfileSchema = exports.OPENCODE_NATIVE_PERMISSION_REFS = exports.OPENCODE_EXCLUDED_NATIVE_PERMISSION_REFS = exports.OPENCODE_AUTHORED_SETTINGS_KEYS = exports.OPENCODE_AUTHORED_COMPACTION_KEYS = exports.resolveOpencodeRuntimeProfileSettings = exports.OPENCODE_RUNTIME_PROFILE_SETTING_DEFAULTS = exports.deriveOpencodeV2Compaction = exports.buildOpencodeV2Compaction = exports.compileOpencodeRuntimeProfile = exports.createOpencodeWorkerRuntimeAdapter = exports.OPENCODE_CONNECTOR_KIND = exports.OpencodeWorkerRuntimeAdapter = void 0;
4
4
  var opencode_worker_runtime_1 = require("./lib/opencode-worker-runtime");
5
5
  Object.defineProperty(exports, "OpencodeWorkerRuntimeAdapter", { enumerable: true, get: function () { return opencode_worker_runtime_1.OpencodeWorkerRuntimeAdapter; } });
6
6
  Object.defineProperty(exports, "OPENCODE_CONNECTOR_KIND", { enumerable: true, get: function () { return opencode_worker_runtime_1.OPENCODE_CONNECTOR_KIND; } });
@@ -9,9 +9,8 @@ Object.defineProperty(exports, "createOpencodeWorkerRuntimeAdapter", { enumerabl
9
9
  var runtime_profile_compiler_1 = require("./lib/runtime-profile-compiler");
10
10
  Object.defineProperty(exports, "compileOpencodeRuntimeProfile", { enumerable: true, get: function () { return runtime_profile_compiler_1.compileOpencodeRuntimeProfile; } });
11
11
  var compaction_policy_1 = require("./lib/compaction-policy");
12
- Object.defineProperty(exports, "buildOpenCodeCompaction", { enumerable: true, get: function () { return compaction_policy_1.buildOpenCodeCompaction; } });
13
- Object.defineProperty(exports, "deriveOpenCodeCompaction", { enumerable: true, get: function () { return compaction_policy_1.deriveOpenCodeCompaction; } });
14
- Object.defineProperty(exports, "deriveOpenCodeCompactionReserve", { enumerable: true, get: function () { return compaction_policy_1.deriveOpenCodeCompactionReserve; } });
12
+ Object.defineProperty(exports, "buildOpencodeV2Compaction", { enumerable: true, get: function () { return compaction_policy_1.buildOpencodeV2Compaction; } });
13
+ Object.defineProperty(exports, "deriveOpencodeV2Compaction", { enumerable: true, get: function () { return compaction_policy_1.deriveOpencodeV2Compaction; } });
15
14
  var runtime_profile_1 = require("./lib/runtime-profile");
16
15
  Object.defineProperty(exports, "OPENCODE_RUNTIME_PROFILE_SETTING_DEFAULTS", { enumerable: true, get: function () { return runtime_profile_1.OPENCODE_RUNTIME_PROFILE_SETTING_DEFAULTS; } });
17
16
  Object.defineProperty(exports, "resolveOpencodeRuntimeProfileSettings", { enumerable: true, get: function () { return runtime_profile_1.resolveOpencodeRuntimeProfileSettings; } });
@@ -20,8 +19,25 @@ Object.defineProperty(exports, "OPENCODE_AUTHORED_COMPACTION_KEYS", { enumerable
20
19
  Object.defineProperty(exports, "OPENCODE_AUTHORED_SETTINGS_KEYS", { enumerable: true, get: function () { return runtime_profile_2.OPENCODE_AUTHORED_SETTINGS_KEYS; } });
21
20
  Object.defineProperty(exports, "OPENCODE_EXCLUDED_NATIVE_PERMISSION_REFS", { enumerable: true, get: function () { return runtime_profile_2.OPENCODE_EXCLUDED_NATIVE_PERMISSION_REFS; } });
22
21
  Object.defineProperty(exports, "OPENCODE_NATIVE_PERMISSION_REFS", { enumerable: true, get: function () { return runtime_profile_2.OPENCODE_NATIVE_PERMISSION_REFS; } });
23
- Object.defineProperty(exports, "OPENCODE_RETIRED_COMPACTION_KEYS", { enumerable: true, get: function () { return runtime_profile_2.OPENCODE_RETIRED_COMPACTION_KEYS; } });
24
22
  Object.defineProperty(exports, "OpencodeRuntimeProfileSchema", { enumerable: true, get: function () { return runtime_profile_2.OpencodeRuntimeProfileSchema; } });
23
+ Object.defineProperty(exports, "translateRuntimeProfileNativeRef", { enumerable: true, get: function () { return runtime_profile_2.translateRuntimeProfileNativeRef; } });
24
+ var v2_permissions_1 = require("./lib/v2-permissions");
25
+ Object.defineProperty(exports, "evaluateOpencodeV2Permission", { enumerable: true, get: function () { return v2_permissions_1.evaluateOpencodeV2Permission; } });
26
+ Object.defineProperty(exports, "matchesV2Wildcard", { enumerable: true, get: function () { return v2_permissions_1.matchesV2Wildcard; } });
27
+ Object.defineProperty(exports, "OPENCODE_V1_PERMISSION_KEY_TRANSLATION", { enumerable: true, get: function () { return v2_permissions_1.OPENCODE_V1_PERMISSION_KEY_TRANSLATION; } });
28
+ Object.defineProperty(exports, "OPENCODE_V1_PERMISSION_KEYS_WITHOUT_V2_TARGET", { enumerable: true, get: function () { return v2_permissions_1.OPENCODE_V1_PERMISSION_KEYS_WITHOUT_V2_TARGET; } });
29
+ Object.defineProperty(exports, "OPENCODE_RUNTIME_TOOL_PERMISSION_KEYS", { enumerable: true, get: function () { return v2_permissions_1.OPENCODE_RUNTIME_TOOL_PERMISSION_KEYS; } });
30
+ Object.defineProperty(exports, "OPENCODE_V2_NATIVE_ACTIONS", { enumerable: true, get: function () { return v2_permissions_1.OPENCODE_V2_NATIVE_ACTIONS; } });
31
+ Object.defineProperty(exports, "OPENCODE_V2_PLATFORM_DENIED_ACTIONS", { enumerable: true, get: function () { return v2_permissions_1.OPENCODE_V2_PLATFORM_DENIED_ACTIONS; } });
32
+ Object.defineProperty(exports, "OpencodeV2Action", { enumerable: true, get: function () { return v2_permissions_1.OpencodeV2Action; } });
33
+ Object.defineProperty(exports, "projectOpencodeV2Permissions", { enumerable: true, get: function () { return v2_permissions_1.projectOpencodeV2Permissions; } });
34
+ Object.defineProperty(exports, "sanitizeMcpName", { enumerable: true, get: function () { return v2_permissions_1.sanitizeMcpName; } });
35
+ Object.defineProperty(exports, "translateAuthoredPermissionKey", { enumerable: true, get: function () { return v2_permissions_1.translateAuthoredPermissionKey; } });
36
+ var v2_config_contract_1 = require("./lib/v2-config-contract");
37
+ Object.defineProperty(exports, "OPENCODE_V2_CONFIG_CONTRACT_SOURCE", { enumerable: true, get: function () { return v2_config_contract_1.OPENCODE_V2_CONFIG_CONTRACT_SOURCE; } });
38
+ Object.defineProperty(exports, "OpencodeV2CompactionSchema", { enumerable: true, get: function () { return v2_config_contract_1.OpencodeV2CompactionSchema; } });
39
+ Object.defineProperty(exports, "OpencodeV2ConfigContractSchema", { enumerable: true, get: function () { return v2_config_contract_1.OpencodeV2ConfigContractSchema; } });
40
+ Object.defineProperty(exports, "OpencodeV2PermissionRulesetSchema", { enumerable: true, get: function () { return v2_config_contract_1.OpencodeV2PermissionRulesetSchema; } });
25
41
  var runtime_profile_diagnostics_1 = require("./lib/runtime-profile-diagnostics");
26
42
  Object.defineProperty(exports, "assertDropArmApplies", { enumerable: true, get: function () { return runtime_profile_diagnostics_1.assertDropArmApplies; } });
27
43
  Object.defineProperty(exports, "collectOpencodeRuntimeProfileDiagnostics", { enumerable: true, get: function () { return runtime_profile_diagnostics_1.collectOpencodeRuntimeProfileDiagnostics; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AASA,yEAIuC;AAHrC,uIAAA,4BAA4B,OAAA;AAC5B,kIAAA,uBAAuB,OAAA;AAGzB,yCAAmE;AAA1D,6HAAA,kCAAkC,OAAA;AAC3C,2EAA+E;AAAtE,yIAAA,6BAA6B,OAAA;AACtC,6DAKiC;AAJ/B,4HAAA,uBAAuB,OAAA;AACvB,6HAAA,wBAAwB,OAAA;AACxB,oIAAA,+BAA+B,OAAA;AAGjC,yDAI+B;AAH7B,4IAAA,yCAAyC,OAAA;AACzC,wIAAA,qCAAqC,OAAA;AAGvC,yDAS+B;AAR7B,oIAAA,iCAAiC,OAAA;AACjC,kIAAA,+BAA+B,OAAA;AAC/B,2IAAA,wCAAwC,OAAA;AACxC,kIAAA,+BAA+B,OAAA;AAC/B,mIAAA,gCAAgC,OAAA;AAChC,+HAAA,4BAA4B,OAAA;AAI9B,iFAG2C;AAFzC,mIAAA,oBAAoB,OAAA;AACpB,uJAAA,wCAAwC,OAAA;AAE1C,uDAO8B;AAN5B,4HAAA,0BAA0B,OAAA;AAC1B,+HAAA,6BAA6B,OAAA;AAC7B,gIAAA,8BAA8B,OAAA;AAC9B,6HAAA,2BAA2B,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AASA,yEAIuC;AAHrC,uIAAA,4BAA4B,OAAA;AAC5B,kIAAA,uBAAuB,OAAA;AAGzB,yCAAmE;AAA1D,6HAAA,kCAAkC,OAAA;AAC3C,2EAA+E;AAAtE,yIAAA,6BAA6B,OAAA;AACtC,6DAIiC;AAH/B,8HAAA,yBAAyB,OAAA;AACzB,+HAAA,0BAA0B,OAAA;AAG5B,yDAI+B;AAH7B,4IAAA,yCAAyC,OAAA;AACzC,wIAAA,qCAAqC,OAAA;AAGvC,yDAS+B;AAR7B,oIAAA,iCAAiC,OAAA;AACjC,kIAAA,+BAA+B,OAAA;AAC/B,2IAAA,wCAAwC,OAAA;AACxC,kIAAA,+BAA+B,OAAA;AAC/B,+HAAA,4BAA4B,OAAA;AAC5B,mIAAA,gCAAgC,OAAA;AAIlC,uDAkB8B;AAjB5B,8HAAA,4BAA4B,OAAA;AAC5B,mHAAA,iBAAiB,OAAA;AACjB,wIAAA,sCAAsC,OAAA;AACtC,+IAAA,6CAA6C,OAAA;AAC7C,uIAAA,qCAAqC,OAAA;AACrC,4HAAA,0BAA0B,OAAA;AAC1B,qIAAA,mCAAmC,OAAA;AACnC,kHAAA,gBAAgB,OAAA;AAChB,8HAAA,4BAA4B,OAAA;AAC5B,iHAAA,eAAe,OAAA;AACf,gIAAA,8BAA8B,OAAA;AAQhC,+DAMkC;AALhC,wIAAA,kCAAkC,OAAA;AAClC,gIAAA,0BAA0B,OAAA;AAC1B,oIAAA,8BAA8B,OAAA;AAC9B,uIAAA,iCAAiC,OAAA;AAGnC,iFAG2C;AAFzC,mIAAA,oBAAoB,OAAA;AACpB,uJAAA,wCAAwC,OAAA;AAE1C,uDAO8B;AAN5B,4HAAA,0BAA0B,OAAA;AAC1B,+HAAA,6BAA6B,OAAA;AAC7B,gIAAA,8BAA8B,OAAA;AAC9B,6HAAA,2BAA2B,OAAA"}
@@ -1,17 +1,15 @@
1
- export interface OpenCodeCompactionConfig {
1
+ export interface OpencodeV2CompactionConfig {
2
2
  readonly auto: boolean;
3
- readonly prune: boolean;
4
- readonly reserved: number;
3
+ readonly keep: {
4
+ readonly tokens: number;
5
+ };
6
+ readonly buffer?: number;
5
7
  }
6
- export declare function deriveOpenCodeCompactionReserve(opts: {
7
- contextWindow?: number | null | undefined;
8
- }): number;
9
- export declare function buildOpenCodeCompaction(opts: {
8
+ export declare function buildOpencodeV2Compaction(opts: {
10
9
  readonly auto: boolean;
11
- readonly prune: boolean;
12
- readonly contextWindow?: number | null | undefined;
13
- }): OpenCodeCompactionConfig;
14
- export declare function deriveOpenCodeCompaction(opts: {
15
- contextWindow?: number | null | undefined;
16
- }): OpenCodeCompactionConfig;
10
+ readonly contextWindow: number | null | undefined;
11
+ }): OpencodeV2CompactionConfig;
12
+ export declare function deriveOpencodeV2Compaction(opts: {
13
+ readonly contextWindow: number | null | undefined;
14
+ }): OpencodeV2CompactionConfig;
17
15
  //# sourceMappingURL=compaction-policy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compaction-policy.d.ts","sourceRoot":"","sources":["../../src/lib/compaction-policy.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAmED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE;IACpD,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC3C,GAAG,MAAM,CAcT;AAUD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACpD,GAAG,wBAAwB,CAQ3B;AAeD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC3C,GAAG,wBAAwB,CAO3B"}
1
+ {"version":3,"file":"compaction-policy.d.ts","sourceRoot":"","sources":["../../src/lib/compaction-policy.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AA8DD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACnD,GAAG,0BAA0B,CAwB7B;AAOD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE;IAC/C,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACnD,GAAG,0BAA0B,CAK7B"}
@@ -1,37 +1,41 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deriveOpenCodeCompactionReserve = deriveOpenCodeCompactionReserve;
4
- exports.buildOpenCodeCompaction = buildOpenCodeCompaction;
5
- exports.deriveOpenCodeCompaction = deriveOpenCodeCompaction;
3
+ exports.buildOpencodeV2Compaction = buildOpencodeV2Compaction;
4
+ exports.deriveOpencodeV2Compaction = deriveOpencodeV2Compaction;
6
5
  const runtime_profile_1 = require("./runtime-profile");
7
- const COMPACTION_RESERVE_FRACTION = 0.35;
8
- const COMPACTION_RESERVE_MIN_TOKENS = 16_000;
9
- const COMPACTION_RESERVE_MAX_TOKENS = 96_000;
10
- const COMPACTION_RESERVE_MAX_FRACTION = 0.5;
11
- const COMPACTION_RESERVE_DEFAULT_TOKENS = 80_000;
12
- function deriveOpenCodeCompactionReserve(opts) {
13
- const window = opts.contextWindow;
14
- if (typeof window !== 'number' || !Number.isFinite(window) || window <= 0) {
15
- return COMPACTION_RESERVE_DEFAULT_TOKENS;
16
- }
17
- const proportional = Math.round(window * COMPACTION_RESERVE_FRACTION);
18
- const ceilingByFraction = Math.floor(window * COMPACTION_RESERVE_MAX_FRACTION);
19
- return Math.min(Math.max(proportional, COMPACTION_RESERVE_MIN_TOKENS), COMPACTION_RESERVE_MAX_TOKENS, ceilingByFraction);
6
+ const BUFFER_FRACTION = 0.2;
7
+ const BUFFER_MIN_TOKENS = 16_000;
8
+ const BUFFER_MAX_TOKENS = 64_000;
9
+ const BUFFER_MAX_WINDOW_FRACTION = 0.5;
10
+ const KEEP_FRACTION = 0.1;
11
+ const KEEP_MIN_TOKENS = 4_000;
12
+ const KEEP_MAX_TOKENS = 20_000;
13
+ const KEEP_MAX_WINDOW_FRACTION = 0.25;
14
+ const KEEP_UNKNOWN_WINDOW_TOKENS = 15_000;
15
+ function knownWindow(window) {
16
+ return typeof window === 'number' && Number.isFinite(window) && window > 0
17
+ ? window
18
+ : undefined;
19
+ }
20
+ function clampTokens(window, fraction, min, max, maxWindowFraction) {
21
+ return Math.min(Math.max(Math.round(window * fraction), min), max, Math.floor(window * maxWindowFraction));
20
22
  }
21
- function buildOpenCodeCompaction(opts) {
23
+ function buildOpencodeV2Compaction(opts) {
24
+ const window = knownWindow(opts.contextWindow);
25
+ if (window === undefined) {
26
+ return { auto: opts.auto, keep: { tokens: KEEP_UNKNOWN_WINDOW_TOKENS } };
27
+ }
22
28
  return {
23
29
  auto: opts.auto,
24
- prune: opts.prune,
25
- reserved: deriveOpenCodeCompactionReserve({
26
- contextWindow: opts.contextWindow,
27
- }),
30
+ keep: {
31
+ tokens: clampTokens(window, KEEP_FRACTION, KEEP_MIN_TOKENS, KEEP_MAX_TOKENS, KEEP_MAX_WINDOW_FRACTION),
32
+ },
33
+ buffer: clampTokens(window, BUFFER_FRACTION, BUFFER_MIN_TOKENS, BUFFER_MAX_TOKENS, BUFFER_MAX_WINDOW_FRACTION),
28
34
  };
29
35
  }
30
- function deriveOpenCodeCompaction(opts) {
31
- const defaults = runtime_profile_1.OPENCODE_RUNTIME_PROFILE_SETTING_DEFAULTS.compaction;
32
- return buildOpenCodeCompaction({
33
- auto: defaults.auto,
34
- prune: defaults.prune,
36
+ function deriveOpencodeV2Compaction(opts) {
37
+ return buildOpencodeV2Compaction({
38
+ auto: runtime_profile_1.OPENCODE_RUNTIME_PROFILE_SETTING_DEFAULTS.compaction.auto,
35
39
  contextWindow: opts.contextWindow,
36
40
  });
37
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compaction-policy.js","sourceRoot":"","sources":["../../src/lib/compaction-policy.ts"],"names":[],"mappings":";;AAqFA,0EAgBC;AAUD,0DAYC;AAeD,4DASC;AAnJD,uDAA8E;AAiD9E,MAAM,2BAA2B,GAAG,IAAI,CAAC;AAczC,MAAM,6BAA6B,GAAG,MAAM,CAAC;AAE7C,MAAM,6BAA6B,GAAG,MAAM,CAAC;AAE7C,MAAM,+BAA+B,GAAG,GAAG,CAAC;AAO5C,MAAM,iCAAiC,GAAG,MAAM,CAAC;AAWjD,SAAgB,+BAA+B,CAAC,IAE/C;IACC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;IAClC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAC1E,OAAO,iCAAiC,CAAC;IAC3C,CAAC;IACD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,2BAA2B,CAAC,CAAC;IACtE,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAClC,MAAM,GAAG,+BAA+B,CACzC,CAAC;IACF,OAAO,IAAI,CAAC,GAAG,CACb,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,6BAA6B,CAAC,EACrD,6BAA6B,EAC7B,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAUD,SAAgB,uBAAuB,CAAC,IAIvC;IACC,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,+BAA+B,CAAC;YACxC,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC;KACH,CAAC;AACJ,CAAC;AAeD,SAAgB,wBAAwB,CAAC,IAExC;IACC,MAAM,QAAQ,GAAG,2DAAyC,CAAC,UAAU,CAAC;IACtE,OAAO,uBAAuB,CAAC;QAC7B,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,aAAa,EAAE,IAAI,CAAC,aAAa;KAClC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"compaction-policy.js","sourceRoot":"","sources":["../../src/lib/compaction-policy.ts"],"names":[],"mappings":";;AAmFA,8DA2BC;AAOD,gEAOC;AA5HD,uDAA8E;AAwC9E,MAAM,eAAe,GAAG,GAAG,CAAC;AAC5B,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACjC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACjC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAEvC,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,eAAe,GAAG,KAAK,CAAC;AAC9B,MAAM,eAAe,GAAG,MAAM,CAAC;AAC/B,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAQtC,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAE1C,SAAS,WAAW,CAAC,MAAiC;IACpD,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;QACxE,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAClB,MAAc,EACd,QAAgB,EAChB,GAAW,EACX,GAAW,EACX,iBAAyB;IAEzB,OAAO,IAAI,CAAC,GAAG,CACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,EAC5C,GAAG,EACH,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,iBAAiB,CAAC,CACvC,CAAC;AACJ,CAAC;AAOD,SAAgB,yBAAyB,CAAC,IAGzC;IACC,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,0BAA0B,EAAE,EAAE,CAAC;IAC3E,CAAC;IACD,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE;YACJ,MAAM,EAAE,WAAW,CACjB,MAAM,EACN,aAAa,EACb,eAAe,EACf,eAAe,EACf,wBAAwB,CACzB;SACF;QACD,MAAM,EAAE,WAAW,CACjB,MAAM,EACN,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,0BAA0B,CAC3B;KACF,CAAC;AACJ,CAAC;AAOD,SAAgB,0BAA0B,CAAC,IAE1C;IACC,OAAO,yBAAyB,CAAC;QAC/B,IAAI,EAAE,2DAAyC,CAAC,UAAU,CAAC,IAAI;QAC/D,aAAa,EAAE,IAAI,CAAC,aAAa;KAClC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-worker-runtime.d.ts","sourceRoot":"","sources":["../../src/lib/opencode-worker-runtime.ts"],"names":[],"mappings":"AAYA,OAAO,EAEL,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,gCAAgC,EACrC,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EACjC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAOzE,OAAO,KAAK,EAAE,qBAAqB,EAAa,MAAM,cAAc,CAAC;AAcrE,eAAO,MAAM,uBAAuB,qBAAqB,CAAC;AAmC1D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAMzB,QAAQ,CAAC,YAAY,CAAC,EAAE;QACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;KACpC,CAAC;IACF,QAAQ,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;CACnE;AAOD,qBAAa,4BAA6B,YAAW,oBAAoB;IACvE,QAAQ,CAAC,IAAI,8BAA8B;IAC3C,QAAQ,CAAC,YAAY,8BAAyB;IAC9C,QAAQ,CAAC,qBAAqB,sBAA2B;IACzD,QAAQ,CAAC,uBAAuB,QAAQ;IAExC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,MAAM,CAAkC;gBAEpC,MAAM,EAAE,qBAAqB;IAKzC,oBAAoB,IAAI,oBAAoB;IAI5C,cAAc,CACZ,OAAO,EAAE,qBAAqB,EAC9B,mBAAmB,EAAE,gCAAgC,GACpD,wBAAwB;IAU3B,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC;IAwB1D,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IA0BnE,kBAAkB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA8DxD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4BtB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAe7B,OAAO,CAAC,WAAW;CAcpB"}
1
+ {"version":3,"file":"opencode-worker-runtime.d.ts","sourceRoot":"","sources":["../../src/lib/opencode-worker-runtime.ts"],"names":[],"mappings":"AAYA,OAAO,EAEL,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,gCAAgC,EACrC,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EACjC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAOzE,OAAO,KAAK,EAAE,qBAAqB,EAAa,MAAM,cAAc,CAAC;AAcrE,eAAO,MAAM,uBAAuB,qBAAqB,CAAC;AAwC1D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAMzB,QAAQ,CAAC,YAAY,CAAC,EAAE;QACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;KACpC,CAAC;IACF,QAAQ,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;CACnE;AAOD,qBAAa,4BAA6B,YAAW,oBAAoB;IACvE,QAAQ,CAAC,IAAI,8BAA8B;IAC3C,QAAQ,CAAC,YAAY,8BAAyB;IAC9C,QAAQ,CAAC,qBAAqB,sBAA2B;IACzD,QAAQ,CAAC,uBAAuB,QAAQ;IAExC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,MAAM,CAAkC;gBAEpC,MAAM,EAAE,qBAAqB;IAKzC,oBAAoB,IAAI,oBAAoB;IAI5C,cAAc,CACZ,OAAO,EAAE,qBAAqB,EAC9B,mBAAmB,EAAE,gCAAgC,GACpD,wBAAwB;IAU3B,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC;IAwB1D,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IA0BnE,kBAAkB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA8DxD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4BtB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAe7B,OAAO,CAAC,WAAW;CAcpB"}
@@ -15,8 +15,9 @@ const OPENCODE_CAPABILITIES = {
15
15
  hooks: [
16
16
  worker_runtime_1.HookKind.ToolExecuteBefore,
17
17
  worker_runtime_1.HookKind.ToolExecuteAfter,
18
- worker_runtime_1.HookKind.SessionIdle,
19
- worker_runtime_1.HookKind.SessionStart,
18
+ worker_runtime_1.HookKind.TurnCompleted,
19
+ worker_runtime_1.HookKind.ContextOverlay,
20
+ worker_runtime_1.HookKind.CompactionInvariants,
20
21
  ],
21
22
  previewSupervisor: true,
22
23
  gatewayAttributedCalls: true,
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-worker-runtime.js","sourceRoot":"","sources":["../../src/lib/opencode-worker-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode-worker-runtime.js","sourceRoot":"","sources":["../../src/lib/opencode-worker-runtime.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-profile-compiler.d.ts","sourceRoot":"","sources":["../../src/lib/runtime-profile-compiler.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,gCAAgC,EACrC,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC9B,MAAM,kCAAkC,CAAC;AAqB1C,wBAAgB,6BAA6B,CAC3C,YAAY,EAAE,qBAAqB,EACnC,mBAAmB,EAAE,gCAAgC,GACpD,wBAAwB,CA+D1B"}
1
+ {"version":3,"file":"runtime-profile-compiler.d.ts","sourceRoot":"","sources":["../../src/lib/runtime-profile-compiler.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,gCAAgC,EACrC,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC9B,MAAM,kCAAkC,CAAC;AAyB1C,wBAAgB,6BAA6B,CAC3C,YAAY,EAAE,qBAAqB,EACnC,mBAAmB,EAAE,gCAAgC,GACpD,wBAAwB,CA2D1B"}
@@ -5,23 +5,19 @@ const content_address_1 = require("@xemahq/contracts/content-address");
5
5
  const worker_runtime_1 = require("@xemahq/contracts/worker-runtime");
6
6
  const compaction_policy_1 = require("./compaction-policy");
7
7
  const runtime_profile_1 = require("./runtime-profile");
8
+ const v2_permissions_1 = require("./v2-permissions");
8
9
  function compileOpencodeRuntimeProfile(inputProfile, resolvedComposition) {
9
10
  const profile = runtime_profile_1.OpencodeRuntimeProfileSchema.parse(inputProfile);
10
11
  assertCompositionProfile(profile, resolvedComposition);
11
12
  const settings = (0, runtime_profile_1.resolveOpencodeRuntimeProfileSettings)(profile.settings);
12
13
  const contextWindow = parsePrimaryContextWindow(resolvedComposition);
13
14
  const restriction = parseNativeToolRestriction(resolvedComposition);
14
- const authoredDecisions = new Map(profile.nativePermissionPolicy.entries.map((entry) => [
15
- entry.nativeToolRef,
16
- entry.decision,
17
- ]));
18
- const permission = {
19
- '*': worker_runtime_1.NativePermissionDecision.Deny,
20
- };
21
- for (const nativeToolRef of runtime_profile_1.OPENCODE_NATIVE_PERMISSION_REFS) {
22
- const authored = authoredDecisions.get(nativeToolRef) ?? worker_runtime_1.NativePermissionDecision.Deny;
23
- permission[nativeToolRef] =
24
- restriction === undefined || restriction.has(nativeToolRef)
15
+ const authoredDecisions = collapseAuthoredDecisions(profile.nativePermissionPolicy.entries);
16
+ const permission = {};
17
+ for (const action of runtime_profile_1.OPENCODE_NATIVE_PERMISSION_REFS) {
18
+ const authored = authoredDecisions.get(action) ?? worker_runtime_1.NativePermissionDecision.Deny;
19
+ permission[action] =
20
+ restriction === undefined || restriction.has(action)
25
21
  ? authored
26
22
  : worker_runtime_1.NativePermissionDecision.Deny;
27
23
  }
@@ -29,14 +25,12 @@ function compileOpencodeRuntimeProfile(inputProfile, resolvedComposition) {
29
25
  schemaVersion: 1,
30
26
  runtimeKind: worker_runtime_1.WorkerRuntimeKind.Opencode,
31
27
  config: {
32
- $schema: 'https://opencode.ai/config.json',
33
- autoupdate: false,
28
+ update: 'disable',
34
29
  share: 'disabled',
35
- snapshot: settings.snapshot,
36
- permission,
37
- compaction: (0, compaction_policy_1.buildOpenCodeCompaction)({
30
+ snapshots: settings.snapshots,
31
+ permissions: (0, v2_permissions_1.projectOpencodeV2Permissions)({ scope: 'global', permission }).map((rule) => ({ ...rule })),
32
+ compaction: (0, compaction_policy_1.buildOpencodeV2Compaction)({
38
33
  auto: settings.compaction.auto,
39
- prune: settings.compaction.prune,
40
34
  contextWindow,
41
35
  }),
42
36
  },
@@ -99,7 +93,8 @@ function parseNativeToolRestriction(resolvedComposition) {
99
93
  let previous;
100
94
  const refs = new Set();
101
95
  for (const ref of restriction.nativeToolRefs) {
102
- if (typeof ref !== 'string' || !(0, runtime_profile_1.isOpencodeNativePermissionRef)(ref)) {
96
+ const action = typeof ref === 'string' ? (0, runtime_profile_1.translateRuntimeProfileNativeRef)(ref) : undefined;
97
+ if (typeof ref !== 'string' || action === undefined) {
103
98
  throw new TypeError(`Unsupported OpenCode native permission restriction ref "${String(ref)}". ` +
104
99
  'Xema capabilities and MCP tools are not OpenCode native permissions.');
105
100
  }
@@ -107,10 +102,28 @@ function parseNativeToolRestriction(resolvedComposition) {
107
102
  throw new TypeError('effectiveOverlay.nativeToolRestriction.nativeToolRefs must be unique and sorted.');
108
103
  }
109
104
  previous = ref;
110
- refs.add(ref);
105
+ refs.add(action);
111
106
  }
112
107
  return refs;
113
108
  }
109
+ function collapseAuthoredDecisions(entries) {
110
+ const rank = {
111
+ [worker_runtime_1.NativePermissionDecision.Allow]: 0,
112
+ [worker_runtime_1.NativePermissionDecision.Ask]: 1,
113
+ [worker_runtime_1.NativePermissionDecision.Deny]: 2,
114
+ };
115
+ const decisions = new Map();
116
+ for (const entry of entries) {
117
+ const action = (0, runtime_profile_1.translateRuntimeProfileNativeRef)(entry.nativeToolRef);
118
+ if (action === undefined)
119
+ continue;
120
+ const previous = decisions.get(action);
121
+ if (previous === undefined || rank[entry.decision] > rank[previous]) {
122
+ decisions.set(action, entry.decision);
123
+ }
124
+ }
125
+ return decisions;
126
+ }
114
127
  function isRecord(value) {
115
128
  return value !== null && typeof value === 'object' && !Array.isArray(value);
116
129
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-profile-compiler.js","sourceRoot":"","sources":["../../src/lib/runtime-profile-compiler.ts"],"names":[],"mappings":";;AA+BA,sEAkEC;AAjGD,uEAG2C;AAC3C,qEAM0C;AAE1C,2DAA8D;AAC9D,uDAO2B;AAW3B,SAAgB,6BAA6B,CAC3C,YAAmC,EACnC,mBAAqD;IAErD,MAAM,OAAO,GAAG,8CAA4B,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACjE,wBAAwB,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAevD,MAAM,QAAQ,GAAG,IAAA,uDAAqC,EACpD,OAAO,CAAC,QAA6D,CACtE,CAAC;IACF,MAAM,aAAa,GAAG,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,0BAA0B,CAAC,mBAAmB,CAAC,CAAC;IACpE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAC/B,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACpD,KAAK,CAAC,aAAa;QACnB,KAAK,CAAC,QAAQ;KACf,CAAC,CACH,CAAC;IAEF,MAAM,UAAU,GAA6C;QAC3D,GAAG,EAAE,yCAAwB,CAAC,IAAI;KACnC,CAAC;IACF,KAAK,MAAM,aAAa,IAAI,iDAA+B,EAAE,CAAC;QAC5D,MAAM,QAAQ,GACZ,iBAAiB,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,yCAAwB,CAAC,IAAI,CAAC;QACxE,UAAU,CAAC,aAAa,CAAC;YACvB,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC;gBACzD,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,yCAAwB,CAAC,IAAI,CAAC;IACtC,CAAC;IAED,OAAO,IAAA,yCAAuB,EAAC;QAC7B,aAAa,EAAE,CAAC;QAChB,WAAW,EAAE,kCAAiB,CAAC,QAAQ;QACvC,MAAM,EAAE;YACN,OAAO,EAAE,iCAAiC;YAC1C,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,UAAU;YAOV,UAAU,EAAE,IAAA,2CAAuB,EAAC;gBAClC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI;gBAC9B,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK;gBAChC,aAAa;aACd,CAAC;SACH;KACF,CAA6B,CAAC;AACjC,CAAC;AAmBD,SAAS,yBAAyB,CAChC,mBAAqD;IAErD,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,eAAe,GAAG,mBAAmB,CAAC,eAAe,CAAC;IAC5D,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CACjB,6DAA6D,CAC9D,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,SAAS,CACjB,kEAAkE,CACnE,CAAC;IACJ,CAAC;IACD,MAAM,aAAa,GAAG,eAAe,CAAC,aAAa,CAAC;IACpD,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,SAAS,CACjB,qFAAqF,CACtF,CAAC;IACJ,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,wBAAwB,CAC/B,OAA8B,EAC9B,mBAAqD;IAErD,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,SAAS,CACjB,uEAAuE,CACxE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,SAAS,CACjB,oEAAoE,CACrE,CAAC;IACJ,CAAC;IACD,MAAM,kBAAkB,GAAG,8CAA4B,CAAC,KAAK,CAC3D,mBAAmB,CAAC,cAAc,CACnC,CAAC;IACF,IACE,IAAA,wCAAsB,EAAC,OAAO,CAAC;QAC/B,IAAA,wCAAsB,EAAC,kBAAkB,CAAC,EAC1C,CAAC;QACD,MAAM,IAAI,SAAS,CACjB,yEAAyE,CAC1E,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CACjC,mBAAqD;IAErD,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,gBAAgB,CAAC;IAC9D,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CACjB,+DAA+D,CAChE,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,gBAAgB,CAAC,qBAAqB,CAAC;IAC3D,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAChE,MAAM,IAAI,SAAS,CACjB,oEAAoE,CACrE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,SAAS,CACjB,yEAAyE,CAC1E,CAAC;IACJ,CAAC;IAED,IAAI,QAA4B,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,GAAG,EAA+B,CAAC;IACpD,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,cAAc,EAAE,CAAC;QAC7C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,IAAA,+CAA6B,EAAC,GAAG,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,SAAS,CACjB,2DAA2D,MAAM,CAAC,GAAG,CAAC,KAAK;gBACzE,sEAAsE,CACzE,CAAC;QACJ,CAAC;QACD,IAAI,QAAQ,KAAK,SAAS,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC9C,MAAM,IAAI,SAAS,CACjB,kFAAkF,CACnF,CAAC;QACJ,CAAC;QACD,QAAQ,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"runtime-profile-compiler.js","sourceRoot":"","sources":["../../src/lib/runtime-profile-compiler.ts"],"names":[],"mappings":";;AAmCA,sEA8DC;AAjGD,uEAG2C;AAC3C,qEAM0C;AAE1C,2DAAgE;AAChE,uDAO2B;AAC3B,qDAG0B;AAW1B,SAAgB,6BAA6B,CAC3C,YAAmC,EACnC,mBAAqD;IAErD,MAAM,OAAO,GAAG,8CAA4B,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACjE,wBAAwB,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAevD,MAAM,QAAQ,GAAG,IAAA,uDAAqC,EACpD,OAAO,CAAC,QAA6D,CACtE,CAAC;IACF,MAAM,aAAa,GAAG,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,0BAA0B,CAAC,mBAAmB,CAAC,CAAC;IACpE,MAAM,iBAAiB,GAAG,yBAAyB,CACjD,OAAO,CAAC,sBAAsB,CAAC,OAAO,CACvC,CAAC;IAQF,MAAM,UAAU,GAA6C,EAAE,CAAC;IAChE,KAAK,MAAM,MAAM,IAAI,iDAA+B,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,yCAAwB,CAAC,IAAI,CAAC;QAChF,UAAU,CAAC,MAAM,CAAC;YAChB,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;gBAClD,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,yCAAwB,CAAC,IAAI,CAAC;IACtC,CAAC;IAED,OAAO,IAAA,yCAAuB,EAAC;QAC7B,aAAa,EAAE,CAAC;QAChB,WAAW,EAAE,kCAAiB,CAAC,QAAQ;QACvC,MAAM,EAAE;YACN,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,UAAU;YACjB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,WAAW,EAAE,IAAA,6CAA4B,EAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,GAAG,CAC5E,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CACxB;YAGD,UAAU,EAAE,IAAA,6CAAyB,EAAC;gBACpC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI;gBAC9B,aAAa;aACd,CAAC;SACH;KACF,CAAwC,CAAC;AAC5C,CAAC;AAmBD,SAAS,yBAAyB,CAChC,mBAAqD;IAErD,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,eAAe,GAAG,mBAAmB,CAAC,eAAe,CAAC;IAC5D,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CACjB,6DAA6D,CAC9D,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,SAAS,CACjB,kEAAkE,CACnE,CAAC;IACJ,CAAC;IACD,MAAM,aAAa,GAAG,eAAe,CAAC,aAAa,CAAC;IACpD,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,SAAS,CACjB,qFAAqF,CACtF,CAAC;IACJ,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,wBAAwB,CAC/B,OAA8B,EAC9B,mBAAqD;IAErD,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,SAAS,CACjB,uEAAuE,CACxE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,SAAS,CACjB,oEAAoE,CACrE,CAAC;IACJ,CAAC;IACD,MAAM,kBAAkB,GAAG,8CAA4B,CAAC,KAAK,CAC3D,mBAAmB,CAAC,cAAc,CACnC,CAAC;IACF,IACE,IAAA,wCAAsB,EAAC,OAAO,CAAC;QAC/B,IAAA,wCAAsB,EAAC,kBAAkB,CAAC,EAC1C,CAAC;QACD,MAAM,IAAI,SAAS,CACjB,yEAAyE,CAC1E,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CACjC,mBAAqD;IAErD,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,gBAAgB,CAAC;IAC9D,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CACjB,+DAA+D,CAChE,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,gBAAgB,CAAC,qBAAqB,CAAC;IAC3D,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAChE,MAAM,IAAI,SAAS,CACjB,oEAAoE,CACrE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,SAAS,CACjB,yEAAyE,CAC1E,CAAC;IACJ,CAAC;IAED,IAAI,QAA4B,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,GAAG,EAA+B,CAAC;IACpD,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,cAAc,EAAE,CAAC;QAC7C,MAAM,MAAM,GACV,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,kDAAgC,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9E,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACpD,MAAM,IAAI,SAAS,CACjB,2DAA2D,MAAM,CAAC,GAAG,CAAC,KAAK;gBACzE,sEAAsE,CACzE,CAAC;QACJ,CAAC;QACD,IAAI,QAAQ,KAAK,SAAS,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC9C,MAAM,IAAI,SAAS,CACjB,kFAAkF,CACnF,CAAC;QACJ,CAAC;QACD,QAAQ,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAWD,SAAS,yBAAyB,CAChC,OAAmG;IAEnG,MAAM,IAAI,GAA6C;QACrD,CAAC,yCAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,CAAC,yCAAwB,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,CAAC,yCAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;KACnC,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAyD,CAAC;IACnF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAA,kDAAgC,EAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrE,IAAI,MAAM,KAAK,SAAS;YAAE,SAAS;QACnC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpE,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-profile-diagnostics.d.ts","sourceRoot":"","sources":["../../src/lib/runtime-profile-diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,6BAA6B,EAClC,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC9B,MAAM,kCAAkC,CAAC;AAmF1C,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,6BAA6B,GACpC,IAAI,CASN;AAsBD,wBAAgB,wCAAwC,CACtD,OAAO,EAAE,qBAAqB,GAC7B,SAAS,wBAAwB,EAAE,CAyDrC"}
1
+ {"version":3,"file":"runtime-profile-diagnostics.d.ts","sourceRoot":"","sources":["../../src/lib/runtime-profile-diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,6BAA6B,EAClC,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC9B,MAAM,kCAAkC,CAAC;AA2F1C,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,6BAA6B,GACpC,IAAI,CASN;AAsBD,wBAAgB,wCAAwC,CACtD,OAAO,EAAE,qBAAqB,GAC7B,SAAS,wBAAwB,EAAE,CAwFrC"}
@@ -4,6 +4,9 @@ exports.assertDropArmApplies = assertDropArmApplies;
4
4
  exports.collectOpencodeRuntimeProfileDiagnostics = collectOpencodeRuntimeProfileDiagnostics;
5
5
  const worker_runtime_1 = require("@xemahq/contracts/worker-runtime");
6
6
  const runtime_profile_1 = require("./runtime-profile");
7
+ const v2_permissions_1 = require("./v2-permissions");
8
+ const NO_V2_TARGET = new Set(v2_permissions_1.OPENCODE_V1_PERMISSION_KEYS_WITHOUT_V2_TARGET);
9
+ const RUNTIME_TOOL_REFS = new Set(v2_permissions_1.OPENCODE_RUNTIME_TOOL_PERMISSION_KEYS);
7
10
  const POLICY_KIND_DROP_IS_NARROWING = Object.freeze({
8
11
  'deny-all-except': true,
9
12
  });
@@ -22,7 +25,33 @@ function collectOpencodeRuntimeProfileDiagnostics(profile) {
22
25
  assertDropArmApplies(profile.nativePermissionPolicy);
23
26
  const diagnostics = [];
24
27
  profile.nativePermissionPolicy.entries.forEach((entry, index) => {
25
- if ((0, runtime_profile_1.isOpencodeNativePermissionRef)(entry.nativeToolRef)) {
28
+ if ((0, runtime_profile_1.translateRuntimeProfileNativeRef)(entry.nativeToolRef) !== undefined) {
29
+ return;
30
+ }
31
+ if (RUNTIME_TOOL_REFS.has(entry.nativeToolRef)) {
32
+ diagnostics.push(diagnostic({
33
+ code: worker_runtime_1.RuntimeProfileDiagnosticCode.UnknownNativeToolRef,
34
+ cause: worker_runtime_1.RuntimeProfileDiagnosticCause.RetiredByPlatform,
35
+ subject: entry.nativeToolRef,
36
+ path: ['nativePermissionPolicy', 'entries', index, 'nativeToolRef'],
37
+ authoredValueDropped: true,
38
+ message: `"${entry.nativeToolRef}" is a runtime-local tool (xema-runtime-tools), not an OpenCode ` +
39
+ 'native permission, so a RuntimeProfile cannot govern it and the authored decision ' +
40
+ `"${entry.decision}" was dropped. Govern it in the agent permission map. Remove the entry.`,
41
+ }));
42
+ return;
43
+ }
44
+ if (NO_V2_TARGET.has(entry.nativeToolRef)) {
45
+ diagnostics.push(diagnostic({
46
+ code: worker_runtime_1.RuntimeProfileDiagnosticCode.UnknownNativeToolRef,
47
+ cause: worker_runtime_1.RuntimeProfileDiagnosticCause.UnknownToRuntime,
48
+ subject: entry.nativeToolRef,
49
+ path: ['nativePermissionPolicy', 'entries', index, 'nativeToolRef'],
50
+ authoredValueDropped: true,
51
+ message: `OpenCode V2 has no permission action for "${entry.nativeToolRef}" (it was a ` +
52
+ `V1-only subject), so the authored decision "${entry.decision}" was dropped. ` +
53
+ 'Nothing is granted by the drop: the ruleset starts with a deny-all. Remove the entry.',
54
+ }));
26
55
  return;
27
56
  }
28
57
  const excluded = Object.hasOwn(runtime_profile_1.OPENCODE_EXCLUDED_NATIVE_PERMISSION_REFS, entry.nativeToolRef)
@@ -47,36 +76,32 @@ function collectOpencodeRuntimeProfileDiagnostics(profile) {
47
76
  }));
48
77
  });
49
78
  const settings = profile.settings;
50
- collectUnknownSettingKeys(settings, runtime_profile_1.OPENCODE_AUTHORED_SETTINGS_KEYS, ['settings'], {}, diagnostics);
79
+ collectUnknownSettingKeys(settings, runtime_profile_1.OPENCODE_AUTHORED_SETTINGS_KEYS, ['settings'], diagnostics);
51
80
  collectDefaulted(settings, 'snapshot', ['settings'], diagnostics);
52
81
  const compaction = isRecord(settings.compaction) ? settings.compaction : undefined;
53
82
  if (compaction !== undefined) {
54
- collectUnknownSettingKeys(compaction, runtime_profile_1.OPENCODE_AUTHORED_COMPACTION_KEYS, ['settings', 'compaction'], runtime_profile_1.OPENCODE_RETIRED_COMPACTION_KEYS, diagnostics);
83
+ collectUnknownSettingKeys(compaction, runtime_profile_1.OPENCODE_AUTHORED_COMPACTION_KEYS, ['settings', 'compaction'], diagnostics);
55
84
  }
56
85
  for (const key of runtime_profile_1.OPENCODE_AUTHORED_COMPACTION_KEYS) {
57
86
  collectDefaulted(compaction ?? {}, key, ['settings', 'compaction'], diagnostics);
58
87
  }
59
88
  return Object.freeze(diagnostics);
60
89
  }
61
- function collectUnknownSettingKeys(value, known, path, retired, sink) {
90
+ function collectUnknownSettingKeys(value, known, path, sink) {
62
91
  const vocabulary = new Set(known);
63
92
  for (const key of Object.keys(value)) {
64
93
  if (vocabulary.has(key)) {
65
94
  continue;
66
95
  }
67
- const retirement = Object.hasOwn(retired, key) ? retired[key] : undefined;
68
96
  sink.push(diagnostic({
69
97
  code: worker_runtime_1.RuntimeProfileDiagnosticCode.UnknownSettingKey,
70
- cause: retirement === undefined
71
- ? worker_runtime_1.RuntimeProfileDiagnosticCause.UnknownToRuntime
72
- : worker_runtime_1.RuntimeProfileDiagnosticCause.RetiredByPlatform,
98
+ cause: worker_runtime_1.RuntimeProfileDiagnosticCause.UnknownToRuntime,
73
99
  subject: key,
74
100
  path: [...path, key],
75
101
  authoredValueDropped: true,
76
- message: retirement ??
77
- `OpenCode no longer exposes setting "${key}", so the authored value ` +
78
- "was dropped and the runtime's own default applies. Re-author this " +
79
- 'profile if the setting was renamed.',
102
+ message: `OpenCode does not expose setting "${key}" to a RuntimeProfile, so the authored ` +
103
+ "value was dropped and the platform's own answer applies. Re-author this profile " +
104
+ 'if the setting was renamed.',
80
105
  }));
81
106
  }
82
107
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-profile-diagnostics.js","sourceRoot":"","sources":["../../src/lib/runtime-profile-diagnostics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-profile-diagnostics.js","sourceRoot":"","sources":["../../src/lib/runtime-profile-diagnostics.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,24 @@
1
1
  import { type RuntimeProfileSchema } from '@xemahq/contracts/worker-runtime';
2
- export declare const OPENCODE_NATIVE_PERMISSION_REFS: readonly ["bash", "doom_loop", "edit", "glob", "grep", "lsp", "question", "read", "skill", "task", "todowrite", "webfetch", "websearch"];
2
+ import { OpencodeV2Action } from './v2-permissions';
3
+ export declare const OPENCODE_NATIVE_PERMISSION_REFS: readonly [OpencodeV2Action.Browser, OpencodeV2Action.Edit, OpencodeV2Action.Execute, OpencodeV2Action.Glob, OpencodeV2Action.Grep, OpencodeV2Action.Question, OpencodeV2Action.Read, OpencodeV2Action.Shell, OpencodeV2Action.Skill, OpencodeV2Action.Subagent, OpencodeV2Action.Webfetch, OpencodeV2Action.Websearch];
3
4
  export type OpencodeNativePermissionRef = (typeof OPENCODE_NATIVE_PERMISSION_REFS)[number];
4
5
  export interface OpencodeRuntimeProfileSettings {
5
- readonly snapshot: boolean;
6
+ readonly snapshots: boolean;
6
7
  readonly compaction: {
7
8
  readonly auto: boolean;
8
- readonly prune: boolean;
9
9
  };
10
10
  }
11
11
  export interface OpencodeAuthoredRuntimeProfileSettings {
12
12
  readonly snapshot?: boolean;
13
13
  readonly compaction?: {
14
14
  readonly auto?: boolean;
15
- readonly prune?: boolean;
16
15
  };
17
16
  }
18
17
  export declare const OPENCODE_RUNTIME_PROFILE_SETTING_DEFAULTS: OpencodeRuntimeProfileSettings;
19
18
  export declare function resolveOpencodeRuntimeProfileSettings(authored: OpencodeAuthoredRuntimeProfileSettings): OpencodeRuntimeProfileSettings;
20
19
  export declare const OPENCODE_AUTHORED_SETTINGS_KEYS: readonly ["compaction", "snapshot"];
21
- export declare const OPENCODE_AUTHORED_COMPACTION_KEYS: readonly ["auto", "prune"];
20
+ export declare const OPENCODE_AUTHORED_COMPACTION_KEYS: readonly ["auto"];
22
21
  export declare const OPENCODE_EXCLUDED_NATIVE_PERMISSION_REFS: Readonly<Record<string, string>>;
23
- export declare function isOpencodeNativePermissionRef(value: string): value is OpencodeNativePermissionRef;
22
+ export declare function translateRuntimeProfileNativeRef(value: string): OpencodeNativePermissionRef | undefined;
24
23
  export declare const OpencodeRuntimeProfileSchema: RuntimeProfileSchema;
25
- export declare const OPENCODE_RETIRED_COMPACTION_KEYS: Readonly<Record<string, string>>;
26
24
  //# sourceMappingURL=runtime-profile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-profile.d.ts","sourceRoot":"","sources":["../../src/lib/runtime-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,kCAAkC,CAAC;AAW1C,eAAO,MAAM,+BAA+B,0IAclC,CAAC;AAEX,MAAM,MAAM,2BAA2B,GACrC,CAAC,OAAO,+BAA+B,CAAC,CAAC,MAAM,CAAC,CAAC;AASnD,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;KACzB,CAAC;CACH;AA4CD,MAAM,WAAW,sCAAsC;IACrD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE;QACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;KAC1B,CAAC;CACH;AAiBD,eAAO,MAAM,yCAAyC,EAAE,8BAIpD,CAAC;AAcL,wBAAgB,qCAAqC,CACnD,QAAQ,EAAE,sCAAsC,GAC/C,8BAA8B,CAShC;AAWD,eAAO,MAAM,+BAA+B,qCAAsC,CAAC;AACnF,eAAO,MAAM,iCAAiC,4BAA6B,CAAC;AAa5E,eAAO,MAAM,wCAAwC,EAAE,QAAQ,CAC7D,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMtB,CAAC;AAMH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,MAAM,GACZ,KAAK,IAAI,2BAA2B,CAEtC;AAyDD,eAAO,MAAM,4BAA4B,EAAE,oBAkBvC,CAAC;AAgDL,eAAO,MAAM,gCAAgC,EAAE,QAAQ,CACrD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKtB,CAAC"}
1
+ {"version":3,"file":"runtime-profile.d.ts","sourceRoot":"","sources":["../../src/lib/runtime-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAkC,MAAM,kBAAkB,CAAC;AAepF,eAAO,MAAM,+BAA+B,wTAalC,CAAC;AAEX,MAAM,MAAM,2BAA2B,GACrC,CAAC,OAAO,+BAA+B,CAAC,CAAC,MAAM,CAAC,CAAC;AASnD,MAAM,WAAW,8BAA8B;IAE7C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;KACxB,CAAC;CACH;AA8CD,MAAM,WAAW,sCAAsC;IACrD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE;QACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;CACH;AAeD,eAAO,MAAM,yCAAyC,EAAE,8BAIpD,CAAC;AAUL,wBAAgB,qCAAqC,CACnD,QAAQ,EAAE,sCAAsC,GAC/C,8BAA8B,CAQhC;AAWD,eAAO,MAAM,+BAA+B,qCAAsC,CAAC;AACnF,eAAO,MAAM,iCAAiC,mBAAoB,CAAC;AAWnE,eAAO,MAAM,wCAAwC,EAAE,QAAQ,CAC7D,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMtB,CAAC;AAYH,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,MAAM,GACZ,2BAA2B,GAAG,SAAS,CAKzC;AA0DD,eAAO,MAAM,4BAA4B,EAAE,oBAiBvC,CAAC"}
@@ -1,48 +1,50 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OPENCODE_RETIRED_COMPACTION_KEYS = exports.OpencodeRuntimeProfileSchema = exports.OPENCODE_EXCLUDED_NATIVE_PERMISSION_REFS = exports.OPENCODE_AUTHORED_COMPACTION_KEYS = exports.OPENCODE_AUTHORED_SETTINGS_KEYS = exports.OPENCODE_RUNTIME_PROFILE_SETTING_DEFAULTS = exports.OPENCODE_NATIVE_PERMISSION_REFS = void 0;
3
+ exports.OpencodeRuntimeProfileSchema = exports.OPENCODE_EXCLUDED_NATIVE_PERMISSION_REFS = exports.OPENCODE_AUTHORED_COMPACTION_KEYS = exports.OPENCODE_AUTHORED_SETTINGS_KEYS = exports.OPENCODE_RUNTIME_PROFILE_SETTING_DEFAULTS = exports.OPENCODE_NATIVE_PERMISSION_REFS = void 0;
4
4
  exports.resolveOpencodeRuntimeProfileSettings = resolveOpencodeRuntimeProfileSettings;
5
- exports.isOpencodeNativePermissionRef = isOpencodeNativePermissionRef;
5
+ exports.translateRuntimeProfileNativeRef = translateRuntimeProfileNativeRef;
6
6
  const worker_runtime_1 = require("@xemahq/contracts/worker-runtime");
7
+ const v2_permissions_1 = require("./v2-permissions");
7
8
  exports.OPENCODE_NATIVE_PERMISSION_REFS = [
8
- 'bash',
9
- 'doom_loop',
10
- 'edit',
11
- 'glob',
12
- 'grep',
13
- 'lsp',
14
- 'question',
15
- 'read',
16
- 'skill',
17
- 'task',
18
- 'todowrite',
19
- 'webfetch',
20
- 'websearch',
9
+ v2_permissions_1.OpencodeV2Action.Browser,
10
+ v2_permissions_1.OpencodeV2Action.Edit,
11
+ v2_permissions_1.OpencodeV2Action.Execute,
12
+ v2_permissions_1.OpencodeV2Action.Glob,
13
+ v2_permissions_1.OpencodeV2Action.Grep,
14
+ v2_permissions_1.OpencodeV2Action.Question,
15
+ v2_permissions_1.OpencodeV2Action.Read,
16
+ v2_permissions_1.OpencodeV2Action.Shell,
17
+ v2_permissions_1.OpencodeV2Action.Skill,
18
+ v2_permissions_1.OpencodeV2Action.Subagent,
19
+ v2_permissions_1.OpencodeV2Action.Webfetch,
20
+ v2_permissions_1.OpencodeV2Action.Websearch,
21
21
  ];
22
22
  exports.OPENCODE_RUNTIME_PROFILE_SETTING_DEFAULTS = Object.freeze({
23
- snapshot: true,
24
- compaction: Object.freeze({ auto: true, prune: true }),
23
+ snapshots: true,
24
+ compaction: Object.freeze({ auto: true }),
25
25
  });
26
26
  function resolveOpencodeRuntimeProfileSettings(authored) {
27
27
  const defaults = exports.OPENCODE_RUNTIME_PROFILE_SETTING_DEFAULTS;
28
28
  return {
29
- snapshot: authored.snapshot ?? defaults.snapshot,
29
+ snapshots: authored.snapshot ?? defaults.snapshots,
30
30
  compaction: {
31
31
  auto: authored.compaction?.auto ?? defaults.compaction.auto,
32
- prune: authored.compaction?.prune ?? defaults.compaction.prune,
33
32
  },
34
33
  };
35
34
  }
36
35
  exports.OPENCODE_AUTHORED_SETTINGS_KEYS = ['compaction', 'snapshot'];
37
- exports.OPENCODE_AUTHORED_COMPACTION_KEYS = ['auto', 'prune'];
36
+ exports.OPENCODE_AUTHORED_COMPACTION_KEYS = ['auto'];
38
37
  exports.OPENCODE_EXCLUDED_NATIVE_PERMISSION_REFS = Object.freeze({
39
38
  external_directory: 'external_directory is deliberately not governed by a RuntimeProfile: filesystem reach is ' +
40
39
  'ENVIRONMENT authority, decided by the workspace mount, not a runtime preference. The ' +
41
40
  'authored decision was dropped and the subject stays denied by the catch-all.',
42
41
  });
43
42
  const NATIVE_PERMISSION_REF_SET = new Set(exports.OPENCODE_NATIVE_PERMISSION_REFS);
44
- function isOpencodeNativePermissionRef(value) {
45
- return NATIVE_PERMISSION_REF_SET.has(value);
43
+ function translateRuntimeProfileNativeRef(value) {
44
+ const action = (0, v2_permissions_1.translateAuthoredPermissionKey)(value);
45
+ return action !== undefined && NATIVE_PERMISSION_REF_SET.has(action)
46
+ ? action
47
+ : undefined;
46
48
  }
47
49
  exports.OpencodeRuntimeProfileSchema = worker_runtime_1.RuntimeProfileContentSchema.superRefine((profile, context) => {
48
50
  if (profile.runtimeKind !== worker_runtime_1.WorkerRuntimeKind.Opencode) {
@@ -62,16 +64,12 @@ function addSettingsIssues(settings, context) {
62
64
  return;
63
65
  }
64
66
  const compaction = settings.compaction;
65
- for (const key of ['auto', 'prune']) {
67
+ for (const key of exports.OPENCODE_AUTHORED_COMPACTION_KEYS) {
66
68
  if (Object.hasOwn(compaction, key) && typeof compaction[key] !== 'boolean') {
67
69
  addIssue(context, ['settings', 'compaction', key], `${key} must be a boolean.`);
68
70
  }
69
71
  }
70
72
  }
71
- exports.OPENCODE_RETIRED_COMPACTION_KEYS = Object.freeze({
72
- reservedTokens: 'reservedTokens is no longer authored: the compaction reserve is derived per session ' +
73
- "from the primary model's context window, which a profile author cannot know. Remove the key.",
74
- });
75
73
  function addIssue(context, path, message) {
76
74
  context.addIssue({ code: 'custom', path: [...path], message });
77
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-profile.js","sourceRoot":"","sources":["../../src/lib/runtime-profile.ts"],"names":[],"mappings":";;;AAoIA,sFAWC;AAsCD,sEAIC;AAzLD,qEAI0C;AAW7B,QAAA,+BAA+B,GAAG;IAC7C,MAAM;IACN,WAAW;IACX,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,UAAU;IACV,MAAM;IACN,OAAO;IACP,MAAM;IACN,WAAW;IACX,UAAU;IACV,WAAW;CACH,CAAC;AAqFE,QAAA,yCAAyC,GACpD,MAAM,CAAC,MAAM,CAAC;IACZ,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CACvD,CAAC,CAAC;AAcL,SAAgB,qCAAqC,CACnD,QAAgD;IAEhD,MAAM,QAAQ,GAAG,iDAAyC,CAAC;IAC3D,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ;QAChD,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI;YAC3D,KAAK,EAAE,QAAQ,CAAC,UAAU,EAAE,KAAK,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK;SAC/D;KACF,CAAC;AACJ,CAAC;AAWY,QAAA,+BAA+B,GAAG,CAAC,YAAY,EAAE,UAAU,CAAU,CAAC;AACtE,QAAA,iCAAiC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAU,CAAC;AAa/D,QAAA,wCAAwC,GAEjD,MAAM,CAAC,MAAM,CAAC;IAChB,kBAAkB,EAChB,2FAA2F;QAC3F,uFAAuF;QACvF,8EAA8E;CACjF,CAAC,CAAC;AAEH,MAAM,yBAAyB,GAAwB,IAAI,GAAG,CAC5D,uCAA+B,CAChC,CAAC;AAEF,SAAgB,6BAA6B,CAC3C,KAAa;IAEb,OAAO,yBAAyB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC9C,CAAC;AAyDY,QAAA,4BAA4B,GACvC,4CAA2B,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IAC3D,IAAI,OAAO,CAAC,WAAW,KAAK,kCAAiB,CAAC,QAAQ,EAAE,CAAC;QACvD,QAAQ,CACN,OAAO,EACP,CAAC,aAAa,CAAC,EACf,0CAA0C,kCAAiB,CAAC,QAAQ,IAAI,CACzE,CAAC;IACJ,CAAC;IAED,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAQ/C,CAAC,CAAC,CAAC;AAEL,SAAS,iBAAiB,CACxB,QAA2C,EAC3C,OAA0B;IAY1B,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClF,QAAQ,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,6BAA6B,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC;QAC3C,OAAO;IACT,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACnC,QAAQ,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,+BAA+B,CAAC,CAAC;QAC/E,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACvC,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAU,EAAE,CAAC;QAC7C,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3E,QAAQ,CACN,OAAO,EACP,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,CAAC,EAC/B,GAAG,GAAG,qBAAqB,CAC5B,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAUY,QAAA,gCAAgC,GAEzC,MAAM,CAAC,MAAM,CAAC;IAChB,cAAc,EACZ,sFAAsF;QACtF,8FAA8F;CACjG,CAAC,CAAC;AAWH,SAAS,QAAQ,CACf,OAA0B,EAC1B,IAAkC,EAClC,OAAe;IAEf,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"runtime-profile.js","sourceRoot":"","sources":["../../src/lib/runtime-profile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ import { z } from 'zod';
2
+ export declare const OPENCODE_V2_CONFIG_CONTRACT_SOURCE: Readonly<{
3
+ opencodeVersion: "2.0.20";
4
+ artifact: "OpenAPI document served by `opencode serve` 2.0.20 (\"opencode HttpApi\", 116 paths) — components.schemas[\"Config.InfoEncoded\"]";
5
+ sha256: "2982f2a00c1571738a3269ccadb624f0961ca1d3fef23b1264ecea7be5ad8346";
6
+ }>;
7
+ export declare const OpencodeV2PermissionRulesetSchema: z.ZodArray<z.ZodObject<{
8
+ action: z.ZodString;
9
+ resource: z.ZodString;
10
+ effect: z.ZodEnum<{
11
+ allow: "allow";
12
+ deny: "deny";
13
+ ask: "ask";
14
+ }>;
15
+ }, z.core.$strict>>;
16
+ export declare const OpencodeV2CompactionSchema: z.ZodObject<{
17
+ auto: z.ZodOptional<z.ZodBoolean>;
18
+ keep: z.ZodOptional<z.ZodObject<{
19
+ tokens: z.ZodOptional<z.ZodNumber>;
20
+ }, z.core.$strict>>;
21
+ buffer: z.ZodOptional<z.ZodNumber>;
22
+ }, z.core.$strict>;
23
+ export declare const OpencodeV2ConfigContractSchema: z.ZodObject<{
24
+ $schema: z.ZodOptional<z.ZodString>;
25
+ shell: z.ZodOptional<z.ZodString>;
26
+ model: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
27
+ providerID: z.ZodString;
28
+ model: z.ZodString;
29
+ variant: z.ZodOptional<z.ZodString>;
30
+ }, z.core.$strict>]>>;
31
+ default_agent: z.ZodOptional<z.ZodString>;
32
+ update: z.ZodOptional<z.ZodEnum<{
33
+ auto: "auto";
34
+ disable: "disable";
35
+ notify: "notify";
36
+ }>>;
37
+ share: z.ZodOptional<z.ZodEnum<{
38
+ auto: "auto";
39
+ disabled: "disabled";
40
+ manual: "manual";
41
+ }>>;
42
+ enterprise: z.ZodOptional<z.ZodUnknown>;
43
+ username: z.ZodOptional<z.ZodUnknown>;
44
+ permissions: z.ZodOptional<z.ZodArray<z.ZodObject<{
45
+ action: z.ZodString;
46
+ resource: z.ZodString;
47
+ effect: z.ZodEnum<{
48
+ allow: "allow";
49
+ deny: "deny";
50
+ ask: "ask";
51
+ }>;
52
+ }, z.core.$strict>>>;
53
+ agents: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
54
+ model: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
55
+ providerID: z.ZodString;
56
+ model: z.ZodString;
57
+ variant: z.ZodOptional<z.ZodString>;
58
+ }, z.core.$strict>]>>;
59
+ request: z.ZodOptional<z.ZodObject<{
60
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
61
+ body: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
62
+ }, z.core.$strict>>;
63
+ system: z.ZodOptional<z.ZodString>;
64
+ description: z.ZodOptional<z.ZodString>;
65
+ mode: z.ZodOptional<z.ZodEnum<{
66
+ subagent: "subagent";
67
+ primary: "primary";
68
+ all: "all";
69
+ }>>;
70
+ hidden: z.ZodOptional<z.ZodBoolean>;
71
+ color: z.ZodOptional<z.ZodString>;
72
+ steps: z.ZodOptional<z.ZodNumber>;
73
+ disabled: z.ZodOptional<z.ZodBoolean>;
74
+ permissions: z.ZodOptional<z.ZodArray<z.ZodObject<{
75
+ action: z.ZodString;
76
+ resource: z.ZodString;
77
+ effect: z.ZodEnum<{
78
+ allow: "allow";
79
+ deny: "deny";
80
+ ask: "ask";
81
+ }>;
82
+ }, z.core.$strict>>>;
83
+ }, z.core.$strict>>>;
84
+ snapshots: z.ZodOptional<z.ZodBoolean>;
85
+ watcher: z.ZodOptional<z.ZodUnknown>;
86
+ formatter: z.ZodOptional<z.ZodUnknown>;
87
+ lsp: z.ZodOptional<z.ZodUnknown>;
88
+ media: z.ZodOptional<z.ZodUnknown>;
89
+ tool_output: z.ZodOptional<z.ZodUnknown>;
90
+ mcp: z.ZodOptional<z.ZodUnknown>;
91
+ compaction: z.ZodOptional<z.ZodObject<{
92
+ auto: z.ZodOptional<z.ZodBoolean>;
93
+ keep: z.ZodOptional<z.ZodObject<{
94
+ tokens: z.ZodOptional<z.ZodNumber>;
95
+ }, z.core.$strict>>;
96
+ buffer: z.ZodOptional<z.ZodNumber>;
97
+ }, z.core.$strict>>;
98
+ skills: z.ZodOptional<z.ZodUnknown>;
99
+ commands: z.ZodOptional<z.ZodUnknown>;
100
+ instructions: z.ZodOptional<z.ZodUnknown>;
101
+ references: z.ZodOptional<z.ZodUnknown>;
102
+ websearch: z.ZodOptional<z.ZodUnknown>;
103
+ plugins: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
104
+ package: z.ZodString;
105
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
106
+ }, z.core.$strict>]>>>;
107
+ worktree: z.ZodOptional<z.ZodUnknown>;
108
+ warming: z.ZodOptional<z.ZodUnknown>;
109
+ providers: z.ZodOptional<z.ZodUnknown>;
110
+ experimental: z.ZodOptional<z.ZodObject<{
111
+ portable_shell_scanner: z.ZodOptional<z.ZodBoolean>;
112
+ subagent_depth: z.ZodOptional<z.ZodNumber>;
113
+ policies: z.ZodOptional<z.ZodArray<z.ZodObject<{
114
+ action: z.ZodEnum<{
115
+ "provider.use": "provider.use";
116
+ permission: "permission";
117
+ }>;
118
+ resource: z.ZodString;
119
+ effect: z.ZodEnum<{
120
+ allow: "allow";
121
+ deny: "deny";
122
+ }>;
123
+ }, z.core.$strict>>>;
124
+ }, z.core.$strict>>;
125
+ }, z.core.$strict>;
126
+ export type OpencodeV2ConfigContract = z.infer<typeof OpencodeV2ConfigContractSchema>;
127
+ //# sourceMappingURL=v2-config-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v2-config-contract.d.ts","sourceRoot":"","sources":["../../src/lib/v2-config-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuBxB,eAAO,MAAM,kCAAkC;;;;EAK7C,CAAC;AAUH,eAAO,MAAM,iCAAiC;;;;;;;;mBAAgC,CAAC;AA4C/E,eAAO,MAAM,0BAA0B;;;;;;kBAM5B,CAAC;AAsBZ,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA+BhC,CAAC;AAEZ,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC"}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpencodeV2ConfigContractSchema = exports.OpencodeV2CompactionSchema = exports.OpencodeV2PermissionRulesetSchema = exports.OPENCODE_V2_CONFIG_CONTRACT_SOURCE = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.OPENCODE_V2_CONFIG_CONTRACT_SOURCE = Object.freeze({
6
+ opencodeVersion: '2.0.20',
7
+ artifact: 'OpenAPI document served by `opencode serve` 2.0.20 ("opencode HttpApi", 116 paths) — components.schemas["Config.InfoEncoded"]',
8
+ sha256: '2982f2a00c1571738a3269ccadb624f0961ca1d3fef23b1264ecea7be5ad8346',
9
+ });
10
+ const PermissionRuleSchema = zod_1.z
11
+ .object({
12
+ action: zod_1.z.string(),
13
+ resource: zod_1.z.string(),
14
+ effect: zod_1.z.enum(['allow', 'deny', 'ask']),
15
+ })
16
+ .strict();
17
+ exports.OpencodeV2PermissionRulesetSchema = zod_1.z.array(PermissionRuleSchema);
18
+ const ModelRefSchema = zod_1.z.union([
19
+ zod_1.z.string().regex(/^[^/#]+\/[^#]+(?:#[^#]+)?$/),
20
+ zod_1.z
21
+ .object({
22
+ providerID: zod_1.z.string().regex(/^[^/#]+$/),
23
+ model: zod_1.z.string().regex(/^[^#]+$/),
24
+ variant: zod_1.z.string().regex(/^[^#]+$/).optional(),
25
+ })
26
+ .strict(),
27
+ ]);
28
+ const AgentSchema = zod_1.z
29
+ .object({
30
+ model: ModelRefSchema.optional(),
31
+ request: zod_1.z
32
+ .object({
33
+ headers: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
34
+ body: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
35
+ })
36
+ .strict()
37
+ .optional(),
38
+ system: zod_1.z.string().optional(),
39
+ description: zod_1.z.string().optional(),
40
+ mode: zod_1.z.enum(['subagent', 'primary', 'all']).optional(),
41
+ hidden: zod_1.z.boolean().optional(),
42
+ color: zod_1.z.string().regex(/^#[0-9a-fA-F]{6}$/).optional(),
43
+ steps: zod_1.z.number().int().positive().optional(),
44
+ disabled: zod_1.z.boolean().optional(),
45
+ permissions: exports.OpencodeV2PermissionRulesetSchema.optional(),
46
+ })
47
+ .strict();
48
+ const PluginEntrySchema = zod_1.z.union([
49
+ zod_1.z.string(),
50
+ zod_1.z
51
+ .object({
52
+ package: zod_1.z.string(),
53
+ options: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
54
+ })
55
+ .strict(),
56
+ ]);
57
+ exports.OpencodeV2CompactionSchema = zod_1.z
58
+ .object({
59
+ auto: zod_1.z.boolean().optional(),
60
+ keep: zod_1.z.object({ tokens: zod_1.z.number().int().min(0).optional() }).strict().optional(),
61
+ buffer: zod_1.z.number().int().min(0).optional(),
62
+ })
63
+ .strict();
64
+ const ExperimentalSchema = zod_1.z
65
+ .object({
66
+ portable_shell_scanner: zod_1.z.boolean().optional(),
67
+ subagent_depth: zod_1.z.number().int().min(0).optional(),
68
+ policies: zod_1.z
69
+ .array(zod_1.z
70
+ .object({
71
+ action: zod_1.z.enum(['provider.use', 'permission']),
72
+ resource: zod_1.z.string(),
73
+ effect: zod_1.z.enum(['allow', 'deny']),
74
+ })
75
+ .strict())
76
+ .optional(),
77
+ })
78
+ .strict();
79
+ const opaque = zod_1.z.unknown().optional();
80
+ exports.OpencodeV2ConfigContractSchema = zod_1.z
81
+ .object({
82
+ $schema: zod_1.z.string().optional(),
83
+ shell: zod_1.z.string().optional(),
84
+ model: ModelRefSchema.optional(),
85
+ default_agent: zod_1.z.string().optional(),
86
+ update: zod_1.z.enum(['disable', 'notify', 'auto']).optional(),
87
+ share: zod_1.z.enum(['manual', 'auto', 'disabled']).optional(),
88
+ enterprise: opaque,
89
+ username: opaque,
90
+ permissions: exports.OpencodeV2PermissionRulesetSchema.optional(),
91
+ agents: zod_1.z.record(zod_1.z.string(), AgentSchema).optional(),
92
+ snapshots: zod_1.z.boolean().optional(),
93
+ watcher: opaque,
94
+ formatter: opaque,
95
+ lsp: opaque,
96
+ media: opaque,
97
+ tool_output: opaque,
98
+ mcp: opaque,
99
+ compaction: exports.OpencodeV2CompactionSchema.optional(),
100
+ skills: opaque,
101
+ commands: opaque,
102
+ instructions: opaque,
103
+ references: opaque,
104
+ websearch: opaque,
105
+ plugins: zod_1.z.array(PluginEntrySchema).optional(),
106
+ worktree: opaque,
107
+ warming: opaque,
108
+ providers: opaque,
109
+ experimental: ExperimentalSchema.optional(),
110
+ })
111
+ .strict();
112
+ //# sourceMappingURL=v2-config-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v2-config-contract.js","sourceRoot":"","sources":["../../src/lib/v2-config-contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ export declare enum OpencodeV2Action {
2
+ Read = "read",
3
+ Glob = "glob",
4
+ Grep = "grep",
5
+ Edit = "edit",
6
+ Shell = "shell",
7
+ Webfetch = "webfetch",
8
+ Websearch = "websearch",
9
+ Question = "question",
10
+ Skill = "skill",
11
+ Subagent = "subagent",
12
+ Execute = "execute",
13
+ ExternalDirectory = "external_directory",
14
+ Browser = "browser"
15
+ }
16
+ export declare const OPENCODE_V2_NATIVE_ACTIONS: readonly OpencodeV2Action[];
17
+ export declare const OPENCODE_V2_PLATFORM_DENIED_ACTIONS: readonly OpencodeV2Action[];
18
+ export type OpencodeV2PermissionEffect = 'allow' | 'deny';
19
+ export interface OpencodeV2PermissionRule {
20
+ readonly action: string;
21
+ readonly resource: string;
22
+ readonly effect: OpencodeV2PermissionEffect;
23
+ }
24
+ export type AuthoredPermissionAction = 'allow' | 'ask' | 'deny';
25
+ export type AuthoredPermissionRule = AuthoredPermissionAction | Readonly<Record<string, AuthoredPermissionAction>>;
26
+ export type AuthoredPermissionMap = Readonly<Record<string, AuthoredPermissionRule>>;
27
+ export declare const OPENCODE_V1_PERMISSION_KEY_TRANSLATION: Readonly<Record<string, OpencodeV2Action>>;
28
+ export declare const OPENCODE_V1_PERMISSION_KEYS_WITHOUT_V2_TARGET: readonly string[];
29
+ export declare const OPENCODE_RUNTIME_TOOL_PERMISSION_KEYS: readonly string[];
30
+ export declare function translateAuthoredPermissionKey(key: string): OpencodeV2Action | undefined;
31
+ export declare function isAuthoredNativePermissionKey(key: string): boolean;
32
+ export declare function projectAuthoredEffect(action: AuthoredPermissionAction): OpencodeV2PermissionEffect;
33
+ export declare function matchesV2Wildcard(pattern: string, value: string): boolean;
34
+ export declare function sanitizeMcpName(name: string): string;
35
+ export interface ProjectOpencodeV2PermissionsInput {
36
+ readonly scope: 'global' | 'agent';
37
+ readonly permission: AuthoredPermissionMap;
38
+ readonly tools?: Readonly<Record<string, boolean>>;
39
+ readonly delegates?: readonly string[];
40
+ readonly runtimeTools?: readonly string[];
41
+ readonly mcpServers?: readonly string[];
42
+ }
43
+ export declare function projectOpencodeV2Permissions(input: ProjectOpencodeV2PermissionsInput): readonly OpencodeV2PermissionRule[];
44
+ export declare function platformCeilingRules(): OpencodeV2PermissionRule[];
45
+ export declare function evaluateOpencodeV2Permission(rules: readonly {
46
+ readonly action: string;
47
+ readonly resource: string;
48
+ readonly effect: string;
49
+ }[], action: string, resource: string): 'allow' | 'deny' | 'ask';
50
+ //# sourceMappingURL=v2-permissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v2-permissions.d.ts","sourceRoot":"","sources":["../../src/lib/v2-permissions.ts"],"names":[],"mappings":"AAwDA,oBAAY,gBAAgB;IAC1B,IAAI,SAAS;IACb,IAAI,SAAS;IACb,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,iBAAiB,uBAAuB;IACxC,OAAO,YAAY;CACpB;AAED,eAAO,MAAM,0BAA0B,EAAE,SAAS,gBAAgB,EAClB,CAAC;AAMjD,eAAO,MAAM,mCAAmC,EAAE,SAAS,gBAAgB,EAMvE,CAAC;AAGL,MAAM,MAAM,0BAA0B,GAAG,OAAO,GAAG,MAAM,CAAC;AAE1D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;CAC7C;AAGD,MAAM,MAAM,wBAAwB,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAGhE,MAAM,MAAM,sBAAsB,GAC9B,wBAAwB,GACxB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC;AAGvD,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC;AAOrF,eAAO,MAAM,sCAAsC,EAAE,QAAQ,CAC3D,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAOhC,CAAC;AASH,eAAO,MAAM,6CAA6C,EAAE,SAAS,MAAM,EAC9B,CAAC;AAS9C,eAAO,MAAM,qCAAqC,EAAE,SAAS,MAAM,EAEjE,CAAC;AAMH,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,MAAM,GACV,gBAAgB,GAAG,SAAS,CAK9B;AAGD,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAElE;AAGD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,wBAAwB,GAC/B,0BAA0B,CAU5B;AAMD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAQzE;AAiCD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGpD;AAgBD,MAAM,WAAW,iCAAiC;IAQhD,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC;IAEnC,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAC;IAM3C,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAOnD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IASvC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAM1C,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAMD,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,iCAAiC,GACvC,SAAS,wBAAwB,EAAE,CA4DrC;AAGD,wBAAgB,oBAAoB,IAAI,wBAAwB,EAAE,CAMjE;AAOD,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,SAAS;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,EACjG,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,GAAG,MAAM,GAAG,KAAK,CAQ1B"}
@@ -0,0 +1,192 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OPENCODE_RUNTIME_TOOL_PERMISSION_KEYS = exports.OPENCODE_V1_PERMISSION_KEYS_WITHOUT_V2_TARGET = exports.OPENCODE_V1_PERMISSION_KEY_TRANSLATION = exports.OPENCODE_V2_PLATFORM_DENIED_ACTIONS = exports.OPENCODE_V2_NATIVE_ACTIONS = exports.OpencodeV2Action = void 0;
4
+ exports.translateAuthoredPermissionKey = translateAuthoredPermissionKey;
5
+ exports.isAuthoredNativePermissionKey = isAuthoredNativePermissionKey;
6
+ exports.projectAuthoredEffect = projectAuthoredEffect;
7
+ exports.matchesV2Wildcard = matchesV2Wildcard;
8
+ exports.sanitizeMcpName = sanitizeMcpName;
9
+ exports.projectOpencodeV2Permissions = projectOpencodeV2Permissions;
10
+ exports.platformCeilingRules = platformCeilingRules;
11
+ exports.evaluateOpencodeV2Permission = evaluateOpencodeV2Permission;
12
+ var OpencodeV2Action;
13
+ (function (OpencodeV2Action) {
14
+ OpencodeV2Action["Read"] = "read";
15
+ OpencodeV2Action["Glob"] = "glob";
16
+ OpencodeV2Action["Grep"] = "grep";
17
+ OpencodeV2Action["Edit"] = "edit";
18
+ OpencodeV2Action["Shell"] = "shell";
19
+ OpencodeV2Action["Webfetch"] = "webfetch";
20
+ OpencodeV2Action["Websearch"] = "websearch";
21
+ OpencodeV2Action["Question"] = "question";
22
+ OpencodeV2Action["Skill"] = "skill";
23
+ OpencodeV2Action["Subagent"] = "subagent";
24
+ OpencodeV2Action["Execute"] = "execute";
25
+ OpencodeV2Action["ExternalDirectory"] = "external_directory";
26
+ OpencodeV2Action["Browser"] = "browser";
27
+ })(OpencodeV2Action || (exports.OpencodeV2Action = OpencodeV2Action = {}));
28
+ exports.OPENCODE_V2_NATIVE_ACTIONS = Object.freeze(Object.values(OpencodeV2Action));
29
+ exports.OPENCODE_V2_PLATFORM_DENIED_ACTIONS = Object.freeze([
30
+ OpencodeV2Action.Webfetch,
31
+ OpencodeV2Action.Websearch,
32
+ OpencodeV2Action.Browser,
33
+ OpencodeV2Action.Execute,
34
+ ]);
35
+ exports.OPENCODE_V1_PERMISSION_KEY_TRANSLATION = Object.freeze({
36
+ bash: OpencodeV2Action.Shell,
37
+ task: OpencodeV2Action.Subagent,
38
+ write: OpencodeV2Action.Edit,
39
+ patch: OpencodeV2Action.Edit,
40
+ ...Object.fromEntries(exports.OPENCODE_V2_NATIVE_ACTIONS.map((action) => [action, action])),
41
+ });
42
+ exports.OPENCODE_V1_PERMISSION_KEYS_WITHOUT_V2_TARGET = Object.freeze(['lsp', 'doom_loop', 'list']);
43
+ exports.OPENCODE_RUNTIME_TOOL_PERMISSION_KEYS = Object.freeze([
44
+ 'todowrite',
45
+ ]);
46
+ const NO_TARGET = new Set(exports.OPENCODE_V1_PERMISSION_KEYS_WITHOUT_V2_TARGET);
47
+ const RUNTIME_TOOL_KEYS = new Set(exports.OPENCODE_RUNTIME_TOOL_PERMISSION_KEYS);
48
+ function translateAuthoredPermissionKey(key) {
49
+ if (NO_TARGET.has(key))
50
+ return undefined;
51
+ return Object.hasOwn(exports.OPENCODE_V1_PERMISSION_KEY_TRANSLATION, key)
52
+ ? exports.OPENCODE_V1_PERMISSION_KEY_TRANSLATION[key]
53
+ : undefined;
54
+ }
55
+ function isAuthoredNativePermissionKey(key) {
56
+ return NO_TARGET.has(key) || Object.hasOwn(exports.OPENCODE_V1_PERMISSION_KEY_TRANSLATION, key);
57
+ }
58
+ function projectAuthoredEffect(action) {
59
+ switch (action) {
60
+ case 'allow':
61
+ return 'allow';
62
+ case 'ask':
63
+ case 'deny':
64
+ return 'deny';
65
+ default:
66
+ throw new TypeError(`Unknown authored permission action "${String(action)}".`);
67
+ }
68
+ }
69
+ function matchesV2Wildcard(pattern, value) {
70
+ let source = '^';
71
+ for (const ch of pattern) {
72
+ if (ch === '*')
73
+ source += '.*';
74
+ else if (ch === '?')
75
+ source += '.';
76
+ else
77
+ source += ch.replace(/[.+^${}()|[\]\\]/g, '\\$&');
78
+ }
79
+ return new RegExp(`${source}$`, 's').test(value);
80
+ }
81
+ const MCP_ACTION_PATTERN = /^[A-Za-z0-9-]+_/;
82
+ function assertPassThroughKey(key) {
83
+ const collides = exports.OPENCODE_V2_NATIVE_ACTIONS.some((action) => matchesV2Wildcard(key, action));
84
+ if (collides || !MCP_ACTION_PATTERN.test(key)) {
85
+ throw new TypeError(`Permission key "${key}" is not Xema permission vocabulary and cannot be passed ` +
86
+ 'through as an MCP tool pattern: a pass-through must have the `<server>_<tool>` ' +
87
+ 'shape with a literal server prefix and must not match any native OpenCode V2 ' +
88
+ 'action under its wildcard rules, or it would silently widen a native tool.');
89
+ }
90
+ }
91
+ const RUNTIME_TOOL_ID_PATTERN = /^[A-Za-z0-9_-]{1,128}$/;
92
+ function assertRuntimeToolId(id) {
93
+ if (!RUNTIME_TOOL_ID_PATTERN.test(id) || translateAuthoredPermissionKey(id) !== undefined) {
94
+ throw new TypeError(`Runtime tool id "${id}" must be a literal V2 tool id (${RUNTIME_TOOL_ID_PATTERN.source}) ` +
95
+ 'that does not name a native OpenCode action.');
96
+ }
97
+ }
98
+ function sanitizeMcpName(name) {
99
+ if (name.length === 0)
100
+ throw new TypeError('MCP server name must be non-empty.');
101
+ return name.replace(/[^A-Za-z0-9_-]/g, '_');
102
+ }
103
+ function rulesForKey(action, rule) {
104
+ if (typeof rule === 'string') {
105
+ return [{ action, resource: '*', effect: projectAuthoredEffect(rule) }];
106
+ }
107
+ if (rule === null || typeof rule !== 'object' || Array.isArray(rule)) {
108
+ throw new TypeError(`Permission rule for "${action}" must be a scalar action or a map.`);
109
+ }
110
+ return Object.entries(rule).map(([resource, decision]) => ({
111
+ action,
112
+ resource,
113
+ effect: projectAuthoredEffect(decision),
114
+ }));
115
+ }
116
+ function projectOpencodeV2Permissions(input) {
117
+ const rules = [];
118
+ if (input.scope === 'global') {
119
+ rules.push({ action: '*', resource: '*', effect: 'deny' });
120
+ }
121
+ let subagentScalarRefusal = false;
122
+ for (const [key, rule] of Object.entries(input.permission)) {
123
+ if (RUNTIME_TOOL_KEYS.has(key)) {
124
+ rules.push(...rulesForKey(key, rule));
125
+ continue;
126
+ }
127
+ if (isAuthoredNativePermissionKey(key)) {
128
+ const action = translateAuthoredPermissionKey(key);
129
+ if (action === undefined)
130
+ continue;
131
+ if (action === OpencodeV2Action.Subagent) {
132
+ if (typeof rule === 'string' && projectAuthoredEffect(rule) === 'deny') {
133
+ subagentScalarRefusal = true;
134
+ }
135
+ if (input.delegates !== undefined)
136
+ continue;
137
+ }
138
+ rules.push(...rulesForKey(action, rule));
139
+ continue;
140
+ }
141
+ assertPassThroughKey(key);
142
+ rules.push(...rulesForKey(key, rule));
143
+ }
144
+ if (input.delegates !== undefined) {
145
+ rules.push({ action: OpencodeV2Action.Subagent, resource: '*', effect: 'deny' });
146
+ if (!subagentScalarRefusal) {
147
+ for (const delegate of input.delegates) {
148
+ rules.push({ action: OpencodeV2Action.Subagent, resource: delegate, effect: 'allow' });
149
+ }
150
+ }
151
+ }
152
+ for (const id of input.runtimeTools ?? []) {
153
+ assertRuntimeToolId(id);
154
+ rules.push({ action: id, resource: '*', effect: 'allow' });
155
+ }
156
+ for (const server of input.mcpServers ?? []) {
157
+ const action = `${sanitizeMcpName(server)}_*`;
158
+ assertPassThroughKey(action);
159
+ rules.push({ action, resource: '*', effect: 'allow' });
160
+ }
161
+ for (const [tool, enabled] of Object.entries(input.tools ?? {})) {
162
+ if (enabled)
163
+ continue;
164
+ const action = RUNTIME_TOOL_KEYS.has(tool)
165
+ ? tool
166
+ : isAuthoredNativePermissionKey(tool)
167
+ ? translateAuthoredPermissionKey(tool)
168
+ : (assertPassThroughKey(tool), tool);
169
+ if (action === undefined)
170
+ continue;
171
+ rules.push({ action, resource: '*', effect: 'deny' });
172
+ }
173
+ rules.push(...platformCeilingRules());
174
+ return Object.freeze(rules.map((rule) => Object.freeze({ ...rule })));
175
+ }
176
+ function platformCeilingRules() {
177
+ return exports.OPENCODE_V2_PLATFORM_DENIED_ACTIONS.map((action) => ({
178
+ action,
179
+ resource: '*',
180
+ effect: 'deny',
181
+ }));
182
+ }
183
+ function evaluateOpencodeV2Permission(rules, action, resource) {
184
+ let effect = 'ask';
185
+ for (const rule of rules) {
186
+ if (matchesV2Wildcard(rule.action, action) && matchesV2Wildcard(rule.resource, resource)) {
187
+ effect = rule.effect;
188
+ }
189
+ }
190
+ return effect;
191
+ }
192
+ //# sourceMappingURL=v2-permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v2-permissions.js","sourceRoot":"","sources":["../../src/lib/v2-permissions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xemahq/worker-runtime-opencode",
3
- "version": "0.10.1",
3
+ "version": "0.11.0",
4
4
  "description": "Opencode WorkerRuntime driver — wraps the workspace-proxy control-session handshake and the opencode SSE event stream behind the kernel WorkerRuntime contract.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Neuralchowder Inc. <developer@xema.dev> (https://xema.dev)",
@@ -27,7 +27,7 @@
27
27
  "prettier": "3.6.2",
28
28
  "ts-jest": "^29.4.9",
29
29
  "typescript": "5.9.3",
30
- "@xemahq/contracts": "^0.4.0"
30
+ "@xemahq/contracts": "^0.26.0"
31
31
  },
32
32
  "exports": {
33
33
  ".": {
@@ -41,7 +41,10 @@
41
41
  }
42
42
  },
43
43
  "peerDependencies": {
44
- "@xemahq/contracts": ">=0.2.0"
44
+ "@xemahq/contracts": ">=0.24.0"
45
+ },
46
+ "dependencies": {
47
+ "zod": "^4.3.6"
45
48
  },
46
49
  "scripts": {
47
50
  "clean": "rm -rf dist",