ostacky 0.5.4 → 0.5.6
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 +34 -9
- package/assets/agents/ostacky.md +109 -29
- package/assets/commands/install-stack.md +222 -88
- package/assets/mcp/ostacky-controller/index.js +639 -999
- package/assets/mcp/ostacky-controller/node_modules/.package-lock.json +42 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/LICENSE +216 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/README.md +40 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-BUWfrB3C.d.cts +8198 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-BUWfrB3C.d.cts.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-CEFpHq32.cjs +2862 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-CEFpHq32.cjs.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-CNbu4K4a.d.mts +8198 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-CNbu4K4a.d.mts.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-DFgbUATV.mjs +1653 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/auth-DFgbUATV.mjs.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/index.cjs +174 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/index.d.cts +2 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/index.d.mts +2 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/index.mjs +3 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/internal.cjs +199 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/internal.d.cts +87 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/internal.d.cts.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/internal.d.mts +87 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/internal.d.mts.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/dist/internal.mjs +3 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/core/package.json +85 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/LICENSE +216 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/README.md +30 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/ajvProvider-B_4czhCS.d.cts +1054 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/ajvProvider-B_4czhCS.d.cts.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/ajvProvider-BdSo9BII.d.mts +1054 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/ajvProvider-BdSo9BII.d.mts.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/ajvProvider-Brn-Q2J_.cjs +7086 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/ajvProvider-Brn-Q2J_.cjs.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/ajvProvider-CplOkyLC.mjs +7069 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/ajvProvider-CplOkyLC.mjs.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-BYRW5af5.d.mts +59 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-BYRW5af5.d.mts.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-Bd-iTHAF.mjs +970 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-Bd-iTHAF.mjs.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-D9GAttn8.d.cts +59 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-D9GAttn8.d.cts.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-ojcZaap3.cjs +976 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-ojcZaap3.cjs.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/chunk-Bnu9O96Y.cjs +60 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/chunk-Br0eD_fh.mjs +42 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-BRM5MGf9.d.cts +4015 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-BRM5MGf9.d.cts.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-D93NefGZ.d.mts +4013 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-D93NefGZ.d.mts.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/index.cjs +1990 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/index.cjs.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/index.d.cts +732 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/index.d.cts.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/index.d.mts +732 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/index.d.mts.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/index.mjs +1813 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/index.mjs.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/mcp-Ctiu4nBa.mjs +1884 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/mcp-Ctiu4nBa.mjs.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/mcp-CzU40gwu.cjs +1963 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/mcp-CzU40gwu.cjs.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.cjs +23 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.cjs.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.d.cts +11 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.d.cts.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.d.mts +11 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.d.mts.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.mjs +22 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.mjs.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsNode.cjs +12 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsNode.d.cts +3 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsNode.d.mts +3 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsNode.mjs +4 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.cjs +30 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.cjs.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.d.cts +10 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.d.cts.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.d.mts +10 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.d.mts.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.mjs +29 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.mjs.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/src-D5Nfqtoz.mjs +7502 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/src-D5Nfqtoz.mjs.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/src-D9A7ArDn.cjs +8000 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/src-D9A7ArDn.cjs.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/stdio.cjs +564 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/stdio.cjs.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/stdio.d.cts +107 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/stdio.d.cts.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/stdio.d.mts +107 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/stdio.d.mts.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/stdio.mjs +562 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/stdio.mjs.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/types-DsbMXNFL.d.cts +1099 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/types-DsbMXNFL.d.cts.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/types-mS0yxCL0.d.mts +1099 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/types-mS0yxCL0.d.mts.map +1 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/validators/ajv.cjs +5 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/validators/ajv.d.cts +2 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/validators/ajv.d.mts +2 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/validators/ajv.mjs +3 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/validators/cfWorker.cjs +3 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/validators/cfWorker.d.cts +2 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/validators/cfWorker.d.mts +2 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/dist/validators/cfWorker.mjs +3 -0
- package/assets/mcp/ostacky-controller/node_modules/@modelcontextprotocol/server/package.json +160 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/LICENSE +21 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/README.md +191 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/index.cjs +33 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/index.d.cts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/index.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/index.js +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/locales/index.cjs +17 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/locales/index.d.cts +1 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/locales/index.d.ts +1 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/locales/index.js +1 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/locales/package.json +7 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/mini/index.cjs +32 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/mini/index.d.cts +3 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/mini/index.d.ts +3 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/mini/index.js +3 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/mini/package.json +7 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/package.json +135 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/index.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/locales/index.ts +1 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/mini/index.ts +3 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/ZodError.ts +330 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/benchmarks/datetime.ts +58 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +80 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/benchmarks/index.ts +59 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/benchmarks/ipv4.ts +57 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/benchmarks/object.ts +69 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/benchmarks/primitives.ts +162 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/benchmarks/realworld.ts +63 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/benchmarks/string.ts +55 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/benchmarks/union.ts +80 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/errors.ts +13 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/external.ts +6 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/helpers/enumUtil.ts +17 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/helpers/errorUtil.ts +8 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/helpers/parseUtil.ts +176 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/helpers/partialUtil.ts +34 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/helpers/typeAliases.ts +2 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/helpers/util.ts +224 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/index.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/locales/en.ts +124 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/standard-schema.ts +113 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/Mocker.ts +54 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/all-errors.test.ts +157 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/anyunknown.test.ts +28 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/array.test.ts +71 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/async-parsing.test.ts +388 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/async-refinements.test.ts +46 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/base.test.ts +29 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/bigint.test.ts +55 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/branded.test.ts +53 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/catch.test.ts +220 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/coerce.test.ts +133 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/complex.test.ts +70 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/custom.test.ts +31 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/date.test.ts +32 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/deepmasking.test.ts +186 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/default.test.ts +112 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/description.test.ts +33 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +315 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/enum.test.ts +80 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/error.test.ts +551 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/firstparty.test.ts +87 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +21 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/function.test.ts +261 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/generics.test.ts +48 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/instanceof.test.ts +37 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/intersection.test.ts +110 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/language-server.source.ts +76 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/language-server.test.ts +207 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/literal.test.ts +36 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/map.test.ts +110 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/masking.test.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/mocker.test.ts +19 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/nan.test.ts +24 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/nativeEnum.test.ts +87 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/nullable.test.ts +42 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/number.test.ts +176 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/object-augmentation.test.ts +29 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +29 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/object.test.ts +434 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/optional.test.ts +42 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/parseUtil.test.ts +23 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/parser.test.ts +41 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/partials.test.ts +243 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/pickomit.test.ts +111 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/pipeline.test.ts +29 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/preprocess.test.ts +186 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/primitive.test.ts +440 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/promise.test.ts +90 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/readonly.test.ts +194 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/record.test.ts +171 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/recursive.test.ts +197 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/refine.test.ts +313 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/safeparse.test.ts +27 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/set.test.ts +142 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/standard-schema.test.ts +83 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/string.test.ts +916 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/transformer.test.ts +233 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/tuple.test.ts +90 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/unions.test.ts +57 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/validations.test.ts +133 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/tests/void.test.ts +15 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v3/types.ts +5138 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/checks.ts +32 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/coerce.ts +27 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/compat.ts +70 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/errors.ts +82 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/external.ts +52 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/from-json-schema.ts +659 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/index.ts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/iso.ts +90 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/parse.ts +82 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/schemas.ts +2672 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +26 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/apply.test.ts +59 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/array.test.ts +264 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/assignability.test.ts +216 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +381 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +68 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/base.test.ts +7 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/bigint.test.ts +54 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/brand.test.ts +106 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/catch.test.ts +326 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +20 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +573 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/codec.test.ts +703 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/coerce.test.ts +160 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/continuability.test.ts +374 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/custom.test.ts +40 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/date.test.ts +62 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/datetime.test.ts +302 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/default.test.ts +409 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/describe-meta-checks.test.ts +27 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/description.test.ts +32 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +197 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +694 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/enum.test.ts +285 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +807 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/error.test.ts +711 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/file.test.ts +96 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +179 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/fix-json-issue.test.ts +26 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +895 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/function.test.ts +360 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/generics.test.ts +72 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/global-config.test.ts +39 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/hash.test.ts +68 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/index.test.ts +939 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +60 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/intersection.test.ts +198 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +46 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/json.test.ts +109 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/lazy.test.ts +227 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/literal.test.ts +117 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/locales_ka.test.ts +29 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/locales_ro.test.ts +24 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/map.test.ts +330 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/nan.test.ts +21 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +168 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +101 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/nullable.test.ts +22 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/number.test.ts +325 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/object.test.ts +717 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/optional.test.ts +333 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/partial.test.ts +450 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +211 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/pipe.test.ts +101 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/prefault.test.ts +74 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +26 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +351 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/primitive.test.ts +175 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/promise.test.ts +81 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +23 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/readonly.test.ts +252 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/record.test.ts +717 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +631 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/refine.test.ts +633 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/registries.test.ts +243 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/set.test.ts +181 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +134 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +125 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/string.test.ts +1224 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +106 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +771 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/to-json-schema-methods.test.ts +438 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +3125 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/transform.test.ts +378 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/tuple.test.ts +496 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/union.test.ts +273 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/url.test.ts +13 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/validations.test.ts +283 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/classic/tests/void.test.ts +12 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/api.ts +1823 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/checks.ts +1293 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/config.ts +15 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/core.ts +153 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/doc.ts +44 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/errors.ts +455 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/index.ts +16 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/json-schema-generator.ts +126 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/json-schema-processors.ts +666 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/json-schema.ts +147 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/parse.ts +195 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/regexes.ts +190 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/registries.ts +105 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/schemas.ts +4730 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/standard-schema.ts +159 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/tests/extend.test.ts +59 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/tests/index.test.ts +46 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/tests/locales/be.test.ts +124 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/tests/locales/el.test.ts +215 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/tests/locales/en.test.ts +22 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/tests/locales/es.test.ts +181 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +72 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/tests/locales/he.test.ts +379 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/tests/locales/hr.test.ts +163 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/tests/locales/nl.test.ts +46 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +128 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +69 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/tests/locales/uz.test.ts +105 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/tests/record-constructor.test.ts +125 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/tests/recursive-tuples.test.ts +45 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/to-json-schema.ts +622 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/util.ts +983 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/versions.ts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/core/zsf.ts +323 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/index.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/ar.ts +115 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/az.ts +111 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/be.ts +176 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/bg.ts +128 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/ca.ts +116 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/cs.ts +118 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/da.ts +123 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/de.ts +116 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/el.ts +121 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/en.ts +123 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/eo.ts +118 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/es.ts +141 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/fa.ts +126 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/fi.ts +121 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/fr-CA.ts +116 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/fr.ts +132 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/he.ts +246 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/hr.ts +131 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/hu.ts +117 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/hy.ts +164 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/id.ts +115 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/index.ts +52 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/is.ts +119 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/it.ts +116 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/ja.ts +114 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/ka.ts +123 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/kh.ts +7 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/km.ts +119 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/ko.ts +121 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/lt.ts +239 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/mk.ts +118 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/ms.ts +115 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/nl.ts +121 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/no.ts +116 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/ota.ts +117 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/pl.ts +118 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/ps.ts +126 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/pt.ts +116 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/ro.ts +129 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/ru.ts +176 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/sl.ts +118 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/sv.ts +119 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/ta.ts +118 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/th.ts +119 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/tr.ts +111 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/ua.ts +7 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/uk.ts +117 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/ur.ts +119 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/uz.ts +117 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/vi.ts +117 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/yo.ts +124 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/zh-CN.ts +116 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/locales/zh-TW.ts +115 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/mini/checks.ts +32 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/mini/coerce.ts +27 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/mini/external.ts +41 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/mini/index.ts +3 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/mini/iso.ts +66 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/mini/parse.ts +14 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/mini/schemas.ts +1947 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/mini/tests/apply.test.ts +24 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/mini/tests/assignability.test.ts +129 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/mini/tests/brand.test.ts +94 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/mini/tests/checks.test.ts +144 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/mini/tests/codec.test.ts +548 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/mini/tests/computed.test.ts +36 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/mini/tests/error.test.ts +22 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/mini/tests/functions.test.ts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/mini/tests/index.test.ts +993 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/mini/tests/number.test.ts +95 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/mini/tests/object.test.ts +227 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +43 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +325 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/mini/tests/standard-schema.test.ts +50 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4/mini/tests/string.test.ts +352 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/src/v4-mini/index.ts +3 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/ZodError.cjs +138 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/ZodError.d.cts +164 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/ZodError.d.ts +164 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/ZodError.js +133 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/errors.cjs +17 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/errors.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/errors.d.ts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/errors.js +9 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/external.cjs +22 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/external.d.cts +6 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/external.d.ts +6 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/external.js +6 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/helpers/enumUtil.cjs +2 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/helpers/enumUtil.d.ts +8 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/helpers/enumUtil.js +1 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/helpers/errorUtil.cjs +9 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/helpers/errorUtil.d.ts +9 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/helpers/errorUtil.js +6 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/helpers/parseUtil.cjs +124 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/helpers/parseUtil.d.ts +78 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/helpers/parseUtil.js +109 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/helpers/partialUtil.cjs +2 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/helpers/partialUtil.d.ts +8 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/helpers/partialUtil.js +1 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/helpers/typeAliases.cjs +2 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/helpers/typeAliases.d.ts +2 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/helpers/typeAliases.js +1 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/helpers/util.cjs +137 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/helpers/util.d.cts +85 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/helpers/util.d.ts +85 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/helpers/util.js +133 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/index.cjs +33 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/index.d.cts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/index.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/index.js +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/locales/en.cjs +112 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/locales/en.d.cts +3 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/locales/en.d.ts +3 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/locales/en.js +109 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/package.json +7 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/standard-schema.cjs +2 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/standard-schema.d.cts +102 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/standard-schema.d.ts +102 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/standard-schema.js +1 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/types.cjs +3777 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/types.d.cts +1034 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/types.d.ts +1034 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v3/types.js +3695 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/checks.cjs +33 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/checks.d.cts +1 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/checks.d.ts +1 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/checks.js +1 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/coerce.cjs +47 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/coerce.d.cts +17 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/coerce.d.ts +17 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/coerce.js +17 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/compat.cjs +61 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/compat.d.cts +50 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/compat.d.ts +50 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/compat.js +31 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/errors.cjs +74 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/errors.d.cts +30 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/errors.d.ts +30 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/errors.js +48 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/external.cjs +73 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/external.d.cts +16 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/external.d.ts +16 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/external.js +20 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/from-json-schema.cjs +625 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/from-json-schema.d.cts +12 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/from-json-schema.d.ts +12 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/from-json-schema.js +599 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/index.cjs +33 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/index.d.cts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/index.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/index.js +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/iso.cjs +60 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/iso.d.cts +22 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/iso.d.ts +22 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/iso.js +30 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/package.json +7 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/parse.cjs +41 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/parse.d.cts +31 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/parse.d.ts +31 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/parse.js +15 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/schemas.cjs +1511 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/schemas.d.cts +767 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/schemas.d.ts +767 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/classic/schemas.js +1395 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/api.cjs +1227 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/api.d.cts +325 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/api.d.ts +325 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/api.js +1087 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/checks.cjs +601 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/checks.d.cts +278 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/checks.d.ts +278 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/checks.js +575 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/core.cjs +85 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/core.d.cts +70 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/core.d.ts +70 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/core.js +78 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/doc.cjs +39 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/doc.d.cts +14 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/doc.d.ts +14 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/doc.js +35 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/errors.cjs +216 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/errors.d.cts +221 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/errors.d.ts +221 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/errors.js +185 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/index.cjs +47 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/index.d.cts +16 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/index.d.ts +16 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/index.js +16 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/json-schema-generator.cjs +99 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/json-schema-generator.d.cts +65 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/json-schema-generator.d.ts +65 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/json-schema-generator.js +95 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/json-schema-processors.cjs +644 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/json-schema-processors.d.cts +49 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/json-schema-processors.d.ts +49 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/json-schema-processors.js +601 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/json-schema.cjs +2 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/json-schema.d.cts +88 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/json-schema.d.ts +88 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/json-schema.js +1 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/package.json +7 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/parse.cjs +131 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/parse.d.cts +49 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/parse.d.ts +49 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/parse.js +93 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/regexes.cjs +172 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/regexes.d.cts +85 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/regexes.d.ts +85 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/regexes.js +139 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/registries.cjs +56 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/registries.d.cts +35 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/registries.d.ts +35 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/registries.js +51 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/schemas.cjs +2270 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/schemas.d.cts +1184 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/schemas.d.ts +1184 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/schemas.js +2239 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/standard-schema.cjs +2 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/standard-schema.d.cts +126 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/standard-schema.d.ts +126 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/standard-schema.js +1 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/to-json-schema.cjs +457 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/to-json-schema.d.cts +114 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/to-json-schema.d.ts +114 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/to-json-schema.js +448 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/util.cjs +734 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/util.d.cts +200 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/util.d.ts +200 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/util.js +674 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/versions.cjs +8 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/versions.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/versions.d.ts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/core/versions.js +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/index.cjs +22 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/index.d.cts +3 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/index.d.ts +3 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/index.js +3 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ar.cjs +133 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ar.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ar.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ar.js +106 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/az.cjs +132 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/az.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/az.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/az.js +105 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/be.cjs +183 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/be.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/be.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/be.js +156 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/bg.cjs +147 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/bg.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/bg.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/bg.js +120 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ca.cjs +134 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ca.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ca.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ca.js +107 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/cs.cjs +138 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/cs.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/cs.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/cs.js +111 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/da.cjs +142 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/da.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/da.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/da.js +115 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/de.cjs +135 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/de.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/de.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/de.js +108 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/el.cjs +136 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/el.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/el.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/el.js +109 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/en.cjs +140 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/en.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/en.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/en.js +113 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/eo.cjs +136 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/eo.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/eo.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/eo.js +109 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/es.cjs +159 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/es.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/es.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/es.js +132 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/fa.cjs +141 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/fa.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/fa.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/fa.js +114 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/fi.cjs +139 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/fi.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/fi.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/fi.js +112 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/fr-CA.cjs +134 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/fr-CA.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/fr-CA.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/fr-CA.js +107 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/fr.cjs +152 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/fr.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/fr.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/fr.js +125 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/he.cjs +241 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/he.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/he.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/he.js +214 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/hr.cjs +149 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/hr.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/hr.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/hr.js +122 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/hu.cjs +135 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/hu.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/hu.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/hu.js +108 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/hy.cjs +174 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/hy.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/hy.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/hy.js +147 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/id.cjs +133 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/id.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/id.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/id.js +106 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/index.cjs +111 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/index.d.cts +52 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/index.d.ts +52 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/index.js +52 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/is.cjs +136 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/is.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/is.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/is.js +109 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/it.cjs +135 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/it.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/it.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/it.js +108 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ja.cjs +134 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ja.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ja.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ja.js +107 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ka.cjs +139 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ka.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ka.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ka.js +112 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/kh.cjs +12 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/kh.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/kh.d.ts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/kh.js +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/km.cjs +137 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/km.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/km.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/km.js +110 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ko.cjs +138 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ko.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ko.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ko.js +111 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/lt.cjs +230 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/lt.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/lt.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/lt.js +203 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/mk.cjs +136 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/mk.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/mk.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/mk.js +109 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ms.cjs +134 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ms.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ms.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ms.js +107 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/nl.cjs +137 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/nl.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/nl.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/nl.js +110 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/no.cjs +135 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/no.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/no.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/no.js +108 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ota.cjs +136 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ota.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ota.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ota.js +109 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/package.json +7 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/pl.cjs +136 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/pl.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/pl.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/pl.js +109 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ps.cjs +141 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ps.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ps.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ps.js +114 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/pt.cjs +135 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/pt.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/pt.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/pt.js +108 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ro.cjs +146 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ro.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ro.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ro.js +119 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ru.cjs +183 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ru.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ru.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ru.js +156 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/sl.cjs +136 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/sl.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/sl.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/sl.js +109 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/sv.cjs +137 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/sv.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/sv.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/sv.js +110 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ta.cjs +137 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ta.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ta.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ta.js +110 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/th.cjs +137 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/th.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/th.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/th.js +110 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/tr.cjs +132 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/tr.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/tr.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/tr.js +105 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ua.cjs +12 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ua.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ua.d.ts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ua.js +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/uk.cjs +135 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/uk.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/uk.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/uk.js +108 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ur.cjs +137 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ur.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ur.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/ur.js +110 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/uz.cjs +137 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/uz.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/uz.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/uz.js +110 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/vi.cjs +135 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/vi.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/vi.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/vi.js +108 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/yo.cjs +134 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/yo.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/yo.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/yo.js +107 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/zh-CN.cjs +136 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/zh-CN.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/zh-CN.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/zh-CN.js +109 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/zh-TW.cjs +134 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/zh-TW.d.cts +5 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/zh-TW.d.ts +4 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/locales/zh-TW.js +107 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/checks.cjs +34 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/checks.d.cts +1 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/checks.d.ts +1 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/checks.js +1 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/coerce.cjs +52 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/coerce.d.cts +7 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/coerce.d.ts +7 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/coerce.js +22 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/external.cjs +63 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/external.d.cts +13 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/external.d.ts +13 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/external.js +14 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/index.cjs +32 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/index.d.cts +3 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/index.d.ts +3 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/index.js +3 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/iso.cjs +64 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/iso.d.cts +22 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/iso.d.ts +22 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/iso.js +34 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/package.json +7 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/parse.cjs +16 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/parse.d.cts +1 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/parse.d.ts +1 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/parse.js +1 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/schemas.cjs +1083 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/schemas.d.cts +445 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/schemas.d.ts +445 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/mini/schemas.js +961 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4/package.json +7 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4-mini/index.cjs +32 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4-mini/index.d.cts +3 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4-mini/index.d.ts +3 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4-mini/index.js +3 -0
- package/assets/mcp/ostacky-controller/node_modules/zod/v4-mini/package.json +7 -0
- package/assets/mcp/ostacky-controller/package-lock.json +50 -0
- package/assets/mcp/ostacky-controller/package.json +6 -2
- package/assets/skills/question-validation/SKILL.md +77 -0
- package/dist/cli.js +760 -191
- package/dist/mcp/ask-user-server/index.js +19657 -0
- package/dist/mcp/ostacky-controller/index.js +20045 -0
- package/manifest.json +28 -28
- package/package.json +4 -2
- package/assets/mcp/ask-user-server/index.js +0 -382
- package/assets/mcp/ask-user-server/package.json +0 -6
package/dist/cli.js
CHANGED
|
@@ -161,7 +161,7 @@ var require_picocolors = __commonJS((exports, module) => {
|
|
|
161
161
|
// package.json
|
|
162
162
|
var package_default = {
|
|
163
163
|
name: "ostacky",
|
|
164
|
-
version: "0.5.
|
|
164
|
+
version: "0.5.6",
|
|
165
165
|
description: "Instalador interactivo de agentes y comandos para OpenCode",
|
|
166
166
|
type: "module",
|
|
167
167
|
bin: {
|
|
@@ -169,9 +169,11 @@ var package_default = {
|
|
|
169
169
|
},
|
|
170
170
|
scripts: {
|
|
171
171
|
dev: "bun run src/cli.ts",
|
|
172
|
-
build: "bun build src/cli.ts --target=node --format=esm --outfile dist/cli.js && bun scripts/add-shebang.ts",
|
|
172
|
+
build: "bun build src/cli.ts --target=node --format=esm --outfile dist/cli.js && bun scripts/bundle-mcp.ts && bun scripts/add-shebang.ts",
|
|
173
173
|
start: "node dist/cli.js",
|
|
174
174
|
test: "bun test",
|
|
175
|
+
"hash:check": "bun run scripts/update-manifest-hashes.ts --check",
|
|
176
|
+
"hash:update": "bun run scripts/update-manifest-hashes.ts",
|
|
175
177
|
prepublishOnly: "bun run build"
|
|
176
178
|
},
|
|
177
179
|
files: [
|
|
@@ -874,18 +876,19 @@ var L2 = () => {
|
|
|
874
876
|
|
|
875
877
|
// src/prompts.ts
|
|
876
878
|
import { join as join5 } from "path";
|
|
879
|
+
import { existsSync as existsSync4 } from "fs";
|
|
877
880
|
// manifest.json
|
|
878
881
|
var manifest_default = {
|
|
879
|
-
version: "0.5.
|
|
882
|
+
version: "0.5.6",
|
|
880
883
|
repo: "JaimeHoracio/Ostacky",
|
|
881
|
-
tag: "v0.5.
|
|
884
|
+
tag: "v0.5.6",
|
|
882
885
|
agents: [
|
|
883
886
|
{
|
|
884
887
|
name: "ostacky",
|
|
885
888
|
file: "assets/agents/ostacky.md",
|
|
886
889
|
description: "Orquestador principal con ruteo por nivel de impacto, máquina de estados persistida (controller MCP), edición segura con 3 outcomes, y delegación en OpenSpec + Superpowers",
|
|
887
|
-
version: "0.5.
|
|
888
|
-
sha256: "
|
|
890
|
+
version: "0.5.6",
|
|
891
|
+
sha256: "e9848ba26a932a7c2b78c998d750e4d011f95085899bab95cb6410cf74802ff3"
|
|
889
892
|
}
|
|
890
893
|
],
|
|
891
894
|
commands: [
|
|
@@ -893,31 +896,24 @@ var manifest_default = {
|
|
|
893
896
|
name: "install-stack",
|
|
894
897
|
file: "assets/commands/install-stack.md",
|
|
895
898
|
description: "Instala el stack tecnológico del proyecto (CodeGraph, skills, OpenSpec, Engram, Context7, controller MCP)",
|
|
896
|
-
version: "0.5.
|
|
897
|
-
sha256: "
|
|
899
|
+
version: "0.5.6",
|
|
900
|
+
sha256: "95f207e63015a6772cf60b3d8dd8878d0fb65229be925ec8c3d234c570553f29"
|
|
898
901
|
},
|
|
899
902
|
{
|
|
900
903
|
name: "opsx-sync",
|
|
901
904
|
file: "assets/commands/opsx-sync.md",
|
|
902
905
|
description: "Sincroniza delta specs del change activo sin inicializar CodeGraph si ya existe índice",
|
|
903
|
-
version: "0.5.
|
|
906
|
+
version: "0.5.6",
|
|
904
907
|
sha256: "ed9948f1910743b672e1dfad496bc96972a224a98b063232be39290d43068c50"
|
|
905
908
|
}
|
|
906
909
|
],
|
|
907
910
|
mcpServers: [
|
|
908
|
-
{
|
|
909
|
-
name: "ask-user-server",
|
|
910
|
-
file: "assets/mcp/ask-user-server/",
|
|
911
|
-
description: "MCP server con tool ask_user para consultar al usuario con bloqueo de ejecución",
|
|
912
|
-
version: "0.5.4",
|
|
913
|
-
sha256: "eae84bbf9addb839160dee64a7e1e8bc8f34f4520e02c9a2900c741003986258"
|
|
914
|
-
},
|
|
915
911
|
{
|
|
916
912
|
name: "ostacky-controller",
|
|
917
913
|
file: "assets/mcp/ostacky-controller/",
|
|
918
|
-
description: "Máquina de estados persistida para Ostacky:
|
|
919
|
-
version: "0.5.
|
|
920
|
-
sha256: "
|
|
914
|
+
description: "Máquina de estados persistida para Ostacky: 13 tools MCP para ciclo completo de request (start_request → discovery → route → execution → sync → done), edición segura con validación de transiciones y persistencia atómica",
|
|
915
|
+
version: "0.5.6",
|
|
916
|
+
sha256: "70b8eaec4248cffb90a19625a8ff99dcc9cfe9e678c25093358a31409975aeb0"
|
|
921
917
|
}
|
|
922
918
|
],
|
|
923
919
|
skills: [
|
|
@@ -925,78 +921,85 @@ var manifest_default = {
|
|
|
925
921
|
name: "execution-mode-evaluation",
|
|
926
922
|
file: "assets/skills/execution-mode-evaluation/SKILL.md",
|
|
927
923
|
description: "Skill de análisis de modo de ejecución — output reconciliado con controller snapshot contract (recommendation field)",
|
|
928
|
-
version: "0.5.
|
|
924
|
+
version: "0.5.6",
|
|
929
925
|
sha256: "1063bc501b284d84daa181198cfb8194beff481594ba9931e6bbd46d89cfdabd"
|
|
930
926
|
},
|
|
931
927
|
{
|
|
932
928
|
name: "brainstorming",
|
|
933
929
|
file: "assets/skills/brainstorming/SKILL.md",
|
|
934
930
|
description: "Skill de descubrimiento y exploración (Superpowers)",
|
|
935
|
-
version: "0.5.
|
|
931
|
+
version: "0.5.6",
|
|
936
932
|
sha256: "ad15458c54912007ae3f708c698a11f0a4a58e2a7c7860a1ae8874db573c9e98"
|
|
937
933
|
},
|
|
938
934
|
{
|
|
939
935
|
name: "writing-plans",
|
|
940
936
|
file: "assets/skills/writing-plans/SKILL.md",
|
|
941
937
|
description: "Skill de planificación de implementación (Superpowers) — execution handoff removido, Ostacky decide modo de ejecución",
|
|
942
|
-
version: "0.5.
|
|
938
|
+
version: "0.5.6",
|
|
943
939
|
sha256: "ff242e9205666f74dc1b28bf19bd77270d46dcc5c322d643faa49aabf8e8d096"
|
|
944
940
|
},
|
|
945
941
|
{
|
|
946
942
|
name: "tdd",
|
|
947
943
|
file: "assets/skills/tdd/SKILL.md",
|
|
948
944
|
description: "Skill de test-driven development (Superpowers)",
|
|
949
|
-
version: "0.5.
|
|
945
|
+
version: "0.5.6",
|
|
950
946
|
sha256: "7eacd8ee81dc5c0b85065c0392e37ee10314661f7edb59dd8e70a9e0dae8f371"
|
|
951
947
|
},
|
|
952
948
|
{
|
|
953
949
|
name: "subagent-driven-development",
|
|
954
950
|
file: "assets/skills/subagent-driven-development/SKILL.md",
|
|
955
951
|
description: "Skill de ejecución con subagentes (Superpowers) — ejecuta solo después de confirmación del coordinador Ostacky",
|
|
956
|
-
version: "0.5.
|
|
952
|
+
version: "0.5.6",
|
|
957
953
|
sha256: "a9e6c9070f63dcac0a065a1abd91c9218fa07e201f594d1ce5f6a0dc0bfa0674"
|
|
958
954
|
},
|
|
959
955
|
{
|
|
960
956
|
name: "dispatching-parallel-agents",
|
|
961
957
|
file: "assets/skills/dispatching-parallel-agents/SKILL.md",
|
|
962
958
|
description: "Skill de dispatch paralelo de agentes (Superpowers)",
|
|
963
|
-
version: "0.5.
|
|
959
|
+
version: "0.5.6",
|
|
964
960
|
sha256: "281edf0c38f358497c7e2066fa8217a2ba3e2a39b4205c4af0c41d328fc035a1"
|
|
965
961
|
},
|
|
966
962
|
{
|
|
967
963
|
name: "review",
|
|
968
964
|
file: "assets/skills/review/SKILL.md",
|
|
969
965
|
description: "Skill de revisión de código (Superpowers)",
|
|
970
|
-
version: "0.5.
|
|
966
|
+
version: "0.5.6",
|
|
971
967
|
sha256: "c78d3beff45e9bb6b5e9e1d7155910f379e082d7aaf3c61b90d651d09e0d2e2a"
|
|
972
968
|
},
|
|
973
969
|
{
|
|
974
970
|
name: "openspec-explore",
|
|
975
971
|
file: "assets/skills/openspec-explore/SKILL.md",
|
|
976
972
|
description: "Skill de exploración pre-spec (OpenSpec)",
|
|
977
|
-
version: "0.5.
|
|
973
|
+
version: "0.5.6",
|
|
978
974
|
sha256: "1c75cab8672c2eb8b12f27a0b31f0b7fdb73c21c72583c1e8a566e09fe4108a6"
|
|
979
975
|
},
|
|
980
976
|
{
|
|
981
977
|
name: "openspec-propose",
|
|
982
978
|
file: "assets/skills/openspec-propose/SKILL.md",
|
|
983
979
|
description: "Skill de generación de proposal (OpenSpec)",
|
|
984
|
-
version: "0.5.
|
|
980
|
+
version: "0.5.6",
|
|
985
981
|
sha256: "ab88e9aa22db09559ccf7987d08adc0469b7c6fbe46498e63a3b64926f19e66b"
|
|
986
982
|
},
|
|
987
983
|
{
|
|
988
984
|
name: "openspec-apply-change",
|
|
989
985
|
file: "assets/skills/openspec-apply-change/SKILL.md",
|
|
990
986
|
description: "Skill de aplicación de change (OpenSpec)",
|
|
991
|
-
version: "0.5.
|
|
987
|
+
version: "0.5.6",
|
|
992
988
|
sha256: "847c2f88a66e8d5946c1fec422a5367c89eca5340839b659bbaaeb6f0bdac487"
|
|
993
989
|
},
|
|
994
990
|
{
|
|
995
991
|
name: "openspec-archive-change",
|
|
996
992
|
file: "assets/skills/openspec-archive-change/SKILL.md",
|
|
997
993
|
description: "Skill de archivo de change (OpenSpec)",
|
|
998
|
-
version: "0.5.
|
|
994
|
+
version: "0.5.6",
|
|
999
995
|
sha256: "3d35905ec40a081b8fd77b144426e540c67b1f50cc5801b655313a4fdfaa087a"
|
|
996
|
+
},
|
|
997
|
+
{
|
|
998
|
+
name: "question-validation",
|
|
999
|
+
file: "assets/skills/question-validation/SKILL.md",
|
|
1000
|
+
description: "Valida que el agente use el tool nativo question en vez del MCP ask_user eliminado",
|
|
1001
|
+
version: "0.5.6",
|
|
1002
|
+
sha256: "1b3a9dca1fecbcc74371e2132660b1740b585bc26a80cf13040d333f4c5eb6f1"
|
|
1000
1003
|
}
|
|
1001
1004
|
]
|
|
1002
1005
|
};
|
|
@@ -1143,7 +1146,8 @@ import {
|
|
|
1143
1146
|
statSync,
|
|
1144
1147
|
copyFileSync,
|
|
1145
1148
|
readFileSync as readFileSync3,
|
|
1146
|
-
rmSync
|
|
1149
|
+
rmSync,
|
|
1150
|
+
createWriteStream
|
|
1147
1151
|
} from "fs";
|
|
1148
1152
|
import { createHash as createHash2 } from "crypto";
|
|
1149
1153
|
import { join as join4, resolve, dirname as dirname3, relative } from "path";
|
|
@@ -1186,7 +1190,7 @@ function clearLockfile(opencodeRoot) {
|
|
|
1186
1190
|
const lockfile = readLockfile(opencodeRoot);
|
|
1187
1191
|
if (!lockfile) {
|
|
1188
1192
|
writeLockfile(opencodeRoot, {
|
|
1189
|
-
version: "0.5.
|
|
1193
|
+
version: "0.5.6",
|
|
1190
1194
|
lockedAt: new Date().toISOString(),
|
|
1191
1195
|
repo: "",
|
|
1192
1196
|
tag: "",
|
|
@@ -1238,26 +1242,37 @@ function ensureOpenCodePaths(opencodeDir) {
|
|
|
1238
1242
|
root: opencodeDir,
|
|
1239
1243
|
agents: join4(opencodeDir, "agents"),
|
|
1240
1244
|
commands: join4(opencodeDir, "commands"),
|
|
1241
|
-
skills: join4(opencodeDir, "skills")
|
|
1245
|
+
skills: join4(opencodeDir, "skills"),
|
|
1246
|
+
mcp: join4(opencodeDir, "mcp"),
|
|
1247
|
+
tools: join4(opencodeDir, "tools")
|
|
1242
1248
|
};
|
|
1243
|
-
for (const dir of [paths.root, paths.agents, paths.commands, paths.skills]) {
|
|
1249
|
+
for (const dir of [paths.root, paths.agents, paths.commands, paths.skills, paths.mcp, paths.tools]) {
|
|
1244
1250
|
if (!existsSync3(dir))
|
|
1245
1251
|
mkdirSync2(dir, { recursive: true });
|
|
1246
1252
|
}
|
|
1247
1253
|
return paths;
|
|
1248
1254
|
}
|
|
1255
|
+
function ensureToolDirs(toolsDir, toolNames) {
|
|
1256
|
+
for (const name of toolNames) {
|
|
1257
|
+
const dir = join4(toolsDir, name);
|
|
1258
|
+
if (!existsSync3(dir))
|
|
1259
|
+
mkdirSync2(dir, { recursive: true });
|
|
1260
|
+
}
|
|
1261
|
+
}
|
|
1249
1262
|
function createOpenCodeDir(baseDir) {
|
|
1250
1263
|
return ensureOpenCodePaths(join4(baseDir, ".opencode"));
|
|
1251
1264
|
}
|
|
1252
|
-
function copyDirRecursive(src, dest) {
|
|
1265
|
+
function copyDirRecursive(src, dest, skipGenerated = false) {
|
|
1253
1266
|
if (!existsSync3(dest))
|
|
1254
1267
|
mkdirSync2(dest, { recursive: true });
|
|
1255
1268
|
for (const entry of readdirSync(src)) {
|
|
1269
|
+
if (skipGenerated && (entry === "node_modules" || entry === "package-lock.json"))
|
|
1270
|
+
continue;
|
|
1256
1271
|
const srcPath = join4(src, entry);
|
|
1257
1272
|
const destPath = join4(dest, entry);
|
|
1258
1273
|
const stat = statSync(srcPath);
|
|
1259
1274
|
if (stat.isDirectory()) {
|
|
1260
|
-
copyDirRecursive(srcPath, destPath);
|
|
1275
|
+
copyDirRecursive(srcPath, destPath, skipGenerated);
|
|
1261
1276
|
} else {
|
|
1262
1277
|
copyFileSync(srcPath, destPath);
|
|
1263
1278
|
}
|
|
@@ -1272,6 +1287,8 @@ function computeTreeHash(dir) {
|
|
|
1272
1287
|
}
|
|
1273
1288
|
function walkForHash(root, current, lines) {
|
|
1274
1289
|
for (const entry of readdirSync(current)) {
|
|
1290
|
+
if (entry === "node_modules" || entry === "package-lock.json")
|
|
1291
|
+
continue;
|
|
1275
1292
|
const full = join4(current, entry);
|
|
1276
1293
|
const stat = statSync(full);
|
|
1277
1294
|
if (stat.isDirectory()) {
|
|
@@ -1283,6 +1300,97 @@ function walkForHash(root, current, lines) {
|
|
|
1283
1300
|
}
|
|
1284
1301
|
}
|
|
1285
1302
|
}
|
|
1303
|
+
function stripJsoncComments(text) {
|
|
1304
|
+
let result = "";
|
|
1305
|
+
let i = 0;
|
|
1306
|
+
let inString = false;
|
|
1307
|
+
while (i < text.length) {
|
|
1308
|
+
const char = text[i];
|
|
1309
|
+
const next = text[i + 1];
|
|
1310
|
+
if (inString) {
|
|
1311
|
+
if (char === "\\") {
|
|
1312
|
+
result += char + (next ?? "");
|
|
1313
|
+
i += 2;
|
|
1314
|
+
continue;
|
|
1315
|
+
}
|
|
1316
|
+
if (char === '"')
|
|
1317
|
+
inString = false;
|
|
1318
|
+
result += char;
|
|
1319
|
+
i++;
|
|
1320
|
+
continue;
|
|
1321
|
+
}
|
|
1322
|
+
if (char === '"') {
|
|
1323
|
+
inString = true;
|
|
1324
|
+
result += char;
|
|
1325
|
+
i++;
|
|
1326
|
+
continue;
|
|
1327
|
+
}
|
|
1328
|
+
if (char === "/" && next === "/") {
|
|
1329
|
+
while (i < text.length && text[i] !== `
|
|
1330
|
+
`)
|
|
1331
|
+
i++;
|
|
1332
|
+
continue;
|
|
1333
|
+
}
|
|
1334
|
+
if (char === "/" && next === "*") {
|
|
1335
|
+
i += 2;
|
|
1336
|
+
while (i < text.length && !(text[i] === "*" && text[i + 1] === "/"))
|
|
1337
|
+
i++;
|
|
1338
|
+
i += 2;
|
|
1339
|
+
continue;
|
|
1340
|
+
}
|
|
1341
|
+
result += char;
|
|
1342
|
+
i++;
|
|
1343
|
+
}
|
|
1344
|
+
return result.replace(/,\s*([}\]])/g, "$1");
|
|
1345
|
+
}
|
|
1346
|
+
function readOpenCodeConfig(configPath) {
|
|
1347
|
+
const raw = readFileSync3(configPath, "utf-8");
|
|
1348
|
+
try {
|
|
1349
|
+
return JSON.parse(stripJsoncComments(raw));
|
|
1350
|
+
} catch {
|
|
1351
|
+
return null;
|
|
1352
|
+
}
|
|
1353
|
+
}
|
|
1354
|
+
function writeOpenCodeConfig(configPath, config) {
|
|
1355
|
+
writeFileSync3(configPath, JSON.stringify(config, null, 2) + `
|
|
1356
|
+
`, "utf-8");
|
|
1357
|
+
}
|
|
1358
|
+
function ensureOpenCodeConfig(projectRoot) {
|
|
1359
|
+
const existing = findOpenCodeConfig(projectRoot);
|
|
1360
|
+
if (existing)
|
|
1361
|
+
return existing;
|
|
1362
|
+
const configPath = join4(projectRoot, "opencode.json");
|
|
1363
|
+
writeOpenCodeConfig(configPath, {
|
|
1364
|
+
$schema: "https://opencode.ai/config.json",
|
|
1365
|
+
mcp: {}
|
|
1366
|
+
});
|
|
1367
|
+
return configPath;
|
|
1368
|
+
}
|
|
1369
|
+
function setMcpEntry(name, entry) {
|
|
1370
|
+
const projectRoot = findProjectRoot();
|
|
1371
|
+
const configPath = ensureOpenCodeConfig(projectRoot);
|
|
1372
|
+
const config = readOpenCodeConfig(configPath);
|
|
1373
|
+
if (!config)
|
|
1374
|
+
return;
|
|
1375
|
+
if (!config.mcp)
|
|
1376
|
+
config.mcp = {};
|
|
1377
|
+
config.mcp[name] = entry;
|
|
1378
|
+
writeOpenCodeConfig(configPath, config);
|
|
1379
|
+
}
|
|
1380
|
+
function ensureMcpEntry(name, entry) {
|
|
1381
|
+
const projectRoot = findProjectRoot();
|
|
1382
|
+
const configPath = ensureOpenCodeConfig(projectRoot);
|
|
1383
|
+
const config = readOpenCodeConfig(configPath);
|
|
1384
|
+
if (!config)
|
|
1385
|
+
return;
|
|
1386
|
+
if (!config.mcp)
|
|
1387
|
+
config.mcp = {};
|
|
1388
|
+
const mcp = config.mcp;
|
|
1389
|
+
if (!mcp[name]) {
|
|
1390
|
+
mcp[name] = entry;
|
|
1391
|
+
writeOpenCodeConfig(configPath, config);
|
|
1392
|
+
}
|
|
1393
|
+
}
|
|
1286
1394
|
function upsertLockfile(paths, type, item, manifest, contentHash) {
|
|
1287
1395
|
const existing = readLockfile(paths.root) ?? {
|
|
1288
1396
|
version: manifest.version,
|
|
@@ -1307,13 +1415,37 @@ function upsertLockfile(paths, type, item, manifest, contentHash) {
|
|
|
1307
1415
|
existing.lockedAt = new Date().toISOString();
|
|
1308
1416
|
writeLockfile(paths.root, existing);
|
|
1309
1417
|
}
|
|
1418
|
+
function readBundledAsset(relativePath) {
|
|
1419
|
+
const fullPath = join4(PACKAGE_ROOT, relativePath);
|
|
1420
|
+
if (!existsSync3(fullPath))
|
|
1421
|
+
return null;
|
|
1422
|
+
return readFileSync3(fullPath, "utf-8");
|
|
1423
|
+
}
|
|
1310
1424
|
async function installAgent(item, manifest, paths) {
|
|
1311
|
-
|
|
1425
|
+
let content;
|
|
1426
|
+
try {
|
|
1427
|
+
content = await downloadFile(manifest, item.file);
|
|
1428
|
+
} catch (downloadErr) {
|
|
1429
|
+
const bundled = readBundledAsset(item.file);
|
|
1430
|
+
if (bundled === null) {
|
|
1431
|
+
throw new Error(`Descarga falló (${downloadErr.message}) y el asset no está bundleado en ${item.file}`);
|
|
1432
|
+
}
|
|
1433
|
+
content = bundled;
|
|
1434
|
+
}
|
|
1312
1435
|
writeFileSync3(join4(paths.agents, `${item.name}.md`), content, "utf-8");
|
|
1313
1436
|
upsertLockfile(paths, "agents", item, manifest, sha256(content));
|
|
1314
1437
|
}
|
|
1315
1438
|
async function installCommand(item, manifest, paths) {
|
|
1316
|
-
|
|
1439
|
+
let content;
|
|
1440
|
+
try {
|
|
1441
|
+
content = await downloadFile(manifest, item.file);
|
|
1442
|
+
} catch (downloadErr) {
|
|
1443
|
+
const bundled = readBundledAsset(item.file);
|
|
1444
|
+
if (bundled === null) {
|
|
1445
|
+
throw new Error(`Descarga falló (${downloadErr.message}) y el asset no está bundleado en ${item.file}`);
|
|
1446
|
+
}
|
|
1447
|
+
content = bundled;
|
|
1448
|
+
}
|
|
1317
1449
|
writeFileSync3(join4(paths.commands, `${item.name}.md`), content, "utf-8");
|
|
1318
1450
|
upsertLockfile(paths, "commands", item, manifest, sha256(content));
|
|
1319
1451
|
}
|
|
@@ -1346,27 +1478,37 @@ async function installMcpServer(item, manifest, paths) {
|
|
|
1346
1478
|
` + ` esperado: ${item.sha256}
|
|
1347
1479
|
` + ` recibido: ${treeHash}`);
|
|
1348
1480
|
}
|
|
1349
|
-
const dest = join4(paths.
|
|
1481
|
+
const dest = join4(paths.mcp, item.name);
|
|
1350
1482
|
if (existsSync3(dest)) {
|
|
1351
1483
|
rmSync(dest, { recursive: true, force: true });
|
|
1352
1484
|
}
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
const
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1485
|
+
mkdirSync2(dest, { recursive: true });
|
|
1486
|
+
const bundledPath = join4(PACKAGE_ROOT, "dist", "mcp", item.name, "index.js");
|
|
1487
|
+
if (existsSync3(bundledPath)) {
|
|
1488
|
+
copyFileSync(bundledPath, join4(dest, "index.js"));
|
|
1489
|
+
} else {
|
|
1490
|
+
copyDirRecursive(src, dest, true);
|
|
1491
|
+
const installCmd = isCommandAvailable("bun") ? "bun install --no-save" : "npm install --no-audit --no-fund";
|
|
1492
|
+
try {
|
|
1493
|
+
const output = execSync(installCmd, {
|
|
1494
|
+
cwd: dest,
|
|
1495
|
+
encoding: "utf-8",
|
|
1496
|
+
timeout: 60000
|
|
1497
|
+
});
|
|
1498
|
+
if (output)
|
|
1499
|
+
console.error(output);
|
|
1500
|
+
} catch (e2) {
|
|
1501
|
+
throw new Error(`MCP server "${item.name}" copiado pero ${installCmd} falló: ${e2.message}.
|
|
1502
|
+
` + `Resolvé las dependencias manualmente:
|
|
1503
|
+
` + ` cd .opencode/mcp/${item.name} && bun install`);
|
|
1504
|
+
}
|
|
1369
1505
|
}
|
|
1506
|
+
upsertLockfile(paths, "mcpServers", item, manifest, treeHash);
|
|
1507
|
+
ensureMcpEntry(item.name, {
|
|
1508
|
+
type: "local",
|
|
1509
|
+
command: ["node", `.opencode/mcp/${item.name}/index.js`],
|
|
1510
|
+
enabled: true
|
|
1511
|
+
});
|
|
1370
1512
|
}
|
|
1371
1513
|
function findOpenCodeConfig(projectRoot) {
|
|
1372
1514
|
const candidates = ["opencode.json", "opencode.jsonc"];
|
|
@@ -1378,7 +1520,7 @@ function findOpenCodeConfig(projectRoot) {
|
|
|
1378
1520
|
return null;
|
|
1379
1521
|
}
|
|
1380
1522
|
function isMcpServerInstalled(name, paths) {
|
|
1381
|
-
return existsSync3(join4(paths.
|
|
1523
|
+
return existsSync3(join4(paths.mcp, name, "index.js"));
|
|
1382
1524
|
}
|
|
1383
1525
|
function isAgentInstalled(name, paths) {
|
|
1384
1526
|
return existsSync3(join4(paths.agents, `${name}.md`));
|
|
@@ -1426,7 +1568,7 @@ function uninstallSkill(name, paths) {
|
|
|
1426
1568
|
return true;
|
|
1427
1569
|
}
|
|
1428
1570
|
function uninstallMcpServer(name, paths) {
|
|
1429
|
-
const dirPath = join4(paths.
|
|
1571
|
+
const dirPath = join4(paths.mcp, name);
|
|
1430
1572
|
try {
|
|
1431
1573
|
if (existsSync3(dirPath)) {
|
|
1432
1574
|
rmSync(dirPath, { recursive: true, force: true });
|
|
@@ -1437,18 +1579,17 @@ function uninstallMcpServer(name, paths) {
|
|
|
1437
1579
|
const projectRoot = findProjectRoot();
|
|
1438
1580
|
const configPath = findOpenCodeConfig(projectRoot);
|
|
1439
1581
|
if (configPath) {
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
const
|
|
1443
|
-
if (
|
|
1444
|
-
delete
|
|
1445
|
-
if (Object.keys(
|
|
1582
|
+
const config = readOpenCodeConfig(configPath);
|
|
1583
|
+
if (config) {
|
|
1584
|
+
const mcp = config.mcp;
|
|
1585
|
+
if (mcp && mcp[name]) {
|
|
1586
|
+
delete mcp[name];
|
|
1587
|
+
if (Object.keys(mcp).length === 0) {
|
|
1446
1588
|
delete config.mcp;
|
|
1447
1589
|
}
|
|
1448
|
-
|
|
1449
|
-
`, "utf-8");
|
|
1590
|
+
writeOpenCodeConfig(configPath, config);
|
|
1450
1591
|
}
|
|
1451
|
-
}
|
|
1592
|
+
}
|
|
1452
1593
|
}
|
|
1453
1594
|
removeFromLockfile(paths.root, "mcpServers", name);
|
|
1454
1595
|
return true;
|
|
@@ -1483,44 +1624,189 @@ function isCommandAvailable(cmd) {
|
|
|
1483
1624
|
return false;
|
|
1484
1625
|
}
|
|
1485
1626
|
}
|
|
1486
|
-
function
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1627
|
+
function detectPlatformTarget() {
|
|
1628
|
+
const platform = process.platform;
|
|
1629
|
+
const arch = process.arch;
|
|
1630
|
+
let os;
|
|
1631
|
+
let cpu;
|
|
1632
|
+
if (platform === "darwin")
|
|
1633
|
+
os = "darwin";
|
|
1634
|
+
else if (platform === "linux")
|
|
1635
|
+
os = "linux";
|
|
1636
|
+
else if (platform === "win32")
|
|
1637
|
+
os = "win32";
|
|
1638
|
+
else
|
|
1639
|
+
return null;
|
|
1640
|
+
if (arch === "arm64")
|
|
1641
|
+
cpu = "arm64";
|
|
1642
|
+
else if (arch === "x64")
|
|
1643
|
+
cpu = "x64";
|
|
1644
|
+
else
|
|
1645
|
+
return null;
|
|
1646
|
+
return `${os}-${cpu}`;
|
|
1647
|
+
}
|
|
1648
|
+
function downloadToFile(url, dest, timeoutMs = 180000) {
|
|
1649
|
+
return new Promise((resolve2, reject) => {
|
|
1650
|
+
const file = createWriteStream(dest);
|
|
1651
|
+
const controller = new AbortController;
|
|
1652
|
+
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
1653
|
+
fetch(url, { signal: controller.signal, headers: { "User-Agent": "ostacky-installer" } }).then((res) => {
|
|
1654
|
+
if (!res.ok || !res.body) {
|
|
1655
|
+
reject(new Error(`HTTP ${res.status} ${res.statusText} descargando ${url}`));
|
|
1656
|
+
return;
|
|
1499
1657
|
}
|
|
1658
|
+
const reader = res.body.getReader();
|
|
1659
|
+
const pump = ({ done, value }) => {
|
|
1660
|
+
if (done) {
|
|
1661
|
+
file.end();
|
|
1662
|
+
return Promise.resolve();
|
|
1663
|
+
}
|
|
1664
|
+
return new Promise((w2) => file.write(Buffer.from(value), () => w2())).then(() => reader.read().then(pump));
|
|
1665
|
+
};
|
|
1666
|
+
return reader.read().then(pump);
|
|
1667
|
+
}).then(() => {
|
|
1668
|
+
clearTimeout(timer);
|
|
1669
|
+
file.on("finish", () => resolve2());
|
|
1670
|
+
}).catch((err) => {
|
|
1671
|
+
clearTimeout(timer);
|
|
1672
|
+
file.destroy();
|
|
1673
|
+
try {
|
|
1674
|
+
unlinkSync(dest);
|
|
1675
|
+
} catch {}
|
|
1676
|
+
reject(err);
|
|
1677
|
+
});
|
|
1678
|
+
});
|
|
1679
|
+
}
|
|
1680
|
+
async function downloadAndExtract(url, destDir, stripComponents = 1, timeoutMs = 180000) {
|
|
1681
|
+
const tmp = join4(destDir, `.download-${Date.now()}`);
|
|
1682
|
+
if (!existsSync3(tmp))
|
|
1683
|
+
mkdirSync2(tmp, { recursive: true });
|
|
1684
|
+
const archivePath = join4(tmp, url.endsWith(".zip") ? "archive.zip" : "archive.tar.gz");
|
|
1685
|
+
try {
|
|
1686
|
+
await downloadToFile(url, archivePath, timeoutMs);
|
|
1687
|
+
if (!existsSync3(destDir))
|
|
1688
|
+
mkdirSync2(destDir, { recursive: true });
|
|
1689
|
+
if (process.platform === "win32" && url.endsWith(".zip")) {
|
|
1690
|
+
execSync(`powershell -NoProfile -Command "Expand-Archive -Path '${archivePath}' -DestinationPath '${destDir}' -Force"`, { stdio: "pipe", timeout: 60000 });
|
|
1691
|
+
} else {
|
|
1692
|
+
const stripArg = stripComponents > 0 ? `--strip-components=${stripComponents}` : "";
|
|
1693
|
+
execSync(`tar -xzf "${archivePath}" -C "${destDir}" ${stripArg}`, {
|
|
1694
|
+
stdio: "pipe",
|
|
1695
|
+
timeout: 60000
|
|
1696
|
+
});
|
|
1697
|
+
}
|
|
1698
|
+
} finally {
|
|
1699
|
+
try {
|
|
1700
|
+
rmSync(tmp, { recursive: true, force: true });
|
|
1701
|
+
} catch {}
|
|
1702
|
+
}
|
|
1703
|
+
}
|
|
1704
|
+
async function fetchLatestReleaseTag(repo) {
|
|
1705
|
+
try {
|
|
1706
|
+
const res = await fetch(`https://api.github.com/repos/${repo}/releases/latest`, {
|
|
1707
|
+
signal: AbortSignal.timeout(5000),
|
|
1708
|
+
headers: { "User-Agent": "ostacky-installer" }
|
|
1709
|
+
});
|
|
1710
|
+
if (res.ok) {
|
|
1711
|
+
const data = await res.json();
|
|
1712
|
+
return data.tag_name ?? null;
|
|
1713
|
+
}
|
|
1714
|
+
} catch {}
|
|
1715
|
+
try {
|
|
1716
|
+
const res = await fetch(`https://github.com/${repo}/releases/latest`, {
|
|
1717
|
+
redirect: "manual",
|
|
1718
|
+
signal: AbortSignal.timeout(5000),
|
|
1719
|
+
headers: { "User-Agent": "ostacky-installer" }
|
|
1720
|
+
});
|
|
1721
|
+
const loc = res.headers.get("location") ?? "";
|
|
1722
|
+
const m3 = loc.match(/releases\/tag\/(v[^/]+)$/);
|
|
1723
|
+
if (m3)
|
|
1724
|
+
return m3[1];
|
|
1725
|
+
} catch {}
|
|
1726
|
+
return null;
|
|
1727
|
+
}
|
|
1728
|
+
async function installCodeGraph(toolsDir) {
|
|
1729
|
+
const projectRoot = findProjectRoot();
|
|
1730
|
+
const cgToolDir = join4(toolsDir ?? join4(projectRoot, ".opencode", "tools"), "codegraph");
|
|
1731
|
+
if (!existsSync3(cgToolDir))
|
|
1732
|
+
mkdirSync2(cgToolDir, { recursive: true });
|
|
1733
|
+
const target = detectPlatformTarget();
|
|
1734
|
+
if (!target) {
|
|
1735
|
+
return {
|
|
1736
|
+
success: false,
|
|
1737
|
+
message: `Plataforma no soportada para descarga local: ${process.platform}/${process.arch}. Instalá CodeGraph manualmente.`
|
|
1738
|
+
};
|
|
1739
|
+
}
|
|
1740
|
+
const localBin = join4(cgToolDir, "bin", "codegraph");
|
|
1741
|
+
const localBinExe = localBin + (process.platform === "win32" ? ".exe" : "");
|
|
1742
|
+
if (existsSync3(localBinExe)) {
|
|
1743
|
+
try {
|
|
1744
|
+
execSync(`"${localBinExe}" --version`, { stdio: "pipe", timeout: 1e4 });
|
|
1745
|
+
} catch {
|
|
1746
|
+
try {
|
|
1747
|
+
rmSync(join4(cgToolDir, "bin"), { recursive: true, force: true });
|
|
1748
|
+
} catch {}
|
|
1749
|
+
}
|
|
1750
|
+
}
|
|
1751
|
+
if (!existsSync3(localBinExe)) {
|
|
1752
|
+
const tag = await fetchLatestReleaseTag("colbymchenry/codegraph");
|
|
1753
|
+
if (!tag) {
|
|
1754
|
+
return {
|
|
1755
|
+
success: false,
|
|
1756
|
+
message: "No se pudo obtener la última versión de CodeGraph desde GitHub."
|
|
1757
|
+
};
|
|
1758
|
+
}
|
|
1759
|
+
const ext = process.platform === "win32" ? "zip" : "tar.gz";
|
|
1760
|
+
const url = `https://github.com/colbymchenry/codegraph/releases/download/${tag}/codegraph-${target}.${ext}`;
|
|
1761
|
+
try {
|
|
1762
|
+
await downloadAndExtract(url, cgToolDir, 1, 180000);
|
|
1500
1763
|
} catch (e2) {
|
|
1501
1764
|
return {
|
|
1502
1765
|
success: false,
|
|
1503
|
-
message: `Error
|
|
1766
|
+
message: `Error descargando CodeGraph ${tag}: ${e2.message}`
|
|
1504
1767
|
};
|
|
1505
1768
|
}
|
|
1769
|
+
if (!existsSync3(localBinExe)) {
|
|
1770
|
+
return {
|
|
1771
|
+
success: false,
|
|
1772
|
+
message: `Descarga de CodeGraph ${tag} completada pero no se encontró el binario en ${localBinExe}.`
|
|
1773
|
+
};
|
|
1774
|
+
}
|
|
1775
|
+
if (process.platform !== "win32") {
|
|
1776
|
+
try {
|
|
1777
|
+
execSync(`chmod +x "${localBinExe}"`, { stdio: "pipe" });
|
|
1778
|
+
} catch {}
|
|
1779
|
+
}
|
|
1506
1780
|
}
|
|
1507
1781
|
try {
|
|
1508
|
-
execSync("
|
|
1782
|
+
execSync(`"${localBinExe}" init -i`, { stdio: "pipe", timeout: 120000, cwd: projectRoot });
|
|
1783
|
+
} catch {}
|
|
1784
|
+
try {
|
|
1785
|
+
execSync(`"${localBinExe}" install --target opencode --location local --yes`, {
|
|
1509
1786
|
stdio: "pipe",
|
|
1510
|
-
timeout:
|
|
1787
|
+
timeout: 30000,
|
|
1788
|
+
cwd: projectRoot
|
|
1511
1789
|
});
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1790
|
+
} catch {}
|
|
1791
|
+
const rootAgentsMd = join4(projectRoot, "AGENTS.md");
|
|
1792
|
+
if (existsSync3(rootAgentsMd)) {
|
|
1793
|
+
const dest = join4(cgToolDir, "AGENTS.md");
|
|
1794
|
+
try {
|
|
1795
|
+
copyFileSync(rootAgentsMd, dest);
|
|
1796
|
+
unlinkSync(rootAgentsMd);
|
|
1797
|
+
} catch {}
|
|
1519
1798
|
}
|
|
1799
|
+
setMcpEntry("codegraph", {
|
|
1800
|
+
type: "local",
|
|
1801
|
+
command: [`.opencode/tools/codegraph/bin/codegraph`, "serve", "--mcp"],
|
|
1802
|
+
enabled: true
|
|
1803
|
+
});
|
|
1804
|
+
return { success: true, message: "CodeGraph instalado localmente en .opencode/tools/codegraph/ y configurado para OpenCode" };
|
|
1520
1805
|
}
|
|
1521
1806
|
function setupOpenSpec() {
|
|
1807
|
+
const npxCmd = isCommandAvailable("bun") ? "bunx" : "npx --yes";
|
|
1522
1808
|
try {
|
|
1523
|
-
execSync(
|
|
1809
|
+
execSync(`${npxCmd} openspec init --tools opencode --force`, {
|
|
1524
1810
|
stdio: "pipe",
|
|
1525
1811
|
timeout: 120000
|
|
1526
1812
|
});
|
|
@@ -1532,122 +1818,223 @@ function setupOpenSpec() {
|
|
|
1532
1818
|
};
|
|
1533
1819
|
}
|
|
1534
1820
|
}
|
|
1535
|
-
function installEngram() {
|
|
1536
|
-
|
|
1821
|
+
async function installEngram(toolsDir) {
|
|
1822
|
+
const projectRoot = findProjectRoot();
|
|
1823
|
+
const engramToolDir = join4(toolsDir ?? join4(projectRoot, ".opencode", "tools"), "engram");
|
|
1824
|
+
const engramBinDir = join4(engramToolDir, "bin");
|
|
1825
|
+
if (!existsSync3(engramBinDir))
|
|
1826
|
+
mkdirSync2(engramBinDir, { recursive: true });
|
|
1827
|
+
const target = detectPlatformTarget();
|
|
1828
|
+
if (!target) {
|
|
1829
|
+
return {
|
|
1830
|
+
success: false,
|
|
1831
|
+
message: `Plataforma no soportada para descarga local: ${process.platform}/${process.arch}. Instalá Engram manualmente.`
|
|
1832
|
+
};
|
|
1833
|
+
}
|
|
1834
|
+
const localBin = join4(engramBinDir, "engram" + (process.platform === "win32" ? ".exe" : ""));
|
|
1835
|
+
if (existsSync3(localBin)) {
|
|
1537
1836
|
try {
|
|
1538
|
-
execSync("
|
|
1539
|
-
|
|
1540
|
-
|
|
1837
|
+
execSync(`"${localBin}" --version`, { stdio: "pipe", timeout: 1e4 });
|
|
1838
|
+
} catch {
|
|
1839
|
+
try {
|
|
1840
|
+
unlinkSync(localBin);
|
|
1841
|
+
} catch {}
|
|
1842
|
+
}
|
|
1843
|
+
}
|
|
1844
|
+
if (!existsSync3(localBin)) {
|
|
1845
|
+
const tag = await fetchLatestReleaseTag("Gentleman-Programming/engram");
|
|
1846
|
+
if (!tag) {
|
|
1541
1847
|
return {
|
|
1542
1848
|
success: false,
|
|
1543
|
-
message:
|
|
1849
|
+
message: "No se pudo obtener la última versión de Engram desde GitHub."
|
|
1544
1850
|
};
|
|
1545
1851
|
}
|
|
1546
|
-
|
|
1547
|
-
|
|
1852
|
+
const versionNum = tag.replace(/^v/, "");
|
|
1853
|
+
const [os, cpu] = target.split("-");
|
|
1854
|
+
const engramCpu = cpu === "x64" ? "amd64" : cpu;
|
|
1855
|
+
const ext = process.platform === "win32" ? "zip" : "tar.gz";
|
|
1856
|
+
const url = `https://github.com/Gentleman-Programming/engram/releases/download/${tag}/engram_${versionNum}_${os}_${engramCpu}.${ext}`;
|
|
1548
1857
|
try {
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1858
|
+
await downloadAndExtract(url, engramToolDir, 0, 120000);
|
|
1859
|
+
} catch (e2) {
|
|
1860
|
+
return {
|
|
1861
|
+
success: false,
|
|
1862
|
+
message: `Error descargando Engram ${tag}: ${e2.message}`
|
|
1863
|
+
};
|
|
1864
|
+
}
|
|
1865
|
+
const extractedBin = join4(engramToolDir, "engram" + (process.platform === "win32" ? ".exe" : ""));
|
|
1866
|
+
if (existsSync3(extractedBin) && extractedBin !== localBin) {
|
|
1867
|
+
try {
|
|
1868
|
+
copyFileSync(extractedBin, localBin);
|
|
1869
|
+
unlinkSync(extractedBin);
|
|
1870
|
+
} catch {}
|
|
1871
|
+
}
|
|
1872
|
+
if (!existsSync3(localBin)) {
|
|
1873
|
+
const found = findBinaryInDir(engramToolDir, "engram");
|
|
1874
|
+
if (found && found !== localBin) {
|
|
1875
|
+
try {
|
|
1876
|
+
copyFileSync(found, localBin);
|
|
1877
|
+
if (process.platform !== "win32")
|
|
1878
|
+
execSync(`chmod +x "${localBin}"`, { stdio: "pipe" });
|
|
1879
|
+
} catch {}
|
|
1553
1880
|
}
|
|
1554
|
-
}
|
|
1881
|
+
}
|
|
1882
|
+
if (!existsSync3(localBin)) {
|
|
1883
|
+
return {
|
|
1884
|
+
success: false,
|
|
1885
|
+
message: `Descarga de Engram ${tag} completada pero no se encontró el binario en ${localBin}.`
|
|
1886
|
+
};
|
|
1887
|
+
}
|
|
1888
|
+
if (process.platform !== "win32") {
|
|
1889
|
+
try {
|
|
1890
|
+
execSync(`chmod +x "${localBin}"`, { stdio: "pipe" });
|
|
1891
|
+
} catch {}
|
|
1892
|
+
}
|
|
1555
1893
|
}
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1894
|
+
setMcpEntry("engram", {
|
|
1895
|
+
type: "local",
|
|
1896
|
+
command: [`.opencode/tools/engram/bin/engram`, "mcp"],
|
|
1897
|
+
enabled: true
|
|
1898
|
+
});
|
|
1899
|
+
try {
|
|
1900
|
+
execSync(`"${localBin}" setup opencode`, { stdio: "pipe", timeout: 30000 });
|
|
1901
|
+
} catch {}
|
|
1902
|
+
return { success: true, message: "Engram instalado localmente en .opencode/tools/engram/bin/ y configurado para OpenCode (MCP + plugin)" };
|
|
1903
|
+
}
|
|
1904
|
+
function findBinaryInDir(dir, name) {
|
|
1905
|
+
const entries = readdirSync(dir);
|
|
1906
|
+
for (const entry of entries) {
|
|
1907
|
+
const full = join4(dir, entry);
|
|
1908
|
+
const stat = statSync(full);
|
|
1909
|
+
if (stat.isDirectory()) {
|
|
1910
|
+
const found = findBinaryInDir(full, name);
|
|
1911
|
+
if (found)
|
|
1912
|
+
return found;
|
|
1913
|
+
} else if (entry === name || entry === name + ".exe") {
|
|
1914
|
+
return full;
|
|
1915
|
+
}
|
|
1567
1916
|
}
|
|
1568
|
-
return
|
|
1569
|
-
success: false,
|
|
1570
|
-
message: `No se pudo instalar Engram automáticamente.
|
|
1571
|
-
` + ` - Tenés Go? Ejecutá: go install github.com/Gentleman-Programming/engram/cmd/engram@latest
|
|
1572
|
-
` + ` - O descargá el binario: https://github.com/Gentleman-Programming/engram/releases
|
|
1573
|
-
` + " - Después ejecutá: engram setup opencode"
|
|
1574
|
-
};
|
|
1917
|
+
return null;
|
|
1575
1918
|
}
|
|
1576
|
-
function
|
|
1919
|
+
function setupContext7(toolsDir) {
|
|
1577
1920
|
const projectRoot = findProjectRoot();
|
|
1578
|
-
const
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1921
|
+
const ctx7ToolDir = join4(toolsDir ?? join4(projectRoot, ".opencode", "tools"), "context7");
|
|
1922
|
+
if (!existsSync3(ctx7ToolDir))
|
|
1923
|
+
mkdirSync2(ctx7ToolDir, { recursive: true });
|
|
1924
|
+
ensureMcpEntry("context7", {
|
|
1925
|
+
type: "remote",
|
|
1926
|
+
url: "https://mcp.context7.com/mcp",
|
|
1927
|
+
enabled: true
|
|
1928
|
+
});
|
|
1929
|
+
const npxCmd = isCommandAvailable("bun") ? "bunx" : "npx --yes";
|
|
1930
|
+
try {
|
|
1931
|
+
execSync(`${npxCmd} ctx7 setup --opencode`, {
|
|
1932
|
+
stdio: "pipe",
|
|
1933
|
+
timeout: 60000
|
|
1934
|
+
});
|
|
1935
|
+
return { success: true, message: "Context7 configurado (MCP + skill instalado)" };
|
|
1936
|
+
} catch {
|
|
1937
|
+
return {
|
|
1938
|
+
success: true,
|
|
1939
|
+
message: "Context7 MCP registrado (skill opcional no instalada — corrí `npx ctx7 setup --opencode` manualmente si la querés)"
|
|
1940
|
+
};
|
|
1586
1941
|
}
|
|
1942
|
+
}
|
|
1943
|
+
function patchOpenCodeConfig() {
|
|
1944
|
+
const projectRoot = findProjectRoot();
|
|
1945
|
+
const configPath = findOpenCodeConfig(projectRoot);
|
|
1587
1946
|
if (!configPath) {
|
|
1588
1947
|
return {
|
|
1589
1948
|
success: false,
|
|
1590
1949
|
message: "No se encontró opencode.json ni opencode.jsonc"
|
|
1591
1950
|
};
|
|
1592
1951
|
}
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
const config = JSON.parse(raw);
|
|
1596
|
-
let changed = false;
|
|
1597
|
-
if ("plugin" in config) {
|
|
1598
|
-
delete config.plugin;
|
|
1599
|
-
changed = true;
|
|
1600
|
-
}
|
|
1601
|
-
if (changed) {
|
|
1602
|
-
writeFileSync3(configPath, JSON.stringify(config, null, 2) + `
|
|
1603
|
-
`, "utf-8");
|
|
1604
|
-
return { success: true, message: "Config actualizada (plugin legacy eliminado)" };
|
|
1605
|
-
}
|
|
1606
|
-
return { success: true, message: "Config de OpenCode ya está limpia" };
|
|
1607
|
-
} catch (e2) {
|
|
1952
|
+
const config = readOpenCodeConfig(configPath);
|
|
1953
|
+
if (!config) {
|
|
1608
1954
|
return {
|
|
1609
1955
|
success: false,
|
|
1610
|
-
message: `Error
|
|
1956
|
+
message: `Error parseando ${configPath}`
|
|
1611
1957
|
};
|
|
1612
1958
|
}
|
|
1959
|
+
let changed = false;
|
|
1960
|
+
if ("plugin" in config) {
|
|
1961
|
+
delete config.plugin;
|
|
1962
|
+
changed = true;
|
|
1963
|
+
}
|
|
1964
|
+
if (changed) {
|
|
1965
|
+
writeOpenCodeConfig(configPath, config);
|
|
1966
|
+
return { success: true, message: "Config actualizada (plugin legacy eliminado)" };
|
|
1967
|
+
}
|
|
1968
|
+
return { success: true, message: "Config de OpenCode ya está limpia" };
|
|
1613
1969
|
}
|
|
1614
1970
|
function uninstallEngramConfig() {
|
|
1615
1971
|
const projectRoot = findProjectRoot();
|
|
1616
|
-
const
|
|
1617
|
-
let configPath = null;
|
|
1618
|
-
for (const name of candidates) {
|
|
1619
|
-
const full = join4(projectRoot, name);
|
|
1620
|
-
if (existsSync3(full)) {
|
|
1621
|
-
configPath = full;
|
|
1622
|
-
break;
|
|
1623
|
-
}
|
|
1624
|
-
}
|
|
1972
|
+
const configPath = findOpenCodeConfig(projectRoot);
|
|
1625
1973
|
if (!configPath) {
|
|
1626
1974
|
return { success: false, message: "No se encontró opencode.json ni opencode.jsonc" };
|
|
1627
1975
|
}
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
changed = true;
|
|
1638
|
-
}
|
|
1639
|
-
if (!changed) {
|
|
1640
|
-
return { success: true, message: "Engram no estaba configurado en este proyecto" };
|
|
1976
|
+
const config = readOpenCodeConfig(configPath);
|
|
1977
|
+
if (!config) {
|
|
1978
|
+
return { success: false, message: `Error parseando ${configPath}` };
|
|
1979
|
+
}
|
|
1980
|
+
const mcp = config.mcp;
|
|
1981
|
+
if (mcp && "engram" in mcp) {
|
|
1982
|
+
delete mcp.engram;
|
|
1983
|
+
if (Object.keys(mcp).length === 0) {
|
|
1984
|
+
delete config.mcp;
|
|
1641
1985
|
}
|
|
1642
|
-
|
|
1643
|
-
`, "utf-8");
|
|
1986
|
+
writeOpenCodeConfig(configPath, config);
|
|
1644
1987
|
return { success: true, message: "Config de Engram eliminada de opencode.json" };
|
|
1645
|
-
} catch (e2) {
|
|
1646
|
-
return {
|
|
1647
|
-
success: false,
|
|
1648
|
-
message: `Error limpiando config de Engram: ${e2.message}`
|
|
1649
|
-
};
|
|
1650
1988
|
}
|
|
1989
|
+
return { success: true, message: "Engram no estaba configurado en este proyecto" };
|
|
1990
|
+
}
|
|
1991
|
+
function uninstallStackConfig(paths) {
|
|
1992
|
+
const projectRoot = findProjectRoot();
|
|
1993
|
+
const removed = [];
|
|
1994
|
+
const configPath = findOpenCodeConfig(projectRoot);
|
|
1995
|
+
if (configPath) {
|
|
1996
|
+
const config = readOpenCodeConfig(configPath);
|
|
1997
|
+
if (config) {
|
|
1998
|
+
const mcp = config.mcp;
|
|
1999
|
+
let changed = false;
|
|
2000
|
+
if (mcp) {
|
|
2001
|
+
for (const name of ["codegraph", "context7", "engram"]) {
|
|
2002
|
+
if (name in mcp) {
|
|
2003
|
+
delete mcp[name];
|
|
2004
|
+
removed.push(`mcp.${name}`);
|
|
2005
|
+
changed = true;
|
|
2006
|
+
}
|
|
2007
|
+
}
|
|
2008
|
+
if (Object.keys(mcp).length === 0) {
|
|
2009
|
+
delete config.mcp;
|
|
2010
|
+
changed = true;
|
|
2011
|
+
}
|
|
2012
|
+
}
|
|
2013
|
+
if (changed) {
|
|
2014
|
+
writeOpenCodeConfig(configPath, config);
|
|
2015
|
+
}
|
|
2016
|
+
}
|
|
2017
|
+
}
|
|
2018
|
+
const codegraphDir = join4(projectRoot, ".codegraph");
|
|
2019
|
+
if (existsSync3(codegraphDir)) {
|
|
2020
|
+
try {
|
|
2021
|
+
rmSync(codegraphDir, { recursive: true, force: true });
|
|
2022
|
+
removed.push(".codegraph/");
|
|
2023
|
+
} catch {}
|
|
2024
|
+
}
|
|
2025
|
+
if (existsSync3(paths.tools)) {
|
|
2026
|
+
try {
|
|
2027
|
+
rmSync(paths.tools, { recursive: true, force: true });
|
|
2028
|
+
removed.push(".opencode/tools/");
|
|
2029
|
+
} catch {}
|
|
2030
|
+
}
|
|
2031
|
+
if (removed.length === 0) {
|
|
2032
|
+
return { success: true, message: "No había configuración del stack para remover" };
|
|
2033
|
+
}
|
|
2034
|
+
return {
|
|
2035
|
+
success: true,
|
|
2036
|
+
message: `Removido: ${removed.join(", ")}. Los binarios globales (codegraph, engram) no se tocaron.`
|
|
2037
|
+
};
|
|
1651
2038
|
}
|
|
1652
2039
|
|
|
1653
2040
|
// src/prompts.ts
|
|
@@ -1686,11 +2073,11 @@ function printPostInstallSteps() {
|
|
|
1686
2073
|
].join(`
|
|
1687
2074
|
`), "Próximos pasos");
|
|
1688
2075
|
}
|
|
1689
|
-
async function doInstallStack() {
|
|
2076
|
+
async function doInstallStack(toolsDir) {
|
|
1690
2077
|
const spin = L2();
|
|
1691
2078
|
let allOk = true;
|
|
1692
2079
|
spin.start("Instalando CodeGraph...");
|
|
1693
|
-
const cg = installCodeGraph();
|
|
2080
|
+
const cg = await installCodeGraph(toolsDir);
|
|
1694
2081
|
spin.stop(cg.success ? `✓ ${cg.message}` : `✗ ${cg.message}`);
|
|
1695
2082
|
if (!cg.success)
|
|
1696
2083
|
allOk = false;
|
|
@@ -1700,10 +2087,15 @@ async function doInstallStack() {
|
|
|
1700
2087
|
if (!os.success)
|
|
1701
2088
|
allOk = false;
|
|
1702
2089
|
spin.start("Instalando Engram...");
|
|
1703
|
-
const eng = installEngram();
|
|
2090
|
+
const eng = await installEngram(toolsDir);
|
|
1704
2091
|
spin.stop(eng.success ? `✓ ${eng.message}` : `✗ ${eng.message}`);
|
|
1705
2092
|
if (!eng.success)
|
|
1706
2093
|
allOk = false;
|
|
2094
|
+
spin.start("Configurando Context7...");
|
|
2095
|
+
const ctx = setupContext7(toolsDir);
|
|
2096
|
+
spin.stop(ctx.success ? `✓ ${ctx.message}` : `✗ ${ctx.message}`);
|
|
2097
|
+
if (!ctx.success)
|
|
2098
|
+
allOk = false;
|
|
1707
2099
|
spin.start("Verificando configuración...");
|
|
1708
2100
|
const cfg = patchOpenCodeConfig();
|
|
1709
2101
|
spin.stop(cfg.success ? `✓ ${cfg.message}` : `✗ ${cfg.message}`);
|
|
@@ -1788,6 +2180,7 @@ function kindLabel(type) {
|
|
|
1788
2180
|
async function doInstallAll(manifest, paths) {
|
|
1789
2181
|
const spin = L2();
|
|
1790
2182
|
let errors = 0;
|
|
2183
|
+
ensureToolDirs(paths.tools, ["codegraph", "engram", "context7"]);
|
|
1791
2184
|
for (const agent of manifest.agents) {
|
|
1792
2185
|
spin.start(`Descargando agente: ${agent.name} (${agent.version})`);
|
|
1793
2186
|
try {
|
|
@@ -1828,14 +2221,14 @@ async function doInstallAll(manifest, paths) {
|
|
|
1828
2221
|
errors++;
|
|
1829
2222
|
}
|
|
1830
2223
|
}
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
await doInstallStack();
|
|
1834
|
-
}
|
|
2224
|
+
v2.info("Instalando stack de herramientas...");
|
|
2225
|
+
await doInstallStack(paths.tools);
|
|
1835
2226
|
const missingTools = [];
|
|
1836
|
-
|
|
2227
|
+
const codegraphBin = join5(paths.tools, "codegraph", "bin", "codegraph");
|
|
2228
|
+
const engramBin = join5(paths.tools, "engram", "bin", "engram");
|
|
2229
|
+
if (!existsSync4(codegraphBin))
|
|
1837
2230
|
missingTools.push("CodeGraph");
|
|
1838
|
-
if (!
|
|
2231
|
+
if (!existsSync4(engramBin))
|
|
1839
2232
|
missingTools.push("Engram");
|
|
1840
2233
|
if (missingTools.length > 0) {
|
|
1841
2234
|
v2.warn(`Faltan herramientas del stack: ${missingTools.join(", ")}.
|
|
@@ -1926,6 +2319,35 @@ async function doAddSkill(manifest, paths) {
|
|
|
1926
2319
|
}
|
|
1927
2320
|
}
|
|
1928
2321
|
}
|
|
2322
|
+
async function doAddMcp(manifest, paths) {
|
|
2323
|
+
const lockfile = readLockfile(paths.root);
|
|
2324
|
+
const options = (manifest.mcpServers ?? []).map((m3) => {
|
|
2325
|
+
const installed = getInstalledVersion(lockfile, "mcpServers", m3.name);
|
|
2326
|
+
const hint = installed ? `v${installed} instalado — ${m3.description}` : m3.description;
|
|
2327
|
+
return { value: m3.name, label: `${m3.name} (v${m3.version})`, hint };
|
|
2328
|
+
});
|
|
2329
|
+
if (options.length === 0) {
|
|
2330
|
+
v2.info("No hay MCP servers disponibles en el manifest.");
|
|
2331
|
+
return;
|
|
2332
|
+
}
|
|
2333
|
+
const selected = await pe({
|
|
2334
|
+
message: "¿Qué MCP servers deseas instalar?",
|
|
2335
|
+
options,
|
|
2336
|
+
required: true
|
|
2337
|
+
});
|
|
2338
|
+
onCancel(selected);
|
|
2339
|
+
const spin = L2();
|
|
2340
|
+
for (const name of selected) {
|
|
2341
|
+
const item = manifest.mcpServers.find((m3) => m3.name === name);
|
|
2342
|
+
spin.start(`Instalando MCP server: ${name} (${item.version})`);
|
|
2343
|
+
try {
|
|
2344
|
+
await installMcpServer(item, manifest, paths);
|
|
2345
|
+
spin.stop(`MCP server instalado: ${name} (${item.version})`);
|
|
2346
|
+
} catch (e2) {
|
|
2347
|
+
spin.stop(`Error: ${e2.message}`);
|
|
2348
|
+
}
|
|
2349
|
+
}
|
|
2350
|
+
}
|
|
1929
2351
|
async function doUpdate(manifest, paths) {
|
|
1930
2352
|
const candidates = getUpdateCandidates(manifest, paths);
|
|
1931
2353
|
if (candidates.length === 0) {
|
|
@@ -1983,6 +2405,8 @@ async function runInteractiveMenu() {
|
|
|
1983
2405
|
{ value: "agent", label: "Instalar agente" },
|
|
1984
2406
|
{ value: "command", label: "Instalar command" },
|
|
1985
2407
|
{ value: "skill", label: "Instalar skill" },
|
|
2408
|
+
{ value: "mcp", label: "Instalar MCP server" },
|
|
2409
|
+
{ value: "stack", label: "Instalar stack de herramientas (CodeGraph, Engram, Context7)" },
|
|
1986
2410
|
{ value: "update", label: "Actualizar instalación" },
|
|
1987
2411
|
{ value: "uninstall", label: "Desinstalar" },
|
|
1988
2412
|
{ value: "exit", label: "Salir" }
|
|
@@ -2010,6 +2434,17 @@ async function runInteractiveMenu() {
|
|
|
2010
2434
|
printPostInstallSteps();
|
|
2011
2435
|
fe("Listo.");
|
|
2012
2436
|
break;
|
|
2437
|
+
case "mcp":
|
|
2438
|
+
await doAddMcp(manifest, paths);
|
|
2439
|
+
printPostInstallSteps();
|
|
2440
|
+
fe("Listo.");
|
|
2441
|
+
break;
|
|
2442
|
+
case "stack": {
|
|
2443
|
+
ensureToolDirs(paths.tools, ["codegraph", "engram", "context7"]);
|
|
2444
|
+
await doInstallStack(paths.tools);
|
|
2445
|
+
fe("Listo.");
|
|
2446
|
+
break;
|
|
2447
|
+
}
|
|
2013
2448
|
case "update": {
|
|
2014
2449
|
const latestManifest = await loadLatestManifest();
|
|
2015
2450
|
await doUpdate(latestManifest, paths);
|
|
@@ -2073,6 +2508,52 @@ async function runAddSkillCommand() {
|
|
|
2073
2508
|
printPostInstallSteps();
|
|
2074
2509
|
fe("Listo.");
|
|
2075
2510
|
}
|
|
2511
|
+
async function runAddMcpCommand() {
|
|
2512
|
+
we(" OpenCode Installer ");
|
|
2513
|
+
const manifest = await loadManifest();
|
|
2514
|
+
const paths = await resolveOpenCodePaths();
|
|
2515
|
+
if (!paths) {
|
|
2516
|
+
fe("Cancelado.");
|
|
2517
|
+
return;
|
|
2518
|
+
}
|
|
2519
|
+
await doAddMcp(manifest, paths);
|
|
2520
|
+
printPostInstallSteps();
|
|
2521
|
+
fe("Listo.");
|
|
2522
|
+
}
|
|
2523
|
+
async function runInstallStackCommand() {
|
|
2524
|
+
we(" OpenCode Installer — Stack ");
|
|
2525
|
+
const paths = await resolveOpenCodePaths();
|
|
2526
|
+
if (!paths) {
|
|
2527
|
+
fe("Cancelado.");
|
|
2528
|
+
return;
|
|
2529
|
+
}
|
|
2530
|
+
ensureToolDirs(paths.tools, ["codegraph", "engram", "context7"]);
|
|
2531
|
+
await doInstallStack(paths.tools);
|
|
2532
|
+
fe("Stack instalado.");
|
|
2533
|
+
}
|
|
2534
|
+
async function runUninstallStackCommand() {
|
|
2535
|
+
we(" OpenCode Installer — Stack ");
|
|
2536
|
+
const paths = await resolveOpenCodePaths();
|
|
2537
|
+
if (!paths) {
|
|
2538
|
+
fe("Cancelado.");
|
|
2539
|
+
return;
|
|
2540
|
+
}
|
|
2541
|
+
const confirm = await me({
|
|
2542
|
+
message: "¿Remover la configuración del stack (CodeGraph, Engram, Context7) del proyecto? Los binarios globales no se tocan."
|
|
2543
|
+
});
|
|
2544
|
+
onCancel(confirm);
|
|
2545
|
+
if (!confirm) {
|
|
2546
|
+
fe("Cancelado.");
|
|
2547
|
+
return;
|
|
2548
|
+
}
|
|
2549
|
+
const result = uninstallStackConfig(paths);
|
|
2550
|
+
if (result.success) {
|
|
2551
|
+
v2.success(result.message);
|
|
2552
|
+
} else {
|
|
2553
|
+
v2.warn(result.message);
|
|
2554
|
+
}
|
|
2555
|
+
fe("Stack desinstalado.");
|
|
2556
|
+
}
|
|
2076
2557
|
async function runUpdateCommand() {
|
|
2077
2558
|
we(" OpenCode Installer ");
|
|
2078
2559
|
const manifest = await loadLatestManifest();
|
|
@@ -2101,7 +2582,7 @@ async function doUninstallTotal(paths) {
|
|
|
2101
2582
|
pathsToDelete.push(join5(paths.skills, name));
|
|
2102
2583
|
}
|
|
2103
2584
|
for (const name of Object.keys(lockfile.mcpServers ?? {})) {
|
|
2104
|
-
pathsToDelete.push(join5(paths.
|
|
2585
|
+
pathsToDelete.push(join5(paths.mcp, name));
|
|
2105
2586
|
}
|
|
2106
2587
|
ye(pathsToDelete.join(`
|
|
2107
2588
|
`), `Se eliminarán ${pathsToDelete.length} archivo(s) / directorio(s)`);
|
|
@@ -2221,14 +2702,46 @@ async function doUninstallSkill(paths) {
|
|
|
2221
2702
|
}
|
|
2222
2703
|
}
|
|
2223
2704
|
}
|
|
2705
|
+
async function doUninstallMcp(paths) {
|
|
2706
|
+
const lockfile = readLockfile(paths.root);
|
|
2707
|
+
if (!lockfile) {
|
|
2708
|
+
v2.warn("No hay instalación registrada.");
|
|
2709
|
+
return;
|
|
2710
|
+
}
|
|
2711
|
+
const installed = Object.keys(lockfile.mcpServers ?? {});
|
|
2712
|
+
if (installed.length === 0) {
|
|
2713
|
+
v2.info("No hay MCP servers instalados.");
|
|
2714
|
+
return;
|
|
2715
|
+
}
|
|
2716
|
+
const options = installed.map((name) => ({
|
|
2717
|
+
value: name,
|
|
2718
|
+
label: name,
|
|
2719
|
+
hint: `v${lockfile.mcpServers[name].version}`
|
|
2720
|
+
}));
|
|
2721
|
+
const selected = await pe({
|
|
2722
|
+
message: "¿Qué MCP servers querés desinstalar?",
|
|
2723
|
+
options,
|
|
2724
|
+
required: true
|
|
2725
|
+
});
|
|
2726
|
+
onCancel(selected);
|
|
2727
|
+
for (const name of selected) {
|
|
2728
|
+
const ok = uninstallMcpServer(name, paths);
|
|
2729
|
+
if (ok) {
|
|
2730
|
+
v2.success(`MCP server eliminado: ${name}`);
|
|
2731
|
+
} else {
|
|
2732
|
+
v2.warn(`No se pudo eliminar el MCP server: ${name}`);
|
|
2733
|
+
}
|
|
2734
|
+
}
|
|
2735
|
+
}
|
|
2224
2736
|
async function doUninstall(paths) {
|
|
2225
2737
|
const scope = await de({
|
|
2226
2738
|
message: "¿Qué querés desinstalar?",
|
|
2227
2739
|
options: [
|
|
2228
|
-
{ value: "all", label: "Todo (agentes + commands + skills)" },
|
|
2740
|
+
{ value: "all", label: "Todo (agentes + commands + skills + MCPs)" },
|
|
2229
2741
|
{ value: "agent", label: "Solo un agente" },
|
|
2230
2742
|
{ value: "command", label: "Solo un command" },
|
|
2231
|
-
{ value: "skill", label: "Solo una skill" }
|
|
2743
|
+
{ value: "skill", label: "Solo una skill" },
|
|
2744
|
+
{ value: "mcp", label: "Solo un MCP server" }
|
|
2232
2745
|
]
|
|
2233
2746
|
});
|
|
2234
2747
|
onCancel(scope);
|
|
@@ -2245,6 +2758,9 @@ async function doUninstall(paths) {
|
|
|
2245
2758
|
case "skill":
|
|
2246
2759
|
await doUninstallSkill(paths);
|
|
2247
2760
|
break;
|
|
2761
|
+
case "mcp":
|
|
2762
|
+
await doUninstallMcp(paths);
|
|
2763
|
+
break;
|
|
2248
2764
|
}
|
|
2249
2765
|
}
|
|
2250
2766
|
async function runUninstallCommand() {
|
|
@@ -2371,22 +2887,64 @@ async function runUninstallSkillCommand(name) {
|
|
|
2371
2887
|
}
|
|
2372
2888
|
fe("Listo.");
|
|
2373
2889
|
}
|
|
2890
|
+
async function runUninstallMcpCommand(name) {
|
|
2891
|
+
we(" OpenCode Installer ");
|
|
2892
|
+
const paths = await resolveOpenCodePaths();
|
|
2893
|
+
if (!paths) {
|
|
2894
|
+
fe("Cancelado.");
|
|
2895
|
+
return;
|
|
2896
|
+
}
|
|
2897
|
+
if (name) {
|
|
2898
|
+
try {
|
|
2899
|
+
validateFilePath(name);
|
|
2900
|
+
} catch (e2) {
|
|
2901
|
+
v2.warn(`Nombre inválido: ${e2.message}`);
|
|
2902
|
+
return;
|
|
2903
|
+
}
|
|
2904
|
+
const lockfile = readLockfile(paths.root);
|
|
2905
|
+
if (!lockfile || !lockfile.mcpServers || !(name in lockfile.mcpServers)) {
|
|
2906
|
+
v2.warn(`${name} no está instalado.`);
|
|
2907
|
+
return;
|
|
2908
|
+
}
|
|
2909
|
+
const dirPath = join5(paths.mcp, name);
|
|
2910
|
+
ye(dirPath, `Se eliminará`);
|
|
2911
|
+
const confirm = await me({ message: `¿Borrar el MCP server "${name}"?` });
|
|
2912
|
+
onCancel(confirm);
|
|
2913
|
+
if (!confirm) {
|
|
2914
|
+
v2.info("Cancelado.");
|
|
2915
|
+
return;
|
|
2916
|
+
}
|
|
2917
|
+
const ok = uninstallMcpServer(name, paths);
|
|
2918
|
+
if (ok) {
|
|
2919
|
+
v2.success(`MCP server eliminado: ${name}`);
|
|
2920
|
+
} else {
|
|
2921
|
+
v2.warn(`No se pudo eliminar el MCP server: ${name}`);
|
|
2922
|
+
}
|
|
2923
|
+
} else {
|
|
2924
|
+
await doUninstallMcp(paths);
|
|
2925
|
+
}
|
|
2926
|
+
fe("Listo.");
|
|
2927
|
+
}
|
|
2374
2928
|
|
|
2375
2929
|
// src/cli.ts
|
|
2376
2930
|
var HELP = `
|
|
2377
|
-
ostacky — Instalador de agentes, comandos y
|
|
2931
|
+
ostacky — Instalador de agentes, comandos, skills y MCPs para OpenCode
|
|
2378
2932
|
|
|
2379
2933
|
Uso:
|
|
2380
2934
|
npx ostacky Menú interactivo (instalación completa)
|
|
2381
|
-
npx ostacky install Instalar TODO (agente + skills + CodeGraph + OpenSpec + Engram)
|
|
2935
|
+
npx ostacky install Instalar TODO (agente + skills + MCPs + CodeGraph + OpenSpec + Engram + Context7)
|
|
2382
2936
|
npx ostacky add agent Agregar agente(s)
|
|
2383
2937
|
npx ostacky add command Agregar command(s)
|
|
2384
2938
|
npx ostacky add skill Agregar skill(s)
|
|
2939
|
+
npx ostacky add mcp Agregar MCP server(s)
|
|
2940
|
+
npx ostacky install-stack Instalar solo el stack de herramientas (CodeGraph, OpenSpec, Engram, Context7)
|
|
2941
|
+
npx ostacky uninstall-stack Remover la configuración del stack del proyecto
|
|
2385
2942
|
npx ostacky update Actualizar instalación
|
|
2386
2943
|
npx ostacky uninstall Desinstalar todo
|
|
2387
2944
|
npx ostacky uninstall agent Desinstalar agente(s)
|
|
2388
2945
|
npx ostacky uninstall command Desinstalar command(s)
|
|
2389
2946
|
npx ostacky uninstall skill Desinstalar skill(s)
|
|
2947
|
+
npx ostacky uninstall mcp Desinstalar MCP server(s)
|
|
2390
2948
|
npx ostacky --help Mostrar esta ayuda
|
|
2391
2949
|
npx ostacky --version Mostrar versión
|
|
2392
2950
|
`.trim();
|
|
@@ -2396,6 +2954,12 @@ async function main() {
|
|
|
2396
2954
|
case "install":
|
|
2397
2955
|
await runInstallCommand();
|
|
2398
2956
|
break;
|
|
2957
|
+
case "install-stack":
|
|
2958
|
+
await runInstallStackCommand();
|
|
2959
|
+
break;
|
|
2960
|
+
case "uninstall-stack":
|
|
2961
|
+
await runUninstallStackCommand();
|
|
2962
|
+
break;
|
|
2399
2963
|
case "add":
|
|
2400
2964
|
if (subcmd === "agent") {
|
|
2401
2965
|
await runAddAgentCommand();
|
|
@@ -2403,8 +2967,10 @@ async function main() {
|
|
|
2403
2967
|
await runAddCommandCommand();
|
|
2404
2968
|
} else if (subcmd === "skill") {
|
|
2405
2969
|
await runAddSkillCommand();
|
|
2970
|
+
} else if (subcmd === "mcp") {
|
|
2971
|
+
await runAddMcpCommand();
|
|
2406
2972
|
} else {
|
|
2407
|
-
console.error(`Tipo desconocido: "${subcmd}". Usa 'agent', 'command' o '
|
|
2973
|
+
console.error(`Tipo desconocido: "${subcmd}". Usa 'agent', 'command', 'skill' o 'mcp'.`);
|
|
2408
2974
|
process.exit(1);
|
|
2409
2975
|
}
|
|
2410
2976
|
break;
|
|
@@ -2421,10 +2987,13 @@ async function main() {
|
|
|
2421
2987
|
} else if (subcmd === "skill") {
|
|
2422
2988
|
const name = process.argv[4];
|
|
2423
2989
|
await runUninstallSkillCommand(name);
|
|
2990
|
+
} else if (subcmd === "mcp") {
|
|
2991
|
+
const name = process.argv[4];
|
|
2992
|
+
await runUninstallMcpCommand(name);
|
|
2424
2993
|
} else if (subcmd === undefined) {
|
|
2425
2994
|
await runUninstallCommand();
|
|
2426
2995
|
} else {
|
|
2427
|
-
console.error(`Subcomando desconocido: "${subcmd}". Usa 'agent', 'command', 'skill' o nada.`);
|
|
2996
|
+
console.error(`Subcomando desconocido: "${subcmd}". Usa 'agent', 'command', 'skill', 'mcp' o nada.`);
|
|
2428
2997
|
process.exit(1);
|
|
2429
2998
|
}
|
|
2430
2999
|
break;
|