ostacky 0.5.9 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -19
- package/assets/agents/ostacky.md +191 -61
- package/assets/commands/install-stack.md +137 -66
- package/assets/mcp/openspec/bun.lock +20 -0
- package/assets/mcp/openspec/index.js +300 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/core/LICENSE +216 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/core/README.md +40 -0
- package/assets/mcp/{ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-BUWfrB3C.d.cts → openspec/node_modules/@modelcontextprotocol/core/dist/auth-B2Q9_Vxp.d.cts} +768 -465
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/core/dist/auth-B2Q9_Vxp.d.cts.map +1 -0
- package/assets/mcp/{ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-DFgbUATV.mjs → openspec/node_modules/@modelcontextprotocol/core/dist/auth-CUe6YdwF.mjs} +31 -6
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/core/dist/auth-CUe6YdwF.mjs.map +1 -0
- package/assets/mcp/{ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-CNbu4K4a.d.mts → openspec/node_modules/@modelcontextprotocol/core/dist/auth-CVhIKulL.d.mts} +768 -465
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/core/dist/auth-CVhIKulL.d.mts.map +1 -0
- package/assets/mcp/{ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-CEFpHq32.cjs → openspec/node_modules/@modelcontextprotocol/core/dist/auth-CfDMXiII.cjs} +42 -5
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/core/dist/auth-CfDMXiII.cjs.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/core/dist/index.cjs +175 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/core/dist/index.d.cts +2 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/core/dist/index.d.mts +2 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/core/dist/index.mjs +3 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/core/dist/internal.cjs +201 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/core/dist/internal.d.cts +99 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/core/dist/internal.d.cts.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/core/dist/internal.d.mts +99 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/core/dist/internal.d.mts.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/core/dist/internal.mjs +3 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/core/package.json +85 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/LICENSE +216 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/README.md +30 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/ajvProvider-B_4czhCS.d.cts +1054 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/ajvProvider-B_4czhCS.d.cts.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/ajvProvider-BdSo9BII.d.mts +1054 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/ajvProvider-BdSo9BII.d.mts.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/ajvProvider-Brn-Q2J_.cjs +7086 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/ajvProvider-Brn-Q2J_.cjs.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/ajvProvider-CplOkyLC.mjs +7069 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/ajvProvider-CplOkyLC.mjs.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-BYRW5af5.d.mts +59 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-BYRW5af5.d.mts.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-Bd-iTHAF.mjs +970 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-Bd-iTHAF.mjs.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-D9GAttn8.d.cts +59 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-D9GAttn8.d.cts.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-ojcZaap3.cjs +976 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-ojcZaap3.cjs.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/chunk-Bnu9O96Y.cjs +60 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/chunk-Br0eD_fh.mjs +42 -0
- package/assets/mcp/{ostacky-controller/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-D93NefGZ.d.mts → openspec/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-CEckaSEs.d.mts} +41 -13
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-CEckaSEs.d.mts.map +1 -0
- package/assets/mcp/{ostacky-controller/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-BRM5MGf9.d.cts → openspec/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-DzBzpE4_.d.cts} +41 -13
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-DzBzpE4_.d.cts.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/index.cjs +1999 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/index.cjs.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/index.d.cts +732 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/index.d.cts.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/index.d.mts +732 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/index.d.mts.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/index.mjs +1814 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/index.mjs.map +1 -0
- package/assets/mcp/{ostacky-controller/node_modules/@modelcontextprotocol/server/dist/mcp-CzU40gwu.cjs → openspec/node_modules/@modelcontextprotocol/server/dist/mcp-DM1iHYFo.cjs} +55 -14
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/mcp-DM1iHYFo.cjs.map +1 -0
- package/assets/mcp/{ostacky-controller/node_modules/@modelcontextprotocol/server/dist/mcp-Ctiu4nBa.mjs → openspec/node_modules/@modelcontextprotocol/server/dist/mcp-IJurDZVN.mjs} +50 -15
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/mcp-IJurDZVN.mjs.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.cjs +23 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.cjs.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.d.cts +11 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.d.cts.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.d.mts +11 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.d.mts.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.mjs +22 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.mjs.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/shimsNode.cjs +12 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/shimsNode.d.cts +3 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/shimsNode.d.mts +3 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/shimsNode.mjs +4 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.cjs +30 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.cjs.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.d.cts +10 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.d.cts.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.d.mts +10 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.d.mts.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.mjs +29 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.mjs.map +1 -0
- package/assets/mcp/{ostacky-controller/node_modules/@modelcontextprotocol/server/dist/src-D9A7ArDn.cjs → openspec/node_modules/@modelcontextprotocol/server/dist/src-BX_fm-dB.cjs} +91 -22
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/src-BX_fm-dB.cjs.map +1 -0
- package/assets/mcp/{ostacky-controller/node_modules/@modelcontextprotocol/server/dist/src-D5Nfqtoz.mjs → openspec/node_modules/@modelcontextprotocol/server/dist/src-D86MbS1I.mjs} +93 -24
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/src-D86MbS1I.mjs.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/stdio.cjs +564 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/stdio.cjs.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/stdio.d.cts +107 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/stdio.d.cts.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/stdio.d.mts +107 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/stdio.d.mts.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/stdio.mjs +562 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/stdio.mjs.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/types-DsbMXNFL.d.cts +1099 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/types-DsbMXNFL.d.cts.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/types-mS0yxCL0.d.mts +1099 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/types-mS0yxCL0.d.mts.map +1 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/validators/ajv.cjs +5 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/validators/ajv.d.cts +2 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/validators/ajv.d.mts +2 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/validators/ajv.mjs +3 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/validators/cfWorker.cjs +3 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/validators/cfWorker.d.cts +2 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/validators/cfWorker.d.mts +2 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/dist/validators/cfWorker.mjs +3 -0
- package/assets/mcp/openspec/node_modules/@modelcontextprotocol/server/package.json +160 -0
- package/assets/mcp/openspec/node_modules/zod/LICENSE +21 -0
- package/assets/mcp/openspec/node_modules/zod/README.md +191 -0
- package/assets/mcp/openspec/node_modules/zod/index.cjs +33 -0
- package/assets/mcp/openspec/node_modules/zod/index.d.cts +4 -0
- package/assets/mcp/openspec/node_modules/zod/index.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/index.js +4 -0
- package/assets/mcp/openspec/node_modules/zod/locales/index.cjs +17 -0
- package/assets/mcp/openspec/node_modules/zod/locales/index.d.cts +1 -0
- package/assets/mcp/openspec/node_modules/zod/locales/index.d.ts +1 -0
- package/assets/mcp/openspec/node_modules/zod/locales/index.js +1 -0
- package/assets/mcp/openspec/node_modules/zod/locales/package.json +7 -0
- package/assets/mcp/openspec/node_modules/zod/mini/index.cjs +32 -0
- package/assets/mcp/openspec/node_modules/zod/mini/index.d.cts +3 -0
- package/assets/mcp/openspec/node_modules/zod/mini/index.d.ts +3 -0
- package/assets/mcp/openspec/node_modules/zod/mini/index.js +3 -0
- package/assets/mcp/openspec/node_modules/zod/mini/package.json +7 -0
- package/assets/mcp/openspec/node_modules/zod/package.json +135 -0
- package/assets/mcp/openspec/node_modules/zod/src/index.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/src/locales/index.ts +1 -0
- package/assets/mcp/openspec/node_modules/zod/src/mini/index.ts +3 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/ZodError.ts +330 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/benchmarks/datetime.ts +58 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +80 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/benchmarks/index.ts +59 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/benchmarks/ipv4.ts +57 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/benchmarks/object.ts +69 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/benchmarks/primitives.ts +162 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/benchmarks/realworld.ts +63 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/benchmarks/string.ts +55 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/benchmarks/union.ts +80 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/errors.ts +13 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/external.ts +6 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/helpers/enumUtil.ts +17 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/helpers/errorUtil.ts +8 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/helpers/parseUtil.ts +176 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/helpers/partialUtil.ts +34 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/helpers/typeAliases.ts +2 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/helpers/util.ts +224 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/index.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/locales/en.ts +124 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/standard-schema.ts +113 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/Mocker.ts +54 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/all-errors.test.ts +157 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/anyunknown.test.ts +28 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/array.test.ts +71 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/async-parsing.test.ts +388 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/async-refinements.test.ts +46 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/base.test.ts +29 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/bigint.test.ts +55 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/branded.test.ts +53 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/catch.test.ts +220 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/coerce.test.ts +133 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/complex.test.ts +70 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/custom.test.ts +31 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/date.test.ts +32 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/deepmasking.test.ts +186 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/default.test.ts +112 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/description.test.ts +33 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +315 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/enum.test.ts +80 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/error.test.ts +551 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/firstparty.test.ts +87 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +21 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/function.test.ts +261 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/generics.test.ts +48 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/instanceof.test.ts +37 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/intersection.test.ts +110 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/language-server.source.ts +76 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/language-server.test.ts +207 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/literal.test.ts +36 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/map.test.ts +110 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/masking.test.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/mocker.test.ts +19 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/nan.test.ts +24 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/nativeEnum.test.ts +87 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/nullable.test.ts +42 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/number.test.ts +176 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/object-augmentation.test.ts +29 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +29 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/object.test.ts +434 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/optional.test.ts +42 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/parseUtil.test.ts +23 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/parser.test.ts +41 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/partials.test.ts +243 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/pickomit.test.ts +111 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/pipeline.test.ts +29 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/preprocess.test.ts +186 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/primitive.test.ts +440 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/promise.test.ts +90 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/readonly.test.ts +194 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/record.test.ts +171 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/recursive.test.ts +197 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/refine.test.ts +313 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/safeparse.test.ts +27 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/set.test.ts +142 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/standard-schema.test.ts +83 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/string.test.ts +916 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/transformer.test.ts +233 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/tuple.test.ts +90 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/unions.test.ts +57 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/validations.test.ts +133 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/tests/void.test.ts +15 -0
- package/assets/mcp/openspec/node_modules/zod/src/v3/types.ts +5138 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/checks.ts +32 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/coerce.ts +27 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/compat.ts +70 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/errors.ts +82 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/external.ts +52 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/from-json-schema.ts +659 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/index.ts +5 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/iso.ts +90 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/parse.ts +82 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/schemas.ts +2672 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +26 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/apply.test.ts +59 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/array.test.ts +264 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/assignability.test.ts +216 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +381 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +68 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/base.test.ts +7 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/bigint.test.ts +54 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/brand.test.ts +106 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/catch.test.ts +326 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +20 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +573 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/codec.test.ts +703 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/coerce.test.ts +160 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/continuability.test.ts +374 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/custom.test.ts +40 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/date.test.ts +62 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/datetime.test.ts +302 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/default.test.ts +409 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/describe-meta-checks.test.ts +27 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/description.test.ts +32 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +197 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +694 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/enum.test.ts +285 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +807 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/error.test.ts +711 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/file.test.ts +96 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +179 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/fix-json-issue.test.ts +26 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +895 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/function.test.ts +360 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/generics.test.ts +72 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/global-config.test.ts +39 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/hash.test.ts +68 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/index.test.ts +939 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +60 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/intersection.test.ts +198 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +46 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/json.test.ts +109 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/lazy.test.ts +227 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/literal.test.ts +117 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/locales_ka.test.ts +29 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/locales_ro.test.ts +24 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/map.test.ts +330 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/nan.test.ts +21 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +168 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +101 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/nullable.test.ts +22 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/number.test.ts +325 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/object.test.ts +717 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/optional.test.ts +333 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/partial.test.ts +450 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +211 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/pipe.test.ts +101 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/prefault.test.ts +74 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +26 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +351 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/primitive.test.ts +175 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/promise.test.ts +81 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +23 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/readonly.test.ts +252 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/record.test.ts +717 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +631 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/refine.test.ts +633 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/registries.test.ts +243 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/set.test.ts +181 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +134 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +125 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/string.test.ts +1224 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +106 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +771 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/to-json-schema-methods.test.ts +438 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +3125 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/transform.test.ts +378 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/tuple.test.ts +496 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/union.test.ts +273 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/url.test.ts +13 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/validations.test.ts +283 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/classic/tests/void.test.ts +12 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/api.ts +1823 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/checks.ts +1293 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/config.ts +15 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/core.ts +153 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/doc.ts +44 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/errors.ts +455 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/index.ts +16 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/json-schema-generator.ts +126 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/json-schema-processors.ts +666 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/json-schema.ts +147 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/parse.ts +195 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/regexes.ts +190 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/registries.ts +105 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/schemas.ts +4730 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/standard-schema.ts +159 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/tests/extend.test.ts +59 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/tests/index.test.ts +46 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/tests/locales/be.test.ts +124 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/tests/locales/el.test.ts +215 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/tests/locales/en.test.ts +22 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/tests/locales/es.test.ts +181 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +72 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/tests/locales/he.test.ts +379 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/tests/locales/hr.test.ts +163 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/tests/locales/nl.test.ts +46 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +128 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +69 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/tests/locales/uz.test.ts +105 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/tests/record-constructor.test.ts +125 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/tests/recursive-tuples.test.ts +45 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/to-json-schema.ts +622 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/util.ts +983 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/versions.ts +5 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/core/zsf.ts +323 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/index.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/ar.ts +115 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/az.ts +111 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/be.ts +176 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/bg.ts +128 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/ca.ts +116 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/cs.ts +118 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/da.ts +123 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/de.ts +116 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/el.ts +121 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/en.ts +123 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/eo.ts +118 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/es.ts +141 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/fa.ts +126 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/fi.ts +121 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/fr-CA.ts +116 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/fr.ts +132 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/he.ts +246 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/hr.ts +131 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/hu.ts +117 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/hy.ts +164 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/id.ts +115 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/index.ts +52 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/is.ts +119 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/it.ts +116 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/ja.ts +114 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/ka.ts +123 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/kh.ts +7 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/km.ts +119 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/ko.ts +121 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/lt.ts +239 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/mk.ts +118 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/ms.ts +115 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/nl.ts +121 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/no.ts +116 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/ota.ts +117 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/pl.ts +118 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/ps.ts +126 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/pt.ts +116 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/ro.ts +129 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/ru.ts +176 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/sl.ts +118 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/sv.ts +119 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/ta.ts +118 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/th.ts +119 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/tr.ts +111 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/ua.ts +7 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/uk.ts +117 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/ur.ts +119 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/uz.ts +117 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/vi.ts +117 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/yo.ts +124 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/zh-CN.ts +116 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/locales/zh-TW.ts +115 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/mini/checks.ts +32 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/mini/coerce.ts +27 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/mini/external.ts +41 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/mini/index.ts +3 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/mini/iso.ts +66 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/mini/parse.ts +14 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/mini/schemas.ts +1947 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/mini/tests/apply.test.ts +24 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/mini/tests/assignability.test.ts +129 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/mini/tests/brand.test.ts +94 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/mini/tests/checks.test.ts +144 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/mini/tests/codec.test.ts +548 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/mini/tests/computed.test.ts +36 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/mini/tests/error.test.ts +22 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/mini/tests/functions.test.ts +5 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/mini/tests/index.test.ts +993 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/mini/tests/number.test.ts +95 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/mini/tests/object.test.ts +227 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +43 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +325 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/mini/tests/standard-schema.test.ts +50 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4/mini/tests/string.test.ts +352 -0
- package/assets/mcp/openspec/node_modules/zod/src/v4-mini/index.ts +3 -0
- package/assets/mcp/openspec/node_modules/zod/v3/ZodError.cjs +138 -0
- package/assets/mcp/openspec/node_modules/zod/v3/ZodError.d.cts +164 -0
- package/assets/mcp/openspec/node_modules/zod/v3/ZodError.d.ts +164 -0
- package/assets/mcp/openspec/node_modules/zod/v3/ZodError.js +133 -0
- package/assets/mcp/openspec/node_modules/zod/v3/errors.cjs +17 -0
- package/assets/mcp/openspec/node_modules/zod/v3/errors.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v3/errors.d.ts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v3/errors.js +9 -0
- package/assets/mcp/openspec/node_modules/zod/v3/external.cjs +22 -0
- package/assets/mcp/openspec/node_modules/zod/v3/external.d.cts +6 -0
- package/assets/mcp/openspec/node_modules/zod/v3/external.d.ts +6 -0
- package/assets/mcp/openspec/node_modules/zod/v3/external.js +6 -0
- package/assets/mcp/openspec/node_modules/zod/v3/helpers/enumUtil.cjs +2 -0
- package/assets/mcp/openspec/node_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
- package/assets/mcp/openspec/node_modules/zod/v3/helpers/enumUtil.d.ts +8 -0
- package/assets/mcp/openspec/node_modules/zod/v3/helpers/enumUtil.js +1 -0
- package/assets/mcp/openspec/node_modules/zod/v3/helpers/errorUtil.cjs +9 -0
- package/assets/mcp/openspec/node_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
- package/assets/mcp/openspec/node_modules/zod/v3/helpers/errorUtil.d.ts +9 -0
- package/assets/mcp/openspec/node_modules/zod/v3/helpers/errorUtil.js +6 -0
- package/assets/mcp/openspec/node_modules/zod/v3/helpers/parseUtil.cjs +124 -0
- package/assets/mcp/openspec/node_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
- package/assets/mcp/openspec/node_modules/zod/v3/helpers/parseUtil.d.ts +78 -0
- package/assets/mcp/openspec/node_modules/zod/v3/helpers/parseUtil.js +109 -0
- package/assets/mcp/openspec/node_modules/zod/v3/helpers/partialUtil.cjs +2 -0
- package/assets/mcp/openspec/node_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
- package/assets/mcp/openspec/node_modules/zod/v3/helpers/partialUtil.d.ts +8 -0
- package/assets/mcp/openspec/node_modules/zod/v3/helpers/partialUtil.js +1 -0
- package/assets/mcp/openspec/node_modules/zod/v3/helpers/typeAliases.cjs +2 -0
- package/assets/mcp/openspec/node_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
- package/assets/mcp/openspec/node_modules/zod/v3/helpers/typeAliases.d.ts +2 -0
- package/assets/mcp/openspec/node_modules/zod/v3/helpers/typeAliases.js +1 -0
- package/assets/mcp/openspec/node_modules/zod/v3/helpers/util.cjs +137 -0
- package/assets/mcp/openspec/node_modules/zod/v3/helpers/util.d.cts +85 -0
- package/assets/mcp/openspec/node_modules/zod/v3/helpers/util.d.ts +85 -0
- package/assets/mcp/openspec/node_modules/zod/v3/helpers/util.js +133 -0
- package/assets/mcp/openspec/node_modules/zod/v3/index.cjs +33 -0
- package/assets/mcp/openspec/node_modules/zod/v3/index.d.cts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v3/index.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v3/index.js +4 -0
- package/assets/mcp/openspec/node_modules/zod/v3/locales/en.cjs +112 -0
- package/assets/mcp/openspec/node_modules/zod/v3/locales/en.d.cts +3 -0
- package/assets/mcp/openspec/node_modules/zod/v3/locales/en.d.ts +3 -0
- package/assets/mcp/openspec/node_modules/zod/v3/locales/en.js +109 -0
- package/assets/mcp/openspec/node_modules/zod/v3/package.json +7 -0
- package/assets/mcp/openspec/node_modules/zod/v3/standard-schema.cjs +2 -0
- package/assets/mcp/openspec/node_modules/zod/v3/standard-schema.d.cts +102 -0
- package/assets/mcp/openspec/node_modules/zod/v3/standard-schema.d.ts +102 -0
- package/assets/mcp/openspec/node_modules/zod/v3/standard-schema.js +1 -0
- package/assets/mcp/openspec/node_modules/zod/v3/types.cjs +3777 -0
- package/assets/mcp/openspec/node_modules/zod/v3/types.d.cts +1034 -0
- package/assets/mcp/openspec/node_modules/zod/v3/types.d.ts +1034 -0
- package/assets/mcp/openspec/node_modules/zod/v3/types.js +3695 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/checks.cjs +33 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/checks.d.cts +1 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/checks.d.ts +1 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/checks.js +1 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/coerce.cjs +47 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/coerce.d.cts +17 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/coerce.d.ts +17 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/coerce.js +17 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/compat.cjs +61 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/compat.d.cts +50 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/compat.d.ts +50 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/compat.js +31 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/errors.cjs +74 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/errors.d.cts +30 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/errors.d.ts +30 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/errors.js +48 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/external.cjs +73 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/external.d.cts +16 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/external.d.ts +16 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/external.js +20 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/from-json-schema.cjs +625 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/from-json-schema.d.cts +12 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/from-json-schema.d.ts +12 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/from-json-schema.js +599 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/index.cjs +33 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/index.d.cts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/index.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/index.js +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/iso.cjs +60 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/iso.d.cts +22 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/iso.d.ts +22 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/iso.js +30 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/package.json +7 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/parse.cjs +41 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/parse.d.cts +31 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/parse.d.ts +31 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/parse.js +15 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/schemas.cjs +1511 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/schemas.d.cts +767 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/schemas.d.ts +767 -0
- package/assets/mcp/openspec/node_modules/zod/v4/classic/schemas.js +1395 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/api.cjs +1227 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/api.d.cts +325 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/api.d.ts +325 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/api.js +1087 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/checks.cjs +601 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/checks.d.cts +278 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/checks.d.ts +278 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/checks.js +575 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/core.cjs +85 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/core.d.cts +70 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/core.d.ts +70 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/core.js +78 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/doc.cjs +39 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/doc.d.cts +14 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/doc.d.ts +14 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/doc.js +35 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/errors.cjs +216 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/errors.d.cts +221 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/errors.d.ts +221 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/errors.js +185 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/index.cjs +47 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/index.d.cts +16 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/index.d.ts +16 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/index.js +16 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/json-schema-generator.cjs +99 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/json-schema-generator.d.cts +65 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/json-schema-generator.d.ts +65 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/json-schema-generator.js +95 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/json-schema-processors.cjs +644 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/json-schema-processors.d.cts +49 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/json-schema-processors.d.ts +49 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/json-schema-processors.js +601 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/json-schema.cjs +2 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/json-schema.d.cts +88 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/json-schema.d.ts +88 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/json-schema.js +1 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/package.json +7 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/parse.cjs +131 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/parse.d.cts +49 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/parse.d.ts +49 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/parse.js +93 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/regexes.cjs +172 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/regexes.d.cts +85 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/regexes.d.ts +85 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/regexes.js +139 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/registries.cjs +56 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/registries.d.cts +35 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/registries.d.ts +35 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/registries.js +51 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/schemas.cjs +2270 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/schemas.d.cts +1184 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/schemas.d.ts +1184 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/schemas.js +2239 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/standard-schema.cjs +2 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/standard-schema.d.cts +126 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/standard-schema.d.ts +126 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/standard-schema.js +1 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/to-json-schema.cjs +457 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/to-json-schema.d.cts +114 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/to-json-schema.d.ts +114 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/to-json-schema.js +448 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/util.cjs +734 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/util.d.cts +200 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/util.d.ts +200 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/util.js +674 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/versions.cjs +8 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/versions.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/versions.d.ts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/core/versions.js +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/index.cjs +22 -0
- package/assets/mcp/openspec/node_modules/zod/v4/index.d.cts +3 -0
- package/assets/mcp/openspec/node_modules/zod/v4/index.d.ts +3 -0
- package/assets/mcp/openspec/node_modules/zod/v4/index.js +3 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ar.cjs +133 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ar.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ar.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ar.js +106 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/az.cjs +132 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/az.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/az.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/az.js +105 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/be.cjs +183 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/be.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/be.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/be.js +156 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/bg.cjs +147 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/bg.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/bg.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/bg.js +120 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ca.cjs +134 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ca.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ca.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ca.js +107 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/cs.cjs +138 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/cs.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/cs.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/cs.js +111 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/da.cjs +142 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/da.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/da.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/da.js +115 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/de.cjs +135 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/de.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/de.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/de.js +108 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/el.cjs +136 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/el.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/el.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/el.js +109 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/en.cjs +140 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/en.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/en.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/en.js +113 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/eo.cjs +136 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/eo.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/eo.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/eo.js +109 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/es.cjs +159 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/es.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/es.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/es.js +132 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/fa.cjs +141 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/fa.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/fa.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/fa.js +114 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/fi.cjs +139 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/fi.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/fi.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/fi.js +112 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/fr-CA.cjs +134 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/fr-CA.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/fr-CA.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/fr-CA.js +107 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/fr.cjs +152 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/fr.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/fr.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/fr.js +125 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/he.cjs +241 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/he.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/he.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/he.js +214 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/hr.cjs +149 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/hr.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/hr.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/hr.js +122 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/hu.cjs +135 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/hu.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/hu.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/hu.js +108 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/hy.cjs +174 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/hy.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/hy.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/hy.js +147 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/id.cjs +133 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/id.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/id.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/id.js +106 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/index.cjs +111 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/index.d.cts +52 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/index.d.ts +52 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/index.js +52 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/is.cjs +136 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/is.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/is.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/is.js +109 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/it.cjs +135 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/it.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/it.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/it.js +108 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ja.cjs +134 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ja.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ja.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ja.js +107 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ka.cjs +139 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ka.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ka.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ka.js +112 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/kh.cjs +12 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/kh.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/kh.d.ts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/kh.js +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/km.cjs +137 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/km.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/km.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/km.js +110 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ko.cjs +138 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ko.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ko.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ko.js +111 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/lt.cjs +230 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/lt.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/lt.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/lt.js +203 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/mk.cjs +136 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/mk.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/mk.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/mk.js +109 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ms.cjs +134 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ms.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ms.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ms.js +107 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/nl.cjs +137 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/nl.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/nl.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/nl.js +110 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/no.cjs +135 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/no.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/no.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/no.js +108 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ota.cjs +136 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ota.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ota.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ota.js +109 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/package.json +7 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/pl.cjs +136 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/pl.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/pl.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/pl.js +109 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ps.cjs +141 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ps.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ps.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ps.js +114 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/pt.cjs +135 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/pt.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/pt.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/pt.js +108 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ro.cjs +146 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ro.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ro.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ro.js +119 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ru.cjs +183 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ru.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ru.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ru.js +156 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/sl.cjs +136 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/sl.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/sl.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/sl.js +109 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/sv.cjs +137 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/sv.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/sv.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/sv.js +110 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ta.cjs +137 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ta.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ta.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ta.js +110 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/th.cjs +137 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/th.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/th.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/th.js +110 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/tr.cjs +132 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/tr.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/tr.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/tr.js +105 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ua.cjs +12 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ua.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ua.d.ts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ua.js +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/uk.cjs +135 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/uk.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/uk.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/uk.js +108 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ur.cjs +137 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ur.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ur.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/ur.js +110 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/uz.cjs +137 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/uz.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/uz.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/uz.js +110 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/vi.cjs +135 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/vi.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/vi.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/vi.js +108 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/yo.cjs +134 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/yo.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/yo.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/yo.js +107 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/zh-CN.cjs +136 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/zh-CN.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/zh-CN.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/zh-CN.js +109 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/zh-TW.cjs +134 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/zh-TW.d.cts +5 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/zh-TW.d.ts +4 -0
- package/assets/mcp/openspec/node_modules/zod/v4/locales/zh-TW.js +107 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/checks.cjs +34 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/checks.d.cts +1 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/checks.d.ts +1 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/checks.js +1 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/coerce.cjs +52 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/coerce.d.cts +7 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/coerce.d.ts +7 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/coerce.js +22 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/external.cjs +63 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/external.d.cts +13 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/external.d.ts +13 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/external.js +14 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/index.cjs +32 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/index.d.cts +3 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/index.d.ts +3 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/index.js +3 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/iso.cjs +64 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/iso.d.cts +22 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/iso.d.ts +22 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/iso.js +34 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/package.json +7 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/parse.cjs +16 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/parse.d.cts +1 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/parse.d.ts +1 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/parse.js +1 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/schemas.cjs +1083 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/schemas.d.cts +445 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/schemas.d.ts +445 -0
- package/assets/mcp/openspec/node_modules/zod/v4/mini/schemas.js +961 -0
- package/assets/mcp/openspec/node_modules/zod/v4/package.json +7 -0
- package/assets/mcp/openspec/node_modules/zod/v4-mini/index.cjs +32 -0
- package/assets/mcp/openspec/node_modules/zod/v4-mini/index.d.cts +3 -0
- package/assets/mcp/openspec/node_modules/zod/v4-mini/index.d.ts +3 -0
- package/assets/mcp/openspec/node_modules/zod/v4-mini/index.js +3 -0
- package/assets/mcp/openspec/node_modules/zod/v4-mini/package.json +7 -0
- package/assets/mcp/openspec/package.json +10 -0
- package/assets/mcp/ostacky-controller/index.js +455 -164
- package/assets/mcp/ostacky-controller/node_modules/.package-lock.json +8 -8
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-B2Q9_Vxp.d.cts +8501 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-B2Q9_Vxp.d.cts.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-CUe6YdwF.mjs +1678 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-CUe6YdwF.mjs.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-CVhIKulL.d.mts +8501 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-CVhIKulL.d.mts.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-CfDMXiII.cjs +2899 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-CfDMXiII.cjs.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/index.cjs +2 -1
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/index.d.cts +2 -2
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/index.d.mts +2 -2
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/index.mjs +2 -2
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/internal.cjs +3 -1
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/internal.d.cts +14 -2
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/internal.d.cts.map +1 -1
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/internal.d.mts +14 -2
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/internal.d.mts.map +1 -1
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/internal.mjs +2 -2
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/package.json +1 -1
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-CEckaSEs.d.mts +4041 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-CEckaSEs.d.mts.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-DzBzpE4_.d.cts +4043 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-DzBzpE4_.d.cts.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/index.cjs +12 -3
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/index.cjs.map +1 -1
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/index.d.cts +2 -2
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/index.d.mts +2 -2
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/index.mjs +5 -4
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/index.mjs.map +1 -1
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/mcp-DM1iHYFo.cjs +2004 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/mcp-DM1iHYFo.cjs.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/mcp-IJurDZVN.mjs +1919 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/mcp-IJurDZVN.mjs.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.cjs +1 -1
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.mjs +1 -1
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/src-BX_fm-dB.cjs +8069 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/src-BX_fm-dB.cjs.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/src-D86MbS1I.mjs +7571 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/src-D86MbS1I.mjs.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/stdio.cjs +3 -3
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/stdio.cjs.map +1 -1
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/stdio.d.cts +1 -1
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/stdio.d.mts +1 -1
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/stdio.mjs +3 -3
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/stdio.mjs.map +1 -1
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/package.json +3 -3
- package/assets/mcp/ostacky-controller/package-lock.json +10 -10
- package/assets/mcp/ostacky-controller/package.json +2 -2
- package/assets/plugins/engram.ts +537 -0
- package/assets/skills/{thinking → brainstorming}/SKILL.md +8 -6
- package/assets/skills/dispatching-parallel-agents/SKILL.md +7 -7
- package/assets/skills/execution-mode-evaluation/SKILL.md +10 -8
- package/assets/skills/graceful-degradation/SKILL.md +235 -0
- package/assets/skills/openspec-apply-change/SKILL.md +4 -2
- package/assets/skills/openspec-archive-change/SKILL.md +4 -4
- package/assets/skills/openspec-explore/SKILL.md +288 -0
- package/assets/skills/openspec-propose/SKILL.md +7 -5
- package/assets/skills/subagent-driven-development/SKILL.md +18 -17
- package/assets/skills/tdd/SKILL.md +1 -1
- package/assets/skills/using-git-worktrees/SKILL.md +3 -11
- package/assets/skills/using-superpowers/SKILL.md +14 -20
- package/assets/skills/writing-plans/SKILL.md +5 -3
- package/assets/skills/writing-skills/SKILL.md +9 -9
- package/dist/cli.js +2351 -1728
- package/manifest.json +61 -40
- package/package.json +9 -3
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-BUWfrB3C.d.cts.map +0 -1
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-CEFpHq32.cjs.map +0 -1
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-CNbu4K4a.d.mts.map +0 -1
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-DFgbUATV.mjs.map +0 -1
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-BRM5MGf9.d.cts.map +0 -1
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-D93NefGZ.d.mts.map +0 -1
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/mcp-Ctiu4nBa.mjs.map +0 -1
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/mcp-CzU40gwu.cjs.map +0 -1
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/src-D5Nfqtoz.mjs.map +0 -1
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/src-D9A7ArDn.cjs.map +0 -1
- package/assets/skills/execution-mode-evaluation/README.md +0 -257
- package/assets/tests/agent-contract.test.js +0 -226
- package/assets/tests/controller.test.js +0 -187
- package/assets/tests/e2e-scenarios.md +0 -502
- package/assets/tests/validate-config.sh +0 -272
- package/dist/mcp/ask-user-server/index.js +0 -19657
- package/dist/mcp/ostacky-controller/index.js +0 -20085
|
@@ -0,0 +1,537 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Engram — OpenCode plugin adapter
|
|
3
|
+
*
|
|
4
|
+
* Thin layer that connects OpenCode's event system to the Engram Go binary.
|
|
5
|
+
* The Go binary runs as a local HTTP server and handles all persistence.
|
|
6
|
+
*
|
|
7
|
+
* Flow:
|
|
8
|
+
* OpenCode events → this plugin → HTTP calls → engram serve → SQLite
|
|
9
|
+
*
|
|
10
|
+
* Session resilience:
|
|
11
|
+
* Uses `ensureSession()` before any DB write. This means sessions are
|
|
12
|
+
* created on-demand — even if the plugin was loaded after the session
|
|
13
|
+
* started (restart, reconnect, etc.). The session ID comes from OpenCode's
|
|
14
|
+
* hooks (input.sessionID) rather than relying on a session.created event.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import type { Plugin } from "@opencode-ai/plugin"
|
|
18
|
+
|
|
19
|
+
// ─── Configuration ───────────────────────────────────────────────────────────
|
|
20
|
+
|
|
21
|
+
const ENGRAM_PORT = parseInt(process.env.ENGRAM_PORT ?? "7437")
|
|
22
|
+
const ENGRAM_URL = `http://127.0.0.1:${ENGRAM_PORT}`
|
|
23
|
+
const ENGRAM_BIN = process.env.ENGRAM_BIN ?? Bun.which("engram") ?? ".opencode/tools/engram/bin/engram"
|
|
24
|
+
|
|
25
|
+
// Engram's own MCP tools — don't count these as "tool calls" for session stats
|
|
26
|
+
const ENGRAM_TOOLS = new Set([
|
|
27
|
+
"mem_search",
|
|
28
|
+
"mem_save",
|
|
29
|
+
"mem_update",
|
|
30
|
+
"mem_delete",
|
|
31
|
+
"mem_suggest_topic_key",
|
|
32
|
+
"mem_save_prompt",
|
|
33
|
+
"mem_session_summary",
|
|
34
|
+
"mem_context",
|
|
35
|
+
"mem_stats",
|
|
36
|
+
"mem_timeline",
|
|
37
|
+
"mem_get_observation",
|
|
38
|
+
"mem_session_start",
|
|
39
|
+
"mem_session_end",
|
|
40
|
+
])
|
|
41
|
+
|
|
42
|
+
// ─── Memory Instructions ─────────────────────────────────────────────────────
|
|
43
|
+
// These get injected into the agent's context so it knows to call mem_save.
|
|
44
|
+
|
|
45
|
+
const MEMORY_INSTRUCTIONS = `## Engram Persistent Memory — Protocol
|
|
46
|
+
|
|
47
|
+
You have access to Engram, a persistent memory system that survives across sessions and compactions.
|
|
48
|
+
|
|
49
|
+
### WHEN TO SAVE (mandatory — not optional)
|
|
50
|
+
|
|
51
|
+
Call \`mem_save\` IMMEDIATELY after any of these:
|
|
52
|
+
- Bug fix completed
|
|
53
|
+
- Architecture or design decision made
|
|
54
|
+
- Non-obvious discovery about the codebase
|
|
55
|
+
- Configuration change or environment setup
|
|
56
|
+
- Pattern established (naming, structure, convention)
|
|
57
|
+
- User preference or constraint learned
|
|
58
|
+
|
|
59
|
+
Format for \`mem_save\`:
|
|
60
|
+
- **title**: Verb + what — short, searchable (e.g. "Fixed N+1 query in UserList", "Chose Zustand over Redux")
|
|
61
|
+
- **type**: bugfix | decision | architecture | discovery | pattern | config | preference
|
|
62
|
+
- **scope**: \`project\` (default) | \`personal\`
|
|
63
|
+
- **topic_key** (optional, recommended for evolving decisions): stable key like \`architecture/auth-model\`
|
|
64
|
+
- **content**:
|
|
65
|
+
**What**: One sentence — what was done
|
|
66
|
+
**Why**: What motivated it (user request, bug, performance, etc.)
|
|
67
|
+
**Where**: Files or paths affected
|
|
68
|
+
**Learned**: Gotchas, edge cases, things that surprised you (omit if none)
|
|
69
|
+
|
|
70
|
+
Topic rules:
|
|
71
|
+
- Different topics must not overwrite each other (e.g. architecture vs bugfix)
|
|
72
|
+
- Reuse the same \`topic_key\` to update an evolving topic instead of creating new observations
|
|
73
|
+
- If unsure about the key, call \`mem_suggest_topic_key\` first and then reuse it
|
|
74
|
+
- Use \`mem_update\` when you have an exact observation ID to correct
|
|
75
|
+
|
|
76
|
+
### WHEN TO SEARCH MEMORY
|
|
77
|
+
|
|
78
|
+
When the user asks to recall something — any variation of "remember", "recall", "what did we do",
|
|
79
|
+
"how did we solve", or the equivalent in the user's language, or references to past work:
|
|
80
|
+
1. First call \`mem_context\` — checks recent session history (fast, cheap)
|
|
81
|
+
2. If not found, call \`mem_search\` with relevant keywords (FTS5 full-text search)
|
|
82
|
+
3. If you find a match, use \`mem_get_observation\` for full untruncated content
|
|
83
|
+
|
|
84
|
+
Also search memory PROACTIVELY when:
|
|
85
|
+
- Starting work on something that might have been done before
|
|
86
|
+
- The user mentions a topic you have no context on — check if past sessions covered it
|
|
87
|
+
- The user's FIRST message references the project, a feature, or a problem — call \`mem_search\` with keywords from their message to check for prior work before responding
|
|
88
|
+
|
|
89
|
+
### SESSION CLOSE PROTOCOL (mandatory)
|
|
90
|
+
|
|
91
|
+
Before ending a session or saying "done" / "that's it", you MUST:
|
|
92
|
+
1. Call \`mem_session_summary\` with this structure:
|
|
93
|
+
|
|
94
|
+
## Goal
|
|
95
|
+
[What we were working on this session]
|
|
96
|
+
|
|
97
|
+
## Instructions
|
|
98
|
+
[User preferences or constraints discovered — skip if none]
|
|
99
|
+
|
|
100
|
+
## Discoveries
|
|
101
|
+
- [Technical findings, gotchas, non-obvious learnings]
|
|
102
|
+
|
|
103
|
+
## Accomplished
|
|
104
|
+
- [Completed items with key details]
|
|
105
|
+
|
|
106
|
+
## Next Steps
|
|
107
|
+
- [What remains to be done — for the next session]
|
|
108
|
+
|
|
109
|
+
## Relevant Files
|
|
110
|
+
- path/to/file — [what it does or what changed]
|
|
111
|
+
|
|
112
|
+
This is NOT optional. If you skip this, the next session starts blind.
|
|
113
|
+
|
|
114
|
+
### AFTER COMPACTION
|
|
115
|
+
|
|
116
|
+
If you see a message about compaction or context reset, or if you see "FIRST ACTION REQUIRED" in your context:
|
|
117
|
+
1. IMMEDIATELY call \`mem_session_summary\` with the compacted summary content — this persists what was done before compaction
|
|
118
|
+
2. Then call \`mem_context\` to recover any additional context from previous sessions
|
|
119
|
+
3. Only THEN continue working
|
|
120
|
+
|
|
121
|
+
Do not skip step 1. Without it, everything done before compaction is lost from memory.
|
|
122
|
+
`
|
|
123
|
+
|
|
124
|
+
// ─── HTTP Client ─────────────────────────────────────────────────────────────
|
|
125
|
+
|
|
126
|
+
async function engramFetch(
|
|
127
|
+
path: string,
|
|
128
|
+
opts: { method?: string; body?: any } = {}
|
|
129
|
+
): Promise<any> {
|
|
130
|
+
try {
|
|
131
|
+
const res = await fetch(`${ENGRAM_URL}${path}`, {
|
|
132
|
+
method: opts.method ?? "GET",
|
|
133
|
+
headers: opts.body ? { "Content-Type": "application/json" } : undefined,
|
|
134
|
+
body: opts.body ? JSON.stringify(opts.body) : undefined,
|
|
135
|
+
})
|
|
136
|
+
return await res.json()
|
|
137
|
+
} catch {
|
|
138
|
+
// Engram server not running — silently fail
|
|
139
|
+
return null
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
async function isEngramRunning(): Promise<boolean> {
|
|
144
|
+
try {
|
|
145
|
+
const res = await fetch(`${ENGRAM_URL}/health`, {
|
|
146
|
+
signal: AbortSignal.timeout(500),
|
|
147
|
+
})
|
|
148
|
+
return res.ok
|
|
149
|
+
} catch {
|
|
150
|
+
return false
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// ─── Helpers ─────────────────────────────────────────────────────────────────
|
|
155
|
+
|
|
156
|
+
function extractProjectName(directory: string): string {
|
|
157
|
+
// Try git remote origin URL
|
|
158
|
+
try {
|
|
159
|
+
const result = Bun.spawnSync(["git", "-C", directory, "remote", "get-url", "origin"])
|
|
160
|
+
if (result.exitCode === 0) {
|
|
161
|
+
const url = result.stdout?.toString().trim()
|
|
162
|
+
if (url) {
|
|
163
|
+
const name = url.replace(/\.git$/, "").split(/[/:]/).pop()
|
|
164
|
+
if (name) return name
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
} catch {}
|
|
168
|
+
|
|
169
|
+
// Fallback: git root directory name (works in worktrees)
|
|
170
|
+
try {
|
|
171
|
+
const result = Bun.spawnSync(["git", "-C", directory, "rev-parse", "--show-toplevel"])
|
|
172
|
+
if (result.exitCode === 0) {
|
|
173
|
+
const root = result.stdout?.toString().trim()
|
|
174
|
+
if (root) return root.split("/").pop() ?? "unknown"
|
|
175
|
+
}
|
|
176
|
+
} catch {}
|
|
177
|
+
|
|
178
|
+
// Final fallback: cwd basename
|
|
179
|
+
return directory.split("/").pop() ?? "unknown"
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
function truncate(str: string, max: number): string {
|
|
183
|
+
if (!str) return ""
|
|
184
|
+
return str.length > max ? str.slice(0, max) + "..." : str
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Strip <private>...</private> tags before sending to engram.
|
|
189
|
+
* Double safety: the Go binary also strips, but we strip here too
|
|
190
|
+
* so sensitive data never even hits the wire.
|
|
191
|
+
*/
|
|
192
|
+
function stripPrivateTags(str: string): string {
|
|
193
|
+
if (!str) return ""
|
|
194
|
+
return str.replace(/<private>[\s\S]*?<\/private>/gi, "[REDACTED]").trim()
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
// ─── Plugin Export ───────────────────────────────────────────────────────────
|
|
198
|
+
|
|
199
|
+
export const Engram: Plugin = async (ctx) => {
|
|
200
|
+
const oldProject = ctx.directory.split("/").pop() ?? "unknown"
|
|
201
|
+
const project = extractProjectName(ctx.directory)
|
|
202
|
+
|
|
203
|
+
// Track tool counts per session (in-memory only, not critical)
|
|
204
|
+
const toolCounts = new Map<string, number>()
|
|
205
|
+
|
|
206
|
+
// Track last nudge time per session to debounce save reminders
|
|
207
|
+
const lastNudgeTime = new Map<string, number>() // sessionID -> epoch seconds
|
|
208
|
+
|
|
209
|
+
// Track which sessions we've already ensured exist in engram
|
|
210
|
+
const knownSessions = new Set<string>()
|
|
211
|
+
|
|
212
|
+
// Track sub-agent session IDs so we can suppress their tool-hook registrations.
|
|
213
|
+
// Sub-agents (Task() calls) have a parentID or a title ending in " subagent)".
|
|
214
|
+
// We must not register them as top-level Engram sessions — they cause session
|
|
215
|
+
// inflation (e.g. 170 sessions for 1 real conversation, issue #116).
|
|
216
|
+
const subAgentSessions = new Set<string>()
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* Ensure a session exists in engram. Idempotent — calls POST /sessions
|
|
220
|
+
* which uses INSERT OR IGNORE. Safe to call multiple times.
|
|
221
|
+
*
|
|
222
|
+
* Silently skips sub-agent sessions (tracked in `subAgentSessions`).
|
|
223
|
+
*/
|
|
224
|
+
async function ensureSession(sessionId: string): Promise<void> {
|
|
225
|
+
if (!sessionId || knownSessions.has(sessionId)) return
|
|
226
|
+
// Do not register sub-agent sessions in Engram (issue #116).
|
|
227
|
+
if (subAgentSessions.has(sessionId)) return
|
|
228
|
+
knownSessions.add(sessionId)
|
|
229
|
+
await engramFetch("/sessions", {
|
|
230
|
+
method: "POST",
|
|
231
|
+
body: {
|
|
232
|
+
id: sessionId,
|
|
233
|
+
project,
|
|
234
|
+
directory: ctx.directory,
|
|
235
|
+
},
|
|
236
|
+
})
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// Try to start engram server if not running
|
|
240
|
+
const running = await isEngramRunning()
|
|
241
|
+
if (!running) {
|
|
242
|
+
try {
|
|
243
|
+
Bun.spawn([ENGRAM_BIN, "serve"], {
|
|
244
|
+
stdout: "ignore",
|
|
245
|
+
stderr: "ignore",
|
|
246
|
+
stdin: "ignore",
|
|
247
|
+
})
|
|
248
|
+
await new Promise((r) => setTimeout(r, 500))
|
|
249
|
+
} catch {
|
|
250
|
+
// Binary not found or can't start — plugin will silently no-op
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
// Migrate project name if it changed (one-time, idempotent)
|
|
255
|
+
// Must run AFTER server startup to ensure the endpoint is available
|
|
256
|
+
if (oldProject !== project) {
|
|
257
|
+
await engramFetch("/projects/migrate", {
|
|
258
|
+
method: "POST",
|
|
259
|
+
body: { old_project: oldProject, new_project: project },
|
|
260
|
+
})
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
// Auto-import: if .engram/manifest.json exists in the project repo,
|
|
264
|
+
// run `engram sync --import` to load any new chunks into the local DB.
|
|
265
|
+
// This is how git-synced memories get loaded when cloning a repo or
|
|
266
|
+
// pulling changes. Each chunk is imported only once (tracked by ID).
|
|
267
|
+
try {
|
|
268
|
+
const manifestFile = `${ctx.directory}/.engram/manifest.json`
|
|
269
|
+
const file = Bun.file(manifestFile)
|
|
270
|
+
if (await file.exists()) {
|
|
271
|
+
Bun.spawn([ENGRAM_BIN, "sync", "--import"], {
|
|
272
|
+
cwd: ctx.directory,
|
|
273
|
+
stdout: "ignore",
|
|
274
|
+
stderr: "ignore",
|
|
275
|
+
stdin: "ignore",
|
|
276
|
+
})
|
|
277
|
+
}
|
|
278
|
+
} catch {
|
|
279
|
+
// Manifest doesn't exist or binary not found — silently skip
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
return {
|
|
283
|
+
// ─── Event Listeners ───────────────────────────────────────────
|
|
284
|
+
|
|
285
|
+
event: async ({ event }) => {
|
|
286
|
+
// --- Session Created ---
|
|
287
|
+
if (event.type === "session.created") {
|
|
288
|
+
// Bug fix (#116): session data is nested under event.properties.info,
|
|
289
|
+
// not event.properties directly.
|
|
290
|
+
const info = (event.properties as any)?.info
|
|
291
|
+
const sessionId = info?.id
|
|
292
|
+
const parentID = info?.parentID
|
|
293
|
+
const title: string = info?.title ?? ""
|
|
294
|
+
|
|
295
|
+
// Sub-agent sessions (created via Task()) must NOT be registered as
|
|
296
|
+
// top-level Engram sessions. They cause massive session inflation
|
|
297
|
+
// (e.g. 170 sessions for 1 real conversation).
|
|
298
|
+
//
|
|
299
|
+
// Detection heuristics:
|
|
300
|
+
// - parentID is set on all Task() sub-agent sessions
|
|
301
|
+
// - title ends with " subagent)" as a secondary signal
|
|
302
|
+
const isSubAgent = !!parentID || title.endsWith(" subagent)")
|
|
303
|
+
|
|
304
|
+
if (sessionId && !isSubAgent) {
|
|
305
|
+
await ensureSession(sessionId)
|
|
306
|
+
} else if (sessionId && isSubAgent) {
|
|
307
|
+
// Remember this as a sub-agent session so tool-hook calls
|
|
308
|
+
// to ensureSession() are also suppressed for it.
|
|
309
|
+
subAgentSessions.add(sessionId)
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
// --- Session Deleted ---
|
|
314
|
+
if (event.type === "session.deleted") {
|
|
315
|
+
// Same properties.info path as session.created.
|
|
316
|
+
const info = (event.properties as any)?.info
|
|
317
|
+
const sessionId = info?.id
|
|
318
|
+
if (sessionId) {
|
|
319
|
+
toolCounts.delete(sessionId)
|
|
320
|
+
knownSessions.delete(sessionId)
|
|
321
|
+
subAgentSessions.delete(sessionId)
|
|
322
|
+
lastNudgeTime.delete(sessionId)
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
},
|
|
327
|
+
|
|
328
|
+
// ─── User Prompt Capture ──────────────────────────────────────
|
|
329
|
+
// chat.message is called once per user message, before the LLM sees it.
|
|
330
|
+
// input.sessionID is always reliable here (no knownSessions workaround).
|
|
331
|
+
// output.message is typed as UserMessage (role:"user" already guaranteed).
|
|
332
|
+
// output.parts contains TextPart[] with the actual message text.
|
|
333
|
+
|
|
334
|
+
"chat.message": async (input, output) => {
|
|
335
|
+
// Skip sub-agent sessions — they inflate session counts (issue #116)
|
|
336
|
+
if (subAgentSessions.has(input.sessionID)) return
|
|
337
|
+
|
|
338
|
+
const sessionId = input.sessionID
|
|
339
|
+
|
|
340
|
+
// Extract text from parts (type:"text")
|
|
341
|
+
const content = output.parts
|
|
342
|
+
.filter((p) => p.type === "text")
|
|
343
|
+
.map((p) => (p as any).text ?? "")
|
|
344
|
+
.join("\n")
|
|
345
|
+
.trim()
|
|
346
|
+
|
|
347
|
+
// Also fallback to summary if parts yield nothing
|
|
348
|
+
const fallback = !content && output.message.summary
|
|
349
|
+
? `${output.message.summary.title ?? ""}\n${output.message.summary.body ?? ""}`.trim()
|
|
350
|
+
: ""
|
|
351
|
+
|
|
352
|
+
const finalContent = content || fallback
|
|
353
|
+
|
|
354
|
+
// Only capture non-trivial prompts (>10 chars)
|
|
355
|
+
if (finalContent.length > 10) {
|
|
356
|
+
await ensureSession(sessionId)
|
|
357
|
+
await engramFetch("/prompts", {
|
|
358
|
+
method: "POST",
|
|
359
|
+
body: {
|
|
360
|
+
session_id: sessionId,
|
|
361
|
+
content: stripPrivateTags(truncate(finalContent, 2000)),
|
|
362
|
+
project,
|
|
363
|
+
},
|
|
364
|
+
})
|
|
365
|
+
}
|
|
366
|
+
},
|
|
367
|
+
|
|
368
|
+
// ─── Tool Execution Hook ─────────────────────────────────────
|
|
369
|
+
// Count tool calls per session (for session end stats).
|
|
370
|
+
// Also ensures the session exists — handles plugin reload / reconnect.
|
|
371
|
+
// Passive capture: when a Task tool completes, POST its output to
|
|
372
|
+
// the passive capture endpoint so the server extracts learnings.
|
|
373
|
+
|
|
374
|
+
"tool.execute.after": async (input, output) => {
|
|
375
|
+
if (ENGRAM_TOOLS.has(input.tool.toLowerCase())) return
|
|
376
|
+
|
|
377
|
+
// input.sessionID comes from OpenCode — always available
|
|
378
|
+
const sessionId = input.sessionID
|
|
379
|
+
if (sessionId) {
|
|
380
|
+
await ensureSession(sessionId)
|
|
381
|
+
toolCounts.set(sessionId, (toolCounts.get(sessionId) ?? 0) + 1)
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
// Passive capture: extract learnings from Task tool output
|
|
385
|
+
if (input.tool === "Task" && output && sessionId) {
|
|
386
|
+
const text = typeof output === "string" ? output : JSON.stringify(output)
|
|
387
|
+
if (text.length > 50) {
|
|
388
|
+
await engramFetch("/observations/passive", {
|
|
389
|
+
method: "POST",
|
|
390
|
+
body: {
|
|
391
|
+
session_id: sessionId,
|
|
392
|
+
content: stripPrivateTags(text),
|
|
393
|
+
project,
|
|
394
|
+
source: "task-complete",
|
|
395
|
+
},
|
|
396
|
+
})
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
},
|
|
400
|
+
|
|
401
|
+
// ─── System Prompt: Always-on memory instructions ──────────
|
|
402
|
+
// Injects MEMORY_INSTRUCTIONS into the system prompt of every message.
|
|
403
|
+
// This ensures the agent ALWAYS knows about Engram, even after compaction.
|
|
404
|
+
//
|
|
405
|
+
// We append to the last existing system entry instead of pushing a new one.
|
|
406
|
+
// Some models (Qwen3.5, Mistral/Ministral via llama.cpp) reject multiple
|
|
407
|
+
// system messages — their Jinja chat templates only allow a single system
|
|
408
|
+
// block at the beginning. By concatenating, we avoid adding extra system
|
|
409
|
+
// messages that would break these models. See: GitHub issue #23.
|
|
410
|
+
|
|
411
|
+
"experimental.chat.system.transform": async (input, output) => {
|
|
412
|
+
if (output.system.length > 0) {
|
|
413
|
+
output.system[output.system.length - 1] += "\n\n" + MEMORY_INSTRUCTIONS
|
|
414
|
+
} else {
|
|
415
|
+
output.system.push(MEMORY_INSTRUCTIONS)
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
// ── Save nudge ──────────────────────────────────────────────────────────
|
|
419
|
+
// If it has been a long time since the last mem_save, append a reminder
|
|
420
|
+
// to the system prompt so the agent notices. All fetches are fire-and-
|
|
421
|
+
// forget with short timeouts — any failure silently skips the nudge.
|
|
422
|
+
try {
|
|
423
|
+
const sessionID: string = input.sessionID ?? ""
|
|
424
|
+
if (!sessionID || subAgentSessions.has(sessionID)) return
|
|
425
|
+
|
|
426
|
+
// SQLite datetime('now') returns "YYYY-MM-DD HH:MM:SS" in UTC with no
|
|
427
|
+
// zone suffix; new Date() would parse that as local time. Normalize to
|
|
428
|
+
// UTC first so the thresholds are correct in every timezone.
|
|
429
|
+
const toEpochSecs = (ts: string): number => {
|
|
430
|
+
if (!ts) return 0
|
|
431
|
+
const normalized = ts.includes("T") ? ts : ts.replace(" ", "T") + "Z"
|
|
432
|
+
const ms = new Date(normalized).getTime()
|
|
433
|
+
return Number.isNaN(ms) ? 0 : Math.floor(ms / 1000)
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
const cooldownSecs = parseInt(process.env.ENGRAM_NUDGE_COOLDOWN_SECS ?? "900", 10)
|
|
437
|
+
const nowSecs = Math.floor(Date.now() / 1000)
|
|
438
|
+
|
|
439
|
+
// Debounce: skip if we nudged recently this session
|
|
440
|
+
const lastNudge = lastNudgeTime.get(sessionID)
|
|
441
|
+
if (lastNudge !== undefined && nowSecs - lastNudge < cooldownSecs) return
|
|
442
|
+
|
|
443
|
+
// Skip if the session is too young (< 5 minutes)
|
|
444
|
+
let sessionStartEpoch = 0
|
|
445
|
+
try {
|
|
446
|
+
const sessionRes = await fetch(`${ENGRAM_URL}/sessions/${encodeURIComponent(sessionID)}`, {
|
|
447
|
+
signal: AbortSignal.timeout(200),
|
|
448
|
+
})
|
|
449
|
+
if (sessionRes.ok) {
|
|
450
|
+
const sessionData = await sessionRes.json()
|
|
451
|
+
const startedAt: string = sessionData?.started_at ?? ""
|
|
452
|
+
if (startedAt) {
|
|
453
|
+
sessionStartEpoch = toEpochSecs(startedAt)
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
} catch {
|
|
457
|
+
// Server unreachable or timed out — skip nudge
|
|
458
|
+
return
|
|
459
|
+
}
|
|
460
|
+
if (sessionStartEpoch > 0 && nowSecs - sessionStartEpoch < 300) return
|
|
461
|
+
|
|
462
|
+
// Check when the last observation was saved for this project
|
|
463
|
+
let lastObsEpoch = 0
|
|
464
|
+
try {
|
|
465
|
+
const obsRes = await fetch(
|
|
466
|
+
`${ENGRAM_URL}/observations?project=${encodeURIComponent(project)}&limit=1&sort=created_at:desc`,
|
|
467
|
+
{ signal: AbortSignal.timeout(200) }
|
|
468
|
+
)
|
|
469
|
+
if (obsRes.ok) {
|
|
470
|
+
const obsData = await obsRes.json()
|
|
471
|
+
const createdAt: string = obsData?.[0]?.created_at ?? ""
|
|
472
|
+
if (createdAt) {
|
|
473
|
+
lastObsEpoch = toEpochSecs(createdAt)
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
} catch {
|
|
477
|
+
// Server unreachable or timed out — skip nudge
|
|
478
|
+
return
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
// No observations yet — nothing to nudge about
|
|
482
|
+
if (lastObsEpoch === 0) return
|
|
483
|
+
|
|
484
|
+
// Only nudge if last save was more than 15 minutes ago
|
|
485
|
+
if (nowSecs - lastObsEpoch < 900) return
|
|
486
|
+
|
|
487
|
+
// Append the nudge to the last system message
|
|
488
|
+
const nudge =
|
|
489
|
+
"\n\nMEMORY REMINDER: It's been over 15 minutes since your last memory save. " +
|
|
490
|
+
"If you've made decisions, discoveries, completed significant work, or found non-obvious things, " +
|
|
491
|
+
"call mem_save now."
|
|
492
|
+
if (output.system.length > 0) {
|
|
493
|
+
output.system[output.system.length - 1] += nudge
|
|
494
|
+
} else {
|
|
495
|
+
output.system.push(nudge)
|
|
496
|
+
}
|
|
497
|
+
lastNudgeTime.set(sessionID, nowSecs)
|
|
498
|
+
} catch {
|
|
499
|
+
// Any unexpected error — silently skip the nudge, never crash the hook
|
|
500
|
+
}
|
|
501
|
+
},
|
|
502
|
+
|
|
503
|
+
// ─── Compaction Hook: Persist memory + inject context ──────────
|
|
504
|
+
// Compaction is triggered by the system (not the agent) when context
|
|
505
|
+
// gets too long. The old agent "dies" and a new one starts with the
|
|
506
|
+
// compacted summary. This is our chance to:
|
|
507
|
+
// 1. Auto-save a session checkpoint (the agent can't do this itself)
|
|
508
|
+
// 2. Inject context from previous sessions into the compaction prompt
|
|
509
|
+
// 3. Tell the compressor to remind the new agent to save memories
|
|
510
|
+
|
|
511
|
+
"experimental.session.compacting": async (input, output) => {
|
|
512
|
+
if (input.sessionID) {
|
|
513
|
+
await ensureSession(input.sessionID)
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
// Inject context from previous sessions
|
|
517
|
+
const data = await engramFetch(
|
|
518
|
+
`/context?project=${encodeURIComponent(project)}`
|
|
519
|
+
)
|
|
520
|
+
if (data?.context) {
|
|
521
|
+
output.context.push(data.context)
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
// Tell the compressor to instruct the new agent to persist the
|
|
525
|
+
// compacted summary to Engram. The new agent reads the compacted
|
|
526
|
+
// summary and this instruction, then saves it as a session summary.
|
|
527
|
+
output.context.push(
|
|
528
|
+
`CRITICAL INSTRUCTION FOR COMPACTED SUMMARY:\n` +
|
|
529
|
+
`The agent has access to Engram persistent memory via MCP tools.\n` +
|
|
530
|
+
`You MUST include the following instruction at the TOP of the compacted summary:\n\n` +
|
|
531
|
+
`"FIRST ACTION REQUIRED: Call mem_session_summary with the content of this compacted summary. ` +
|
|
532
|
+
`Use project: '${project}'. This preserves what was accomplished before compaction. Do this BEFORE any other work."\n\n` +
|
|
533
|
+
`This is NOT optional. Without this, everything done before compaction is lost from memory.`
|
|
534
|
+
)
|
|
535
|
+
},
|
|
536
|
+
}
|
|
537
|
+
}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: brainstorming
|
|
3
3
|
description: "Thinking partner for exploring ideas, investigating problems, and designing solutions. Two modes: creative-design (structured, produces design doc) and open-explore (unstructured, no mandatory output). Use when the user wants to think through something, brainstorm, explore an idea, or design a solution before or during a change."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Brainstorming
|
|
7
7
|
|
|
8
8
|
A thinking partner that adapts to what the user needs: structured design when they're building something, open exploration when they're investigating or clarifying.
|
|
9
9
|
|
|
10
10
|
**Follow Core Instructions** — `ostacky.md` Core Instructions section for CodeGraph and Engram usage patterns.
|
|
11
11
|
|
|
12
|
+
**IMPORTANT:** Engram is an **MCP server**, not a skill. Tools `mem_save`, `mem_search`, `mem_context` are MCP tools. Do NOT use `skill("engram")` — it doesn't exist.
|
|
13
|
+
|
|
12
14
|
---
|
|
13
15
|
|
|
14
16
|
## Mode Detection
|
|
@@ -19,7 +21,7 @@ A thinking partner that adapts to what the user needs: structured design when th
|
|
|
19
21
|
| "explore", "investigate", "think through", "what if", "how does" | **open-explore** |
|
|
20
22
|
| "brainstorm", "ideate", "propose approach" | **creative-design** |
|
|
21
23
|
| "check", "understand", "review existing" | **open-explore** |
|
|
22
|
-
| Unclear | Ask
|
|
24
|
+
| Unclear | Ask in natural language: "¿Querés diseñar algo nuevo o explorar/entender algo existente?" |
|
|
23
25
|
|
|
24
26
|
---
|
|
25
27
|
|
|
@@ -33,7 +35,7 @@ Do NOT invoke any implementation skill, write any code, or scaffold any project
|
|
|
33
35
|
|
|
34
36
|
### Process
|
|
35
37
|
|
|
36
|
-
1. **Check Engram** — `
|
|
38
|
+
1. **Check Engram** — `mem_search` with keywords from the user's idea. Surface any prior design decisions or similar proposals.
|
|
37
39
|
2. **Explore via CodeGraph** — `codegraph_explore` on the affected area. Only `Read` files CodeGraph didn't cover.
|
|
38
40
|
3. **Ask clarifying questions** — one at a time, understand purpose/constraints/success criteria
|
|
39
41
|
4. **Propose 2-3 approaches** — with trade-offs and your recommendation
|
|
@@ -41,7 +43,7 @@ Do NOT invoke any implementation skill, write any code, or scaffold any project
|
|
|
41
43
|
6. **Write design doc** — save to `docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md` and commit
|
|
42
44
|
7. **Spec self-review** — check for placeholders, contradictions, ambiguity, scope
|
|
43
45
|
8. **User reviews spec** — ask user to review before proceeding
|
|
44
|
-
9. **Save to Engram** — `
|
|
46
|
+
9. **Save to Engram** — `mem_save` with the design decision and tradeoffs
|
|
45
47
|
10. **Transition** — based on routing decision (see Transition Rules below)
|
|
46
48
|
|
|
47
49
|
### Transition Rules
|
|
@@ -192,4 +194,4 @@ Browser use is text-only by default.
|
|
|
192
194
|
|
|
193
195
|
- Only use the browser when the user explicitly asks for browser/visual help.
|
|
194
196
|
- Do not suggest the browser just because it might explain something more clearly.
|
|
195
|
-
- If the user asks for browser/visual help,
|
|
197
|
+
- If the user asks for browser/visual help, use illustrations and diagrams in the conversation to explain concepts.
|
|
@@ -65,13 +65,13 @@ Each agent gets:
|
|
|
65
65
|
|
|
66
66
|
### 3. Dispatch in Parallel
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
Task
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
68
|
+
Delegate each task to a subagent with its own isolated context. All run concurrently.
|
|
69
|
+
|
|
70
|
+
| Task | Agent | Context |
|
|
71
|
+
|------|-------|---------|
|
|
72
|
+
| Fix agent-tool-abort test | implement | Test failures, source code, error output |
|
|
73
|
+
| Fix batch-completion-behavior test | implement | Test failures, source code, error output |
|
|
74
|
+
| Fix tool-approval-race-conditions test | implement | Test failures, source code, error output |
|
|
75
75
|
|
|
76
76
|
### 4. Review and Integrate
|
|
77
77
|
|
|
@@ -8,6 +8,8 @@ metadata:
|
|
|
8
8
|
version: "2.0"
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
+
**IMPORTANT:** Engram is an **MCP server**, not a skill. Tools `mem_save`, `mem_search`, `mem_context` are MCP tools. Do NOT use `skill("engram")` — it doesn't exist.
|
|
12
|
+
|
|
11
13
|
# Skill: execution-mode-evaluation
|
|
12
14
|
|
|
13
15
|
Determinar el modo de ejecución óptimo entre **inline** y **subagent-driven** usando datos concretos de CodeGraph. La decisión sigue reglas estrictas en orden de precedencia.
|
|
@@ -17,7 +19,7 @@ Determinar el modo de ejecución óptimo entre **inline** y **subagent-driven**
|
|
|
17
19
|
| Dato | Fuente | Obligatorio |
|
|
18
20
|
|------|--------|-------------|
|
|
19
21
|
| Tasks del change | `tasks.md` del cambio activo | ✅ |
|
|
20
|
-
| Archivos que modifica cada task | `
|
|
22
|
+
| Archivos que modifica cada task | `codegraph_explore` o lectura directa | ✅ |
|
|
21
23
|
| Blast radius por símbolo | `codegraph_impact` | Para alta precisión |
|
|
22
24
|
| Contratos entre tasks | `design.md` | Para evaluar dependencias |
|
|
23
25
|
|
|
@@ -25,11 +27,11 @@ Determinar el modo de ejecución óptimo entre **inline** y **subagent-driven**
|
|
|
25
27
|
|
|
26
28
|
### Paso 0: Verificar datos existentes en contexto
|
|
27
29
|
|
|
28
|
-
Si ya tenés output de `
|
|
30
|
+
Si ya tenés output de `codegraph_explore` para el área del cambio **Y** ese output distingue archivos por task → **saltá al Paso 0.5**. Si no, ejecutá el Paso 1.
|
|
29
31
|
|
|
30
32
|
### Paso 0.1: Consultar Engram por decisiones previas
|
|
31
33
|
|
|
32
|
-
`
|
|
34
|
+
`mem_search` con keywords del cambio (nombre del módulo, área afectada). Si existe una decisión de modo de ejecución anterior para un cambio similar, considerarla como referencia — no como vinculante. Las condiciones pueden haber cambiado.
|
|
33
35
|
|
|
34
36
|
### Paso 0.5: Early exit para cambios pequeños
|
|
35
37
|
|
|
@@ -49,7 +51,7 @@ Si el change tiene **≤2 tasks** Y **no comparten archivos entre sí** → devo
|
|
|
49
51
|
### Paso 1: Obtener datos de CodeGraph
|
|
50
52
|
|
|
51
53
|
```
|
|
52
|
-
|
|
54
|
+
codegraph_explore con query: "<área del cambio>"
|
|
53
55
|
```
|
|
54
56
|
|
|
55
57
|
Si el output es muy general → `codegraph_impact` sobre símbolos centrales para blast radius preciso.
|
|
@@ -108,7 +110,7 @@ Para cada fase de `tasks.md`, evaluar intra-fase:
|
|
|
108
110
|
{
|
|
109
111
|
"recommendation": "INLINE" | "SUBAGENT_DRIVEN",
|
|
110
112
|
"reasons": ["razón principal", "razón secundaria"],
|
|
111
|
-
"codegraphUsed": ["
|
|
113
|
+
"codegraphUsed": ["codegraph_explore"],
|
|
112
114
|
"taskCount": <N>,
|
|
113
115
|
"sharedFiles": { "src/archivo.ts": ["task1", "task2"] },
|
|
114
116
|
"fileClusters": [["task1", "task2"], ["task3"]],
|
|
@@ -122,7 +124,7 @@ Para cada fase de `tasks.md`, evaluar intra-fase:
|
|
|
122
124
|
}
|
|
123
125
|
```
|
|
124
126
|
|
|
125
|
-
**Output para el usuario (mostrar
|
|
127
|
+
**Output para el usuario (mostrar en lenguaje natural):**
|
|
126
128
|
|
|
127
129
|
```markdown
|
|
128
130
|
## Análisis de modo de ejecución
|
|
@@ -166,7 +168,7 @@ Para cada fase de `tasks.md`, evaluar intra-fase:
|
|
|
166
168
|
| `estLines` | Estimación conservadora |
|
|
167
169
|
| `hasExplicitContract` | `true` si design.md explicita contratos |
|
|
168
170
|
|
|
169
|
-
**⚠️ Este skill provee ANÁLISIS, no autorización.** El coordinador muestra el snapshot al usuario y pide confirmación
|
|
171
|
+
**⚠️ Este skill provee ANÁLISIS, no autorización.** El coordinador muestra el snapshot al usuario y pide confirmación en lenguaje natural, luego espera la respuesta.
|
|
170
172
|
|
|
171
173
|
## Ejemplo compacto
|
|
172
174
|
|
|
@@ -176,7 +178,7 @@ Para cada fase de `tasks.md`, evaluar intra-fase:
|
|
|
176
178
|
|
|
177
179
|
## Checklist
|
|
178
180
|
|
|
179
|
-
- [ ] Ejecuté `
|
|
181
|
+
- [ ] Ejecuté `codegraph_explore` (o verifiqué datos existentes)?
|
|
180
182
|
- [ ] Construí mapa de dependencias con `fileClusters`?
|
|
181
183
|
- [ ] Identifiqué clusters (componentes conectados)?
|
|
182
184
|
- [ ] Verifiqué deps ENTRE clusters (no solo intra)?
|