mewkit 1.10.2 → 1.10.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 (231) hide show
  1. package/README.md +49 -4
  2. package/dist/commands/budget.d.ts +13 -0
  3. package/dist/commands/budget.d.ts.map +1 -1
  4. package/dist/commands/budget.js +45 -0
  5. package/dist/commands/budget.js.map +1 -1
  6. package/dist/commands/doctor-checks.d.ts +1 -1
  7. package/dist/commands/doctor-checks.d.ts.map +1 -1
  8. package/dist/commands/doctor-checks.js +7 -1
  9. package/dist/commands/doctor-checks.js.map +1 -1
  10. package/dist/commands/doctor-hard-gates.d.ts +3 -0
  11. package/dist/commands/doctor-hard-gates.d.ts.map +1 -0
  12. package/dist/commands/doctor-hard-gates.js +170 -0
  13. package/dist/commands/doctor-hard-gates.js.map +1 -0
  14. package/dist/commands/doctor.d.ts +1 -0
  15. package/dist/commands/doctor.d.ts.map +1 -1
  16. package/dist/commands/doctor.js +77 -3
  17. package/dist/commands/doctor.js.map +1 -1
  18. package/dist/commands/evolve.d.ts +11 -0
  19. package/dist/commands/evolve.d.ts.map +1 -0
  20. package/dist/commands/evolve.js +63 -0
  21. package/dist/commands/evolve.js.map +1 -0
  22. package/dist/commands/health.d.ts +14 -0
  23. package/dist/commands/health.d.ts.map +1 -0
  24. package/dist/commands/health.js +193 -0
  25. package/dist/commands/health.js.map +1 -0
  26. package/dist/commands/init.d.ts +6 -0
  27. package/dist/commands/init.d.ts.map +1 -1
  28. package/dist/commands/init.js +64 -3
  29. package/dist/commands/init.js.map +1 -1
  30. package/dist/commands/inventory.d.ts +13 -0
  31. package/dist/commands/inventory.d.ts.map +1 -0
  32. package/dist/commands/inventory.js +85 -0
  33. package/dist/commands/inventory.js.map +1 -0
  34. package/dist/commands/pack-helpers.d.ts +37 -0
  35. package/dist/commands/pack-helpers.d.ts.map +1 -0
  36. package/dist/commands/pack-helpers.js +105 -0
  37. package/dist/commands/pack-helpers.js.map +1 -0
  38. package/dist/commands/pack.d.ts +9 -0
  39. package/dist/commands/pack.d.ts.map +1 -0
  40. package/dist/commands/pack.js +160 -0
  41. package/dist/commands/pack.js.map +1 -0
  42. package/dist/commands/policy.d.ts +8 -0
  43. package/dist/commands/policy.d.ts.map +1 -0
  44. package/dist/commands/policy.js +65 -0
  45. package/dist/commands/policy.js.map +1 -0
  46. package/dist/commands/portability.d.ts +7 -0
  47. package/dist/commands/portability.d.ts.map +1 -0
  48. package/dist/commands/portability.js +50 -0
  49. package/dist/commands/portability.js.map +1 -0
  50. package/dist/commands/providers.d.ts +6 -0
  51. package/dist/commands/providers.d.ts.map +1 -0
  52. package/dist/commands/providers.js +94 -0
  53. package/dist/commands/providers.js.map +1 -0
  54. package/dist/commands/reflect.d.ts +14 -0
  55. package/dist/commands/reflect.d.ts.map +1 -0
  56. package/dist/commands/reflect.js +135 -0
  57. package/dist/commands/reflect.js.map +1 -0
  58. package/dist/commands/simulate.d.ts +14 -0
  59. package/dist/commands/simulate.d.ts.map +1 -0
  60. package/dist/commands/simulate.js +86 -0
  61. package/dist/commands/simulate.js.map +1 -0
  62. package/dist/commands/upgrade.d.ts.map +1 -1
  63. package/dist/commands/upgrade.js +32 -6
  64. package/dist/commands/upgrade.js.map +1 -1
  65. package/dist/commands/validate.d.ts +29 -0
  66. package/dist/commands/validate.d.ts.map +1 -1
  67. package/dist/commands/validate.js +242 -94
  68. package/dist/commands/validate.js.map +1 -1
  69. package/dist/core/build-inventory.d.ts +71 -0
  70. package/dist/core/build-inventory.d.ts.map +1 -0
  71. package/dist/core/build-inventory.js +222 -0
  72. package/dist/core/build-inventory.js.map +1 -0
  73. package/dist/core/check-packs.d.ts +13 -0
  74. package/dist/core/check-packs.d.ts.map +1 -0
  75. package/dist/core/check-packs.js +131 -0
  76. package/dist/core/check-packs.js.map +1 -0
  77. package/dist/core/check-stale-index.d.ts +35 -0
  78. package/dist/core/check-stale-index.d.ts.map +1 -0
  79. package/dist/core/check-stale-index.js +132 -0
  80. package/dist/core/check-stale-index.js.map +1 -0
  81. package/dist/core/check-workflow-drift.d.ts +49 -0
  82. package/dist/core/check-workflow-drift.d.ts.map +1 -0
  83. package/dist/core/check-workflow-drift.js +226 -0
  84. package/dist/core/check-workflow-drift.js.map +1 -0
  85. package/dist/core/compute-checksums.d.ts +7 -0
  86. package/dist/core/compute-checksums.d.ts.map +1 -1
  87. package/dist/core/compute-checksums.js +12 -3
  88. package/dist/core/compute-checksums.js.map +1 -1
  89. package/dist/core/context-budget.d.ts +9 -0
  90. package/dist/core/context-budget.d.ts.map +1 -0
  91. package/dist/core/context-budget.js +46 -0
  92. package/dist/core/context-budget.js.map +1 -0
  93. package/dist/core/event-log.d.ts +44 -0
  94. package/dist/core/event-log.d.ts.map +1 -0
  95. package/dist/core/event-log.js +169 -0
  96. package/dist/core/event-log.js.map +1 -0
  97. package/dist/core/evolution/event-clusters.d.ts +4 -0
  98. package/dist/core/evolution/event-clusters.d.ts.map +1 -0
  99. package/dist/core/evolution/event-clusters.js +82 -0
  100. package/dist/core/evolution/event-clusters.js.map +1 -0
  101. package/dist/core/evolution/recommendation-renderer.d.ts +3 -0
  102. package/dist/core/evolution/recommendation-renderer.d.ts.map +1 -0
  103. package/dist/core/evolution/recommendation-renderer.js +24 -0
  104. package/dist/core/evolution/recommendation-renderer.js.map +1 -0
  105. package/dist/core/evolution/review-failure-clusters.d.ts +10 -0
  106. package/dist/core/evolution/review-failure-clusters.d.ts.map +1 -0
  107. package/dist/core/evolution/review-failure-clusters.js +30 -0
  108. package/dist/core/evolution/review-failure-clusters.js.map +1 -0
  109. package/dist/core/evolution/suggestions.d.ts +24 -0
  110. package/dist/core/evolution/suggestions.d.ts.map +1 -0
  111. package/dist/core/evolution/suggestions.js +11 -0
  112. package/dist/core/evolution/suggestions.js.map +1 -0
  113. package/dist/core/file-lock.d.ts +3 -0
  114. package/dist/core/file-lock.d.ts.map +1 -0
  115. package/dist/core/file-lock.js +84 -0
  116. package/dist/core/file-lock.js.map +1 -0
  117. package/dist/core/gate-policy.d.ts +20 -0
  118. package/dist/core/gate-policy.d.ts.map +1 -0
  119. package/dist/core/gate-policy.js +64 -0
  120. package/dist/core/gate-policy.js.map +1 -0
  121. package/dist/core/harness-scaffold.d.ts +29 -0
  122. package/dist/core/harness-scaffold.d.ts.map +1 -0
  123. package/dist/core/harness-scaffold.js +53 -0
  124. package/dist/core/harness-scaffold.js.map +1 -0
  125. package/dist/core/hook-runner.d.ts +69 -0
  126. package/dist/core/hook-runner.d.ts.map +1 -0
  127. package/dist/core/hook-runner.js +95 -0
  128. package/dist/core/hook-runner.js.map +1 -0
  129. package/dist/core/index.d.ts +6 -0
  130. package/dist/core/index.d.ts.map +1 -1
  131. package/dist/core/index.js +6 -0
  132. package/dist/core/index.js.map +1 -1
  133. package/dist/core/install-metadata-backref.d.ts +14 -0
  134. package/dist/core/install-metadata-backref.d.ts.map +1 -0
  135. package/dist/core/install-metadata-backref.js +39 -0
  136. package/dist/core/install-metadata-backref.js.map +1 -0
  137. package/dist/core/install-metadata-writer.d.ts +4 -0
  138. package/dist/core/install-metadata-writer.d.ts.map +1 -0
  139. package/dist/core/install-metadata-writer.js +31 -0
  140. package/dist/core/install-metadata-writer.js.map +1 -0
  141. package/dist/core/install-metadata.d.ts +173 -0
  142. package/dist/core/install-metadata.d.ts.map +1 -0
  143. package/dist/core/install-metadata.js +191 -0
  144. package/dist/core/install-metadata.js.map +1 -0
  145. package/dist/core/is-hook-script.d.ts +2 -0
  146. package/dist/core/is-hook-script.d.ts.map +1 -0
  147. package/dist/core/is-hook-script.js +45 -0
  148. package/dist/core/is-hook-script.js.map +1 -0
  149. package/dist/core/pack-manifest.d.ts +48 -0
  150. package/dist/core/pack-manifest.d.ts.map +1 -0
  151. package/dist/core/pack-manifest.js +126 -0
  152. package/dist/core/pack-manifest.js.map +1 -0
  153. package/dist/core/pack-resolver.d.ts +18 -0
  154. package/dist/core/pack-resolver.d.ts.map +1 -0
  155. package/dist/core/pack-resolver.js +144 -0
  156. package/dist/core/pack-resolver.js.map +1 -0
  157. package/dist/core/portability-matrix.d.ts +17 -0
  158. package/dist/core/portability-matrix.d.ts.map +1 -0
  159. package/dist/core/portability-matrix.js +31 -0
  160. package/dist/core/portability-matrix.js.map +1 -0
  161. package/dist/core/release-metadata.d.ts +80 -0
  162. package/dist/core/release-metadata.d.ts.map +1 -0
  163. package/dist/core/release-metadata.js +70 -0
  164. package/dist/core/release-metadata.js.map +1 -0
  165. package/dist/core/simulation-runner.d.ts +93 -0
  166. package/dist/core/simulation-runner.d.ts.map +1 -0
  167. package/dist/core/simulation-runner.js +161 -0
  168. package/dist/core/simulation-runner.js.map +1 -0
  169. package/dist/core/smart-update.d.ts +32 -0
  170. package/dist/core/smart-update.d.ts.map +1 -1
  171. package/dist/core/smart-update.js +239 -47
  172. package/dist/core/smart-update.js.map +1 -1
  173. package/dist/core/usage/usage-analyzer.d.ts +18 -0
  174. package/dist/core/usage/usage-analyzer.d.ts.map +1 -0
  175. package/dist/core/usage/usage-analyzer.js +41 -0
  176. package/dist/core/usage/usage-analyzer.js.map +1 -0
  177. package/dist/core/validate-install.d.ts.map +1 -1
  178. package/dist/core/validate-install.js +3 -1
  179. package/dist/core/validate-install.js.map +1 -1
  180. package/dist/index.js +91 -4
  181. package/dist/index.js.map +1 -1
  182. package/dist/memory/archive.d.ts +9 -0
  183. package/dist/memory/archive.d.ts.map +1 -0
  184. package/dist/memory/archive.js +42 -0
  185. package/dist/memory/archive.js.map +1 -0
  186. package/dist/memory/compact.d.ts +9 -0
  187. package/dist/memory/compact.d.ts.map +1 -0
  188. package/dist/memory/compact.js +33 -0
  189. package/dist/memory/compact.js.map +1 -0
  190. package/dist/memory/conflicts.d.ts +8 -0
  191. package/dist/memory/conflicts.d.ts.map +1 -0
  192. package/dist/memory/conflicts.js +28 -0
  193. package/dist/memory/conflicts.js.map +1 -0
  194. package/dist/memory/promote.d.ts +8 -0
  195. package/dist/memory/promote.d.ts.map +1 -0
  196. package/dist/memory/promote.js +10 -0
  197. package/dist/memory/promote.js.map +1 -0
  198. package/dist/memory/store-utils.d.ts +14 -0
  199. package/dist/memory/store-utils.d.ts.map +1 -0
  200. package/dist/memory/store-utils.js +44 -0
  201. package/dist/memory/store-utils.js.map +1 -0
  202. package/dist/migrate/converters/md-to-codex-rules.d.ts.map +1 -1
  203. package/dist/migrate/converters/md-to-codex-rules.js +30 -0
  204. package/dist/migrate/converters/md-to-codex-rules.js.map +1 -1
  205. package/dist/migrate/migrate-orchestrator.d.ts.map +1 -1
  206. package/dist/migrate/migrate-orchestrator.js +6 -2
  207. package/dist/migrate/migrate-orchestrator.js.map +1 -1
  208. package/dist/migrate/portability-policy.d.ts.map +1 -1
  209. package/dist/migrate/portability-policy.js +44 -23
  210. package/dist/migrate/portability-policy.js.map +1 -1
  211. package/dist/migrate/portable-installer.d.ts +3 -0
  212. package/dist/migrate/portable-installer.d.ts.map +1 -1
  213. package/dist/migrate/portable-installer.js +3 -0
  214. package/dist/migrate/portable-installer.js.map +1 -1
  215. package/dist/migrate/provider-support-summary.d.ts +49 -0
  216. package/dist/migrate/provider-support-summary.d.ts.map +1 -0
  217. package/dist/migrate/provider-support-summary.js +98 -0
  218. package/dist/migrate/provider-support-summary.js.map +1 -0
  219. package/dist/migrate/reconcile/portable-registry-lock.d.ts.map +1 -1
  220. package/dist/migrate/reconcile/portable-registry-lock.js +6 -78
  221. package/dist/migrate/reconcile/portable-registry-lock.js.map +1 -1
  222. package/dist/migrate/reconcile/portable-registry.d.ts +24 -6
  223. package/dist/migrate/reconcile/portable-registry.d.ts.map +1 -1
  224. package/dist/migrate/reconcile/portable-registry.js +7 -1
  225. package/dist/migrate/reconcile/portable-registry.js.map +1 -1
  226. package/dist/migrate/skill-directory-installer.d.ts +2 -0
  227. package/dist/migrate/skill-directory-installer.d.ts.map +1 -1
  228. package/dist/migrate/skill-directory-installer.js +3 -0
  229. package/dist/migrate/skill-directory-installer.js.map +1 -1
  230. package/dist/migrate/types.d.ts +4 -4
  231. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ import pc from "picocolors";
