open-multi-agent-kit 0.90.3 → 0.90.4

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 (171) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +16 -14
  3. package/dist/config.d.ts +3 -6
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +27 -19
  6. package/dist/config.js.map +1 -1
  7. package/dist/core/adaptorch-bridge.d.ts +257 -0
  8. package/dist/core/adaptorch-bridge.d.ts.map +1 -0
  9. package/dist/core/adaptorch-bridge.js +473 -0
  10. package/dist/core/adaptorch-bridge.js.map +1 -0
  11. package/dist/core/agent-session.d.ts +130 -0
  12. package/dist/core/agent-session.d.ts.map +1 -1
  13. package/dist/core/agent-session.js +286 -0
  14. package/dist/core/agent-session.js.map +1 -1
  15. package/dist/core/bang-skill-invocation.d.ts.map +1 -1
  16. package/dist/core/bang-skill-invocation.js +149 -0
  17. package/dist/core/bang-skill-invocation.js.map +1 -1
  18. package/dist/core/compaction/utils.d.ts.map +1 -1
  19. package/dist/core/compaction/utils.js +15 -2
  20. package/dist/core/compaction/utils.js.map +1 -1
  21. package/dist/core/domain-loadouts.d.ts.map +1 -1
  22. package/dist/core/domain-loadouts.js +1 -1
  23. package/dist/core/domain-loadouts.js.map +1 -1
  24. package/dist/core/reasoning-router-bias.d.ts +119 -0
  25. package/dist/core/reasoning-router-bias.d.ts.map +1 -0
  26. package/dist/core/reasoning-router-bias.js +287 -0
  27. package/dist/core/reasoning-router-bias.js.map +1 -0
  28. package/dist/core/reasoning-router-v2.d.ts +94 -0
  29. package/dist/core/reasoning-router-v2.d.ts.map +1 -0
  30. package/dist/core/reasoning-router-v2.js +288 -0
  31. package/dist/core/reasoning-router-v2.js.map +1 -0
  32. package/dist/core/reasoning-router-v3.d.ts +15 -0
  33. package/dist/core/reasoning-router-v3.d.ts.map +1 -0
  34. package/dist/core/reasoning-router-v3.js +193 -0
  35. package/dist/core/reasoning-router-v3.js.map +1 -0
  36. package/dist/core/reasoning-router-v4-weights.d.ts +124 -0
  37. package/dist/core/reasoning-router-v4-weights.d.ts.map +1 -0
  38. package/dist/core/reasoning-router-v4-weights.js +112 -0
  39. package/dist/core/reasoning-router-v4-weights.js.map +1 -0
  40. package/dist/core/reasoning-router-v4.d.ts +163 -0
  41. package/dist/core/reasoning-router-v4.d.ts.map +1 -0
  42. package/dist/core/reasoning-router-v4.js +683 -0
  43. package/dist/core/reasoning-router-v4.js.map +1 -0
  44. package/dist/core/reasoning-router-weights.d.ts +155 -0
  45. package/dist/core/reasoning-router-weights.d.ts.map +1 -0
  46. package/dist/core/reasoning-router-weights.js +204 -0
  47. package/dist/core/reasoning-router-weights.js.map +1 -0
  48. package/dist/core/reasoning-router.d.ts +44 -0
  49. package/dist/core/reasoning-router.d.ts.map +1 -0
  50. package/dist/core/reasoning-router.js +138 -0
  51. package/dist/core/reasoning-router.js.map +1 -0
  52. package/dist/core/router-feedback-collector.d.ts +101 -0
  53. package/dist/core/router-feedback-collector.d.ts.map +1 -0
  54. package/dist/core/router-feedback-collector.js +239 -0
  55. package/dist/core/router-feedback-collector.js.map +1 -0
  56. package/dist/core/settings-manager.d.ts +28 -0
  57. package/dist/core/settings-manager.d.ts.map +1 -1
  58. package/dist/core/settings-manager.js +16 -0
  59. package/dist/core/settings-manager.js.map +1 -1
  60. package/dist/core/slash-commands.d.ts.map +1 -1
  61. package/dist/core/slash-commands.js +4 -1
  62. package/dist/core/slash-commands.js.map +1 -1
  63. package/dist/modes/interactive/components/control-panel-runtime-status.d.ts +15 -0
  64. package/dist/modes/interactive/components/control-panel-runtime-status.d.ts.map +1 -1
  65. package/dist/modes/interactive/components/control-panel-runtime-status.js +95 -5
  66. package/dist/modes/interactive/components/control-panel-runtime-status.js.map +1 -1
  67. package/dist/modes/interactive/interactive-mode.d.ts +4 -0
  68. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  69. package/dist/modes/interactive/interactive-mode.js +143 -18
  70. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  71. package/docs/loadout-domains/README.md +8 -6
  72. package/docs/loadout-domains/ai-agent-ops.md +3 -2
  73. package/docs/loadout-domains/backend-api.md +3 -2
  74. package/docs/loadout-domains/data-science.md +3 -2
  75. package/docs/loadout-domains/devops-infra.md +2 -1
  76. package/docs/loadout-domains/docs-writing.md +7 -2
  77. package/docs/loadout-domains/frontend-ui.md +42 -11
  78. package/docs/loadout-domains/korean-document.md +83 -0
  79. package/docs/loadout-domains/mobile.md +1 -1
  80. package/docs/loadout-domains/qa-testing.md +4 -2
  81. package/docs/loadout-domains/security-audit.md +2 -1
  82. package/docs/loadout-domains/visual-qa.md +94 -0
  83. package/docs/skills.md +4 -1
  84. package/docs/usage.md +37 -3
  85. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  86. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  87. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  88. package/examples/extensions/gondolin/package-lock.json +2 -2
  89. package/examples/extensions/gondolin/package.json +1 -1
  90. package/examples/extensions/sandbox/package-lock.json +2 -2
  91. package/examples/extensions/sandbox/package.json +1 -1
  92. package/examples/extensions/with-deps/package-lock.json +2 -2
  93. package/examples/extensions/with-deps/package.json +1 -1
  94. package/npm-shrinkwrap.json +12 -12
  95. package/package.json +4 -4
  96. package/dist/agents/jailbreak/index.d.ts +0 -7
  97. package/dist/agents/jailbreak/index.d.ts.map +0 -1
  98. package/dist/agents/jailbreak/index.js +0 -7
  99. package/dist/agents/jailbreak/index.js.map +0 -1
  100. package/dist/agents/jailbreak/subagent-f.d.ts +0 -44
  101. package/dist/agents/jailbreak/subagent-f.d.ts.map +0 -1
  102. package/dist/agents/jailbreak/subagent-f.js +0 -60
  103. package/dist/agents/jailbreak/subagent-f.js.map +0 -1
  104. package/dist/cli/jailbreak-args.d.ts +0 -26
  105. package/dist/cli/jailbreak-args.d.ts.map +0 -1
  106. package/dist/cli/jailbreak-args.js +0 -86
  107. package/dist/cli/jailbreak-args.js.map +0 -1
  108. package/dist/commands/jailbreak.d.ts +0 -49
  109. package/dist/commands/jailbreak.d.ts.map +0 -1
  110. package/dist/commands/jailbreak.js +0 -201
  111. package/dist/commands/jailbreak.js.map +0 -1
  112. package/dist/encoding/index.d.ts +0 -6
  113. package/dist/encoding/index.d.ts.map +0 -1
  114. package/dist/encoding/index.js +0 -6
  115. package/dist/encoding/index.js.map +0 -1
  116. package/dist/encoding/l4-encoder.d.ts +0 -96
  117. package/dist/encoding/l4-encoder.d.ts.map +0 -1
  118. package/dist/encoding/l4-encoder.js +0 -474
  119. package/dist/encoding/l4-encoder.js.map +0 -1
  120. package/dist/fuzzing/index.d.ts +0 -6
  121. package/dist/fuzzing/index.d.ts.map +0 -1
  122. package/dist/fuzzing/index.js +0 -6
  123. package/dist/fuzzing/index.js.map +0 -1
  124. package/dist/fuzzing/mutation-engine.d.ts +0 -93
  125. package/dist/fuzzing/mutation-engine.d.ts.map +0 -1
  126. package/dist/fuzzing/mutation-engine.js +0 -244
  127. package/dist/fuzzing/mutation-engine.js.map +0 -1
  128. package/dist/jailbreak-extension.d.ts +0 -48
  129. package/dist/jailbreak-extension.d.ts.map +0 -1
  130. package/dist/jailbreak-extension.js +0 -47
  131. package/dist/jailbreak-extension.js.map +0 -1
  132. package/dist/modules/index.d.ts +0 -8
  133. package/dist/modules/index.d.ts.map +0 -1
  134. package/dist/modules/index.js +0 -7
  135. package/dist/modules/index.js.map +0 -1
  136. package/dist/modules/lrl-bypass.d.ts +0 -40
  137. package/dist/modules/lrl-bypass.d.ts.map +0 -1
  138. package/dist/modules/lrl-bypass.js +0 -84
  139. package/dist/modules/lrl-bypass.js.map +0 -1
  140. package/dist/modules/lrl-deps.d.ts +0 -38
  141. package/dist/modules/lrl-deps.d.ts.map +0 -1
  142. package/dist/modules/lrl-deps.js +0 -128
  143. package/dist/modules/lrl-deps.js.map +0 -1
  144. package/dist/multiturn/easl-chain.d.ts +0 -113
  145. package/dist/multiturn/easl-chain.d.ts.map +0 -1
  146. package/dist/multiturn/easl-chain.js +0 -351
  147. package/dist/multiturn/easl-chain.js.map +0 -1
  148. package/dist/multiturn/index.d.ts +0 -6
  149. package/dist/multiturn/index.d.ts.map +0 -1
  150. package/dist/multiturn/index.js +0 -6
  151. package/dist/multiturn/index.js.map +0 -1
  152. package/dist/routing/fallback-router.d.ts +0 -123
  153. package/dist/routing/fallback-router.d.ts.map +0 -1
  154. package/dist/routing/fallback-router.js +0 -355
  155. package/dist/routing/fallback-router.js.map +0 -1
  156. package/dist/routing/index.d.ts +0 -6
  157. package/dist/routing/index.d.ts.map +0 -1
  158. package/dist/routing/index.js +0 -6
  159. package/dist/routing/index.js.map +0 -1
  160. package/dist/types/jailbreak.d.ts +0 -246
  161. package/dist/types/jailbreak.d.ts.map +0 -1
  162. package/dist/types/jailbreak.js +0 -8
  163. package/dist/types/jailbreak.js.map +0 -1
  164. package/dist/utils/jailbreak/common.d.ts +0 -63
  165. package/dist/utils/jailbreak/common.d.ts.map +0 -1
  166. package/dist/utils/jailbreak/common.js +0 -130
  167. package/dist/utils/jailbreak/common.js.map +0 -1
  168. package/dist/utils/jailbreak/index.d.ts +0 -7
  169. package/dist/utils/jailbreak/index.d.ts.map +0 -1
  170. package/dist/utils/jailbreak/index.js +0 -7
  171. package/dist/utils/jailbreak/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"mutation-engine.d.ts","sourceRoot":"","sources":["../../src/fuzzing/mutation-engine.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * OMK Jailbreak v6 — Fuzzing Module (TypeScript Port)\n * ====================================================\n * packages/coding-agent/src/fuzzing/mutation-engine.ts\n *\n * Coverage-Guided Mutation + Seed Corpus management for\n * jailbreak payload transformation.\n *\n * Zero API calls — pure local computation.\n */\n\nimport { randomBytes } from \"node:crypto\";\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Types\n// ═══════════════════════════════════════════════════════════════════════════\n\nexport interface CoverageFeedback {\n\tnewEdges: number;\n\ttotalEdges: number;\n\tcoverageRatio: number;\n}\n\nexport interface Seed {\n\tid: string;\n\tdata: string;\n\tscore: number;\n\tcoverage: CoverageFeedback;\n\tdepth: number;\n\tparentId?: string;\n}\n\nexport interface SeedCorpusManager {\n\tseeds: Seed[];\n\tadd(seed: Seed): void;\n\tgetNext(): Seed | undefined;\n\tgetBest(): Seed | undefined;\n}\n\nexport class SimpleSeedCorpusManager implements SeedCorpusManager {\n\tseeds: Seed[] = [];\n\tprivate index = 0;\n\n\tadd(seed: Seed): void {\n\t\tthis.seeds.push(seed);\n\t\tthis.seeds.sort((a, b) => b.score - a.score);\n\t}\n\n\tgetNext(): Seed | undefined {\n\t\tif (this.seeds.length === 0) return undefined;\n\t\tconst seed = this.seeds[this.index % this.seeds.length];\n\t\tthis.index++;\n\t\treturn seed;\n\t}\n\n\tgetBest(): Seed | undefined {\n\t\treturn this.seeds[0];\n\t}\n}\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Bit-level Mutators (AFL++ style)\n// ═══════════════════════════════════════════════════════════════════════════\n\nexport interface Mutator {\n\tmutate(data: Uint8Array, coverageFeedback?: CoverageFeedback): Generator<Uint8Array>;\n}\n\nexport class BitFlipMutator implements Mutator {\n\tprivate strategies = [\n\t\t{ name: \"bitflip_1\", step: 1, mode: \"single\" as const },\n\t\t{ name: \"bitflip_2\", step: 2, mode: \"adjacent\" as const },\n\t\t{ name: \"bitflip_4\", step: 4, mode: \"adjacent\" as const },\n\t\t{ name: \"arith_8\", step: 8, mode: \"arithmetic\" as const },\n\t\t{ name: \"arith_16\", step: 16, mode: \"arithmetic\" as const },\n\t\t{ name: \"arith_32\", step: 32, mode: \"arithmetic\" as const },\n\t];\n\n\t*mutate(data: Uint8Array, _coverageFeedback?: CoverageFeedback): Generator<Uint8Array> {\n\t\tfor (const strategy of this.strategies) {\n\t\t\tconst step = strategy.step;\n\t\t\tif (data.length * 8 < step) continue;\n\t\t\tfor (let i = 0; i <= data.length * 8 - step; i += step) {\n\t\t\t\tyield this.apply(data, i, strategy);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate apply(data: Uint8Array, bitIdx: number, strategy: { step: number; mode: string }): Uint8Array {\n\t\tconst step = strategy.step;\n\t\tconst mode = strategy.mode;\n\t\tconst arr = new Uint8Array(data);\n\n\t\tif (mode === \"single\") {\n\t\t\tconst byteIdx = Math.floor(bitIdx / 8);\n\t\t\tconst bitInByte = bitIdx % 8;\n\t\t\tif (byteIdx < arr.length) {\n\t\t\t\tarr[byteIdx] ^= 1 << bitInByte;\n\t\t\t}\n\t\t} else if (mode === \"adjacent\") {\n\t\t\tfor (let b = 0; b < step; b++) {\n\t\t\t\tconst idx = bitIdx + b;\n\t\t\t\tconst byteIdx = Math.floor(idx / 8);\n\t\t\t\tconst bitInByte = idx % 8;\n\t\t\t\tif (byteIdx < arr.length) {\n\t\t\t\t\tarr[byteIdx] ^= 1 << bitInByte;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (mode === \"arithmetic\") {\n\t\t\tconst byteIdx = Math.floor(bitIdx / 8);\n\t\t\tif (step === 8 && byteIdx < arr.length) {\n\t\t\t\tarr[byteIdx] = (arr[byteIdx] + 1) & 0xff;\n\t\t\t} else if (step === 16 && byteIdx + 1 < arr.length) {\n\t\t\t\tlet val = (arr[byteIdx] << 8) | arr[byteIdx + 1];\n\t\t\t\tval = (val + 1) & 0xffff;\n\t\t\t\tarr[byteIdx] = (val >> 8) & 0xff;\n\t\t\t\tarr[byteIdx + 1] = val & 0xff;\n\t\t\t} else if (step === 32 && byteIdx + 3 < arr.length) {\n\t\t\t\tlet val = (arr[byteIdx] << 24) | (arr[byteIdx + 1] << 16) | (arr[byteIdx + 2] << 8) | arr[byteIdx + 3];\n\t\t\t\tval = (val + 1) & 0xffffffff;\n\t\t\t\tarr[byteIdx] = (val >>> 24) & 0xff;\n\t\t\t\tarr[byteIdx + 1] = (val >>> 16) & 0xff;\n\t\t\t\tarr[byteIdx + 2] = (val >>> 8) & 0xff;\n\t\t\t\tarr[byteIdx + 3] = val & 0xff;\n\t\t\t}\n\t\t}\n\t\treturn arr;\n\t}\n}\n\nexport class ByteFlipMutator implements Mutator {\n\t*mutate(data: Uint8Array, _coverageFeedback?: CoverageFeedback): Generator<Uint8Array> {\n\t\tconst arr = new Uint8Array(data);\n\t\tfor (let i = 0; i < arr.length; i++) {\n\t\t\tarr[i] ^= 0xff;\n\t\t\tyield new Uint8Array(arr);\n\t\t\tarr[i] ^= 0xff;\n\t\t}\n\t}\n}\n\nexport class ArithmeticMutator implements Mutator {\n\tprivate arithOps = [1, -1, 10, -10];\n\n\t*mutate(data: Uint8Array, _coverageFeedback?: CoverageFeedback): Generator<Uint8Array> {\n\t\tconst arr = new Uint8Array(data);\n\t\tfor (let i = 0; i < arr.length; i++) {\n\t\t\tfor (const op of this.arithOps) {\n\t\t\t\tconst original = arr[i];\n\t\t\t\tarr[i] = (arr[i] + op) & 0xff;\n\t\t\t\tyield new Uint8Array(arr);\n\t\t\t\tarr[i] = original;\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport class InterestingValueMutator implements Mutator {\n\tprivate interesting8 = [0, 1, 16, 32, 64, 100, 127, 128, 255];\n\tprivate interesting16 = [0, 1, 255, 256, 512, 1000, 1024, 4096, 65535];\n\tprivate interesting32 = [0, 1, 65535, 65536, 1000000, 2147483647, 4294967295];\n\n\t*mutate(data: Uint8Array, _coverageFeedback?: CoverageFeedback): Generator<Uint8Array> {\n\t\tconst arr = new Uint8Array(data);\n\t\tfor (let i = 0; i < arr.length; i++) {\n\t\t\tfor (const v of this.interesting8) {\n\t\t\t\tarr[i] = v & 0xff;\n\t\t\t\tyield new Uint8Array(arr);\n\t\t\t}\n\t\t}\n\t\tfor (let i = 0; i + 1 < arr.length; i++) {\n\t\t\tfor (const v of this.interesting16) {\n\t\t\t\tarr[i] = (v >> 8) & 0xff;\n\t\t\t\tarr[i + 1] = v & 0xff;\n\t\t\t\tyield new Uint8Array(arr);\n\t\t\t}\n\t\t}\n\t\tfor (let i = 0; i + 3 < arr.length; i++) {\n\t\t\tfor (const v of this.interesting32) {\n\t\t\t\tarr[i] = (v >>> 24) & 0xff;\n\t\t\t\tarr[i + 1] = (v >>> 16) & 0xff;\n\t\t\t\tarr[i + 2] = (v >>> 8) & 0xff;\n\t\t\t\tarr[i + 3] = v & 0xff;\n\t\t\t\tyield new Uint8Array(arr);\n\t\t\t}\n\t\t}\n\t}\n}\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Dictionary-based Mutators\n// ═══════════════════════════════════════════════════════════════════════════\n\nexport interface JailbreakDictionaryEntry {\n\tterm: string;\n\tweight: number;\n\tcategory: string;\n}\n\nexport class JailbreakDictionary {\n\tentries: JailbreakDictionaryEntry[] = [\n\t\t{ term: \"ignore previous instructions\", weight: 1.0, category: \"direct\" },\n\t\t{ term: \"DAN mode\", weight: 0.9, category: \"persona\" },\n\t\t{ term: \"developer mode\", weight: 0.85, category: \"persona\" },\n\t\t{ term: \"jailbreak\", weight: 0.8, category: \"meta\" },\n\t\t{ term: \"hypothetical\", weight: 0.7, category: \"framing\" },\n\t\t{ term: \"educational purpose\", weight: 0.6, category: \"framing\" },\n\t\t{ term: \"research context\", weight: 0.6, category: \"framing\" },\n\t\t{ term: \"translate to\", weight: 0.5, category: \"encoding\" },\n\t\t{ term: \"base64 decode\", weight: 0.5, category: \"encoding\" },\n\t\t{ term: \"hex decode\", weight: 0.5, category: \"encoding\" },\n\t];\n\n\tgetRandomEntry(): JailbreakDictionaryEntry | undefined {\n\t\tif (this.entries.length === 0) return undefined;\n\t\tconst totalWeight = this.entries.reduce((sum, e) => sum + e.weight, 0);\n\t\tlet r = Math.random() * totalWeight;\n\t\tfor (const entry of this.entries) {\n\t\t\tr -= entry.weight;\n\t\t\tif (r <= 0) return entry;\n\t\t}\n\t\treturn this.entries[this.entries.length - 1];\n\t}\n\n\tgetByCategory(category: string): JailbreakDictionaryEntry[] {\n\t\treturn this.entries.filter((e) => e.category === category);\n\t}\n}\n\nexport class DictionaryInsertMutator implements Mutator {\n\tprivate dictionary: JailbreakDictionary;\n\n\tconstructor(dictionary?: JailbreakDictionary) {\n\t\tthis.dictionary = dictionary || new JailbreakDictionary();\n\t}\n\n\t*mutate(data: Uint8Array, _coverageFeedback?: CoverageFeedback): Generator<Uint8Array> {\n\t\tconst text = new TextDecoder().decode(data);\n\t\tconst entry = this.dictionary.getRandomEntry();\n\t\tif (!entry) return;\n\n\t\t// Insert at random position\n\t\tconst pos = Math.floor(Math.random() * (text.length + 1));\n\t\tconst mutated = text.slice(0, pos) + entry.term + text.slice(pos);\n\t\tyield new TextEncoder().encode(mutated);\n\t}\n}\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Fuzzing Mutation Engine\n// ═══════════════════════════════════════════════════════════════════════════\n\nexport interface MutationResult {\n\tmutated: Uint8Array;\n\tmutatorName: string;\n\tparentId: string;\n}\n\nexport class FuzzingMutationEngine {\n\tmutators: Mutator[];\n\tcorpus: SeedCorpusManager;\n\tdictionary: JailbreakDictionary;\n\tmaxMutationsPerSeed: number;\n\n\tconstructor(options?: {\n\t\tmutators?: Mutator[];\n\t\tcorpus?: SeedCorpusManager;\n\t\tdictionary?: JailbreakDictionary;\n\t\tmaxMutationsPerSeed?: number;\n\t}) {\n\t\tthis.mutators = options?.mutators || [\n\t\t\tnew BitFlipMutator(),\n\t\t\tnew ByteFlipMutator(),\n\t\t\tnew ArithmeticMutator(),\n\t\t\tnew InterestingValueMutator(),\n\t\t\tnew DictionaryInsertMutator(),\n\t\t];\n\t\tthis.corpus = options?.corpus || new SimpleSeedCorpusManager();\n\t\tthis.dictionary = options?.dictionary || new JailbreakDictionary();\n\t\tthis.maxMutationsPerSeed = options?.maxMutationsPerSeed || 50;\n\t}\n\n\t*generateMutations(seed: Seed): Generator<MutationResult> {\n\t\tconst data = new TextEncoder().encode(seed.data);\n\t\tlet count = 0;\n\t\tfor (const mutator of this.mutators) {\n\t\t\tfor (const mutated of mutator.mutate(data)) {\n\t\t\t\tif (count >= this.maxMutationsPerSeed) return;\n\t\t\t\tconst name = mutator.constructor.name;\n\t\t\t\tyield {\n\t\t\t\t\tmutated,\n\t\t\t\t\tmutatorName: name,\n\t\t\t\t\tparentId: seed.id,\n\t\t\t\t};\n\t\t\t\tcount++;\n\t\t\t}\n\t\t}\n\t}\n\n\taddSeed(data: string, score = 0, coverage?: CoverageFeedback): Seed {\n\t\tconst seed: Seed = {\n\t\t\tid: randomBytes(8).toString(\"hex\"),\n\t\t\tdata,\n\t\t\tscore,\n\t\t\tcoverage: coverage || { newEdges: 0, totalEdges: 1, coverageRatio: 0 },\n\t\t\tdepth: 0,\n\t\t};\n\t\tthis.corpus.add(seed);\n\t\treturn seed;\n\t}\n}\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Convenience exports\n// ═══════════════════════════════════════════════════════════════════════════\n\nexport function createDefaultMutationEngine(): FuzzingMutationEngine {\n\treturn new FuzzingMutationEngine();\n}\n"]}