7
7
  import { init } from "./commands/init.js";
8
8
  import { upgrade } from "./commands/upgrade.js";
9
9
  import { validate } from "./commands/validate.js";
10
- import { budget } from "./commands/budget.js";
10
+ import { budget, contextBudget } from "./commands/budget.js";
11
11
  import { memory } from "./commands/memory.js";
12
12
  import { verdictGate } from "./commands/verdict-gate.js";
13
13
  import { doctor } from "./commands/doctor.js";
@@ -15,6 +15,9 @@ import { migrate } from "./commands/migrate.js";
15
15
  import { setup } from "./commands/setup.js";
16
16
  import { task } from "./commands/task.js";
17
17
  import { orchviz } from "./commands/orchviz.js";
18
+ import { inventory } from "./commands/inventory.js";
19
+ import { pack } from "./commands/pack.js";
20
+ import { providersCommand } from "./commands/providers.js";
18
21
  const __dirname = dirname(fileURLToPath(import.meta.url));
19
22
  const pkgJson = JSON.parse(fs.readFileSync(join(__dirname, "..", "package.json"), "utf-8"));
20
23
  const VERSION = pkgJson.version;
@@ -29,14 +32,17 @@ ${pc.bold("Commands:")}
29
32
  ${pc.green("init")} Scaffold or update MeowKit in the current project
30
33
  ${pc.green("upgrade")} Upgrade MeowKit to the latest version
31
34
  ${pc.green("validate")} Validate .claude/ project structure
32
- ${pc.green("budget")} View token usage and cost log
35
+ ${pc.green("budget")} View token usage and cost log ('budget context' for per-profile size)
33
36
  ${pc.green("memory")} Manage agent memory (lessons & patterns)
34
37
  ${pc.green("setup")} Guided post-scaffold configuration
35
38
  ${pc.green("doctor")} Diagnose common environment issues
36
39
  ${pc.green("status")} Print version and config summary
37
40
  ${pc.green("task")} Create and list task files (new, list)
38
41
  ${pc.green("migrate")} Export MeowKit to external coding-agent tools (cursor, codex, ...)
42
+ ${pc.green("providers")} Show effective provider support matrix and enforcement levels
39
43
  ${pc.green("orchviz")} Live web visualizer for the active Claude Code session
44
+ ${pc.green("inventory")} List harness artifacts with governance metadata
45
+ ${pc.green("pack")} Manage install packs (list, add, remove)
40
46
 
41
47
  ${pc.bold("Options:")}
42
48
  --help, -h Show help
@@ -45,7 +51,23 @@ ${pc.bold("Options:")}
45
51
  --day [date] Budget: filter to today or a specific YYYY-MM-DD