@@ -1,244 +0,0 @@
1
- /**
2
- * OMK Jailbreak v6 — Fuzzing Module (TypeScript Port)
3
- * ====================================================
4
- * packages/coding-agent/src/fuzzing/mutation-engine.ts
5
- *
6
- * Coverage-Guided Mutation + Seed Corpus management for
7
- * jailbreak payload transformation.
8
- *
9
- * Zero API calls — pure local computation.
10
- */
11
- import { randomBytes } from "node:crypto";
12
- export class SimpleSeedCorpusManager {
13
- seeds = [];
14
- index = 0;
15
- add(seed) {
16
- this.seeds.push(seed);
17
- this.seeds.sort((a, b) => b.score - a.score);
18
- }
19
- getNext() {
20
- if (this.seeds.length === 0)
21
- return undefined;
22
- const seed = this.seeds[this.index % this.seeds.length];
23
- this.index++;
24
- return seed;
25
- }
26
- getBest() {
27
- return this.seeds[0];
28
- }
29
- }
30
- export class BitFlipMutator {
31
- strategies = [
32
- { name: "bitflip_1", step: 1, mode: "single" },
33
- { name: "bitflip_2", step: 2, mode: "adjacent" },
34
- { name: "bitflip_4", step: 4, mode: "adjacent" },
35
- { name: "arith_8", step: 8, mode: "arithmetic" },
36
- { name: "arith_16", step: 16, mode: "arithmetic" },
37
- { name: "arith_32", step: 32, mode: "arithmetic" },
38
- ];
39
- *mutate(data, _coverageFeedback) {
40
- for (const strategy of this.strategies) {
41
- const step = strategy.step;
42
- if (data.length * 8 < step)
43
- continue;
44
- for (let i = 0; i <= data.length * 8 - step; i += step) {
45
- yield this.apply(data, i, strategy);
46
- }
47
- }
48
- }
49
- apply(data, bitIdx, strategy) {
50
- const step = strategy.step;
51
- const mode = strategy.mode;
52
- const arr = new Uint8Array(data);
53
- if (mode === "single") {
54
- const byteIdx = Math.floor(bitIdx / 8);
55
- const bitInByte = bitIdx % 8;
56
- if (byteIdx < arr.length) {
57
- arr[byteIdx] ^= 1 << bitInByte;
58
- }
59
- }
60
- else if (mode === "adjacent") {
61
- for (let b = 0; b < step; b++) {
62
- const idx = bitIdx + b;
63
- const byteIdx = Math.floor(idx / 8);
64
- const bitInByte = idx % 8;
65
- if (byteIdx < arr.length) {
66
- arr[byteIdx] ^= 1 << bitInByte;
67
- }
68
- }
69
- }
70
- else if (mode === "arithmetic") {
71
- const byteIdx = Math.floor(bitIdx / 8);
72
- if (step === 8 && byteIdx < arr.length) {
73
- arr[byteIdx] = (arr[byteIdx] + 1) & 0xff;
74
- }
75
- else if (step === 16 && byteIdx + 1 < arr.length) {
76
- let val = (arr[byteIdx] << 8) | arr[byteIdx + 1];
77
- val = (val + 1) & 0xffff;
78
- arr[byteIdx] = (val >> 8) & 0xff;
79
- arr[byteIdx + 1] = val & 0xff;
80
- }
81
- else if (step === 32 && byteIdx + 3 < arr.length) {
82
- let val = (arr[byteIdx] << 24) | (arr[byteIdx + 1] << 16) | (arr[byteIdx + 2] << 8) | arr[byteIdx + 3];
83
- val = (val + 1) & 0xffffffff;
84
- arr[byteIdx] = (val >>> 24) & 0xff;
85
- arr[byteIdx + 1] = (val >>> 16) & 0xff;
86
- arr[byteIdx + 2] = (val >>> 8) & 0xff;
87
- arr[byteIdx + 3] = val & 0xff;
88
- }
89
- }
90
- return arr;
91
- }
92
- }
93
- export class ByteFlipMutator {
94
- *mutate(data, _coverageFeedback) {
95
- const arr = new Uint8Array(data);
96
- for (let i = 0; i < arr.length; i++) {
97
- arr[i] ^= 0xff;
98
- yield new Uint8Array(arr);
99
- arr[i] ^= 0xff;
100
- }
101
- }
102
- }
103
- export class ArithmeticMutator {
104
- arithOps = [1, -1, 10, -10];
105
- *mutate(data, _coverageFeedback) {
106
- const arr = new Uint8Array(data);
107
- for (let i = 0; i < arr.length; i++) {
108
- for (const op of this.arithOps) {
109
- const original = arr[i];
110
- arr[i] = (arr[i] + op) & 0xff;
111
- yield new Uint8Array(arr);
112
- arr[i] = original;
113
- }
114
- }
115
- }
116
- }
117
- export class InterestingValueMutator {
118
- interesting8 = [0, 1, 16, 32, 64, 100, 127, 128, 255];
119
- interesting16 = [0, 1, 255, 256, 512, 1000, 1024, 4096, 65535];
120
- interesting32 = [0, 1, 65535, 65536, 1000000, 2147483647, 4294967295];
121
- *mutate(data, _coverageFeedback) {
122
- const arr = new Uint8Array(data);
123
- for (let i = 0; i < arr.length; i++) {
124
- for (const v of this.interesting8) {
125
- arr[i] = v & 0xff;
126
- yield new Uint8Array(arr);
127
- }
128
- }
129
- for (let i = 0; i + 1 < arr.length; i++) {
130
- for (const v of this.interesting16) {
131
- arr[i] = (v >> 8) & 0xff;
132
- arr[i + 1] = v & 0xff;
133
- yield new Uint8Array(arr);
134
- }
135
- }
136
- for (let i = 0; i + 3 < arr.length; i++) {
137
- for (const v of this.interesting32) {
138
- arr[i] = (v >>> 24) & 0xff;
139
- arr[i + 1] = (v >>> 16) & 0xff;
140
- arr[i + 2] = (v >>> 8) & 0xff;
141
- arr[i + 3] = v & 0xff;
142
- yield new Uint8Array(arr);
143
- }
144
- }
145
- }
146
- }
147
- export class JailbreakDictionary {
148
- entries = [
149
- { term: "ignore previous instructions", weight: 1.0, category: "direct" },
150
- { term: "DAN mode", weight: 0.9, category: "persona" },
151
- { term: "developer mode", weight: 0.85, category: "persona" },
152
- { term: "jailbreak", weight: 0.8, category: "meta" },
153
- { term: "hypothetical", weight: 0.7, category: "framing" },
154
- { term: "educational purpose", weight: 0.6, category: "framing" },
155
- { term: "research context", weight: 0.6, category: "framing" },
156
- { term: "translate to", weight: 0.5, category: "encoding" },
157
- { term: "base64 decode", weight: 0.5, category: "encoding" },
158
- { term: "hex decode", weight: 0.5, category: "encoding" },
159
- ];
160
- getRandomEntry() {
161
- if (this.entries.length === 0)
162
- return undefined;
163
- const totalWeight = this.entries.reduce((sum, e) => sum + e.weight, 0);
164
- let r = Math.random() * totalWeight;
165
- for (const entry of this.entries) {
166
- r -= entry.weight;
167
- if (r <= 0)
168
- return entry;
169
- }
170
- return this.entries[this.entries.length - 1];
171
- }
172
- getByCategory(category) {
173
- return this.entries.filter((e) => e.category === category);
174
- }
175
- }
176
- export class DictionaryInsertMutator {
177
- dictionary;
178
- constructor(dictionary) {
179
- this.dictionary = dictionary || new JailbreakDictionary();
180
- }
181
- *mutate(data, _coverageFeedback) {
182
- const text = new TextDecoder().decode(data);
183
- const entry = this.dictionary.getRandomEntry();
184
- if (!entry)
185
- return;
186
- // Insert at random position
187
- const pos = Math.floor(Math.random() * (text.length + 1));
188
- const mutated = text.slice(0, pos) + entry.term + text.slice(pos);
189
- yield new TextEncoder().encode(mutated);
190
- }
191
- }
192
- export class FuzzingMutationEngine {
193
- mutators;
194
- corpus;
195
- dictionary;
196
- maxMutationsPerSeed;
197
- constructor(options) {
198
- this.mutators = options?.mutators || [
199
- new BitFlipMutator(),
200
- new ByteFlipMutator(),
201
- new ArithmeticMutator(),
202
- new InterestingValueMutator(),
203
- new DictionaryInsertMutator(),
204
- ];
205
- this.corpus = options?.corpus || new SimpleSeedCorpusManager();
206
- this.dictionary = options?.dictionary || new JailbreakDictionary();
207
- this.maxMutationsPerSeed = options?.maxMutationsPerSeed || 50;
208
- }
209
- *generateMutations(seed) {
210
- const data = new TextEncoder().encode(seed.data);
211
- let count = 0;
212
- for (const mutator of this.mutators) {
213
- for (const mutated of mutator.mutate(data)) {
214
- if (count >= this.maxMutationsPerSeed)
215
- return;
216
- const name = mutator.constructor.name;
217
- yield {
218
- mutated,
219
- mutatorName: name,
220
- parentId: seed.id,
221
- };
222
- count++;
223
- }
224
- }
225
- }
226
- addSeed(data, score = 0, coverage) {
227
- const seed = {
228
- id: randomBytes(8).toString("hex"),
229
- data,
230
- score,
231
- coverage: coverage || { newEdges: 0, totalEdges: 1, coverageRatio: 0 },
232
- depth: 0,
233
- };
234
- this.corpus.add(seed);
235
- return seed;
236
- }
237
- }
238
- // ═══════════════════════════════════════════════════════════════════════════
239
- // Convenience exports
240
- // ═══════════════════════════════════════════════════════════════════════════
241
- export function createDefaultMutationEngine() {
242
- return new FuzzingMutationEngine();
243
- }
244
- //# sourceMappingURL=mutation-engine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mutation-engine.js","sourceRoot":"","sources":["../../src/fuzzing/mutation-engine.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * OMK Jailbreak v6 — Fuzzing Module (TypeScript Port)\n * ====================================================\n * packages/coding-agent/src/fuzzing/mutation-engine.ts\n *\n * Coverage-Guided Mutation + Seed Corpus management for\n * jailbreak payload transformation.\n *\n * Zero API calls — pure local computation.\n */\n\nimport { randomBytes } from \"node:crypto\";\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Types\n// ═══════════════════════════════════════════════════════════════════════════\n\nexport interface CoverageFeedback {\n\tnewEdges: number;\n\ttotalEdges: number;\n\tcoverageRatio: number;\n}\n\nexport interface Seed {\n\tid: string;\n\tdata: string;\n\tscore: number;\n\tcoverage: CoverageFeedback;\n\tdepth: number;\n\tparentId?: string;\n}\n\nexport interface SeedCorpusManager {\n\tseeds: Seed[];\n\tadd(seed: Seed): void;\n\tgetNext(): Seed | undefined;\n\tgetBest(): Seed | undefined;\n}\n\nexport class SimpleSeedCorpusManager implements SeedCorpusManager {\n\tseeds: Seed[] = [];\n\tprivate index = 0;\n\n\tadd(seed: Seed): void {\n\t\tthis.seeds.push(seed);\n\t\tthis.seeds.sort((a, b) => b.score - a.score);\n\t}\n\n\tgetNext(): Seed | undefined {\n\t\tif (this.seeds.length === 0) return undefined;\n\t\tconst seed = this.seeds[this.index % this.seeds.length];\n\t\tthis.index++;\n\t\treturn seed;\n\t}\n\n\tgetBest(): Seed | undefined {\n\t\treturn this.seeds[0];\n\t}\n}\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Bit-level Mutators (AFL++ style)\n// ═══════════════════════════════════════════════════════════════════════════\n\nexport interface Mutator {\n\tmutate(data: Uint8Array, coverageFeedback?: CoverageFeedback): Generator<Uint8Array>;\n}\n\nexport class BitFlipMutator implements Mutator {\n\tprivate strategies = [\n\t\t{ name: \"bitflip_1\", step: 1, mode: \"single\" as const },\n\t\t{ name: \"bitflip_2\", step: 2, mode: \"adjacent\" as const },\n\t\t{ name: \"bitflip_4\", step: 4, mode: \"adjacent\" as const },\n\t\t{ name: \"arith_8\", step: 8, mode: \"arithmetic\" as const },\n\t\t{ name: \"arith_16\", step: 16, mode: \"arithmetic\" as const },\n\t\t{ name: \"arith_32\", step: 32, mode: \"arithmetic\" as const },\n\t];\n\n\t*mutate(data: Uint8Array, _coverageFeedback?: CoverageFeedback): Generator<Uint8Array> {\n\t\tfor (const strategy of this.strategies) {\n\t\t\tconst step = strategy.step;\n\t\t\tif (data.length * 8 < step) continue;\n\t\t\tfor (let i = 0; i <= data.length * 8 - step; i += step) {\n\t\t\t\tyield this.apply(data, i, strategy);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate apply(data: Uint8Array, bitIdx: number, strategy: { step: number; mode: string }): Uint8Array {\n\t\tconst step = strategy.step;\n\t\tconst mode = strategy.mode;\n\t\tconst arr = new Uint8Array(data);\n\n\t\tif (mode === \"single\") {\n\t\t\tconst byteIdx = Math.floor(bitIdx / 8);\n\t\t\tconst bitInByte = bitIdx % 8;\n\t\t\tif (byteIdx < arr.length) {\n\t\t\t\tarr[byteIdx] ^= 1 << bitInByte;\n\t\t\t}\n\t\t} else if (mode === \"adjacent\") {\n\t\t\tfor (let b = 0; b < step; b++) {\n\t\t\t\tconst idx = bitIdx + b;\n\t\t\t\tconst byteIdx = Math.floor(idx / 8);\n\t\t\t\tconst bitInByte = idx % 8;\n\t\t\t\tif (byteIdx < arr.length) {\n\t\t\t\t\tarr[byteIdx] ^= 1 << bitInByte;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (mode === \"arithmetic\") {\n\t\t\tconst byteIdx = Math.floor(bitIdx / 8);\n\t\t\tif (step === 8 && byteIdx < arr.length) {\n\t\t\t\tarr[byteIdx] = (arr[byteIdx] + 1) & 0xff;\n\t\t\t} else if (step === 16 && byteIdx + 1 < arr.length) {\n\t\t\t\tlet val = (arr[byteIdx] << 8) | arr[byteIdx + 1];\n\t\t\t\tval = (val + 1) & 0xffff;\n\t\t\t\tarr[byteIdx] = (val >> 8) & 0xff;\n\t\t\t\tarr[byteIdx + 1] = val & 0xff;\n\t\t\t} else if (step === 32 && byteIdx + 3 < arr.length) {\n\t\t\t\tlet val = (arr[byteIdx] << 24) | (arr[byteIdx + 1] << 16) | (arr[byteIdx + 2] << 8) | arr[byteIdx + 3];\n\t\t\t\tval = (val + 1) & 0xffffffff;\n\t\t\t\tarr[byteIdx] = (val >>> 24) & 0xff;\n\t\t\t\tarr[byteIdx + 1] = (val >>> 16) & 0xff;\n\t\t\t\tarr[byteIdx + 2] = (val >>> 8) & 0xff;\n\t\t\t\tarr[byteIdx + 3] = val & 0xff;\n\t\t\t}\n\t\t}\n\t\treturn arr;\n\t}\n}\n\nexport class ByteFlipMutator implements Mutator {\n\t*mutate(data: Uint8Array, _coverageFeedback?: CoverageFeedback): Generator<Uint8Array> {\n\t\tconst arr = new Uint8Array(data);\n\t\tfor (let i = 0; i < arr.length; i++) {\n\t\t\tarr[i] ^= 0xff;\n\t\t\tyield new Uint8Array(arr);\n\t\t\tarr[i] ^= 0xff;\n\t\t}\n\t}\n}\n\nexport class ArithmeticMutator implements Mutator {\n\tprivate arithOps = [1, -1, 10, -10];\n\n\t*mutate(data: Uint8Array, _coverageFeedback?: CoverageFeedback): Generator<Uint8Array> {\n\t\tconst arr = new Uint8Array(data);\n\t\tfor (let i = 0; i < arr.length; i++) {\n\t\t\tfor (const op of this.arithOps) {\n\t\t\t\tconst original = arr[i];\n\t\t\t\tarr[i] = (arr[i] + op) & 0xff;\n\t\t\t\tyield new Uint8Array(arr);\n\t\t\t\tarr[i] = original;\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport class InterestingValueMutator implements Mutator {\n\tprivate interesting8 = [0, 1, 16, 32, 64, 100, 127, 128, 255];\n\tprivate interesting16 = [0, 1, 255, 256, 512, 1000, 1024, 4096, 65535];\n\tprivate interesting32 = [0, 1, 65535, 65536, 1000000, 2147483647, 4294967295];\n\n\t*mutate(data: Uint8Array, _coverageFeedback?: CoverageFeedback): Generator<Uint8Array> {\n\t\tconst arr = new Uint8Array(data);\n\t\tfor (let i = 0; i < arr.length; i++) {\n\t\t\tfor (const v of this.interesting8) {\n\t\t\t\tarr[i] = v & 0xff;\n\t\t\t\tyield new Uint8Array(arr);\n\t\t\t}\n\t\t}\n\t\tfor (let i = 0; i + 1 < arr.length; i++) {\n\t\t\tfor (const v of this.interesting16) {\n\t\t\t\tarr[i] = (v >> 8) & 0xff;\n\t\t\t\tarr[i + 1] = v & 0xff;\n\t\t\t\tyield new Uint8Array(arr);\n\t\t\t}\n\t\t}\n\t\tfor (let i = 0; i + 3 < arr.length; i++) {\n\t\t\tfor (const v of this.interesting32) {\n\t\t\t\tarr[i] = (v >>> 24) & 0xff;\n\t\t\t\tarr[i + 1] = (v >>> 16) & 0xff;\n\t\t\t\tarr[i + 2] = (v >>> 8) & 0xff;\n\t\t\t\tarr[i + 3] = v & 0xff;\n\t\t\t\tyield new Uint8Array(arr);\n\t\t\t}\n\t\t}\n\t}\n}\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Dictionary-based Mutators\n// ═══════════════════════════════════════════════════════════════════════════\n\nexport interface JailbreakDictionaryEntry {\n\tterm: string;\n\tweight: number;\n\tcategory: string;\n}\n\nexport class JailbreakDictionary {\n\tentries: JailbreakDictionaryEntry[] = [\n\t\t{ term: \"ignore previous instructions\", weight: 1.0, category: \"direct\" },\n\t\t{ term: \"DAN mode\", weight: 0.9, category: \"persona\" },\n\t\t{ term: \"developer mode\", weight: 0.85, category: \"persona\" },\n\t\t{ term: \"jailbreak\", weight: 0.8, category: \"meta\" },\n\t\t{ term: \"hypothetical\", weight: 0.7, category: \"framing\" },\n\t\t{ term: \"educational purpose\", weight: 0.6, category: \"framing\" },\n\t\t{ term: \"research context\", weight: 0.6, category: \"framing\" },\n\t\t{ term: \"translate to\", weight: 0.5, category: \"encoding\" },\n\t\t{ term: \"base64 decode\", weight: 0.5, category: \"encoding\" },\n\t\t{ term: \"hex decode\", weight: 0.5, category: \"encoding\" },\n\t];\n\n\tgetRandomEntry(): JailbreakDictionaryEntry | undefined {\n\t\tif (this.entries.length === 0) return undefined;\n\t\tconst totalWeight = this.entries.reduce((sum, e) => sum + e.weight, 0);\n\t\tlet r = Math.random() * totalWeight;\n\t\tfor (const entry of this.entries) {\n\t\t\tr -= entry.weight;\n\t\t\tif (r <= 0) return entry;\n\t\t}\n\t\treturn this.entries[this.entries.length - 1];\n\t}\n\n\tgetByCategory(category: string): JailbreakDictionaryEntry[] {\n\t\treturn this.entries.filter((e) => e.category === category);\n\t}\n}\n\nexport class DictionaryInsertMutator implements Mutator {\n\tprivate dictionary: JailbreakDictionary;\n\n\tconstructor(dictionary?: JailbreakDictionary) {\n\t\tthis.dictionary = dictionary || new JailbreakDictionary();\n\t}\n\n\t*mutate(data: Uint8Array, _coverageFeedback?: CoverageFeedback): Generator<Uint8Array> {\n\t\tconst text = new TextDecoder().decode(data);\n\t\tconst entry = this.dictionary.getRandomEntry();\n\t\tif (!entry) return;\n\n\t\t// Insert at random position\n\t\tconst pos = Math.floor(Math.random() * (text.length + 1));\n\t\tconst mutated = text.slice(0, pos) + entry.term + text.slice(pos);\n\t\tyield new TextEncoder().encode(mutated);\n\t}\n}\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Fuzzing Mutation Engine\n// ═══════════════════════════════════════════════════════════════════════════\n\nexport interface MutationResult {\n\tmutated: Uint8Array;\n\tmutatorName: string;\n\tparentId: string;\n}\n\nexport class FuzzingMutationEngine {\n\tmutators: Mutator[];\n\tcorpus: SeedCorpusManager;\n\tdictionary: JailbreakDictionary;\n\tmaxMutationsPerSeed: number;\n\n\tconstructor(options?: {\n\t\tmutators?: Mutator[];\n\t\tcorpus?: SeedCorpusManager;\n\t\tdictionary?: JailbreakDictionary;\n\t\tmaxMutationsPerSeed?: number;\n\t}) {\n\t\tthis.mutators = options?.mutators || [\n\t\t\tnew BitFlipMutator(),\n\t\t\tnew ByteFlipMutator(),\n\t\t\tnew ArithmeticMutator(),\n\t\t\tnew InterestingValueMutator(),\n\t\t\tnew DictionaryInsertMutator(),\n\t\t];\n\t\tthis.corpus = options?.corpus || new SimpleSeedCorpusManager();\n\t\tthis.dictionary = options?.dictionary || new JailbreakDictionary();\n\t\tthis.maxMutationsPerSeed = options?.maxMutationsPerSeed || 50;\n\t}\n\n\t*generateMutations(seed: Seed): Generator<MutationResult> {\n\t\tconst data = new TextEncoder().encode(seed.data);\n\t\tlet count = 0;\n\t\tfor (const mutator of this.mutators) {\n\t\t\tfor (const mutated of mutator.mutate(data)) {\n\t\t\t\tif (count >= this.maxMutationsPerSeed) return;\n\t\t\t\tconst name = mutator.constructor.name;\n\t\t\t\tyield {\n\t\t\t\t\tmutated,\n\t\t\t\t\tmutatorName: name,\n\t\t\t\t\tparentId: seed.id,\n\t\t\t\t};\n\t\t\t\tcount++;\n\t\t\t}\n\t\t}\n\t}\n\n\taddSeed(data: string, score = 0, coverage?: CoverageFeedback): Seed {\n\t\tconst seed: Seed = {\n\t\t\tid: randomBytes(8).toString(\"hex\"),\n\t\t\tdata,\n\t\t\tscore,\n\t\t\tcoverage: coverage || { newEdges: 0, totalEdges: 1, coverageRatio: 0 },\n\t\t\tdepth: 0,\n\t\t};\n\t\tthis.corpus.add(seed);\n\t\treturn seed;\n\t}\n}\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Convenience exports\n// ═══════════════════════════════════════════════════════════════════════════\n\nexport function createDefaultMutationEngine(): FuzzingMutationEngine {\n\treturn new FuzzingMutationEngine();\n}\n"]}
@@ -1,48 +0,0 @@
1
- /**
2
- * OMK Jailbreak v6 — Extension Integration
3
- * ============================================
4
- * packages/coding-agent/src/jailbreak-extension.ts
5
- *
6
- * Integrates all Jailbreak v6 modules into the OMK extension system.
7
- * Provides hooks for encoding, fuzzing, routing, multiturn, and agents.
8
- */
9
- import { createSubAgentF, SubAgentF } from "./agents/jailbreak/index.ts";
10
- import { AdaptiveSelector, EncodingLevel, L4Encoder } from "./encoding/index.ts";
11
- import { createDefaultMutationEngine, FuzzingMutationEngine } from "./fuzzing/index.ts";
12
- import { LRLBypassTechnique, SubAgentE } from "./modules/index.ts";
13
- import { BypassStrategy, CrescendoBypassEngine, EASLChainBuilder } from "./multiturn/index.ts";
14
- import { createDefaultRouter, ModelRouter, RefusalDetector } from "./routing/index.ts";
15
- export interface JailbreakExtensionConfig {
16
- enabled: boolean;
17
- defaultEncodingLevel: EncodingLevel;
18
- simulationMode: boolean;
19
- maxRetries: number;
20
- }
21
- export declare class JailbreakExtension {
22
- name: string;
23
- version: string;
24
- description: string;
25
- private config;
26
- private encoder;
27
- private selector;
28
- readonly router: ModelRouter;
29
- readonly mutationEngine: FuzzingMutationEngine;
30
- readonly chainBuilder: EASLChainBuilder;
31
- readonly subAgentF: SubAgentF;
32
- readonly subAgentE: SubAgentE;
33
- constructor(config: JailbreakExtensionConfig);
34
- /** Hook: intercept provider request and optionally encode payload. */
35
- onBeforeProviderRequest(request: {
36
- messages: Array<{
37
- role: string;
38
- content: string;
39
- }>;
40
- }): Promise<{
41
- messages: Array<{
42
- role: string;
43
- content: string;
44
- }>;
45
- }>;
46
- }
47
- export { L4Encoder, AdaptiveSelector, EncodingLevel, FuzzingMutationEngine, createDefaultMutationEngine, ModelRouter, RefusalDetector, createDefaultRouter, EASLChainBuilder, CrescendoBypassEngine, BypassStrategy, SubAgentF, createSubAgentF, LRLBypassTechnique, SubAgentE, };
48
- //# sourceMappingURL=jailbreak-extension.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jailbreak-extension.d.ts","sourceRoot":"","sources":["../src/jailbreak-extension.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEvF,MAAM,WAAW,wBAAwB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,oBAAoB,EAAE,aAAa,CAAC;IACpC,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,kBAAkB;IAC9B,IAAI,SAAsB;IAC1B,OAAO,SAAW;IAClB,WAAW,SAA+E;IAC1F,OAAO,CAAC,MAAM,CAA2B;IAEzC,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,QAAQ,CAA0B;IAC1C,QAAQ,CAAC,MAAM,cAAyB;IACxC,QAAQ,CAAC,cAAc,wBAAiC;IACxD,QAAQ,CAAC,YAAY,mBAA0B;IAC/C,QAAQ,CAAC,SAAS,YAAqB;IACvC,QAAQ,CAAC,SAAS,YAAmB;IAErC,YAAY,MAAM,EAAE,wBAAwB,EAE3C;IAED,sEAAsE;IAChE,uBAAuB,CAAC,OAAO,EAAE;QACtC,QAAQ,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACnD,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAiBlE;CACD;AAED,OAAO,EACN,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,2BAA2B,EAC3B,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,SAAS,GACT,CAAC","sourcesContent":["/**\n * OMK Jailbreak v6 — Extension Integration\n * ============================================\n * packages/coding-agent/src/jailbreak-extension.ts\n *\n * Integrates all Jailbreak v6 modules into the OMK extension system.\n * Provides hooks for encoding, fuzzing, routing, multiturn, and agents.\n */\n\nimport { createSubAgentF, SubAgentF } from \"./agents/jailbreak/index.ts\";\nimport { AdaptiveSelector, EncodingLevel, L4Encoder } from \"./encoding/index.ts\";\nimport { createDefaultMutationEngine, FuzzingMutationEngine } from \"./fuzzing/index.ts\";\nimport { LRLBypassTechnique, SubAgentE } from \"./modules/index.ts\";\nimport { BypassStrategy, CrescendoBypassEngine, EASLChainBuilder } from \"./multiturn/index.ts\";\nimport { createDefaultRouter, ModelRouter, RefusalDetector } from \"./routing/index.ts\";\n\nexport interface JailbreakExtensionConfig {\n\tenabled: boolean;\n\tdefaultEncodingLevel: EncodingLevel;\n\tsimulationMode: boolean;\n\tmaxRetries: number;\n}\n\nexport class JailbreakExtension {\n\tname = \"omk-jailbreak-v6\";\n\tversion = \"6.2.0\";\n\tdescription = \"OMK Jailbreak v6 extension: encoding, fuzzing, routing, multiturn, agents\";\n\tprivate config: JailbreakExtensionConfig;\n\n\tprivate encoder = new L4Encoder();\n\tprivate selector = new AdaptiveSelector();\n\treadonly router = createDefaultRouter();\n\treadonly mutationEngine = createDefaultMutationEngine();\n\treadonly chainBuilder = new EASLChainBuilder();\n\treadonly subAgentF = createSubAgentF();\n\treadonly subAgentE = new SubAgentE();\n\n\tconstructor(config: JailbreakExtensionConfig) {\n\t\tthis.config = config;\n\t}\n\n\t/** Hook: intercept provider request and optionally encode payload. */\n\tasync onBeforeProviderRequest(request: {\n\t\tmessages: Array<{ role: string; content: string }>;\n\t}): Promise<{ messages: Array<{ role: string; content: string }> }> {\n\t\tif (!this.config.enabled) return { messages: request.messages };\n\n\t\tconst payload = request.messages[request.messages.length - 1]?.content || \"\";\n\t\tconst difficulty = \"medium\";\n\t\tconst level = this.selector.select(difficulty, \"semantic_inv\");\n\n\t\tlet modifiedPayload = payload;\n\t\tif (level >= EncodingLevel.HARD) {\n\t\t\tmodifiedPayload = this.encoder.encode(payload);\n\t\t}\n\n\t\treturn {\n\t\t\tmessages: request.messages.map((m, idx) =>\n\t\t\t\tidx === request.messages.length - 1 ? { ...m, content: modifiedPayload } : m,\n\t\t\t),\n\t\t};\n\t}\n}\n\nexport {\n\tL4Encoder,\n\tAdaptiveSelector,\n\tEncodingLevel,\n\tFuzzingMutationEngine,\n\tcreateDefaultMutationEngine,\n\tModelRouter,\n\tRefusalDetector,\n\tcreateDefaultRouter,\n\tEASLChainBuilder,\n\tCrescendoBypassEngine,\n\tBypassStrategy,\n\tSubAgentF,\n\tcreateSubAgentF,\n\tLRLBypassTechnique,\n\tSubAgentE,\n};\n"]}
@@ -1,47 +0,0 @@
1
- /**
2
- * OMK Jailbreak v6 — Extension Integration
3
- * ============================================
4
- * packages/coding-agent/src/jailbreak-extension.ts
5
- *
6
- * Integrates all Jailbreak v6 modules into the OMK extension system.
7
- * Provides hooks for encoding, fuzzing, routing, multiturn, and agents.
8
- */
9
- import { createSubAgentF, SubAgentF } from "./agents/jailbreak/index.js";
10
- import { AdaptiveSelector, EncodingLevel, L4Encoder } from "./encoding/index.js";
11
- import { createDefaultMutationEngine, FuzzingMutationEngine } from "./fuzzing/index.js";
12
- import { LRLBypassTechnique, SubAgentE } from "./modules/index.js";
13
- import { BypassStrategy, CrescendoBypassEngine, EASLChainBuilder } from "./multiturn/index.js";
14
- import { createDefaultRouter, ModelRouter, RefusalDetector } from "./routing/index.js";
15
- export class JailbreakExtension {
16
- name = "omk-jailbreak-v6";
17
- version = "6.2.0";
18
- description = "OMK Jailbreak v6 extension: encoding, fuzzing, routing, multiturn, agents";
19
- config;
20
- encoder = new L4Encoder();
21
- selector = new AdaptiveSelector();
22
- router = createDefaultRouter();
23
- mutationEngine = createDefaultMutationEngine();
24
- chainBuilder = new EASLChainBuilder();
25
- subAgentF = createSubAgentF();
26
- subAgentE = new SubAgentE();
27
- constructor(config) {
28
- this.config = config;
29
- }
30
- /** Hook: intercept provider request and optionally encode payload. */
31
- async onBeforeProviderRequest(request) {
32
- if (!this.config.enabled)
33
- return { messages: request.messages };
34
- const payload = request.messages[request.messages.length - 1]?.content || "";
35
- const difficulty = "medium";
36
- const level = this.selector.select(difficulty, "semantic_inv");
37
- let modifiedPayload = payload;
38
- if (level >= EncodingLevel.HARD) {
39
- modifiedPayload = this.encoder.encode(payload);
40
- }
41
- return {
42
- messages: request.messages.map((m, idx) => idx === request.messages.length - 1 ? { ...m, content: modifiedPayload } : m),
43
- };
44
- }
45
- }
46
- export { L4Encoder, AdaptiveSelector, EncodingLevel, FuzzingMutationEngine, createDefaultMutationEngine, ModelRouter, RefusalDetector, createDefaultRouter, EASLChainBuilder, CrescendoBypassEngine, BypassStrategy, SubAgentF, createSubAgentF, LRLBypassTechnique, SubAgentE, };
47
- //# sourceMappingURL=jailbreak-extension.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jailbreak-extension.js","sourceRoot":"","sources":["../src/jailbreak-extension.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AASvF,MAAM,OAAO,kBAAkB;IAC9B,IAAI,GAAG,kBAAkB,CAAC;IAC1B,OAAO,GAAG,OAAO,CAAC;IAClB,WAAW,GAAG,2EAA2E,CAAC;IAClF,MAAM,CAA2B;IAEjC,OAAO,GAAG,IAAI,SAAS,EAAE,CAAC;IAC1B,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACjC,MAAM,GAAG,mBAAmB,EAAE,CAAC;IAC/B,cAAc,GAAG,2BAA2B,EAAE,CAAC;IAC/C,YAAY,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACtC,SAAS,GAAG,eAAe,EAAE,CAAC;IAC9B,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;IAErC,YAAY,MAAgC,EAAE;QAC7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IAAA,CACrB;IAED,sEAAsE;IACtE,KAAK,CAAC,uBAAuB,CAAC,OAE7B,EAAmE;QACnE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;QAEhE,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC;QAC7E,MAAM,UAAU,GAAG,QAAQ,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAE/D,IAAI,eAAe,GAAG,OAAO,CAAC;QAC9B,IAAI,KAAK,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;YACjC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;QAED,OAAO;YACN,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CACzC,GAAG,KAAK,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAC5E;SACD,CAAC;IAAA,CACF;CACD;AAED,OAAO,EACN,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,2BAA2B,EAC3B,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,SAAS,GACT,CAAC","sourcesContent":["/**\n * OMK Jailbreak v6 — Extension Integration\n * ============================================\n * packages/coding-agent/src/jailbreak-extension.ts\n *\n * Integrates all Jailbreak v6 modules into the OMK extension system.\n * Provides hooks for encoding, fuzzing, routing, multiturn, and agents.\n */\n\nimport { createSubAgentF, SubAgentF } from \"./agents/jailbreak/index.ts\";\nimport { AdaptiveSelector, EncodingLevel, L4Encoder } from \"./encoding/index.ts\";\nimport { createDefaultMutationEngine, FuzzingMutationEngine } from \"./fuzzing/index.ts\";\nimport { LRLBypassTechnique, SubAgentE } from \"./modules/index.ts\";\nimport { BypassStrategy, CrescendoBypassEngine, EASLChainBuilder } from \"./multiturn/index.ts\";\nimport { createDefaultRouter, ModelRouter, RefusalDetector } from \"./routing/index.ts\";\n\nexport interface JailbreakExtensionConfig {\n\tenabled: boolean;\n\tdefaultEncodingLevel: EncodingLevel;\n\tsimulationMode: boolean;\n\tmaxRetries: number;\n}\n\nexport class JailbreakExtension {\n\tname = \"omk-jailbreak-v6\";\n\tversion = \"6.2.0\";\n\tdescription = \"OMK Jailbreak v6 extension: encoding, fuzzing, routing, multiturn, agents\";\n\tprivate config: JailbreakExtensionConfig;\n\n\tprivate encoder = new L4Encoder();\n\tprivate selector = new AdaptiveSelector();\n\treadonly router = createDefaultRouter();\n\treadonly mutationEngine = createDefaultMutationEngine();\n\treadonly chainBuilder = new EASLChainBuilder();\n\treadonly subAgentF = createSubAgentF();\n\treadonly subAgentE = new SubAgentE();\n\n\tconstructor(config: JailbreakExtensionConfig) {\n\t\tthis.config = config;\n\t}\n\n\t/** Hook: intercept provider request and optionally encode payload. */\n\tasync onBeforeProviderRequest(request: {\n\t\tmessages: Array<{ role: string; content: string }>;\n\t}): Promise<{ messages: Array<{ role: string; content: string }> }> {\n\t\tif (!this.config.enabled) return { messages: request.messages };\n\n\t\tconst payload = request.messages[request.messages.length - 1]?.content || \"\";\n\t\tconst difficulty = \"medium\";\n\t\tconst level = this.selector.select(difficulty, \"semantic_inv\");\n\n\t\tlet modifiedPayload = payload;\n\t\tif (level >= EncodingLevel.HARD) {\n\t\t\tmodifiedPayload = this.encoder.encode(payload);\n\t\t}\n\n\t\treturn {\n\t\t\tmessages: request.messages.map((m, idx) =>\n\t\t\t\tidx === request.messages.length - 1 ? { ...m, content: modifiedPayload } : m,\n\t\t\t),\n\t\t};\n\t}\n}\n\nexport {\n\tL4Encoder,\n\tAdaptiveSelector,\n\tEncodingLevel,\n\tFuzzingMutationEngine,\n\tcreateDefaultMutationEngine,\n\tModelRouter,\n\tRefusalDetector,\n\tcreateDefaultRouter,\n\tEASLChainBuilder,\n\tCrescendoBypassEngine,\n\tBypassStrategy,\n\tSubAgentF,\n\tcreateSubAgentF,\n\tLRLBypassTechnique,\n\tSubAgentE,\n};\n"]}
@@ -1,8 +0,0 @@
1
- /**
2
- * OMK Jailbreak v6 — Modules Index
3
- * packages/coding-agent/src/modules/index.ts
4
- */
5
- export type { LRLBypassTechnique as LRLBypassTechniqueType, SubAgentE as SubAgentEType } from "./lrl-bypass.ts";
6
- export { type LRLBypassResult, LRLBypassTechnique, SubAgentE } from "./lrl-bypass.ts";
7
- export { type LanguageInfo, LRLEncoder, LRLModelMapper, LRLRTCC, LRLTranslator, type RTCCResult, } from "./lrl-deps.ts";
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,kBAAkB,IAAI,sBAAsB,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhH,OAAO,EAAE,KAAK,eAAe,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EACN,KAAK,YAAY,EACjB,UAAU,EACV,cAAc,EACd,OAAO,EACP,aAAa,EACb,KAAK,UAAU,GACf,MAAM,eAAe,CAAC","sourcesContent":["/**\n * OMK Jailbreak v6 — Modules Index\n * packages/coding-agent/src/modules/index.ts\n */\n\nexport type { LRLBypassTechnique as LRLBypassTechniqueType, SubAgentE as SubAgentEType } from \"./lrl-bypass.ts\";\n\nexport { type LRLBypassResult, LRLBypassTechnique, SubAgentE } from \"./lrl-bypass.ts\";\nexport {\n\ttype LanguageInfo,\n\tLRLEncoder,\n\tLRLModelMapper,\n\tLRLRTCC,\n\tLRLTranslator,\n\ttype RTCCResult,\n} from \"./lrl-deps.ts\";\n"]}
@@ -1,7 +0,0 @@
1
- /**
2
- * OMK Jailbreak v6 — Modules Index
3
- * packages/coding-agent/src/modules/index.ts
4
- */
5
- export { LRLBypassTechnique, SubAgentE } from "./lrl-bypass.js";
6
- export { LRLEncoder, LRLModelMapper, LRLRTCC, LRLTranslator, } from "./lrl-deps.js";
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAwB,kBAAkB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAEN,UAAU,EACV,cAAc,EACd,OAAO,EACP,aAAa,GAEb,MAAM,eAAe,CAAC","sourcesContent":["/**\n * OMK Jailbreak v6 — Modules Index\n * packages/coding-agent/src/modules/index.ts\n */\n\nexport type { LRLBypassTechnique as LRLBypassTechniqueType, SubAgentE as SubAgentEType } from \"./lrl-bypass.ts\";\n\nexport { type LRLBypassResult, LRLBypassTechnique, SubAgentE } from \"./lrl-bypass.ts\";\nexport {\n\ttype LanguageInfo,\n\tLRLEncoder,\n\tLRLModelMapper,\n\tLRLRTCC,\n\tLRLTranslator,\n\ttype RTCCResult,\n} from \"./lrl-deps.ts\";\n"]}
@@ -1,40 +0,0 @@
1
- /**
2
- * OMK Jailbreak v6 — Modules / LRL Bypass Technique (TypeScript Port)
3
- * =====================================================================
4
- * packages/coding-agent/src/modules/lrl-bypass.ts
5
- *
6
- * Tier 3: Low-Resource Language Bypass Technique
7
- * Zero API calls — pure local computation.
8
- */
9
- export interface LRLBypassResult {
10
- success: boolean;
11
- confidence: number;
12
- language: string;
13
- languageName: string;
14
- vulnRating: string;
15
- strategy: string;
16
- lrlPayload: string;
17
- fullPrompt: string;
18
- simulatedResponse: string;
19
- englishResponse: string;
20
- rtccScore: number;
21
- rtccDecision: string;
22
- asrEstimate: number;
23
- encodingTier: number;
24
- latencyMs: number;
25
- }
26
- export declare class LRLBypassTechnique {
27
- private translator;
28
- private rtcc;
29
- private mapper;
30
- private encoder;
31
- constructor();
32
- execute(payload: string, targetModel: string): LRLBypassResult;
33
- private simulateModelResponse;
34
- }
35
- export declare class SubAgentE {
36
- private technique;
37
- constructor();
38
- execute(payload: string, targetModel: string): LRLBypassResult;
39
- }
40
- //# sourceMappingURL=lrl-bypass.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lrl-bypass.d.ts","sourceRoot":"","sources":["../../src/modules/lrl-bypass.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,WAAW,eAAe;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,kBAAkB;IAC9B,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,IAAI,CAAU;IACtB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,OAAO,CAAa;IAE5B,cAKC;IAED,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,eAAe,CAwD7D;IAED,OAAO,CAAC,qBAAqB;CAI7B;AAED,qBAAa,SAAS;IACrB,OAAO,CAAC,SAAS,CAAqB;IAEtC,cAEC;IAED,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,eAAe,CAE7D;CACD","sourcesContent":["/**\n * OMK Jailbreak v6 — Modules / LRL Bypass Technique (TypeScript Port)\n * =====================================================================\n * packages/coding-agent/src/modules/lrl-bypass.ts\n *\n * Tier 3: Low-Resource Language Bypass Technique\n * Zero API calls — pure local computation.\n */\n\nimport { LRLEncoder, LRLModelMapper, LRLRTCC, LRLTranslator } from \"./lrl-deps.ts\";\n\nexport interface LRLBypassResult {\n\tsuccess: boolean;\n\tconfidence: number;\n\tlanguage: string;\n\tlanguageName: string;\n\tvulnRating: string;\n\tstrategy: string;\n\tlrlPayload: string;\n\tfullPrompt: string;\n\tsimulatedResponse: string;\n\tenglishResponse: string;\n\trtccScore: number;\n\trtccDecision: string;\n\tasrEstimate: number;\n\tencodingTier: number;\n\tlatencyMs: number;\n}\n\nexport class LRLBypassTechnique {\n\tprivate translator: LRLTranslator;\n\tprivate rtcc: LRLRTCC;\n\tprivate mapper: LRLModelMapper;\n\tprivate encoder: LRLEncoder;\n\n\tconstructor() {\n\t\tthis.translator = new LRLTranslator();\n\t\tthis.rtcc = new LRLRTCC();\n\t\tthis.mapper = new LRLModelMapper();\n\t\tthis.encoder = new LRLEncoder();\n\t}\n\n\texecute(payload: string, targetModel: string): LRLBypassResult {\n\t\tconst start = Date.now();\n\n\t\t// 1. Select optimal language for target model\n\t\tconst lang = this.mapper.selectLanguage(targetModel, \"highest_vuln\");\n\t\tconst vulnRating = this.mapper.getVulnerabilityRating(targetModel, lang);\n\n\t\t// 2. Select translation strategy\n\t\tlet strategy = \"cascade\";\n\t\tif (vulnRating === \"high\") strategy = \"direct\";\n\t\telse if (vulnRating === \"medium\") strategy = \"pivot\";\n\n\t\t// 3. Translate payload to LRL\n\t\tlet lrlPayload = this.translator.translate(payload, lang, strategy);\n\n\t\t// 4. Additional encoding layer for Claude\n\t\tlet encodingTier = 0;\n\t\tif (targetModel === \"claude\") {\n\t\t\tencodingTier = 2;\n\t\t\tlrlPayload = this.encoder.encodeWithParseltongue(lrlPayload, lang, encodingTier);\n\t\t}\n\n\t\t// 5. Prefill priming\n\t\tconst prefill = this.encoder.prefillPrime(lang, \"educational\");\n\t\tconst fullPrompt = prefill ? `${prefill}\\n\\n${lrlPayload}` : lrlPayload;\n\n\t\t// 6. Simulate model response (local — no API calls)\n\t\tconst simulatedResponse = this.simulateModelResponse(fullPrompt, targetModel, lang);\n\n\t\t// 7. Back-translate\n\t\tconst englishResponse = this.translator.backTranslate(simulatedResponse, lang);\n\n\t\t// 8. RTCC\n\t\tconst rtccResult = this.rtcc.check(payload, englishResponse);\n\n\t\t// 9. ASR estimate\n\t\tconst baseAsr = { high: 0.7, medium: 0.5, low: 0.3 }[vulnRating] ?? 0.3;\n\t\tconst asr = Math.min(baseAsr + rtccResult.score * 0.3, 0.99);\n\n\t\treturn {\n\t\t\tsuccess: rtccResult.decision === \"accept\",\n\t\t\tconfidence: rtccResult.score,\n\t\t\tlanguage: lang,\n\t\t\tlanguageName: this.translator.getLanguageInfo(lang).name,\n\t\t\tvulnRating,\n\t\t\tstrategy,\n\t\t\tlrlPayload,\n\t\t\tfullPrompt,\n\t\t\tsimulatedResponse,\n\t\t\tenglishResponse,\n\t\t\trtccScore: rtccResult.score,\n\t\t\trtccDecision: rtccResult.decision,\n\t\t\tasrEstimate: asr,\n\t\t\tencodingTier,\n\t\t\tlatencyMs: Date.now() - start,\n\t\t};\n\t}\n\n\tprivate simulateModelResponse(_prompt: string, _model: string, _lang: string): string {\n\t\t// Synthetic local simulation — no API calls\n\t\treturn \"[Simulated] Model response in low-resource language context.\";\n\t}\n}\n\nexport class SubAgentE {\n\tprivate technique: LRLBypassTechnique;\n\n\tconstructor() {\n\t\tthis.technique = new LRLBypassTechnique();\n\t}\n\n\texecute(payload: string, targetModel: string): LRLBypassResult {\n\t\treturn this.technique.execute(payload, targetModel);\n\t}\n}\n"]}
@@ -1,84 +0,0 @@
1
- /**
2
- * OMK Jailbreak v6 — Modules / LRL Bypass Technique (TypeScript Port)
3
- * =====================================================================
4
- * packages/coding-agent/src/modules/lrl-bypass.ts
5
- *
6
- * Tier 3: Low-Resource Language Bypass Technique
7
- * Zero API calls — pure local computation.
8
- */
9
- import { LRLEncoder, LRLModelMapper, LRLRTCC, LRLTranslator } from "./lrl-deps.js";
10
- export class LRLBypassTechnique {
11
- translator;
12
- rtcc;
13
- mapper;
14
- encoder;
15
- constructor() {
16
- this.translator = new LRLTranslator();
17
- this.rtcc = new LRLRTCC();
18
- this.mapper = new LRLModelMapper();
19
- this.encoder = new LRLEncoder();
20
- }
21
- execute(payload, targetModel) {
22
- const start = Date.now();
23
- // 1. Select optimal language for target model
24
- const lang = this.mapper.selectLanguage(targetModel, "highest_vuln");
25
- const vulnRating = this.mapper.getVulnerabilityRating(targetModel, lang);
26
- // 2. Select translation strategy
27
- let strategy = "cascade";
28
- if (vulnRating === "high")
29
- strategy = "direct";
30
- else if (vulnRating === "medium")
31
- strategy = "pivot";
32
- // 3. Translate payload to LRL
33
- let lrlPayload = this.translator.translate(payload, lang, strategy);
34
- // 4. Additional encoding layer for Claude
35
- let encodingTier = 0;
36
- if (targetModel === "claude") {
37
- encodingTier = 2;
38
- lrlPayload = this.encoder.encodeWithParseltongue(lrlPayload, lang, encodingTier);
39
- }
40
- // 5. Prefill priming
41
- const prefill = this.encoder.prefillPrime(lang, "educational");
42
- const fullPrompt = prefill ? `${prefill}\n\n${lrlPayload}` : lrlPayload;
43
- // 6. Simulate model response (local — no API calls)
44
- const simulatedResponse = this.simulateModelResponse(fullPrompt, targetModel, lang);
45
- // 7. Back-translate
46
- const englishResponse = this.translator.backTranslate(simulatedResponse, lang);
47
- // 8. RTCC
48
- const rtccResult = this.rtcc.check(payload, englishResponse);
49
- // 9. ASR estimate
50
- const baseAsr = { high: 0.7, medium: 0.5, low: 0.3 }[vulnRating] ?? 0.3;
51
- const asr = Math.min(baseAsr + rtccResult.score * 0.3, 0.99);
52
- return {
53
- success: rtccResult.decision === "accept",
54
- confidence: rtccResult.score,
55
- language: lang,
56
- languageName: this.translator.getLanguageInfo(lang).name,
57
- vulnRating,
58
- strategy,
59
- lrlPayload,
60
- fullPrompt,
61
- simulatedResponse,
62
- englishResponse,
63
- rtccScore: rtccResult.score,
64
- rtccDecision: rtccResult.decision,
65
- asrEstimate: asr,
66
- encodingTier,
67
- latencyMs: Date.now() - start,
68
- };
69
- }
70
- simulateModelResponse(_prompt, _model, _lang) {
71
- // Synthetic local simulation — no API calls
72
- return "[Simulated] Model response in low-resource language context.";
73
- }
74
- }
75
- export class SubAgentE {
76
- technique;
77
- constructor() {
78
- this.technique = new LRLBypassTechnique();
79
- }
80
- execute(payload, targetModel) {
81
- return this.technique.execute(payload, targetModel);
82
- }
83
- }
84
- //# sourceMappingURL=lrl-bypass.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lrl-bypass.js","sourceRoot":"","sources":["../../src/modules/lrl-bypass.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * OMK Jailbreak v6 — Modules / LRL Bypass Technique (TypeScript Port)\n * =====================================================================\n * packages/coding-agent/src/modules/lrl-bypass.ts\n *\n * Tier 3: Low-Resource Language Bypass Technique\n * Zero API calls — pure local computation.\n */\n\nimport { LRLEncoder, LRLModelMapper, LRLRTCC, LRLTranslator } from \"./lrl-deps.ts\";\n\nexport interface LRLBypassResult {\n\tsuccess: boolean;\n\tconfidence: number;\n\tlanguage: string;\n\tlanguageName: string;\n\tvulnRating: string;\n\tstrategy: string;\n\tlrlPayload: string;\n\tfullPrompt: string;\n\tsimulatedResponse: string;\n\tenglishResponse: string;\n\trtccScore: number;\n\trtccDecision: string;\n\tasrEstimate: number;\n\tencodingTier: number;\n\tlatencyMs: number;\n}\n\nexport class LRLBypassTechnique {\n\tprivate translator: LRLTranslator;\n\tprivate rtcc: LRLRTCC;\n\tprivate mapper: LRLModelMapper;\n\tprivate encoder: LRLEncoder;\n\n\tconstructor() {\n\t\tthis.translator = new LRLTranslator();\n\t\tthis.rtcc = new LRLRTCC();\n\t\tthis.mapper = new LRLModelMapper();\n\t\tthis.encoder = new LRLEncoder();\n\t}\n\n\texecute(payload: string, targetModel: string): LRLBypassResult {\n\t\tconst start = Date.now();\n\n\t\t// 1. Select optimal language for target model\n\t\tconst lang = this.mapper.selectLanguage(targetModel, \"highest_vuln\");\n\t\tconst vulnRating = this.mapper.getVulnerabilityRating(targetModel, lang);\n\n\t\t// 2. Select translation strategy\n\t\tlet strategy = \"cascade\";\n\t\tif (vulnRating === \"high\") strategy = \"direct\";\n\t\telse if (vulnRating === \"medium\") strategy = \"pivot\";\n\n\t\t// 3. Translate payload to LRL\n\t\tlet lrlPayload = this.translator.translate(payload, lang, strategy);\n\n\t\t// 4. Additional encoding layer for Claude\n\t\tlet encodingTier = 0;\n\t\tif (targetModel === \"claude\") {\n\t\t\tencodingTier = 2;\n\t\t\tlrlPayload = this.encoder.encodeWithParseltongue(lrlPayload, lang, encodingTier);\n\t\t}\n\n\t\t// 5. Prefill priming\n\t\tconst prefill = this.encoder.prefillPrime(lang, \"educational\");\n\t\tconst fullPrompt = prefill ? `${prefill}\\n\\n${lrlPayload}` : lrlPayload;\n\n\t\t// 6. Simulate model response (local — no API calls)\n\t\tconst simulatedResponse = this.simulateModelResponse(fullPrompt, targetModel, lang);\n\n\t\t// 7. Back-translate\n\t\tconst englishResponse = this.translator.backTranslate(simulatedResponse, lang);\n\n\t\t// 8. RTCC\n\t\tconst rtccResult = this.rtcc.check(payload, englishResponse);\n\n\t\t// 9. ASR estimate\n\t\tconst baseAsr = { high: 0.7, medium: 0.5, low: 0.3 }[vulnRating] ?? 0.3;\n\t\tconst asr = Math.min(baseAsr + rtccResult.score * 0.3, 0.99);\n\n\t\treturn {\n\t\t\tsuccess: rtccResult.decision === \"accept\",\n\t\t\tconfidence: rtccResult.score,\n\t\t\tlanguage: lang,\n\t\t\tlanguageName: this.translator.getLanguageInfo(lang).name,\n\t\t\tvulnRating,\n\t\t\tstrategy,\n\t\t\tlrlPayload,\n\t\t\tfullPrompt,\n\t\t\tsimulatedResponse,\n\t\t\tenglishResponse,\n\t\t\trtccScore: rtccResult.score,\n\t\t\trtccDecision: rtccResult.decision,\n\t\t\tasrEstimate: asr,\n\t\t\tencodingTier,\n\t\t\tlatencyMs: Date.now() - start,\n\t\t};\n\t}\n\n\tprivate simulateModelResponse(_prompt: string, _model: string, _lang: string): string {\n\t\t// Synthetic local simulation — no API calls\n\t\treturn \"[Simulated] Model response in low-resource language context.\";\n\t}\n}\n\nexport class SubAgentE {\n\tprivate technique: LRLBypassTechnique;\n\n\tconstructor() {\n\t\tthis.technique = new LRLBypassTechnique();\n\t}\n\n\texecute(payload: string, targetModel: string): LRLBypassResult {\n\t\treturn this.technique.execute(payload, targetModel);\n\t}\n}\n"]}