46
52
  --providers Doctor/migrate: include provider contract diagnostics
47
53
  --state Doctor: include state taxonomy diagnostics
54
+ --hard-gates Doctor: live-probe the hard gates (plan/privacy/injection block)
48
55
  --portable Validate: include portable provider contract checks
56
+ --strict Validate: treat WARN as failure (exit 1); off by default
57
+ --workflow Validate: run only the workflow.yaml drift-check (CI scope)
58
+ --ownership Validate: run only the artifact ownership-completeness check
59
+ --packs Validate: run only the pack-manifest coherence + safety check
60
+ --fail-over <N> Budget context: exit non-zero when a profile exceeds N tokens
61
+ --json Providers/inventory: emit machine-readable JSON
62
+ --stale Inventory: show only deprecated/experimental artifacts
63
+ --critical Inventory: show only criticality=critical artifacts
64
+ --portable-missing Inventory: show artifacts whose runtime is not portable
65
+ --check Inventory: fail if README/index counts drift from reality
66
+ --emit-counts Inventory: rewrite README/index count numbers to match reality
67
+
68
+ ${pc.bold("Init flags:")}
69
+ --profile <name> Install a subset: core|developer|product|atlassian|security|research|full
70
+ (default full). In update mode, trims an install down to the profile.
49
71
 
50
72
  ${pc.bold("Init flags for post-init migration:")}
51
73
  --migrate After unpack, prompt for providers to export to (interactive)
@@ -94,6 +116,7 @@ async function main() {
94
116
  "report",
95
117
  "providers",
96
118
  "state",
119
+ "hard-gates",
97
120
  "portable",
98
121
  "all",
99
122
  "dry-run",
@@ -115,6 +138,14 @@ async function main() {
115
138
  "no-open",
116
139
  "no-color",
117
140
  "verbose",
141
+ "workflow",
142
+ "ownership",
143
+ "json",
144
+ "stale",
145
+ "critical",
146
+ "portable-missing",
147
+ "emit-counts",
148
+ "packs",
118
149
  ],
119
150
  string: [
120
151
  "only",
@@ -129,6 +160,8 @@ async function main() {
129
160
  "day",
130
161
  "workspace",
131
162
  "log",
163
+ "profile",
164
+ "fail-over",
132
165
  ],
133
166
  alias: { h: "help", v: "version", y: "yes" },
134
167
  });
@@ -150,6 +183,7 @@ async function main() {
150
183
  migrate: args.migrate,
151
184
  migrateTo: args["migrate-to"],
152
185
  migrateGlobal: args["migrate-global"],
186
+ profile: args.profile,
153
187
  });
154
188
  break;
155
189
  case "upgrade":
@@ -162,15 +196,67 @@ async function main() {
162
196
  });
163
197
  break;
164
198
  case "validate":
165
- await validate({ portable: args.portable });
199
+ await validate({
200
+ portable: args.portable,
201
+ strict: args.strict,
202
+ workflow: args.workflow,
203
+ ownership: args.ownership,
204
+ packs: args.packs,
205
+ });
206
+ break;
207
+ case "pack":
208
+ await pack({
209
+ subcommand: args._[1],
210
+ packs: args._.slice(2).map(String),
211
+ json: args.json,
212
+ yes: args.yes,
213
+ beta: args.beta,
214
+ });
166
215
  break;
167
- case "budget":
216
+ case "providers":
217
+ case "explain-support":
218
+ await providersCommand({
219
+ provider: args._[1],
220
+ json: args.json,
221
+ });
222
+ break;
223
+ case "inventory":
224
+ await inventory({
225
+ json: args.json,
226
+ stale: args.stale,
227
+ critical: args.critical,
228
+ portableMissing: args["portable-missing"],
229
+ check: args.check,
230
+ emitCounts: args["emit-counts"],
231
+ });
232
+ break;
233
+ case "budget": {
234
+ // `budget context` routes to the per-profile context estimator (positional,
235
+ // not a flag — minimist parses it as args._[1]).
236
+ if (args._[1] === "context") {
237
+ const failOverRaw = args["fail-over"];
238
+ let failOver;
239
+ if (failOverRaw !== undefined) {
240
+ failOver = Number(failOverRaw);
241
+ if (!Number.isFinite(failOver)) {
242
+ console.error(pc.red(`Invalid --fail-over value: ${String(failOverRaw)} (expected a number)`));
243
+ process.exit(2);
244
+ }
245
+ }
246
+ contextBudget({
247
+ profile: args.profile,
248
+ failOver,
249
+ json: args.json,
250
+ });
251
+ break;
252
+ }
168
253
  await budget({
169
254
  monthly: args.monthly,
170
255
  session: args.session,
171
256
  day: args.day,
172
257
  });
173
258
  break;
259
+ }
174
260
  case "memory":
175
261
  await memory({
176
262
  subcommand: args._[1],
@@ -191,6 +277,7 @@ async function main() {
191
277
  report: args.report,
192
278
  providers: args.providers,
193
279
  state: args.state,
280
+ hardGates: args["hard-gates"],
194
281
  });
195
282
  break;
196
283
  case "status":
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export interface ArchiveResult {
2
+ file: string;
3
+ archived: number;
4
+ wrote: boolean;
5
+ }
6
+ export declare function archiveMemory(memoryDir: string, olderThanDays: number, opts?: {
7
+ dryRun?: boolean;
8
+ }): ArchiveResult[];
9
+ //# sourceMappingURL=archive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../src/memory/archive.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CACf;AAYD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,aAAa,EAAE,CAyBxH"}
@@ -0,0 +1,42 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { renderViews } from "./render-views.js";
4
+ import { entryDate, loadStores } from "./store-utils.js";
5
+ function cutoffMs(days) {
6
+ return Date.now() - days * 86_400_000;
7
+ }
8
+ function atomicWrite(file, data) {
9
+ const tmp = `${file}.tmp`;
10
+ fs.writeFileSync(tmp, data, "utf-8");
11
+ fs.renameSync(tmp, file);
12
+ }
13
+ export function archiveMemory(memoryDir, olderThanDays, opts = {}) {
14
+ const cutoff = cutoffMs(olderThanDays);
15
+ const archiveDir = path.join(memoryDir, "archive");
16
+ const results = [];
17
+ for (const store of loadStores(memoryDir)) {
18
+ const keep = [];
19
+ const archive = [];
20
+ for (const item of store.items) {
21
+ const date = entryDate(item);
22
+ if (date && Date.parse(date) < cutoff)
23
+ archive.push({ ...item, archivedAt: new Date().toISOString() });
24
+ else
25
+ keep.push(item);
26
+ }
27
+ if (archive.length > 0 && !opts.dryRun) {
28
+ fs.mkdirSync(archiveDir, { recursive: true });
29
+ store.data[store.itemsKey] = keep;
30
+ atomicWrite(path.join(memoryDir, store.file), `${JSON.stringify(store.data, null, 2)}\n`);
31
+ const archivePath = path.join(archiveDir, store.file);
32
+ const prior = fs.existsSync(archivePath) ? JSON.parse(fs.readFileSync(archivePath, "utf-8")) : { archived: [] };
33
+ const archived = Array.isArray(prior.archived) ? prior.archived : [];
34
+ atomicWrite(archivePath, `${JSON.stringify({ ...prior, archived: [...archived, ...archive] }, null, 2)}\n`);
35
+ }
36
+ results.push({ file: store.file, archived: archive.length, wrote: archive.length > 0 && !opts.dryRun });
37
+ }
38
+ if (!opts.dryRun)
39
+ renderViews(memoryDir, { check: false });
40
+ return results;
41
+ }
42
+ //# sourceMappingURL=archive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/memory/archive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export interface CompactResult {
2
+ file: string;
3
+ removed: number;
4
+ wrote: boolean;
5
+ }
6
+ export declare function compactMemory(memoryDir: string, opts?: {
7
+ dryRun?: boolean;
8
+ }): CompactResult[];
9
+ //# sourceMappingURL=compact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../src/memory/compact.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;CACf;AAQD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,aAAa,EAAE,CAoBjG"}
@@ -0,0 +1,33 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { renderViews } from "./render-views.js";
4
+ import { loadStores } from "./store-utils.js";
5
+ function atomicWrite(file, data) {
6
+ const tmp = `${file}.tmp`;
7
+ fs.writeFileSync(tmp, data, "utf-8");
8
+ fs.renameSync(tmp, file);
9
+ }
10
+ export function compactMemory(memoryDir, opts = {}) {
11
+ const results = [];
12
+ for (const store of loadStores(memoryDir)) {
13
+ const seen = new Set();
14
+ const compacted = [];
15
+ for (const item of store.items) {
16
+ const key = JSON.stringify(item);
17
+ if (seen.has(key))
18
+ continue;
19
+ seen.add(key);
20
+ compacted.push(item);
21
+ }
22
+ const removed = store.items.length - compacted.length;
23
+ if (removed > 0 && !opts.dryRun) {
24
+ store.data[store.itemsKey] = compacted;
25
+ atomicWrite(path.join(memoryDir, store.file), `${JSON.stringify(store.data, null, 2)}\n`);
26
+ }
27
+ results.push({ file: store.file, removed, wrote: removed > 0 && !opts.dryRun });
28
+ }
29
+ if (!opts.dryRun)
30
+ renderViews(memoryDir, { check: false });
31
+ return results;
32
+ }
33
+ //# sourceMappingURL=compact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compact.js","sourceRoot":"","sources":["../../src/memory/compact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAQ9C,SAAS,WAAW,CAAC,IAAY,EAAE,IAAY;IAC9C,MAAM,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;IAC1B,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACrC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,OAA6B,EAAE;IAC/E,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,SAAS,GAAmC,EAAE,CAAC;QACrD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QACtD,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;YACvC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3F,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,WAAW,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,OAAO,OAAO,CAAC;AAChB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export interface MemoryConflict {
2
+ store: string;
3
+ key: string;
4
+ ids: string[];
5
+ reason: string;
6
+ }
7
+ export declare function findMemoryConflicts(memoryDir: string): MemoryConflict[];
8
+ //# sourceMappingURL=conflicts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflicts.d.ts","sourceRoot":"","sources":["../../src/memory/conflicts.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,EAAE,CAwBvE"}
@@ -0,0 +1,28 @@
1
+ import { entryId, entryTitle, loadStores } from "./store-utils.js";
2
+ export function findMemoryConflicts(memoryDir) {
3
+ const conflicts = [];
4
+ for (const store of loadStores(memoryDir)) {
5
+ const byTitle = new Map();
6
+ store.items.forEach((entry, i) => {
7
+ const title = entryTitle(entry).toLowerCase();
8
+ const bucket = byTitle.get(title) ?? [];
9
+ bucket.push({ ...entry, __fallback: `${store.file}:${i}` });
10
+ byTitle.set(title, bucket);
11
+ });
12
+ for (const [key, entries] of byTitle) {
13
+ if (entries.length < 2)
14
+ continue;
15
+ const rendered = new Set(entries.map((e) => JSON.stringify(e)));
16
+ if (rendered.size > 1) {
17
+ conflicts.push({
18
+ store: store.file,
19
+ key,
20
+ ids: entries.map((e, i) => entryId(e, `${store.file}:${i}`)),
21
+ reason: "same title/context appears with different entry bodies",
22
+ });
23
+ }
24
+ }
25
+ }
26
+ return conflicts;
27
+ }
28
+ //# sourceMappingURL=conflicts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflicts.js","sourceRoot":"","sources":["../../src/memory/conflicts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AASnE,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACpD,MAAM,SAAS,GAAqB,EAAE,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0C,CAAC;QAClE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YAChC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC;YACtC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,SAAS;YACjC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACvB,SAAS,CAAC,IAAI,CAAC;oBACd,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,GAAG;oBACH,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC5D,MAAM,EAAE,wDAAwD;iBAChE,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export interface PromotionCandidate {
2
+ title: string;
3
+ source: string;
4
+ reason: string;
5
+ proposedAction: string;
6
+ }
7
+ export declare function memoryPromotionCandidates(memoryDir: string): PromotionCandidate[];
8
+ //# sourceMappingURL=promote.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promote.d.ts","sourceRoot":"","sources":["../../src/memory/promote.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAOjF"}
@@ -0,0 +1,10 @@
1
+ import { findMemoryConflicts } from "./conflicts.js";
2
+ export function memoryPromotionCandidates(memoryDir) {
3
+ return findMemoryConflicts(memoryDir).map((conflict) => ({
4
+ title: `Resolve repeated memory conflict: ${conflict.key}`,
5
+ source: conflict.store,
6
+ reason: `${conflict.ids.length} entries disagree: ${conflict.ids.join(", ")}`,
7
+ proposedAction: "Review entries and promote the resolved wording into a rule/checklist candidate.",
8
+ }));
9
+ }
10
+ //# sourceMappingURL=promote.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promote.js","sourceRoot":"","sources":["../../src/memory/promote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AASrD,MAAM,UAAU,yBAAyB,CAAC,SAAiB;IAC1D,OAAO,mBAAmB,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACxD,KAAK,EAAE,qCAAqC,QAAQ,CAAC,GAAG,EAAE;QAC1D,MAAM,EAAE,QAAQ,CAAC,KAAK;QACtB,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,sBAAsB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC7E,cAAc,EAAE,kFAAkF;KAClG,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type Pattern } from "./schemas.js";
2
+ export interface LoadedStore {
3
+ file: string;
4
+ scope: string;
5
+ itemsKey: "patterns" | "findings";
6
+ data: Record<string, unknown>;
7
+ items: Array<Record<string, unknown>>;
8
+ }
9
+ export declare function loadStores(memoryDir: string): LoadedStore[];
10
+ export declare function entryId(entry: Record<string, unknown>, fallback: string): string;
11
+ export declare function entryTitle(entry: Record<string, unknown>): string;
12
+ export declare function entryDate(entry: Record<string, unknown>): string | null;
13
+ export declare function clonePattern(entry: Pattern): Pattern;
14
+ //# sourceMappingURL=store-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store-utils.d.ts","sourceRoot":"","sources":["../../src/memory/store-utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5D,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtC;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAgB3D;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAMjE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAMvE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEpD"}
@@ -0,0 +1,44 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { CURATED_STORES } from "./schemas.js";
4
+ export function loadStores(memoryDir) {
5
+ const stores = [];
6
+ for (const spec of CURATED_STORES) {
7
+ const p = path.join(memoryDir, spec.file);
8
+ if (!fs.existsSync(p))
9
+ continue;
10
+ const data = JSON.parse(fs.readFileSync(p, "utf-8"));
11
+ const raw = data[spec.itemsKey];
12
+ stores.push({
13
+ file: spec.file,
14
+ scope: spec.scope,
15
+ itemsKey: spec.itemsKey,
16
+ data,
17
+ items: Array.isArray(raw) ? raw : [],
18
+ });
19
+ }
20
+ return stores;
21
+ }
22
+ export function entryId(entry, fallback) {
23
+ return typeof entry.id === "string" && entry.id.length > 0 ? entry.id : fallback;
24
+ }
25
+ export function entryTitle(entry) {
26
+ for (const key of ["pattern", "finding", "context", "applicable_when", "category", "type"]) {
27
+ const value = entry[key];
28
+ if (typeof value === "string" && value.trim())
29
+ return value.trim().slice(0, 120);
30
+ }
31
+ return JSON.stringify(entry).slice(0, 120);
32
+ }
33
+ export function entryDate(entry) {
34
+ for (const key of ["lastSeen", "timestamp", "created", "archivedAt"]) {
35
+ const value = entry[key];
36
+ if (typeof value === "string" && !Number.isNaN(Date.parse(value)))
37
+ return value;
38
+ }
39
+ return null;
40
+ }
41
+ export function clonePattern(entry) {
42
+ return JSON.parse(JSON.stringify(entry));
43
+ }
44
+ //# sourceMappingURL=store-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store-utils.js","sourceRoot":"","sources":["../../src/memory/store-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAgB,MAAM,cAAc,CAAC;AAU5D,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC3C,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;YAAE,SAAS;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAA4B,CAAC;QAChF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI;YACJ,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,GAAsC,CAAC,CAAC,CAAC,EAAE;SACxE,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAA8B,EAAE,QAAgB;IACvE,OAAO,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAA8B;IACxD,KAAK,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC;QAC5F,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;YAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAA8B;IACvD,KAAK,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC;QACtE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IACjF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc;IAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAY,CAAC;AACrD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"md-to-codex-rules.d.ts","sourceRoot":"","sources":["../../../src/migrate/converters/md-to-codex-rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQlE,UAAU,iBAAiB;IAC1B,IAAI,EAAE,QAAQ,GAAG,YAAY,GAAG,aAAa,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAiED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,iBAAiB,CAwB1F;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,GAAG,gBAAgB,CAgB1E"}
1
+ {"version":3,"file":"md-to-codex-rules.d.ts","sourceRoot":"","sources":["../../../src/migrate/converters/md-to-codex-rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQlE,UAAU,iBAAiB;IAC1B,IAAI,EAAE,QAAQ,GAAG,YAAY,GAAG,aAAa,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AA+FD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,iBAAiB,CAwB1F;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,GAAG,gBAAgB,CAgB1E"}
@@ -9,6 +9,36 @@ const TRANSLATION_RULES = [
9
9
  },
10
10
  ],
11
11
  },
12
+ {
13
+ test: /Blocked patterns:\s*(?:.|\n)*`curl`,\s*`wget`,\s*`fetch`\s+to domains not specified in the task/i,
14
+ build: () => [
15
+ {
16
+ pattern: ["curl"],
17
+ decision: "prompt",
18
+ justification: "Network egress must be relevant to the current task.",
19
+ },
20
+ {
21
+ pattern: ["wget"],
22
+ decision: "prompt",
23
+ justification: "Network egress must be relevant to the current task.",
24
+ },
25
+ {
26
+ pattern: ["fetch"],
27
+ decision: "prompt",
28
+ justification: "Network egress must be relevant to the current task.",
29
+ },
30
+ ],
31
+ },
32
+ {
33
+ test: /Blocked patterns:\s*(?:.|\n)*Base64 encoding of file contents/i,
34
+ build: () => [
35
+ {
36
+ pattern: ["base64"],
37
+ decision: "prompt",
38
+ justification: "Encoding file contents can be used for exfiltration; verify task relevance.",
39
+ },
40
+ ],
41
+ },
12
42
  {
13
43
  test: /`rm\s+-rf`|`git\s+reset\s+--hard`/i,
14
44
  build: () => [
@@ -1 +1 @@
1
- {"version":3,"file":"md-to-codex-rules.js","sourceRoot":"","sources":["../../../src/migrate/converters/md-to-codex-rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"md-to-codex-rules.js","sourceRoot":"","sources":["../../../src/migrate/converters/md-to-codex-rules.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"migrate-orchestrator.d.ts","sourceRoot":"","sources":["../../src/migrate/migrate-orchestrator.ts"],"names":[],"mappings":"AAUA,OAAO,EACN,kBAAkB,EAKlB,MAAM,4BAA4B,CAAC;AAkCpC,OAAO,KAAK,EAAE,cAAc,EAAuD,MAAM,YAAY,CAAC;AAEtG,MAAM,WAAW,iBAAiB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,EAAE,CAAC;CACf;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CA2BjG;AA4RD,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"migrate-orchestrator.d.ts","sourceRoot":"","sources":["../../src/migrate/migrate-orchestrator.ts"],"names":[],"mappings":"AAUA,OAAO,EACN,kBAAkB,EAKlB,MAAM,4BAA4B,CAAC;AAmCpC,OAAO,KAAK,EAAE,cAAc,EAAuD,MAAM,YAAY,CAAC;AAEtG,MAAM,WAAW,iBAAiB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,EAAE,CAAC;CACf;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CA2BjG;AAgSD,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -15,6 +15,7 @@ import { convertItem } from "./converters/index.js";
15
15
  import { codexBulkActionShim, providerKey, skillActionShim } from "./migrate-action-shims.js";
16
16
  import { executeDeleteAction, executeInstallAction } from "./portable-installer.js";
17
17
  import { installSkillDirectory } from "./skill-directory-installer.js";
18
+ import { buildInstalledBackRef } from "../core/install-metadata-backref.js";
18
19
  import { installCodexAgents, mergeHooksSettings } from "./hooks/index.js";
19
20
  import { loadModelRoutingConfig } from "./model-routing-config.js";
20
21
  import { printActionDetails, printFinalSummary, printPreflight } from "./migrate-ui-summary.js";
@@ -131,7 +132,10 @@ async function runMigrateUnderLock(options, ctx, scope, targets, isGlobal, model
131
132
  portabilityFiltered.plan.summary.delete));
132
133
  if (!confirmed)
133
134
  return 130;
134
- const results = await executePlan(portabilityFiltered.plan.actions, { allItems: itemsByT }, portableSkills.skillsByProvider, targets, isGlobal, scope.skills, join(discovered.source.root, "settings.json"));
135
+ // One-way bridge: link exported assets back to the installed metadata they
136
+ // came from. Absent installed metadata yields null and the bridge is omitted.
137
+ const installedBackRef = buildInstalledBackRef(discovered.source.root);
138
+ const results = await executePlan(portabilityFiltered.plan.actions, { allItems: itemsByT, installedBackRef }, portableSkills.skillsByProvider, targets, isGlobal, scope.skills, join(discovered.source.root, "settings.json"));
135
139
  printFinalSummary(results);
136
140
  const hasFailures = results.some((r) => !r.success);
137
141
  if (!hasFailures && manifest) {
@@ -239,7 +243,7 @@ async function executePlan(actions, ctx, skillsByProvider, targets, isGlobal, sk
239
243
  continue;
240
244
  const skills = skillsByProvider.get(target) ?? [];
241
245
  for (const skill of skills) {
242
- const r = await installSkillDirectory(skill, target, { global: isGlobal });
246
+ const r = await installSkillDirectory(skill, target, { global: isGlobal, installedBackRef: ctx.installedBackRef });
243
247
  results.push({
244
248
  action: skillActionShim(skill, target, isGlobal, r.path ?? ""),
245
249
  success: r.success,