@better-openclaw/core 1.0.23 → 1.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bare-metal-partition.test.cjs +3 -4
- package/dist/bare-metal-partition.test.cjs.map +1 -1
- package/dist/bare-metal-partition.test.mjs +3 -4
- package/dist/bare-metal-partition.test.mjs.map +1 -1
- package/dist/composer.cjs +13 -1
- package/dist/composer.cjs.map +1 -1
- package/dist/composer.d.cts.map +1 -1
- package/dist/composer.d.mts.map +1 -1
- package/dist/composer.mjs +13 -1
- package/dist/composer.mjs.map +1 -1
- package/dist/composer.snapshot.test.cjs +1 -1
- package/dist/composer.snapshot.test.mjs +1 -1
- package/dist/composer.test.cjs +3 -2
- package/dist/composer.test.cjs.map +1 -1
- package/dist/composer.test.mjs +3 -2
- package/dist/composer.test.mjs.map +1 -1
- package/dist/deployers/strip-host-ports.test.cjs +1 -1
- package/dist/deployers/strip-host-ports.test.mjs +1 -1
- package/dist/generate.cjs +6 -2
- package/dist/generate.cjs.map +1 -1
- package/dist/generate.d.cts.map +1 -1
- package/dist/generate.d.mts.map +1 -1
- package/dist/generate.mjs +6 -2
- package/dist/generate.mjs.map +1 -1
- package/dist/generate.test.cjs +2 -2
- package/dist/generate.test.cjs.map +1 -1
- package/dist/generate.test.mjs +2 -2
- package/dist/generate.test.mjs.map +1 -1
- package/dist/generators/bare-metal-install.test.cjs +1 -1
- package/dist/generators/bare-metal-install.test.mjs +1 -1
- package/dist/generators/caddy.test.cjs +1 -1
- package/dist/generators/caddy.test.mjs +1 -1
- package/dist/generators/clone-repos.cjs +140 -0
- package/dist/generators/clone-repos.cjs.map +1 -0
- package/dist/generators/clone-repos.d.cts +11 -0
- package/dist/generators/clone-repos.d.cts.map +1 -0
- package/dist/generators/clone-repos.d.mts +11 -0
- package/dist/generators/clone-repos.d.mts.map +1 -0
- package/dist/generators/clone-repos.mjs +139 -0
- package/dist/generators/clone-repos.mjs.map +1 -0
- package/dist/generators/clone-repos.test.cjs +140 -0
- package/dist/generators/clone-repos.test.cjs.map +1 -0
- package/dist/generators/clone-repos.test.d.cts +1 -0
- package/dist/generators/clone-repos.test.d.mts +1 -0
- package/dist/generators/clone-repos.test.mjs +141 -0
- package/dist/generators/clone-repos.test.mjs.map +1 -0
- package/dist/generators/env.test.cjs +1 -1
- package/dist/generators/env.test.mjs +1 -1
- package/dist/generators/health-check.test.cjs +1 -1
- package/dist/generators/health-check.test.mjs +1 -1
- package/dist/generators/postgres-init.cjs +20 -0
- package/dist/generators/postgres-init.cjs.map +1 -1
- package/dist/generators/postgres-init.d.cts.map +1 -1
- package/dist/generators/postgres-init.d.mts.map +1 -1
- package/dist/generators/postgres-init.mjs +20 -0
- package/dist/generators/postgres-init.mjs.map +1 -1
- package/dist/generators/scripts.cjs +332 -3
- package/dist/generators/scripts.cjs.map +1 -1
- package/dist/generators/scripts.d.cts +3 -1
- package/dist/generators/scripts.d.cts.map +1 -1
- package/dist/generators/scripts.d.mts +3 -1
- package/dist/generators/scripts.d.mts.map +1 -1
- package/dist/generators/scripts.mjs +332 -3
- package/dist/generators/scripts.mjs.map +1 -1
- package/dist/generators/scripts.test.cjs +39 -5
- package/dist/generators/scripts.test.cjs.map +1 -1
- package/dist/generators/scripts.test.mjs +39 -5
- package/dist/generators/scripts.test.mjs.map +1 -1
- package/dist/generators/stack-manifest.cjs +1 -0
- package/dist/generators/stack-manifest.cjs.map +1 -1
- package/dist/generators/stack-manifest.d.cts +3 -2
- package/dist/generators/stack-manifest.d.cts.map +1 -1
- package/dist/generators/stack-manifest.d.mts +3 -2
- package/dist/generators/stack-manifest.d.mts.map +1 -1
- package/dist/generators/stack-manifest.mjs +1 -0
- package/dist/generators/stack-manifest.mjs.map +1 -1
- package/dist/generators/traefik.test.cjs +1 -1
- package/dist/generators/traefik.test.mjs +1 -1
- package/dist/index.cjs +8 -1
- package/dist/index.d.cts +5 -3
- package/dist/index.d.mts +5 -3
- package/dist/index.mjs +5 -3
- package/dist/migrations.test.cjs +1 -1
- package/dist/migrations.test.mjs +1 -1
- package/dist/presets/registry.cjs.map +1 -1
- package/dist/presets/registry.d.cts.map +1 -1
- package/dist/presets/registry.d.mts.map +1 -1
- package/dist/presets/registry.mjs.map +1 -1
- package/dist/presets/registry.test.cjs +1 -1
- package/dist/presets/registry.test.mjs +1 -1
- package/dist/resolver.cjs +8 -0
- package/dist/resolver.cjs.map +1 -1
- package/dist/resolver.mjs +9 -1
- package/dist/resolver.mjs.map +1 -1
- package/dist/resolver.test.cjs +47 -12
- package/dist/resolver.test.cjs.map +1 -1
- package/dist/resolver.test.mjs +47 -12
- package/dist/resolver.test.mjs.map +1 -1
- package/dist/{schema-B4c64P8N.d.cts → schema-eX44HhRp.d.mts} +62 -8
- package/dist/schema-eX44HhRp.d.mts.map +1 -0
- package/dist/{schema-CXNhYci1.d.mts → schema-tn5RK8CM.d.cts} +62 -8
- package/dist/schema-tn5RK8CM.d.cts.map +1 -0
- package/dist/schema.cjs +22 -4
- package/dist/schema.cjs.map +1 -1
- package/dist/schema.d.cts +2 -2
- package/dist/schema.d.mts +2 -2
- package/dist/schema.mjs +21 -5
- package/dist/schema.mjs.map +1 -1
- package/dist/schema.test.cjs +1 -1
- package/dist/schema.test.mjs +1 -1
- package/dist/services/definitions/apptension-saas.cjs +87 -0
- package/dist/services/definitions/apptension-saas.cjs.map +1 -0
- package/dist/services/definitions/apptension-saas.d.cts +7 -0
- package/dist/services/definitions/apptension-saas.d.cts.map +1 -0
- package/dist/services/definitions/apptension-saas.d.mts +7 -0
- package/dist/services/definitions/apptension-saas.d.mts.map +1 -0
- package/dist/services/definitions/apptension-saas.mjs +86 -0
- package/dist/services/definitions/apptension-saas.mjs.map +1 -0
- package/dist/services/definitions/boxyhq-saas.cjs +88 -0
- package/dist/services/definitions/boxyhq-saas.cjs.map +1 -0
- package/dist/services/definitions/boxyhq-saas.d.cts +7 -0
- package/dist/services/definitions/boxyhq-saas.d.cts.map +1 -0
- package/dist/services/definitions/boxyhq-saas.d.mts +7 -0
- package/dist/services/definitions/boxyhq-saas.d.mts.map +1 -0
- package/dist/services/definitions/boxyhq-saas.mjs +87 -0
- package/dist/services/definitions/boxyhq-saas.mjs.map +1 -0
- package/dist/services/definitions/cmsaas-starter.cjs +86 -0
- package/dist/services/definitions/cmsaas-starter.cjs.map +1 -0
- package/dist/services/definitions/cmsaas-starter.d.cts +7 -0
- package/dist/services/definitions/cmsaas-starter.d.cts.map +1 -0
- package/dist/services/definitions/cmsaas-starter.d.mts +7 -0
- package/dist/services/definitions/cmsaas-starter.d.mts.map +1 -0
- package/dist/services/definitions/cmsaas-starter.mjs +85 -0
- package/dist/services/definitions/cmsaas-starter.mjs.map +1 -0
- package/dist/services/definitions/index.cjs +51 -36
- package/dist/services/definitions/index.cjs.map +1 -1
- package/dist/services/definitions/index.d.cts +30 -25
- package/dist/services/definitions/index.d.cts.map +1 -1
- package/dist/services/definitions/index.d.mts +30 -25
- package/dist/services/definitions/index.d.mts.map +1 -1
- package/dist/services/definitions/index.mjs +47 -37
- package/dist/services/definitions/index.mjs.map +1 -1
- package/dist/services/definitions/ixartz-saas.cjs +88 -0
- package/dist/services/definitions/ixartz-saas.cjs.map +1 -0
- package/dist/services/definitions/ixartz-saas.d.cts +7 -0
- package/dist/services/definitions/ixartz-saas.d.cts.map +1 -0
- package/dist/services/definitions/ixartz-saas.d.mts +7 -0
- package/dist/services/definitions/ixartz-saas.d.mts.map +1 -0
- package/dist/services/definitions/ixartz-saas.mjs +87 -0
- package/dist/services/definitions/ixartz-saas.mjs.map +1 -0
- package/dist/services/definitions/mission-control.cjs +16 -2
- package/dist/services/definitions/mission-control.cjs.map +1 -1
- package/dist/services/definitions/mission-control.mjs +16 -2
- package/dist/services/definitions/mission-control.mjs.map +1 -1
- package/dist/services/definitions/open-saas.cjs +81 -0
- package/dist/services/definitions/open-saas.cjs.map +1 -0
- package/dist/services/definitions/open-saas.d.cts +7 -0
- package/dist/services/definitions/open-saas.d.cts.map +1 -0
- package/dist/services/definitions/open-saas.d.mts +7 -0
- package/dist/services/definitions/open-saas.d.mts.map +1 -0
- package/dist/services/definitions/open-saas.mjs +80 -0
- package/dist/services/definitions/open-saas.mjs.map +1 -0
- package/dist/services/registry.cjs +3 -0
- package/dist/services/registry.cjs.map +1 -1
- package/dist/services/registry.d.cts.map +1 -1
- package/dist/services/registry.d.mts.map +1 -1
- package/dist/services/registry.mjs +3 -0
- package/dist/services/registry.mjs.map +1 -1
- package/dist/services/registry.test.cjs +8 -1
- package/dist/services/registry.test.cjs.map +1 -1
- package/dist/services/registry.test.mjs +8 -1
- package/dist/services/registry.test.mjs.map +1 -1
- package/dist/{skill-manifest-BVUXU0__.mjs → skill-manifest-6XhrhWsG.mjs} +49 -1
- package/dist/{skill-manifest--IgY9REK.cjs.map → skill-manifest-6XhrhWsG.mjs.map} +1 -1
- package/dist/{skill-manifest--IgY9REK.cjs → skill-manifest-B8znSsym.cjs} +49 -1
- package/dist/{skill-manifest-BVUXU0__.mjs.map → skill-manifest-B8znSsym.cjs.map} +1 -1
- package/dist/skills/registry.cjs +3 -3
- package/dist/skills/registry.cjs.map +1 -1
- package/dist/skills/registry.mjs +3 -3
- package/dist/skills/registry.mjs.map +1 -1
- package/dist/skills/skill-manifest.cjs +1 -1
- package/dist/skills/skill-manifest.mjs +1 -1
- package/dist/track-analytics.cjs +50 -0
- package/dist/track-analytics.cjs.map +1 -0
- package/dist/track-analytics.d.cts +34 -0
- package/dist/track-analytics.d.cts.map +1 -0
- package/dist/track-analytics.d.mts +34 -0
- package/dist/track-analytics.d.mts.map +1 -0
- package/dist/track-analytics.mjs +48 -0
- package/dist/track-analytics.mjs.map +1 -0
- package/dist/track-analytics.test.cjs +91 -0
- package/dist/track-analytics.test.cjs.map +1 -0
- package/dist/track-analytics.test.d.cts +1 -0
- package/dist/track-analytics.test.d.mts +1 -0
- package/dist/track-analytics.test.mjs +92 -0
- package/dist/track-analytics.test.mjs.map +1 -0
- package/dist/types.cjs +7 -0
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +4 -2
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +4 -2
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs +7 -0
- package/dist/types.mjs.map +1 -1
- package/dist/validator.test.cjs +1 -1
- package/dist/validator.test.mjs +1 -1
- package/dist/version-manager.cjs +1 -1
- package/dist/version-manager.cjs.map +1 -1
- package/dist/version-manager.mjs +1 -1
- package/dist/version-manager.mjs.map +1 -1
- package/dist/version-manager.test.cjs +7 -5
- package/dist/version-manager.test.cjs.map +1 -1
- package/dist/version-manager.test.mjs +7 -5
- package/dist/version-manager.test.mjs.map +1 -1
- package/dist/{vi.2VT5v0um-DvC3SVNc.mjs → vi.2VT5v0um-C_jmO7m2.mjs} +5 -5
- package/dist/{vi.2VT5v0um-DvC3SVNc.mjs.map → vi.2VT5v0um-C_jmO7m2.mjs.map} +1 -1
- package/dist/{vi.2VT5v0um-CRqXre87.cjs → vi.2VT5v0um-iVBt6Fyq.cjs} +5 -5
- package/dist/{vi.2VT5v0um-CRqXre87.cjs.map → vi.2VT5v0um-iVBt6Fyq.cjs.map} +1 -1
- package/package.json +1 -1
- package/src/__snapshots__/composer.snapshot.test.ts.snap +155 -0
- package/src/bare-metal-partition.test.ts +4 -3
- package/src/composer.test.ts +4 -2
- package/src/composer.ts +20 -1
- package/src/generate.test.ts +2 -1
- package/src/generate.ts +10 -1
- package/src/generators/clone-repos.test.ts +154 -0
- package/src/generators/clone-repos.ts +159 -0
- package/src/generators/postgres-init.ts +17 -0
- package/src/generators/scripts.test.ts +52 -4
- package/src/generators/scripts.ts +351 -3
- package/src/generators/stack-manifest.ts +4 -2
- package/src/index.ts +8 -0
- package/src/presets/registry.ts +241 -329
- package/src/resolver.test.ts +53 -15
- package/src/resolver.ts +13 -1
- package/src/schema.ts +33 -4
- package/src/services/definitions/apptension-saas.ts +84 -0
- package/src/services/definitions/boxyhq-saas.ts +84 -0
- package/src/services/definitions/cmsaas-starter.ts +84 -0
- package/src/services/definitions/index.ts +90 -70
- package/src/services/definitions/ixartz-saas.ts +84 -0
- package/src/services/definitions/mission-control.ts +19 -2
- package/src/services/definitions/open-saas.ts +79 -0
- package/src/services/registry.test.ts +8 -0
- package/src/services/registry.ts +7 -0
- package/src/skills/manifest.json +64 -0
- package/src/skills/registry.ts +3 -3
- package/src/track-analytics.test.ts +82 -0
- package/src/track-analytics.ts +76 -0
- package/src/types.ts +11 -0
- package/src/version-manager.test.ts +10 -5
- package/src/version-manager.ts +1 -1
- package/dist/schema-B4c64P8N.d.cts.map +0 -1
- package/dist/schema-CXNhYci1.d.mts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scripts.test.mjs","names":[],"sources":["../../src/generators/scripts.test.ts"],"sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport { generateScripts } from \"./scripts.js\";\n\ndescribe(\"generateScripts\", () => {\n\tit(\"generates all
|
|
1
|
+
{"version":3,"file":"scripts.test.mjs","names":[],"sources":["../../src/generators/scripts.test.ts"],"sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport { generateScripts } from \"./scripts.js\";\n\ndescribe(\"generateScripts\", () => {\n\tit(\"generates all 10 expected scripts (5 bash + 5 PowerShell)\", () => {\n\t\tconst result = generateScripts();\n\n\t\tconst expectedScripts = [\n\t\t\t\"scripts/start.sh\",\n\t\t\t\"scripts/stop.sh\",\n\t\t\t\"scripts/update.sh\",\n\t\t\t\"scripts/backup.sh\",\n\t\t\t\"scripts/status.sh\",\n\t\t\t\"scripts/start.ps1\",\n\t\t\t\"scripts/stop.ps1\",\n\t\t\t\"scripts/update.ps1\",\n\t\t\t\"scripts/backup.ps1\",\n\t\t\t\"scripts/status.ps1\",\n\t\t];\n\n\t\tfor (const script of expectedScripts) {\n\t\t\texpect(result).toHaveProperty(script);\n\t\t\texpect(result[script]!.length).toBeGreaterThan(0);\n\t\t}\n\t});\n\n\tit(\"start.sh calls docker compose up\", () => {\n\t\tconst result = generateScripts();\n\t\texpect(result[\"scripts/start.sh\"]).toContain(\"docker compose\");\n\t\texpect(result[\"scripts/start.sh\"]).toContain(\"up\");\n\t});\n\n\tit(\"stop.sh calls docker compose down\", () => {\n\t\tconst result = generateScripts();\n\t\texpect(result[\"scripts/stop.sh\"]).toContain(\"docker compose\");\n\t\texpect(result[\"scripts/stop.sh\"]).toContain(\"down\");\n\t});\n\n\tit(\"update.sh calls docker compose pull\", () => {\n\t\tconst result = generateScripts();\n\t\texpect(result[\"scripts/update.sh\"]).toContain(\"docker compose\");\n\t\texpect(result[\"scripts/update.sh\"]).toContain(\"pull\");\n\t});\n\n\tit(\"backup.sh references volumes or backup\", () => {\n\t\tconst result = generateScripts();\n\t\tconst backup = result[\"scripts/backup.sh\"]!;\n\t\texpect(backup).toBeDefined();\n\t\texpect(backup.length).toBeGreaterThan(50);\n\t});\n\n\tit(\"status.sh calls docker compose ps\", () => {\n\t\tconst result = generateScripts();\n\t\texpect(result[\"scripts/status.sh\"]).toContain(\"docker compose\");\n\t\texpect(result[\"scripts/status.sh\"]).toContain(\"ps\");\n\t});\n\n\tit(\"all bash scripts start with shebang\", () => {\n\t\tconst result = generateScripts();\n\n\t\tfor (const [path, content] of Object.entries(result)) {\n\t\t\tif (path.endsWith(\".sh\")) {\n\t\t\t\texpect(content.startsWith(\"#!/\")).toBe(true);\n\t\t\t}\n\t\t}\n\t});\n\n\tit(\"all PowerShell scripts start with #Requires\", () => {\n\t\tconst result = generateScripts();\n\n\t\tfor (const [path, content] of Object.entries(result)) {\n\t\t\tif (path.endsWith(\".ps1\")) {\n\t\t\t\texpect(content.startsWith(\"#Requires\")).toBe(true);\n\t\t\t}\n\t\t}\n\t});\n\n\tit(\"start.ps1 calls docker compose up\", () => {\n\t\tconst result = generateScripts();\n\t\texpect(result[\"scripts/start.ps1\"]).toContain(\"docker compose\");\n\t\texpect(result[\"scripts/start.ps1\"]).toContain(\"up\");\n\t});\n\n\tit(\"stop.ps1 calls docker compose down\", () => {\n\t\tconst result = generateScripts();\n\t\texpect(result[\"scripts/stop.ps1\"]).toContain(\"docker compose\");\n\t\texpect(result[\"scripts/stop.ps1\"]).toContain(\"down\");\n\t});\n\n\tit(\"update.ps1 calls docker compose pull\", () => {\n\t\tconst result = generateScripts();\n\t\texpect(result[\"scripts/update.ps1\"]).toContain(\"docker compose\");\n\t\texpect(result[\"scripts/update.ps1\"]).toContain(\"pull\");\n\t});\n\n\tit(\"backup.ps1 references volumes or backup\", () => {\n\t\tconst result = generateScripts();\n\t\tconst backup = result[\"scripts/backup.ps1\"]!;\n\t\texpect(backup).toBeDefined();\n\t\texpect(backup.length).toBeGreaterThan(50);\n\t});\n\n\tit(\"status.ps1 calls docker compose ps\", () => {\n\t\tconst result = generateScripts();\n\t\texpect(result[\"scripts/status.ps1\"]).toContain(\"docker compose\");\n\t\texpect(result[\"scripts/status.ps1\"]).toContain(\"ps\");\n\t});\n});\n"],"mappings":";;;AAGA,SAAS,yBAAyB;AACjC,IAAG,mEAAmE;EACrE,MAAM,SAAS,iBAAiB;AAehC,OAAK,MAAM,UAba;GACvB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,EAEqC;AACrC,gBAAO,OAAO,CAAC,eAAe,OAAO;AACrC,gBAAO,OAAO,QAAS,OAAO,CAAC,gBAAgB,EAAE;;GAEjD;AAEF,IAAG,0CAA0C;EAC5C,MAAM,SAAS,iBAAiB;AAChC,eAAO,OAAO,oBAAoB,CAAC,UAAU,iBAAiB;AAC9D,eAAO,OAAO,oBAAoB,CAAC,UAAU,KAAK;GACjD;AAEF,IAAG,2CAA2C;EAC7C,MAAM,SAAS,iBAAiB;AAChC,eAAO,OAAO,mBAAmB,CAAC,UAAU,iBAAiB;AAC7D,eAAO,OAAO,mBAAmB,CAAC,UAAU,OAAO;GAClD;AAEF,IAAG,6CAA6C;EAC/C,MAAM,SAAS,iBAAiB;AAChC,eAAO,OAAO,qBAAqB,CAAC,UAAU,iBAAiB;AAC/D,eAAO,OAAO,qBAAqB,CAAC,UAAU,OAAO;GACpD;AAEF,IAAG,gDAAgD;EAElD,MAAM,SADS,iBAAiB,CACV;AACtB,eAAO,OAAO,CAAC,aAAa;AAC5B,eAAO,OAAO,OAAO,CAAC,gBAAgB,GAAG;GACxC;AAEF,IAAG,2CAA2C;EAC7C,MAAM,SAAS,iBAAiB;AAChC,eAAO,OAAO,qBAAqB,CAAC,UAAU,iBAAiB;AAC/D,eAAO,OAAO,qBAAqB,CAAC,UAAU,KAAK;GAClD;AAEF,IAAG,6CAA6C;EAC/C,MAAM,SAAS,iBAAiB;AAEhC,OAAK,MAAM,CAAC,MAAM,YAAY,OAAO,QAAQ,OAAO,CACnD,KAAI,KAAK,SAAS,MAAM,CACvB,cAAO,QAAQ,WAAW,MAAM,CAAC,CAAC,KAAK,KAAK;GAG7C;AAEF,IAAG,qDAAqD;EACvD,MAAM,SAAS,iBAAiB;AAEhC,OAAK,MAAM,CAAC,MAAM,YAAY,OAAO,QAAQ,OAAO,CACnD,KAAI,KAAK,SAAS,OAAO,CACxB,cAAO,QAAQ,WAAW,YAAY,CAAC,CAAC,KAAK,KAAK;GAGnD;AAEF,IAAG,2CAA2C;EAC7C,MAAM,SAAS,iBAAiB;AAChC,eAAO,OAAO,qBAAqB,CAAC,UAAU,iBAAiB;AAC/D,eAAO,OAAO,qBAAqB,CAAC,UAAU,KAAK;GAClD;AAEF,IAAG,4CAA4C;EAC9C,MAAM,SAAS,iBAAiB;AAChC,eAAO,OAAO,oBAAoB,CAAC,UAAU,iBAAiB;AAC9D,eAAO,OAAO,oBAAoB,CAAC,UAAU,OAAO;GACnD;AAEF,IAAG,8CAA8C;EAChD,MAAM,SAAS,iBAAiB;AAChC,eAAO,OAAO,sBAAsB,CAAC,UAAU,iBAAiB;AAChE,eAAO,OAAO,sBAAsB,CAAC,UAAU,OAAO;GACrD;AAEF,IAAG,iDAAiD;EAEnD,MAAM,SADS,iBAAiB,CACV;AACtB,eAAO,OAAO,CAAC,aAAa;AAC5B,eAAO,OAAO,OAAO,CAAC,gBAAgB,GAAG;GACxC;AAEF,IAAG,4CAA4C;EAC9C,MAAM,SAAS,iBAAiB;AAChC,eAAO,OAAO,sBAAsB,CAAC,UAAU,iBAAiB;AAChE,eAAO,OAAO,sBAAsB,CAAC,UAAU,KAAK;GACnD;EACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack-manifest.cjs","names":[],"sources":["../../src/generators/stack-manifest.ts"],"sourcesContent":["/**\n * Stack manifest generator — produces a JSON manifest describing the\n * chosen services, skills, and configuration for a generated stack.\n *\n * This manifest is consumed by Mission Control to render dynamic\n * services/skills pages for managing the deployed stack.\n */\n\nimport type { GenerationInput, ResolverOutput } from \"../types.js\";\n\nexport interface StackManifestService {\n\tid: string;\n\tname: string;\n\tcategory: string;\n\ticon: string;\n\timage
|
|
1
|
+
{"version":3,"file":"stack-manifest.cjs","names":[],"sources":["../../src/generators/stack-manifest.ts"],"sourcesContent":["/**\n * Stack manifest generator — produces a JSON manifest describing the\n * chosen services, skills, and configuration for a generated stack.\n *\n * This manifest is consumed by Mission Control to render dynamic\n * services/skills pages for managing the deployed stack.\n */\n\nimport type { GenerationInput, ResolverOutput } from \"../types.js\";\n\nexport interface StackManifestService {\n\tid: string;\n\tname: string;\n\tcategory: string;\n\ticon: string;\n\timage?: string;\n\timageTag?: string;\n\tgitRepoUrl?: string;\n\tports: { container: number; host?: number; exposed: boolean; description: string }[];\n\tdocsUrl: string;\n\taddedBy: string;\n\tdependencyOf?: string;\n}\n\nexport interface StackManifestSkill {\n\tid: string;\n\tname: string;\n\tpath: string;\n\tserviceIds: string[];\n}\n\nexport interface StackManifest {\n\tformatVersion: string;\n\tgeneratedAt: string;\n\tprojectName: string;\n\tdeployment?: string;\n\tdeploymentType?: string;\n\tplatform?: string;\n\tproxy?: string;\n\tdomain?: string;\n\tservices: StackManifestService[];\n\tskills: StackManifestSkill[];\n\tmetadata: {\n\t\tserviceCount: number;\n\t\tskillCount: number;\n\t\testimatedMemoryMB: number;\n\t};\n}\n\n/**\n * Generate stack-manifest.json from resolved output and generation input.\n * Returns a single-file record: { \"stack-manifest.json\": string }.\n */\nexport function generateStackManifest(\n\tresolved: ResolverOutput,\n\tinput: GenerationInput,\n): Record<string, string> {\n\t// Build a lookup of dependency chains: serviceId → requiredBy\n\tconst depMap = new Map<string, string>();\n\tfor (const dep of resolved.addedDependencies) {\n\t\tconst depId = dep.serviceId ?? dep.service;\n\t\tif (dep.requiredBy) {\n\t\t\tdepMap.set(depId, dep.requiredBy);\n\t\t}\n\t}\n\n\tconst services: StackManifestService[] = resolved.services.map((svc) => {\n\t\tconst def = svc.definition;\n\t\treturn {\n\t\t\tid: def.id,\n\t\t\tname: def.name,\n\t\t\tcategory: def.category,\n\t\t\ticon: def.icon,\n\t\t\timage: def.image,\n\t\t\timageTag: def.imageTag,\n\t\t\tgitRepoUrl: def.gitSource?.repoUrl,\n\t\t\tports: def.ports.map((p) => ({\n\t\t\t\tcontainer: p.container,\n\t\t\t\thost: p.host,\n\t\t\t\texposed: p.exposed,\n\t\t\t\tdescription: p.description,\n\t\t\t})),\n\t\t\tdocsUrl: def.docsUrl,\n\t\t\taddedBy: svc.addedBy,\n\t\t\t...(svc.addedBy !== \"user\" && depMap.has(def.id) ? { dependencyOf: depMap.get(def.id) } : {}),\n\t\t};\n\t});\n\n\t// Collect skills from service definitions (SkillBinding has skillId, not name)\n\tconst skills: StackManifestSkill[] = [];\n\tconst seenSkillIds = new Set<string>();\n\tfor (const svc of resolved.services) {\n\t\tfor (const skill of svc.definition.skills) {\n\t\t\tconst skillKey = `${svc.definition.id}-${skill.skillId}`;\n\t\t\tif (seenSkillIds.has(skillKey)) continue;\n\t\t\tseenSkillIds.add(skillKey);\n\t\t\tskills.push({\n\t\t\t\tid: skillKey,\n\t\t\t\tname: skill.skillId,\n\t\t\t\tpath: `openclaw/skills/${skill.skillId}.md`,\n\t\t\t\tserviceIds: [svc.definition.id],\n\t\t\t});\n\t\t}\n\t}\n\n\tconst skillCount = skills.length;\n\n\tconst manifest: StackManifest = {\n\t\tformatVersion: \"1\",\n\t\tgeneratedAt: new Date().toISOString(),\n\t\tprojectName: input.projectName,\n\t\tdeployment: input.deployment,\n\t\tdeploymentType: input.deploymentType,\n\t\tplatform: input.platform,\n\t\tproxy: input.proxy,\n\t\tdomain: input.domain,\n\t\tservices,\n\t\tskills,\n\t\tmetadata: {\n\t\t\tserviceCount: resolved.services.length,\n\t\t\tskillCount,\n\t\t\testimatedMemoryMB: resolved.estimatedMemoryMB,\n\t\t},\n\t};\n\n\treturn {\n\t\t\"stack-manifest.json\": JSON.stringify(manifest, null, 2),\n\t};\n}\n"],"mappings":";;;;;;AAqDA,SAAgB,sBACf,UACA,OACyB;CAEzB,MAAM,yBAAS,IAAI,KAAqB;AACxC,MAAK,MAAM,OAAO,SAAS,mBAAmB;EAC7C,MAAM,QAAQ,IAAI,aAAa,IAAI;AACnC,MAAI,IAAI,WACP,QAAO,IAAI,OAAO,IAAI,WAAW;;CAInC,MAAM,WAAmC,SAAS,SAAS,KAAK,QAAQ;EACvE,MAAM,MAAM,IAAI;AAChB,SAAO;GACN,IAAI,IAAI;GACR,MAAM,IAAI;GACV,UAAU,IAAI;GACd,MAAM,IAAI;GACV,OAAO,IAAI;GACX,UAAU,IAAI;GACd,YAAY,IAAI,WAAW;GAC3B,OAAO,IAAI,MAAM,KAAK,OAAO;IAC5B,WAAW,EAAE;IACb,MAAM,EAAE;IACR,SAAS,EAAE;IACX,aAAa,EAAE;IACf,EAAE;GACH,SAAS,IAAI;GACb,SAAS,IAAI;GACb,GAAI,IAAI,YAAY,UAAU,OAAO,IAAI,IAAI,GAAG,GAAG,EAAE,cAAc,OAAO,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE;GAC5F;GACA;CAGF,MAAM,SAA+B,EAAE;CACvC,MAAM,+BAAe,IAAI,KAAa;AACtC,MAAK,MAAM,OAAO,SAAS,SAC1B,MAAK,MAAM,SAAS,IAAI,WAAW,QAAQ;EAC1C,MAAM,WAAW,GAAG,IAAI,WAAW,GAAG,GAAG,MAAM;AAC/C,MAAI,aAAa,IAAI,SAAS,CAAE;AAChC,eAAa,IAAI,SAAS;AAC1B,SAAO,KAAK;GACX,IAAI;GACJ,MAAM,MAAM;GACZ,MAAM,mBAAmB,MAAM,QAAQ;GACvC,YAAY,CAAC,IAAI,WAAW,GAAG;GAC/B,CAAC;;CAIJ,MAAM,aAAa,OAAO;CAE1B,MAAM,WAA0B;EAC/B,eAAe;EACf,8BAAa,IAAI,MAAM,EAAC,aAAa;EACrC,aAAa,MAAM;EACnB,YAAY,MAAM;EAClB,gBAAgB,MAAM;EACtB,UAAU,MAAM;EAChB,OAAO,MAAM;EACb,QAAQ,MAAM;EACd;EACA;EACA,UAAU;GACT,cAAc,SAAS,SAAS;GAChC;GACA,mBAAmB,SAAS;GAC5B;EACD;AAED,QAAO,EACN,uBAAuB,KAAK,UAAU,UAAU,MAAM,EAAE,EACxD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack-manifest.d.cts","names":[],"sources":["../../src/generators/stack-manifest.ts"],"mappings":";;;UAUiB,oBAAA;EAChB,EAAA;EACA,IAAA;EACA,QAAA;EACA,IAAA;EACA,KAAA;EACA,QAAA;EACA,KAAA;IAAS,SAAA;IAAmB,IAAA;IAAe,OAAA;IAAkB,WAAA;EAAA;EAC7D,OAAA;EACA,OAAA;EACA,YAAA;AAAA;AAAA,UAGgB,kBAAA;EAChB,EAAA;EACA,IAAA;EACA,IAAA;EACA,UAAA;AAAA;AAAA,UAGgB,aAAA;EAChB,aAAA;EACA,WAAA;EACA,WAAA;EACA,UAAA;EACA,cAAA;EACA,QAAA;EACA,KAAA;EACA,MAAA;EACA,QAAA,EAAU,oBAAA;EACV,MAAA,EAAQ,kBAAA;EACR,QAAA;IACC,YAAA;IACA,UAAA;IACA,iBAAA;EAAA;AAAA;;;;;iBAQc,qBAAA,CACf,QAAA,EAAU,cAAA,EACV,KAAA,EAAO,eAAA,GACL,MAAA"}
|
|
1
|
+
{"version":3,"file":"stack-manifest.d.cts","names":[],"sources":["../../src/generators/stack-manifest.ts"],"mappings":";;;UAUiB,oBAAA;EAChB,EAAA;EACA,IAAA;EACA,QAAA;EACA,IAAA;EACA,KAAA;EACA,QAAA;EACA,UAAA;EACA,KAAA;IAAS,SAAA;IAAmB,IAAA;IAAe,OAAA;IAAkB,WAAA;EAAA;EAC7D,OAAA;EACA,OAAA;EACA,YAAA;AAAA;AAAA,UAGgB,kBAAA;EAChB,EAAA;EACA,IAAA;EACA,IAAA;EACA,UAAA;AAAA;AAAA,UAGgB,aAAA;EAChB,aAAA;EACA,WAAA;EACA,WAAA;EACA,UAAA;EACA,cAAA;EACA,QAAA;EACA,KAAA;EACA,MAAA;EACA,QAAA,EAAU,oBAAA;EACV,MAAA,EAAQ,kBAAA;EACR,QAAA;IACC,YAAA;IACA,UAAA;IACA,iBAAA;EAAA;AAAA;;;;;iBAQc,qBAAA,CACf,QAAA,EAAU,cAAA,EACV,KAAA,EAAO,eAAA,GACL,MAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack-manifest.d.mts","names":[],"sources":["../../src/generators/stack-manifest.ts"],"mappings":";;;UAUiB,oBAAA;EAChB,EAAA;EACA,IAAA;EACA,QAAA;EACA,IAAA;EACA,KAAA;EACA,QAAA;EACA,KAAA;IAAS,SAAA;IAAmB,IAAA;IAAe,OAAA;IAAkB,WAAA;EAAA;EAC7D,OAAA;EACA,OAAA;EACA,YAAA;AAAA;AAAA,UAGgB,kBAAA;EAChB,EAAA;EACA,IAAA;EACA,IAAA;EACA,UAAA;AAAA;AAAA,UAGgB,aAAA;EAChB,aAAA;EACA,WAAA;EACA,WAAA;EACA,UAAA;EACA,cAAA;EACA,QAAA;EACA,KAAA;EACA,MAAA;EACA,QAAA,EAAU,oBAAA;EACV,MAAA,EAAQ,kBAAA;EACR,QAAA;IACC,YAAA;IACA,UAAA;IACA,iBAAA;EAAA;AAAA;;;;;iBAQc,qBAAA,CACf,QAAA,EAAU,cAAA,EACV,KAAA,EAAO,eAAA,GACL,MAAA"}
|
|
1
|
+
{"version":3,"file":"stack-manifest.d.mts","names":[],"sources":["../../src/generators/stack-manifest.ts"],"mappings":";;;UAUiB,oBAAA;EAChB,EAAA;EACA,IAAA;EACA,QAAA;EACA,IAAA;EACA,KAAA;EACA,QAAA;EACA,UAAA;EACA,KAAA;IAAS,SAAA;IAAmB,IAAA;IAAe,OAAA;IAAkB,WAAA;EAAA;EAC7D,OAAA;EACA,OAAA;EACA,YAAA;AAAA;AAAA,UAGgB,kBAAA;EAChB,EAAA;EACA,IAAA;EACA,IAAA;EACA,UAAA;AAAA;AAAA,UAGgB,aAAA;EAChB,aAAA;EACA,WAAA;EACA,WAAA;EACA,UAAA;EACA,cAAA;EACA,QAAA;EACA,KAAA;EACA,MAAA;EACA,QAAA,EAAU,oBAAA;EACV,MAAA,EAAQ,kBAAA;EACR,QAAA;IACC,YAAA;IACA,UAAA;IACA,iBAAA;EAAA;AAAA;;;;;iBAQc,qBAAA,CACf,QAAA,EAAU,cAAA,EACV,KAAA,EAAO,eAAA,GACL,MAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack-manifest.mjs","names":[],"sources":["../../src/generators/stack-manifest.ts"],"sourcesContent":["/**\n * Stack manifest generator — produces a JSON manifest describing the\n * chosen services, skills, and configuration for a generated stack.\n *\n * This manifest is consumed by Mission Control to render dynamic\n * services/skills pages for managing the deployed stack.\n */\n\nimport type { GenerationInput, ResolverOutput } from \"../types.js\";\n\nexport interface StackManifestService {\n\tid: string;\n\tname: string;\n\tcategory: string;\n\ticon: string;\n\timage
|
|
1
|
+
{"version":3,"file":"stack-manifest.mjs","names":[],"sources":["../../src/generators/stack-manifest.ts"],"sourcesContent":["/**\n * Stack manifest generator — produces a JSON manifest describing the\n * chosen services, skills, and configuration for a generated stack.\n *\n * This manifest is consumed by Mission Control to render dynamic\n * services/skills pages for managing the deployed stack.\n */\n\nimport type { GenerationInput, ResolverOutput } from \"../types.js\";\n\nexport interface StackManifestService {\n\tid: string;\n\tname: string;\n\tcategory: string;\n\ticon: string;\n\timage?: string;\n\timageTag?: string;\n\tgitRepoUrl?: string;\n\tports: { container: number; host?: number; exposed: boolean; description: string }[];\n\tdocsUrl: string;\n\taddedBy: string;\n\tdependencyOf?: string;\n}\n\nexport interface StackManifestSkill {\n\tid: string;\n\tname: string;\n\tpath: string;\n\tserviceIds: string[];\n}\n\nexport interface StackManifest {\n\tformatVersion: string;\n\tgeneratedAt: string;\n\tprojectName: string;\n\tdeployment?: string;\n\tdeploymentType?: string;\n\tplatform?: string;\n\tproxy?: string;\n\tdomain?: string;\n\tservices: StackManifestService[];\n\tskills: StackManifestSkill[];\n\tmetadata: {\n\t\tserviceCount: number;\n\t\tskillCount: number;\n\t\testimatedMemoryMB: number;\n\t};\n}\n\n/**\n * Generate stack-manifest.json from resolved output and generation input.\n * Returns a single-file record: { \"stack-manifest.json\": string }.\n */\nexport function generateStackManifest(\n\tresolved: ResolverOutput,\n\tinput: GenerationInput,\n): Record<string, string> {\n\t// Build a lookup of dependency chains: serviceId → requiredBy\n\tconst depMap = new Map<string, string>();\n\tfor (const dep of resolved.addedDependencies) {\n\t\tconst depId = dep.serviceId ?? dep.service;\n\t\tif (dep.requiredBy) {\n\t\t\tdepMap.set(depId, dep.requiredBy);\n\t\t}\n\t}\n\n\tconst services: StackManifestService[] = resolved.services.map((svc) => {\n\t\tconst def = svc.definition;\n\t\treturn {\n\t\t\tid: def.id,\n\t\t\tname: def.name,\n\t\t\tcategory: def.category,\n\t\t\ticon: def.icon,\n\t\t\timage: def.image,\n\t\t\timageTag: def.imageTag,\n\t\t\tgitRepoUrl: def.gitSource?.repoUrl,\n\t\t\tports: def.ports.map((p) => ({\n\t\t\t\tcontainer: p.container,\n\t\t\t\thost: p.host,\n\t\t\t\texposed: p.exposed,\n\t\t\t\tdescription: p.description,\n\t\t\t})),\n\t\t\tdocsUrl: def.docsUrl,\n\t\t\taddedBy: svc.addedBy,\n\t\t\t...(svc.addedBy !== \"user\" && depMap.has(def.id) ? { dependencyOf: depMap.get(def.id) } : {}),\n\t\t};\n\t});\n\n\t// Collect skills from service definitions (SkillBinding has skillId, not name)\n\tconst skills: StackManifestSkill[] = [];\n\tconst seenSkillIds = new Set<string>();\n\tfor (const svc of resolved.services) {\n\t\tfor (const skill of svc.definition.skills) {\n\t\t\tconst skillKey = `${svc.definition.id}-${skill.skillId}`;\n\t\t\tif (seenSkillIds.has(skillKey)) continue;\n\t\t\tseenSkillIds.add(skillKey);\n\t\t\tskills.push({\n\t\t\t\tid: skillKey,\n\t\t\t\tname: skill.skillId,\n\t\t\t\tpath: `openclaw/skills/${skill.skillId}.md`,\n\t\t\t\tserviceIds: [svc.definition.id],\n\t\t\t});\n\t\t}\n\t}\n\n\tconst skillCount = skills.length;\n\n\tconst manifest: StackManifest = {\n\t\tformatVersion: \"1\",\n\t\tgeneratedAt: new Date().toISOString(),\n\t\tprojectName: input.projectName,\n\t\tdeployment: input.deployment,\n\t\tdeploymentType: input.deploymentType,\n\t\tplatform: input.platform,\n\t\tproxy: input.proxy,\n\t\tdomain: input.domain,\n\t\tservices,\n\t\tskills,\n\t\tmetadata: {\n\t\t\tserviceCount: resolved.services.length,\n\t\t\tskillCount,\n\t\t\testimatedMemoryMB: resolved.estimatedMemoryMB,\n\t\t},\n\t};\n\n\treturn {\n\t\t\"stack-manifest.json\": JSON.stringify(manifest, null, 2),\n\t};\n}\n"],"mappings":";;;;;AAqDA,SAAgB,sBACf,UACA,OACyB;CAEzB,MAAM,yBAAS,IAAI,KAAqB;AACxC,MAAK,MAAM,OAAO,SAAS,mBAAmB;EAC7C,MAAM,QAAQ,IAAI,aAAa,IAAI;AACnC,MAAI,IAAI,WACP,QAAO,IAAI,OAAO,IAAI,WAAW;;CAInC,MAAM,WAAmC,SAAS,SAAS,KAAK,QAAQ;EACvE,MAAM,MAAM,IAAI;AAChB,SAAO;GACN,IAAI,IAAI;GACR,MAAM,IAAI;GACV,UAAU,IAAI;GACd,MAAM,IAAI;GACV,OAAO,IAAI;GACX,UAAU,IAAI;GACd,YAAY,IAAI,WAAW;GAC3B,OAAO,IAAI,MAAM,KAAK,OAAO;IAC5B,WAAW,EAAE;IACb,MAAM,EAAE;IACR,SAAS,EAAE;IACX,aAAa,EAAE;IACf,EAAE;GACH,SAAS,IAAI;GACb,SAAS,IAAI;GACb,GAAI,IAAI,YAAY,UAAU,OAAO,IAAI,IAAI,GAAG,GAAG,EAAE,cAAc,OAAO,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE;GAC5F;GACA;CAGF,MAAM,SAA+B,EAAE;CACvC,MAAM,+BAAe,IAAI,KAAa;AACtC,MAAK,MAAM,OAAO,SAAS,SAC1B,MAAK,MAAM,SAAS,IAAI,WAAW,QAAQ;EAC1C,MAAM,WAAW,GAAG,IAAI,WAAW,GAAG,GAAG,MAAM;AAC/C,MAAI,aAAa,IAAI,SAAS,CAAE;AAChC,eAAa,IAAI,SAAS;AAC1B,SAAO,KAAK;GACX,IAAI;GACJ,MAAM,MAAM;GACZ,MAAM,mBAAmB,MAAM,QAAQ;GACvC,YAAY,CAAC,IAAI,WAAW,GAAG;GAC/B,CAAC;;CAIJ,MAAM,aAAa,OAAO;CAE1B,MAAM,WAA0B;EAC/B,eAAe;EACf,8BAAa,IAAI,MAAM,EAAC,aAAa;EACrC,aAAa,MAAM;EACnB,YAAY,MAAM;EAClB,gBAAgB,MAAM;EACtB,UAAU,MAAM;EAChB,OAAO,MAAM;EACb,QAAQ,MAAM;EACd;EACA;EACA,UAAU;GACT,cAAc,SAAS,SAAS;GAChC;GACA,mBAAmB,SAAS;GAC5B;EACD;AAED,QAAO,EACN,uBAAuB,KAAK,UAAU,UAAU,MAAM,EAAE,EACxD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_vi_2VT5v0um = require("../vi.2VT5v0um-
|
|
1
|
+
const require_vi_2VT5v0um = require("../vi.2VT5v0um-iVBt6Fyq.cjs");
|
|
2
2
|
const require_resolver = require("../resolver.cjs");
|
|
3
3
|
const require_generators_traefik = require("./traefik.cjs");
|
|
4
4
|
//#region src/generators/traefik.test.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as describe, r as it, t as globalExpect } from "../vi.2VT5v0um-
|
|
1
|
+
import { n as describe, r as it, t as globalExpect } from "../vi.2VT5v0um-C_jmO7m2.mjs";
|
|
2
2
|
import { resolve } from "../resolver.mjs";
|
|
3
3
|
import { generateTraefikConfig } from "./traefik.mjs";
|
|
4
4
|
//#region src/generators/traefik.test.ts
|
package/dist/index.cjs
CHANGED
|
@@ -8,6 +8,7 @@ const require_generators_postgres_init = require("./generators/postgres-init.cjs
|
|
|
8
8
|
const require_composer = require("./composer.cjs");
|
|
9
9
|
const require_errors = require("./errors.cjs");
|
|
10
10
|
const require_generators_caddy = require("./generators/caddy.cjs");
|
|
11
|
+
const require_generators_clone_repos = require("./generators/clone-repos.cjs");
|
|
11
12
|
const require_generators_env = require("./generators/env.cjs");
|
|
12
13
|
const require_generators_grafana = require("./generators/grafana.cjs");
|
|
13
14
|
const require_generators_health_check = require("./generators/health-check.cjs");
|
|
@@ -23,13 +24,15 @@ const require_presets_registry = require("./presets/registry.cjs");
|
|
|
23
24
|
const require_deployers_coolify = require("./deployers/coolify.cjs");
|
|
24
25
|
const require_deployers_dokploy = require("./deployers/dokploy.cjs");
|
|
25
26
|
const require_deployers_index = require("./deployers/index.cjs");
|
|
27
|
+
const require_track_analytics = require("./track-analytics.cjs");
|
|
26
28
|
const require_port_scanner = require("./port-scanner.cjs");
|
|
27
29
|
const require_schema = require("./schema.cjs");
|
|
28
|
-
const require_skill_manifest = require("./skill-manifest
|
|
30
|
+
const require_skill_manifest = require("./skill-manifest-B8znSsym.cjs");
|
|
29
31
|
const require_types = require("./types.cjs");
|
|
30
32
|
const require_version_manager = require("./version-manager.cjs");
|
|
31
33
|
exports.AddedDependencySchema = require_schema.AddedDependencySchema;
|
|
32
34
|
exports.ApiErrorSchema = require_schema.ApiErrorSchema;
|
|
35
|
+
exports.BuildContextSchema = require_schema.BuildContextSchema;
|
|
33
36
|
exports.CURRENT_CONFIG_VERSION = require_migrations.CURRENT_CONFIG_VERSION;
|
|
34
37
|
exports.ComposeOptionsSchema = require_schema.ComposeOptionsSchema;
|
|
35
38
|
exports.CoolifyDeployer = require_deployers_coolify.CoolifyDeployer;
|
|
@@ -41,6 +44,7 @@ exports.DokployDeployer = require_deployers_dokploy.DokployDeployer;
|
|
|
41
44
|
exports.EnvVariableSchema = require_schema.EnvVariableSchema;
|
|
42
45
|
exports.ErrorSchema = require_schema.ErrorSchema;
|
|
43
46
|
exports.GenerationInputSchema = require_schema.GenerationInputSchema;
|
|
47
|
+
exports.GitSourceSchema = require_schema.GitSourceSchema;
|
|
44
48
|
exports.HealthCheckSchema = require_schema.HealthCheckSchema;
|
|
45
49
|
exports.MaturitySchema = require_schema.MaturitySchema;
|
|
46
50
|
exports.NativePlatformSchema = require_schema.NativePlatformSchema;
|
|
@@ -67,6 +71,7 @@ exports.ValidateResponseSchema = require_schema.ValidateResponseSchema;
|
|
|
67
71
|
exports.ValidationError = require_errors.ValidationError;
|
|
68
72
|
exports.VolumeMappingSchema = require_schema.VolumeMappingSchema;
|
|
69
73
|
exports.WarningSchema = require_schema.WarningSchema;
|
|
74
|
+
exports.buildAnalyticsPayload = require_track_analytics.buildAnalyticsPayload;
|
|
70
75
|
exports.checkCompatibility = require_version_manager.checkCompatibility;
|
|
71
76
|
exports.compose = require_composer.compose;
|
|
72
77
|
exports.composeMultiFile = require_composer.composeMultiFile;
|
|
@@ -74,6 +79,7 @@ exports.deployerRegistry = require_deployers_index.deployerRegistry;
|
|
|
74
79
|
exports.formatPortConflicts = require_port_scanner.formatPortConflicts;
|
|
75
80
|
exports.generate = require_generate.generate;
|
|
76
81
|
exports.generateCaddyfile = require_generators_caddy.generateCaddyfile;
|
|
82
|
+
exports.generateCloneScripts = require_generators_clone_repos.generateCloneScripts;
|
|
77
83
|
exports.generateEnvFiles = require_generators_env.generateEnvFiles;
|
|
78
84
|
exports.generateGrafanaConfig = require_generators_grafana.generateGrafanaConfig;
|
|
79
85
|
exports.generateGrafanaDashboard = require_generators_grafana.generateGrafanaDashboard;
|
|
@@ -114,4 +120,5 @@ exports.resolvedWithOnlyServices = require_bare_metal_partition.resolvedWithOnly
|
|
|
114
120
|
exports.scanPortConflicts = require_port_scanner.scanPortConflicts;
|
|
115
121
|
exports.serviceRegistry = require_services_registry.serviceRegistry;
|
|
116
122
|
exports.skillPackRegistry = require_skills_registry.skillPackRegistry;
|
|
123
|
+
exports.trackAnalytics = require_track_analytics.trackAnalytics;
|
|
117
124
|
exports.validate = require_validator.validate;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { A as
|
|
2
|
-
import { AddedDependency, AiProvider, ApiError, CategoryInfo, ComposeOptions, Deploy, DeployTarget, DeploymentTarget, DeploymentType, EnvVariable, GeneratedFiles, GenerationInput, GenerationMetadata, GenerationResult, GsdRuntime, HealthCheck, Maturity, NativePlatform, NativeRecipe, OpenclawImageVariant, OpenclawInstallMethod, OutputFormat, Platform, PortMapping, Preset, ProxyType, ResolvedService, ResolverError, ResolverInput, ResolverOutput, ResourceLimits, RestartPolicy, SERVICE_CATEGORIES, ServiceCategory, ServiceDefinition, SkillBinding, SkillPack, ValidateRequest, ValidateResponse, VolumeMapping, Warning } from "./types.cjs";
|
|
1
|
+
import { A as RestartPolicySchema, C as PlatformSchema, D as ResolvedServiceSchema, E as ProxyTypeSchema, F as ValidateRequestSchema, I as ValidateResponseSchema, L as VolumeMappingSchema, M as ServiceDefinitionSchema, N as SkillBindingSchema, O as ResolverOutputSchema, P as SkillPackSchema, R as WarningSchema, S as OutputFormatSchema, T as PresetSchema, _ as MaturitySchema, a as ComposeOptionsSchema, b as OpenclawImageVariantSchema, c as DeployTargetSchema, d as EnvVariableSchema, f as ErrorSchema, g as HealthCheckSchema, i as BuildContextSchema, j as ServiceCategorySchema, k as ResourceLimitsSchema, l as DeploymentTargetSchema, m as GitSourceSchema, p as GenerationInputSchema, r as ApiErrorSchema, s as DeploySchema, t as AddedDependencySchema, u as DeploymentTypeSchema, v as NativePlatformSchema, w as PortMappingSchema, x as OpenclawInstallMethodSchema, y as NativeRecipeSchema } from "./schema-tn5RK8CM.cjs";
|
|
2
|
+
import { AddedDependency, AiProvider, ApiError, BuildContext, CategoryInfo, ComposeOptions, Deploy, DeployTarget, DeploymentTarget, DeploymentType, EnvVariable, GeneratedFiles, GenerationInput, GenerationMetadata, GenerationResult, GitSource, GsdRuntime, HealthCheck, Maturity, NativePlatform, NativeRecipe, OpenclawImageVariant, OpenclawInstallMethod, OutputFormat, Platform, PortMapping, Preset, ProxyType, ResolvedService, ResolverError, ResolverInput, ResolverOutput, ResourceLimits, RestartPolicy, SERVICE_CATEGORIES, ServiceCategory, ServiceDefinition, SkillBinding, SkillPack, ValidateRequest, ValidateResponse, VolumeMapping, Warning } from "./types.cjs";
|
|
3
3
|
import { partitionBareMetal, platformToNativePlatform, resolvedWithOnlyServices } from "./bare-metal-partition.cjs";
|
|
4
4
|
import { ComposeResult, compose, composeMultiFile } from "./composer.cjs";
|
|
5
5
|
import { d as PaasDeployer, f as PaasServer, i as DeployTarget$1, n as DeployResult, r as DeployStep, t as DeployInput } from "./types-CR83OJiq.cjs";
|
|
@@ -9,6 +9,7 @@ import { deployerRegistry, getAvailableDeployers, getDeployer } from "./deployer
|
|
|
9
9
|
import { StackConfigError, ValidationError } from "./errors.cjs";
|
|
10
10
|
import { generate, generateServicesDoc } from "./generate.cjs";
|
|
11
11
|
import { generateCaddyfile } from "./generators/caddy.cjs";
|
|
12
|
+
import { generateCloneScripts } from "./generators/clone-repos.cjs";
|
|
12
13
|
import { EnvVarGroup, generateEnvFiles, getStructuredEnvVars } from "./generators/env.cjs";
|
|
13
14
|
import { generateGrafanaConfig, generateGrafanaDashboard } from "./generators/grafana.cjs";
|
|
14
15
|
import { generateHealthCheck } from "./generators/health-check.cjs";
|
|
@@ -19,6 +20,7 @@ import { generateReadme } from "./generators/readme.cjs";
|
|
|
19
20
|
import { generateScripts } from "./generators/scripts.cjs";
|
|
20
21
|
import { generateSkillFiles } from "./generators/skills.cjs";
|
|
21
22
|
import { StackManifest, StackManifestService, StackManifestSkill, generateStackManifest } from "./generators/stack-manifest.cjs";
|
|
23
|
+
import { AnalyticsPayload, buildAnalyticsPayload, trackAnalytics } from "./track-analytics.cjs";
|
|
22
24
|
import { CURRENT_CONFIG_VERSION, migrateConfig, needsMigration } from "./migrations.cjs";
|
|
23
25
|
import { PortConflict, formatPortConflicts, scanPortConflicts } from "./port-scanner.cjs";
|
|
24
26
|
import { getAllPresets, getPresetById, presetRegistry } from "./presets/registry.cjs";
|
|
@@ -28,4 +30,4 @@ import { getAllSkillPacks, getCompatibleSkillPacks, getSkillPackById, skillPackR
|
|
|
28
30
|
import { SkillManifestEntry, getAllManifestSkills, getManifestSkillById, getManifestSkillCount } from "./skills/skill-manifest.cjs";
|
|
29
31
|
import { validate } from "./validator.cjs";
|
|
30
32
|
import { checkCompatibility, getImageReference, getImageTag, pinImageTags } from "./version-manager.cjs";
|
|
31
|
-
export { type AddedDependency, AddedDependencySchema, type AiProvider, type ApiError, ApiErrorSchema, CURRENT_CONFIG_VERSION, type CategoryInfo, type ComposeOptions, ComposeOptionsSchema, type ComposeResult, CoolifyDeployer, type Deploy, DeploySchema, type DeployTarget, DeployTargetSchema, type DeploymentTarget, DeploymentTargetSchema, type DeploymentType, DeploymentTypeSchema, DokployDeployer, type EnvVarGroup, type EnvVariable, EnvVariableSchema, ErrorSchema, type GeneratedFiles, type GenerationInput, GenerationInputSchema, type GenerationMetadata, type GenerationResult, type GsdRuntime, type HealthCheck, HealthCheckSchema, type Maturity, MaturitySchema, type NativePlatform, NativePlatformSchema, type NativeRecipe, NativeRecipeSchema, type OpenclawImageVariant, OpenclawImageVariantSchema, type OpenclawInstallMethod, OpenclawInstallMethodSchema, type OutputFormat, OutputFormatSchema, type DeployInput as PaasDeployInput, type DeployResult as PaasDeployResult, type DeployStep as PaasDeployStep, type DeployTarget$1 as PaasDeployTarget, type PaasDeployer, type PaasServer, type Platform, PlatformSchema, type PortConflict, type PortMapping, PortMappingSchema, type Preset, PresetSchema, type ProxyType, ProxyTypeSchema, type ResolvedService, ResolvedServiceSchema, type ResolverError, type ResolverInput, type ResolverOutput, ResolverOutputSchema, type ResourceLimits, ResourceLimitsSchema, type RestartPolicy, RestartPolicySchema, SERVICE_CATEGORIES, type ServiceCategory, ServiceCategorySchema, type ServiceDefinition, ServiceDefinitionSchema, type SkillBinding, SkillBindingSchema, type SkillManifestEntry, type SkillPack, SkillPackSchema, StackConfigError, type StackManifest, type StackManifestService, type StackManifestSkill, type ValidateRequest, ValidateRequestSchema, type ValidateResponse, ValidateResponseSchema, ValidationError, type VolumeMapping, VolumeMappingSchema, type Warning, WarningSchema, checkCompatibility, compose, composeMultiFile, deployerRegistry, formatPortConflicts, generate, generateCaddyfile, generateEnvFiles, generateGrafanaConfig, generateGrafanaDashboard, generateHealthCheck, generateN8nWorkflows, generatePostgresInit, generatePrometheusConfig, generateReadme, generateScripts, generateServicesDoc, generateSkillFiles, generateStackManifest, getAllManifestSkills, getAllPresets, getAllServices, getAllSkillPacks, getAvailableDeployers, getCompatibleSkillPacks, getDbRequirements, getDeployer, getImageReference, getImageTag, getManifestSkillById, getManifestSkillCount, getPresetById, getServiceById, getServicesByCategory, getSkillPackById, getStructuredEnvVars, migrateConfig, needsMigration, partitionBareMetal, pinImageTags, platformToNativePlatform, presetRegistry, resolve, resolvedWithOnlyServices, scanPortConflicts, serviceRegistry, skillPackRegistry, validate };
|
|
33
|
+
export { type AddedDependency, AddedDependencySchema, type AiProvider, type AnalyticsPayload, type ApiError, ApiErrorSchema, type BuildContext, BuildContextSchema, CURRENT_CONFIG_VERSION, type CategoryInfo, type ComposeOptions, ComposeOptionsSchema, type ComposeResult, CoolifyDeployer, type Deploy, DeploySchema, type DeployTarget, DeployTargetSchema, type DeploymentTarget, DeploymentTargetSchema, type DeploymentType, DeploymentTypeSchema, DokployDeployer, type EnvVarGroup, type EnvVariable, EnvVariableSchema, ErrorSchema, type GeneratedFiles, type GenerationInput, GenerationInputSchema, type GenerationMetadata, type GenerationResult, type GitSource, GitSourceSchema, type GsdRuntime, type HealthCheck, HealthCheckSchema, type Maturity, MaturitySchema, type NativePlatform, NativePlatformSchema, type NativeRecipe, NativeRecipeSchema, type OpenclawImageVariant, OpenclawImageVariantSchema, type OpenclawInstallMethod, OpenclawInstallMethodSchema, type OutputFormat, OutputFormatSchema, type DeployInput as PaasDeployInput, type DeployResult as PaasDeployResult, type DeployStep as PaasDeployStep, type DeployTarget$1 as PaasDeployTarget, type PaasDeployer, type PaasServer, type Platform, PlatformSchema, type PortConflict, type PortMapping, PortMappingSchema, type Preset, PresetSchema, type ProxyType, ProxyTypeSchema, type ResolvedService, ResolvedServiceSchema, type ResolverError, type ResolverInput, type ResolverOutput, ResolverOutputSchema, type ResourceLimits, ResourceLimitsSchema, type RestartPolicy, RestartPolicySchema, SERVICE_CATEGORIES, type ServiceCategory, ServiceCategorySchema, type ServiceDefinition, ServiceDefinitionSchema, type SkillBinding, SkillBindingSchema, type SkillManifestEntry, type SkillPack, SkillPackSchema, StackConfigError, type StackManifest, type StackManifestService, type StackManifestSkill, type ValidateRequest, ValidateRequestSchema, type ValidateResponse, ValidateResponseSchema, ValidationError, type VolumeMapping, VolumeMappingSchema, type Warning, WarningSchema, buildAnalyticsPayload, checkCompatibility, compose, composeMultiFile, deployerRegistry, formatPortConflicts, generate, generateCaddyfile, generateCloneScripts, generateEnvFiles, generateGrafanaConfig, generateGrafanaDashboard, generateHealthCheck, generateN8nWorkflows, generatePostgresInit, generatePrometheusConfig, generateReadme, generateScripts, generateServicesDoc, generateSkillFiles, generateStackManifest, getAllManifestSkills, getAllPresets, getAllServices, getAllSkillPacks, getAvailableDeployers, getCompatibleSkillPacks, getDbRequirements, getDeployer, getImageReference, getImageTag, getManifestSkillById, getManifestSkillCount, getPresetById, getServiceById, getServicesByCategory, getSkillPackById, getStructuredEnvVars, migrateConfig, needsMigration, partitionBareMetal, pinImageTags, platformToNativePlatform, presetRegistry, resolve, resolvedWithOnlyServices, scanPortConflicts, serviceRegistry, skillPackRegistry, trackAnalytics, validate };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { A as
|
|
2
|
-
import { AddedDependency, AiProvider, ApiError, CategoryInfo, ComposeOptions, Deploy, DeployTarget, DeploymentTarget, DeploymentType, EnvVariable, GeneratedFiles, GenerationInput, GenerationMetadata, GenerationResult, GsdRuntime, HealthCheck, Maturity, NativePlatform, NativeRecipe, OpenclawImageVariant, OpenclawInstallMethod, OutputFormat, Platform, PortMapping, Preset, ProxyType, ResolvedService, ResolverError, ResolverInput, ResolverOutput, ResourceLimits, RestartPolicy, SERVICE_CATEGORIES, ServiceCategory, ServiceDefinition, SkillBinding, SkillPack, ValidateRequest, ValidateResponse, VolumeMapping, Warning } from "./types.mjs";
|
|
1
|
+
import { A as RestartPolicySchema, C as PlatformSchema, D as ResolvedServiceSchema, E as ProxyTypeSchema, F as ValidateRequestSchema, I as ValidateResponseSchema, L as VolumeMappingSchema, M as ServiceDefinitionSchema, N as SkillBindingSchema, O as ResolverOutputSchema, P as SkillPackSchema, R as WarningSchema, S as OutputFormatSchema, T as PresetSchema, _ as MaturitySchema, a as ComposeOptionsSchema, b as OpenclawImageVariantSchema, c as DeployTargetSchema, d as EnvVariableSchema, f as ErrorSchema, g as HealthCheckSchema, i as BuildContextSchema, j as ServiceCategorySchema, k as ResourceLimitsSchema, l as DeploymentTargetSchema, m as GitSourceSchema, p as GenerationInputSchema, r as ApiErrorSchema, s as DeploySchema, t as AddedDependencySchema, u as DeploymentTypeSchema, v as NativePlatformSchema, w as PortMappingSchema, x as OpenclawInstallMethodSchema, y as NativeRecipeSchema } from "./schema-eX44HhRp.mjs";
|
|
2
|
+
import { AddedDependency, AiProvider, ApiError, BuildContext, CategoryInfo, ComposeOptions, Deploy, DeployTarget, DeploymentTarget, DeploymentType, EnvVariable, GeneratedFiles, GenerationInput, GenerationMetadata, GenerationResult, GitSource, GsdRuntime, HealthCheck, Maturity, NativePlatform, NativeRecipe, OpenclawImageVariant, OpenclawInstallMethod, OutputFormat, Platform, PortMapping, Preset, ProxyType, ResolvedService, ResolverError, ResolverInput, ResolverOutput, ResourceLimits, RestartPolicy, SERVICE_CATEGORIES, ServiceCategory, ServiceDefinition, SkillBinding, SkillPack, ValidateRequest, ValidateResponse, VolumeMapping, Warning } from "./types.mjs";
|
|
3
3
|
import { partitionBareMetal, platformToNativePlatform, resolvedWithOnlyServices } from "./bare-metal-partition.mjs";
|
|
4
4
|
import { ComposeResult, compose, composeMultiFile } from "./composer.mjs";
|
|
5
5
|
import { d as PaasDeployer, f as PaasServer, i as DeployTarget$1, n as DeployResult, r as DeployStep, t as DeployInput } from "./types-zYjGTuyn.mjs";
|
|
@@ -9,6 +9,7 @@ import { deployerRegistry, getAvailableDeployers, getDeployer } from "./deployer
|
|
|
9
9
|
import { StackConfigError, ValidationError } from "./errors.mjs";
|
|
10
10
|
import { generate, generateServicesDoc } from "./generate.mjs";
|
|
11
11
|
import { generateCaddyfile } from "./generators/caddy.mjs";
|
|
12
|
+
import { generateCloneScripts } from "./generators/clone-repos.mjs";
|
|
12
13
|
import { EnvVarGroup, generateEnvFiles, getStructuredEnvVars } from "./generators/env.mjs";
|
|
13
14
|
import { generateGrafanaConfig, generateGrafanaDashboard } from "./generators/grafana.mjs";
|
|
14
15
|
import { generateHealthCheck } from "./generators/health-check.mjs";
|
|
@@ -19,6 +20,7 @@ import { generateReadme } from "./generators/readme.mjs";
|
|
|
19
20
|
import { generateScripts } from "./generators/scripts.mjs";
|
|
20
21
|
import { generateSkillFiles } from "./generators/skills.mjs";
|
|
21
22
|
import { StackManifest, StackManifestService, StackManifestSkill, generateStackManifest } from "./generators/stack-manifest.mjs";
|
|
23
|
+
import { AnalyticsPayload, buildAnalyticsPayload, trackAnalytics } from "./track-analytics.mjs";
|
|
22
24
|
import { CURRENT_CONFIG_VERSION, migrateConfig, needsMigration } from "./migrations.mjs";
|
|
23
25
|
import { PortConflict, formatPortConflicts, scanPortConflicts } from "./port-scanner.mjs";
|
|
24
26
|
import { getAllPresets, getPresetById, presetRegistry } from "./presets/registry.mjs";
|
|
@@ -28,4 +30,4 @@ import { getAllSkillPacks, getCompatibleSkillPacks, getSkillPackById, skillPackR
|
|
|
28
30
|
import { SkillManifestEntry, getAllManifestSkills, getManifestSkillById, getManifestSkillCount } from "./skills/skill-manifest.mjs";
|
|
29
31
|
import { validate } from "./validator.mjs";
|
|
30
32
|
import { checkCompatibility, getImageReference, getImageTag, pinImageTags } from "./version-manager.mjs";
|
|
31
|
-
export { type AddedDependency, AddedDependencySchema, type AiProvider, type ApiError, ApiErrorSchema, CURRENT_CONFIG_VERSION, type CategoryInfo, type ComposeOptions, ComposeOptionsSchema, type ComposeResult, CoolifyDeployer, type Deploy, DeploySchema, type DeployTarget, DeployTargetSchema, type DeploymentTarget, DeploymentTargetSchema, type DeploymentType, DeploymentTypeSchema, DokployDeployer, type EnvVarGroup, type EnvVariable, EnvVariableSchema, ErrorSchema, type GeneratedFiles, type GenerationInput, GenerationInputSchema, type GenerationMetadata, type GenerationResult, type GsdRuntime, type HealthCheck, HealthCheckSchema, type Maturity, MaturitySchema, type NativePlatform, NativePlatformSchema, type NativeRecipe, NativeRecipeSchema, type OpenclawImageVariant, OpenclawImageVariantSchema, type OpenclawInstallMethod, OpenclawInstallMethodSchema, type OutputFormat, OutputFormatSchema, type DeployInput as PaasDeployInput, type DeployResult as PaasDeployResult, type DeployStep as PaasDeployStep, type DeployTarget$1 as PaasDeployTarget, type PaasDeployer, type PaasServer, type Platform, PlatformSchema, type PortConflict, type PortMapping, PortMappingSchema, type Preset, PresetSchema, type ProxyType, ProxyTypeSchema, type ResolvedService, ResolvedServiceSchema, type ResolverError, type ResolverInput, type ResolverOutput, ResolverOutputSchema, type ResourceLimits, ResourceLimitsSchema, type RestartPolicy, RestartPolicySchema, SERVICE_CATEGORIES, type ServiceCategory, ServiceCategorySchema, type ServiceDefinition, ServiceDefinitionSchema, type SkillBinding, SkillBindingSchema, type SkillManifestEntry, type SkillPack, SkillPackSchema, StackConfigError, type StackManifest, type StackManifestService, type StackManifestSkill, type ValidateRequest, ValidateRequestSchema, type ValidateResponse, ValidateResponseSchema, ValidationError, type VolumeMapping, VolumeMappingSchema, type Warning, WarningSchema, checkCompatibility, compose, composeMultiFile, deployerRegistry, formatPortConflicts, generate, generateCaddyfile, generateEnvFiles, generateGrafanaConfig, generateGrafanaDashboard, generateHealthCheck, generateN8nWorkflows, generatePostgresInit, generatePrometheusConfig, generateReadme, generateScripts, generateServicesDoc, generateSkillFiles, generateStackManifest, getAllManifestSkills, getAllPresets, getAllServices, getAllSkillPacks, getAvailableDeployers, getCompatibleSkillPacks, getDbRequirements, getDeployer, getImageReference, getImageTag, getManifestSkillById, getManifestSkillCount, getPresetById, getServiceById, getServicesByCategory, getSkillPackById, getStructuredEnvVars, migrateConfig, needsMigration, partitionBareMetal, pinImageTags, platformToNativePlatform, presetRegistry, resolve, resolvedWithOnlyServices, scanPortConflicts, serviceRegistry, skillPackRegistry, validate };
|
|
33
|
+
export { type AddedDependency, AddedDependencySchema, type AiProvider, type AnalyticsPayload, type ApiError, ApiErrorSchema, type BuildContext, BuildContextSchema, CURRENT_CONFIG_VERSION, type CategoryInfo, type ComposeOptions, ComposeOptionsSchema, type ComposeResult, CoolifyDeployer, type Deploy, DeploySchema, type DeployTarget, DeployTargetSchema, type DeploymentTarget, DeploymentTargetSchema, type DeploymentType, DeploymentTypeSchema, DokployDeployer, type EnvVarGroup, type EnvVariable, EnvVariableSchema, ErrorSchema, type GeneratedFiles, type GenerationInput, GenerationInputSchema, type GenerationMetadata, type GenerationResult, type GitSource, GitSourceSchema, type GsdRuntime, type HealthCheck, HealthCheckSchema, type Maturity, MaturitySchema, type NativePlatform, NativePlatformSchema, type NativeRecipe, NativeRecipeSchema, type OpenclawImageVariant, OpenclawImageVariantSchema, type OpenclawInstallMethod, OpenclawInstallMethodSchema, type OutputFormat, OutputFormatSchema, type DeployInput as PaasDeployInput, type DeployResult as PaasDeployResult, type DeployStep as PaasDeployStep, type DeployTarget$1 as PaasDeployTarget, type PaasDeployer, type PaasServer, type Platform, PlatformSchema, type PortConflict, type PortMapping, PortMappingSchema, type Preset, PresetSchema, type ProxyType, ProxyTypeSchema, type ResolvedService, ResolvedServiceSchema, type ResolverError, type ResolverInput, type ResolverOutput, ResolverOutputSchema, type ResourceLimits, ResourceLimitsSchema, type RestartPolicy, RestartPolicySchema, SERVICE_CATEGORIES, type ServiceCategory, ServiceCategorySchema, type ServiceDefinition, ServiceDefinitionSchema, type SkillBinding, SkillBindingSchema, type SkillManifestEntry, type SkillPack, SkillPackSchema, StackConfigError, type StackManifest, type StackManifestService, type StackManifestSkill, type ValidateRequest, ValidateRequestSchema, type ValidateResponse, ValidateResponseSchema, ValidationError, type VolumeMapping, VolumeMappingSchema, type Warning, WarningSchema, buildAnalyticsPayload, checkCompatibility, compose, composeMultiFile, deployerRegistry, formatPortConflicts, generate, generateCaddyfile, generateCloneScripts, generateEnvFiles, generateGrafanaConfig, generateGrafanaDashboard, generateHealthCheck, generateN8nWorkflows, generatePostgresInit, generatePrometheusConfig, generateReadme, generateScripts, generateServicesDoc, generateSkillFiles, generateStackManifest, getAllManifestSkills, getAllPresets, getAllServices, getAllSkillPacks, getAvailableDeployers, getCompatibleSkillPacks, getDbRequirements, getDeployer, getImageReference, getImageTag, getManifestSkillById, getManifestSkillCount, getPresetById, getServiceById, getServicesByCategory, getSkillPackById, getStructuredEnvVars, migrateConfig, needsMigration, partitionBareMetal, pinImageTags, platformToNativePlatform, presetRegistry, resolve, resolvedWithOnlyServices, scanPortConflicts, serviceRegistry, skillPackRegistry, trackAnalytics, validate };
|
package/dist/index.mjs
CHANGED
|
@@ -6,6 +6,7 @@ import { generatePostgresInit, getDbRequirements } from "./generators/postgres-i
|
|
|
6
6
|
import { compose, composeMultiFile } from "./composer.mjs";
|
|
7
7
|
import { StackConfigError, ValidationError } from "./errors.mjs";
|
|
8
8
|
import { generateCaddyfile } from "./generators/caddy.mjs";
|
|
9
|
+
import { generateCloneScripts } from "./generators/clone-repos.mjs";
|
|
9
10
|
import { generateEnvFiles, getStructuredEnvVars } from "./generators/env.mjs";
|
|
10
11
|
import { generateGrafanaConfig, generateGrafanaDashboard } from "./generators/grafana.mjs";
|
|
11
12
|
import { generateHealthCheck } from "./generators/health-check.mjs";
|
|
@@ -22,9 +23,10 @@ import { getAllPresets, getPresetById, presetRegistry } from "./presets/registry
|
|
|
22
23
|
import { CoolifyDeployer } from "./deployers/coolify.mjs";
|
|
23
24
|
import { DokployDeployer } from "./deployers/dokploy.mjs";
|
|
24
25
|
import { deployerRegistry, getAvailableDeployers, getDeployer } from "./deployers/index.mjs";
|
|
26
|
+
import { buildAnalyticsPayload, trackAnalytics } from "./track-analytics.mjs";
|
|
25
27
|
import { formatPortConflicts, scanPortConflicts } from "./port-scanner.mjs";
|
|
26
|
-
import { AddedDependencySchema, ApiErrorSchema, ComposeOptionsSchema, DeploySchema, DeployTargetSchema, DeploymentTargetSchema, DeploymentTypeSchema, EnvVariableSchema, ErrorSchema, GenerationInputSchema, HealthCheckSchema, MaturitySchema, NativePlatformSchema, NativeRecipeSchema, OpenclawImageVariantSchema, OpenclawInstallMethodSchema, OutputFormatSchema, PlatformSchema, PortMappingSchema, PresetSchema, ProxyTypeSchema, ResolvedServiceSchema, ResolverOutputSchema, ResourceLimitsSchema, RestartPolicySchema, ServiceCategorySchema, ServiceDefinitionSchema, SkillBindingSchema, SkillPackSchema, ValidateRequestSchema, ValidateResponseSchema, VolumeMappingSchema, WarningSchema } from "./schema.mjs";
|
|
27
|
-
import { n as getManifestSkillById, r as getManifestSkillCount, t as getAllManifestSkills } from "./skill-manifest-
|
|
28
|
+
import { AddedDependencySchema, ApiErrorSchema, BuildContextSchema, ComposeOptionsSchema, DeploySchema, DeployTargetSchema, DeploymentTargetSchema, DeploymentTypeSchema, EnvVariableSchema, ErrorSchema, GenerationInputSchema, GitSourceSchema, HealthCheckSchema, MaturitySchema, NativePlatformSchema, NativeRecipeSchema, OpenclawImageVariantSchema, OpenclawInstallMethodSchema, OutputFormatSchema, PlatformSchema, PortMappingSchema, PresetSchema, ProxyTypeSchema, ResolvedServiceSchema, ResolverOutputSchema, ResourceLimitsSchema, RestartPolicySchema, ServiceCategorySchema, ServiceDefinitionSchema, SkillBindingSchema, SkillPackSchema, ValidateRequestSchema, ValidateResponseSchema, VolumeMappingSchema, WarningSchema } from "./schema.mjs";
|
|
29
|
+
import { n as getManifestSkillById, r as getManifestSkillCount, t as getAllManifestSkills } from "./skill-manifest-6XhrhWsG.mjs";
|
|
28
30
|
import { SERVICE_CATEGORIES } from "./types.mjs";
|
|
29
31
|
import { checkCompatibility, getImageReference, getImageTag, pinImageTags } from "./version-manager.mjs";
|
|
30
|
-
export { AddedDependencySchema, ApiErrorSchema, CURRENT_CONFIG_VERSION, ComposeOptionsSchema, CoolifyDeployer, DeploySchema, DeployTargetSchema, DeploymentTargetSchema, DeploymentTypeSchema, DokployDeployer, EnvVariableSchema, ErrorSchema, GenerationInputSchema, HealthCheckSchema, MaturitySchema, NativePlatformSchema, NativeRecipeSchema, OpenclawImageVariantSchema, OpenclawInstallMethodSchema, OutputFormatSchema, PlatformSchema, PortMappingSchema, PresetSchema, ProxyTypeSchema, ResolvedServiceSchema, ResolverOutputSchema, ResourceLimitsSchema, RestartPolicySchema, SERVICE_CATEGORIES, ServiceCategorySchema, ServiceDefinitionSchema, SkillBindingSchema, SkillPackSchema, StackConfigError, ValidateRequestSchema, ValidateResponseSchema, ValidationError, VolumeMappingSchema, WarningSchema, checkCompatibility, compose, composeMultiFile, deployerRegistry, formatPortConflicts, generate, generateCaddyfile, generateEnvFiles, generateGrafanaConfig, generateGrafanaDashboard, generateHealthCheck, generateN8nWorkflows, generatePostgresInit, generatePrometheusConfig, generateReadme, generateScripts, generateServicesDoc, generateSkillFiles, generateStackManifest, getAllManifestSkills, getAllPresets, getAllServices, getAllSkillPacks, getAvailableDeployers, getCompatibleSkillPacks, getDbRequirements, getDeployer, getImageReference, getImageTag, getManifestSkillById, getManifestSkillCount, getPresetById, getServiceById, getServicesByCategory, getSkillPackById, getStructuredEnvVars, migrateConfig, needsMigration, partitionBareMetal, pinImageTags, platformToNativePlatform, presetRegistry, resolve, resolvedWithOnlyServices, scanPortConflicts, serviceRegistry, skillPackRegistry, validate };
|
|
32
|
+
export { AddedDependencySchema, ApiErrorSchema, BuildContextSchema, CURRENT_CONFIG_VERSION, ComposeOptionsSchema, CoolifyDeployer, DeploySchema, DeployTargetSchema, DeploymentTargetSchema, DeploymentTypeSchema, DokployDeployer, EnvVariableSchema, ErrorSchema, GenerationInputSchema, GitSourceSchema, HealthCheckSchema, MaturitySchema, NativePlatformSchema, NativeRecipeSchema, OpenclawImageVariantSchema, OpenclawInstallMethodSchema, OutputFormatSchema, PlatformSchema, PortMappingSchema, PresetSchema, ProxyTypeSchema, ResolvedServiceSchema, ResolverOutputSchema, ResourceLimitsSchema, RestartPolicySchema, SERVICE_CATEGORIES, ServiceCategorySchema, ServiceDefinitionSchema, SkillBindingSchema, SkillPackSchema, StackConfigError, ValidateRequestSchema, ValidateResponseSchema, ValidationError, VolumeMappingSchema, WarningSchema, buildAnalyticsPayload, checkCompatibility, compose, composeMultiFile, deployerRegistry, formatPortConflicts, generate, generateCaddyfile, generateCloneScripts, generateEnvFiles, generateGrafanaConfig, generateGrafanaDashboard, generateHealthCheck, generateN8nWorkflows, generatePostgresInit, generatePrometheusConfig, generateReadme, generateScripts, generateServicesDoc, generateSkillFiles, generateStackManifest, getAllManifestSkills, getAllPresets, getAllServices, getAllSkillPacks, getAvailableDeployers, getCompatibleSkillPacks, getDbRequirements, getDeployer, getImageReference, getImageTag, getManifestSkillById, getManifestSkillCount, getPresetById, getServiceById, getServicesByCategory, getSkillPackById, getStructuredEnvVars, migrateConfig, needsMigration, partitionBareMetal, pinImageTags, platformToNativePlatform, presetRegistry, resolve, resolvedWithOnlyServices, scanPortConflicts, serviceRegistry, skillPackRegistry, trackAnalytics, validate };
|
package/dist/migrations.test.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_vi_2VT5v0um = require("./vi.2VT5v0um-
|
|
1
|
+
const require_vi_2VT5v0um = require("./vi.2VT5v0um-iVBt6Fyq.cjs");
|
|
2
2
|
const require_migrations = require("./migrations.cjs");
|
|
3
3
|
//#region src/migrations.test.ts
|
|
4
4
|
require_vi_2VT5v0um.describe("config migrations", () => {
|
package/dist/migrations.test.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as describe, r as it, t as globalExpect } from "./vi.2VT5v0um-
|
|
1
|
+
import { n as describe, r as it, t as globalExpect } from "./vi.2VT5v0um-C_jmO7m2.mjs";
|
|
2
2
|
import { migrateConfig, needsMigration } from "./migrations.mjs";
|
|
3
3
|
//#region src/migrations.test.ts
|
|
4
4
|
describe("config migrations", () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.cjs","names":[],"sources":["../../src/presets/registry.ts"],"sourcesContent":["import type { Preset } from \"../types.js\";\n\nconst presets: Preset[] = [\n {\n id: \"minimal\",\n name: \"Minimal\",\n description: \"OpenClaw + Redis for caching and session management\",\n services: [\"redis\", \"caddy\"],\n skillPacks: [],\n estimatedMemoryMB: 1024,\n },\n {\n id: \"creator\",\n name: \"Creator\",\n description:\n \"Full media creation stack with FFmpeg, Remotion, and MinIO storage\",\n services: [\"ffmpeg\", \"remotion\", \"minio\", \"redis\", \"caddy\"],\n skillPacks: [\"video-creator\"],\n estimatedMemoryMB: 2048,\n },\n {\n id: \"researcher\",\n name: \"Researcher\",\n description:\n \"Research agent with vector search, web scraping, and meta search\",\n services: [\n \"qdrant\",\n \"searxng\",\n \"browserless\",\n \"redis\",\n \"caddy\",\n \"postgresql\",\n ],\n skillPacks: [\"research-agent\"],\n estimatedMemoryMB: 2560,\n },\n {\n id: \"devops\",\n name: \"DevOps\",\n description:\n \"Full monitoring and automation stack with n8n, Grafana, and Uptime Kuma\",\n services: [\n \"n8n\",\n \"postgresql\",\n \"redis\",\n \"uptime-kuma\",\n \"grafana\",\n \"prometheus\",\n \"caddy\",\n ],\n skillPacks: [\"dev-ops\"],\n estimatedMemoryMB: 3072,\n },\n {\n id: \"full\",\n name: \"Full Stack\",\n description: \"Everything enabled — all services and skill packs\",\n services: [\n \"redis\",\n \"postgresql\",\n \"qdrant\",\n \"n8n\",\n \"ffmpeg\",\n \"remotion\",\n \"minio\",\n \"caddy\",\n \"browserless\",\n \"searxng\",\n \"meilisearch\",\n \"uptime-kuma\",\n \"grafana\",\n \"prometheus\",\n \"ollama\",\n \"whisper\",\n \"gotify\",\n ],\n skillPacks: [\n \"video-creator\",\n \"research-agent\",\n \"social-media\",\n \"dev-ops\",\n \"knowledge-base\",\n \"local-ai\",\n ],\n estimatedMemoryMB: 8192,\n },\n {\n id: \"content-creator\",\n name: \"Content Creator\",\n description:\n \"Social media scheduling with Postiz, media processing, and analytics\",\n services: [\n \"postiz\",\n \"ffmpeg\",\n \"minio\",\n \"redis\",\n \"postgresql\",\n \"umami\",\n \"caddy\",\n ],\n skillPacks: [\"content-creator\"],\n estimatedMemoryMB: 2048,\n },\n {\n id: \"ai-playground\",\n name: \"AI Playground\",\n description:\n \"Local AI stack with Ollama, Open WebUI, LiteLLM gateway, and document chat\",\n services: [\n \"ollama\",\n \"open-webui\",\n \"litellm\",\n \"anything-llm\",\n \"redis\",\n \"caddy\",\n ],\n skillPacks: [\"ai-playground\"],\n estimatedMemoryMB: 4096,\n },\n {\n id: \"ai-powerhouse\",\n name: \"AI Powerhouse\",\n description:\n \"Local AI stack with Ollama, Open WebUI, LiteLLM gateway, and document chat\",\n services: [\n \"ollama\",\n \"redis\",\n \"qdrant\",\n \"minio\",\n \"litellm\",\n \"anything-llm\",\n \"n8n\",\n \"postgresql\",\n \"caddy\",\n \"open-webui\",\n \"searxng\",\n ],\n skillPacks: [\"ai-playground\"],\n estimatedMemoryMB: 4096,\n },\n {\n id: \"ai-virtual-desktop\",\n name: \"AI Virtual Desktop\",\n description:\n \"Self-hosted autonomous AI agent with local LLM, vector memory, web search, browser automation, and workflow orchestration. The open-source alternative to Manus and Perplexity Computer.\",\n services: [\n \"ollama\",\n \"qdrant\",\n \"postgresql\",\n \"redis\",\n \"minio\",\n \"n8n\",\n \"browserless\",\n \"open-webui\",\n \"searxng\",\n \"caddy\",\n ],\n skillPacks: [\"research-agent\", \"dev-ops\"],\n estimatedMemoryMB: 6144,\n },\n {\n id: \"coding-team\",\n name: \"Coding Team\",\n description:\n \"AI development environment with coding agents, Git, and browser IDE\",\n services: [\n \"claude-code\",\n \"opencode\",\n \"gitea\",\n \"code-server\",\n \"redis\",\n \"caddy\",\n ],\n skillPacks: [\"coding-team\"],\n estimatedMemoryMB: 2560,\n },\n {\n id: \"lasuite-meet\",\n name: \"La Suite Meet\",\n description:\n \"Open-source video conferencing from La Suite numérique (Django + LiveKit)\",\n services: [\n \"postgresql\",\n \"redis\",\n \"livekit\",\n \"lasuite-meet-backend\",\n \"lasuite-meet-frontend\",\n \"lasuite-meet-agents\",\n \"whisper\",\n \"ollama\",\n \"caddy\",\n ],\n skillPacks: [],\n estimatedMemoryMB: 2048,\n },\n // ── New service presets ─────────────────────────────────────────────────\n {\n id: \"backend-platform\",\n name: \"Backend Platform\",\n description:\n \"BaaS stack with Appwrite, MariaDB, Redis, RabbitMQ for auth, storage, and async workflows\",\n services: [\"appwrite\", \"mariadb\", \"redis\", \"rabbitmq\", \"caddy\"],\n skillPacks: [\"appwrite-platform\"],\n estimatedMemoryMB: 3072,\n },\n {\n id: \"rag-platform\",\n name: \"RAG Platform\",\n description:\n \"RAGFlow with MySQL, Redis, MinIO, OpenSearch for knowledge ingestion and grounded AI assistants\",\n services: [\"ragflow\", \"mysql\", \"redis\", \"minio\", \"opensearch\", \"caddy\"],\n skillPacks: [\"ragflow-platform\"],\n estimatedMemoryMB: 6144,\n },\n {\n id: \"zero-trust\",\n name: \"Zero-Trust Security\",\n description:\n \"SSO, secrets management, and access control with Authelia, Keycloak, and Infisical\",\n services: [\n \"authelia\",\n \"keycloak\",\n \"infisical\",\n \"postgresql\",\n \"redis\",\n \"caddy\",\n ],\n skillPacks: [\"authelia-security\"],\n estimatedMemoryMB: 3584,\n },\n {\n id: \"content-platform\",\n name: \"Content Platform\",\n description:\n \"CMS and newsletter stack with Directus, Strapi, Listmonk, and Stirling PDF\",\n services: [\n \"directus\",\n \"strapi\",\n \"listmonk\",\n \"postgresql\",\n \"redis\",\n \"stirling-pdf\",\n \"caddy\",\n ],\n skillPacks: [\"cms-stack\"],\n estimatedMemoryMB: 3584,\n },\n {\n id: \"ai-orchestrator\",\n name: \"AI Orchestrator\",\n description:\n \"Langflow and Firecrawl for building and deploying AI workflows\",\n services: [\"langflow\", \"firecrawl\", \"postgresql\", \"redis\", \"caddy\"],\n skillPacks: [\"ai-agent-orchestra\"],\n estimatedMemoryMB: 3072,\n },\n // ── New Presets (from feature analysis) ───────────────────────────────────\n {\n id: \"support-desk\",\n name: \"Support Desk\",\n description:\n \"AI-powered customer support with live chat, LLM observability, and ticket management\",\n services: [\n \"chatwoot\",\n \"chatwoot-worker\",\n \"langfuse\",\n \"redis\",\n \"postgresql\",\n \"caddy\",\n ],\n skillPacks: [\"customer-support\"],\n estimatedMemoryMB: 3072,\n },\n {\n id: \"sales-machine\",\n name: \"Sales Machine\",\n description:\n \"CRM-driven sales pipeline with email marketing, newsletters, and workflow automation\",\n services: [\n \"twenty\",\n \"mautic\",\n \"listmonk\",\n \"n8n\",\n \"postgresql\",\n \"mysql\",\n \"redis\",\n \"caddy\",\n ],\n skillPacks: [\"sales-pipeline\"],\n estimatedMemoryMB: 4096,\n },\n {\n id: \"data-warehouse\",\n name: \"Data Warehouse\",\n description:\n \"End-to-end data pipeline with DAG orchestration, 300+ connectors, and monitoring\",\n services: [\n \"airflow\",\n \"airbyte\",\n \"postgresql\",\n \"grafana\",\n \"prometheus\",\n \"redis\",\n \"caddy\",\n ],\n skillPacks: [\"data-pipeline\"],\n estimatedMemoryMB: 4096,\n },\n {\n id: \"voice-center\",\n name: \"Voice Center\",\n description:\n \"AI voice agent stack with programmable telephony, transcription, and real-time comms\",\n services: [\"fonoster\", \"livekit\", \"whisper\", \"redis\", \"caddy\"],\n skillPacks: [\"voice-agent\"],\n estimatedMemoryMB: 3072,\n },\n {\n id: \"shopfront\",\n name: \"Shopfront\",\n description:\n \"AI-managed headless e-commerce with product management and object storage\",\n services: [\"medusa\", \"minio\", \"postgresql\", \"redis\", \"caddy\"],\n skillPacks: [\"ecommerce-ops\"],\n estimatedMemoryMB: 2560,\n },\n];\n\nconst presetMap = new Map<string, Preset>();\nfor (const preset of presets) {\n if (presetMap.has(preset.id)) {\n throw new Error(`Duplicate preset ID: \"${preset.id}\"`);\n }\n presetMap.set(preset.id, preset);\n}\n\nexport const presetRegistry: ReadonlyMap<string, Preset> = presetMap;\n\nexport function getPresetById(id: string): Preset | undefined {\n return presetMap.get(id);\n}\n\nexport function getAllPresets(): Preset[] {\n return [...presets];\n}\n"],"mappings":";;AAEA,MAAM,UAAoB;CACxB;EACE,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU,CAAC,SAAS,QAAQ;EAC5B,YAAY,EAAE;EACd,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GAAC;GAAU;GAAY;GAAS;GAAS;GAAQ;EAC3D,YAAY,CAAC,gBAAgB;EAC7B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,iBAAiB;EAC9B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,UAAU;EACvB,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY;GACV;GACA;GACA;GACA;GACA;GACA;GACD;EACD,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,kBAAkB;EAC/B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,gBAAgB;EAC7B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,gBAAgB;EAC7B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,kBAAkB,UAAU;EACzC,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,cAAc;EAC3B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,EAAE;EACd,mBAAmB;EACpB;CAED;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GAAC;GAAY;GAAW;GAAS;GAAY;GAAQ;EAC/D,YAAY,CAAC,oBAAoB;EACjC,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GAAC;GAAW;GAAS;GAAS;GAAS;GAAc;GAAQ;EACvE,YAAY,CAAC,mBAAmB;EAChC,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,oBAAoB;EACjC,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,YAAY;EACzB,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GAAC;GAAY;GAAa;GAAc;GAAS;GAAQ;EACnE,YAAY,CAAC,qBAAqB;EAClC,mBAAmB;EACpB;CAED;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,mBAAmB;EAChC,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,iBAAiB;EAC9B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,gBAAgB;EAC7B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GAAC;GAAY;GAAW;GAAW;GAAS;GAAQ;EAC9D,YAAY,CAAC,cAAc;EAC3B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GAAC;GAAU;GAAS;GAAc;GAAS;GAAQ;EAC7D,YAAY,CAAC,gBAAgB;EAC7B,mBAAmB;EACpB;CACF;AAED,MAAM,4BAAY,IAAI,KAAqB;AAC3C,KAAK,MAAM,UAAU,SAAS;AAC5B,KAAI,UAAU,IAAI,OAAO,GAAG,CAC1B,OAAM,IAAI,MAAM,yBAAyB,OAAO,GAAG,GAAG;AAExD,WAAU,IAAI,OAAO,IAAI,OAAO;;AAGlC,MAAa,iBAA8C;AAE3D,SAAgB,cAAc,IAAgC;AAC5D,QAAO,UAAU,IAAI,GAAG;;AAG1B,SAAgB,gBAA0B;AACxC,QAAO,CAAC,GAAG,QAAQ"}
|
|
1
|
+
{"version":3,"file":"registry.cjs","names":[],"sources":["../../src/presets/registry.ts"],"sourcesContent":["import type { Preset } from \"../types.js\";\n\nconst presets: Preset[] = [\n\t{\n\t\tid: \"minimal\",\n\t\tname: \"Minimal\",\n\t\tdescription: \"OpenClaw + Redis for caching and session management\",\n\t\tservices: [\"redis\", \"caddy\"],\n\t\tskillPacks: [],\n\t\testimatedMemoryMB: 1024,\n\t},\n\t{\n\t\tid: \"creator\",\n\t\tname: \"Creator\",\n\t\tdescription: \"Full media creation stack with FFmpeg, Remotion, and MinIO storage\",\n\t\tservices: [\"ffmpeg\", \"remotion\", \"minio\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"video-creator\"],\n\t\testimatedMemoryMB: 2048,\n\t},\n\t{\n\t\tid: \"researcher\",\n\t\tname: \"Researcher\",\n\t\tdescription: \"Research agent with vector search, web scraping, and meta search\",\n\t\tservices: [\"qdrant\", \"searxng\", \"browserless\", \"redis\", \"caddy\", \"postgresql\"],\n\t\tskillPacks: [\"research-agent\"],\n\t\testimatedMemoryMB: 2560,\n\t},\n\t{\n\t\tid: \"devops\",\n\t\tname: \"DevOps\",\n\t\tdescription: \"Full monitoring and automation stack with n8n, Grafana, and Uptime Kuma\",\n\t\tservices: [\"n8n\", \"postgresql\", \"redis\", \"uptime-kuma\", \"grafana\", \"prometheus\", \"caddy\"],\n\t\tskillPacks: [\"dev-ops\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t{\n\t\tid: \"full\",\n\t\tname: \"Full Stack\",\n\t\tdescription: \"Everything enabled — all services and skill packs\",\n\t\tservices: [\n\t\t\t\"redis\",\n\t\t\t\"postgresql\",\n\t\t\t\"qdrant\",\n\t\t\t\"n8n\",\n\t\t\t\"ffmpeg\",\n\t\t\t\"remotion\",\n\t\t\t\"minio\",\n\t\t\t\"caddy\",\n\t\t\t\"browserless\",\n\t\t\t\"searxng\",\n\t\t\t\"meilisearch\",\n\t\t\t\"uptime-kuma\",\n\t\t\t\"grafana\",\n\t\t\t\"prometheus\",\n\t\t\t\"ollama\",\n\t\t\t\"whisper\",\n\t\t\t\"gotify\",\n\t\t],\n\t\tskillPacks: [\n\t\t\t\"video-creator\",\n\t\t\t\"research-agent\",\n\t\t\t\"social-media\",\n\t\t\t\"dev-ops\",\n\t\t\t\"knowledge-base\",\n\t\t\t\"local-ai\",\n\t\t],\n\t\testimatedMemoryMB: 8192,\n\t},\n\t{\n\t\tid: \"content-creator\",\n\t\tname: \"Content Creator\",\n\t\tdescription: \"Social media scheduling with Postiz, media processing, and analytics\",\n\t\tservices: [\"postiz\", \"ffmpeg\", \"minio\", \"redis\", \"postgresql\", \"umami\", \"caddy\"],\n\t\tskillPacks: [\"content-creator\"],\n\t\testimatedMemoryMB: 2048,\n\t},\n\t{\n\t\tid: \"ai-playground\",\n\t\tname: \"AI Playground\",\n\t\tdescription: \"Local AI stack with Ollama, Open WebUI, LiteLLM gateway, and document chat\",\n\t\tservices: [\"ollama\", \"open-webui\", \"litellm\", \"anything-llm\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"ai-playground\"],\n\t\testimatedMemoryMB: 4096,\n\t},\n\t{\n\t\tid: \"ai-powerhouse\",\n\t\tname: \"AI Powerhouse\",\n\t\tdescription: \"Local AI stack with Ollama, Open WebUI, LiteLLM gateway, and document chat\",\n\t\tservices: [\n\t\t\t\"ollama\",\n\t\t\t\"redis\",\n\t\t\t\"qdrant\",\n\t\t\t\"minio\",\n\t\t\t\"litellm\",\n\t\t\t\"anything-llm\",\n\t\t\t\"n8n\",\n\t\t\t\"postgresql\",\n\t\t\t\"caddy\",\n\t\t\t\"open-webui\",\n\t\t\t\"searxng\",\n\t\t],\n\t\tskillPacks: [\"ai-playground\"],\n\t\testimatedMemoryMB: 4096,\n\t},\n\t{\n\t\tid: \"ai-virtual-desktop\",\n\t\tname: \"AI Virtual Desktop\",\n\t\tdescription:\n\t\t\t\"Self-hosted autonomous AI agent with local LLM, vector memory, web search, browser automation, and workflow orchestration. The open-source alternative to Manus and Perplexity Computer.\",\n\t\tservices: [\n\t\t\t\"ollama\",\n\t\t\t\"qdrant\",\n\t\t\t\"postgresql\",\n\t\t\t\"redis\",\n\t\t\t\"minio\",\n\t\t\t\"n8n\",\n\t\t\t\"browserless\",\n\t\t\t\"open-webui\",\n\t\t\t\"searxng\",\n\t\t\t\"caddy\",\n\t\t],\n\t\tskillPacks: [\"research-agent\", \"dev-ops\"],\n\t\testimatedMemoryMB: 6144,\n\t},\n\t{\n\t\tid: \"coding-team\",\n\t\tname: \"Coding Team\",\n\t\tdescription: \"AI development environment with coding agents, Git, and browser IDE\",\n\t\tservices: [\"claude-code\", \"opencode\", \"gitea\", \"code-server\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"coding-team\"],\n\t\testimatedMemoryMB: 2560,\n\t},\n\t{\n\t\tid: \"lasuite-meet\",\n\t\tname: \"La Suite Meet\",\n\t\tdescription: \"Open-source video conferencing from La Suite numérique (Django + LiveKit)\",\n\t\tservices: [\n\t\t\t\"postgresql\",\n\t\t\t\"redis\",\n\t\t\t\"livekit\",\n\t\t\t\"lasuite-meet-backend\",\n\t\t\t\"lasuite-meet-frontend\",\n\t\t\t\"lasuite-meet-agents\",\n\t\t\t\"whisper\",\n\t\t\t\"ollama\",\n\t\t\t\"caddy\",\n\t\t],\n\t\tskillPacks: [],\n\t\testimatedMemoryMB: 2048,\n\t},\n\t// ── New service presets ─────────────────────────────────────────────────\n\t{\n\t\tid: \"backend-platform\",\n\t\tname: \"Backend Platform\",\n\t\tdescription:\n\t\t\t\"BaaS stack with Appwrite, MariaDB, Redis, RabbitMQ for auth, storage, and async workflows\",\n\t\tservices: [\"appwrite\", \"mariadb\", \"redis\", \"rabbitmq\", \"caddy\"],\n\t\tskillPacks: [\"appwrite-platform\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t{\n\t\tid: \"rag-platform\",\n\t\tname: \"RAG Platform\",\n\t\tdescription:\n\t\t\t\"RAGFlow with MySQL, Redis, MinIO, OpenSearch for knowledge ingestion and grounded AI assistants\",\n\t\tservices: [\"ragflow\", \"mysql\", \"redis\", \"minio\", \"opensearch\", \"caddy\"],\n\t\tskillPacks: [\"ragflow-platform\"],\n\t\testimatedMemoryMB: 6144,\n\t},\n\t{\n\t\tid: \"zero-trust\",\n\t\tname: \"Zero-Trust Security\",\n\t\tdescription:\n\t\t\t\"SSO, secrets management, and access control with Authelia, Keycloak, and Infisical\",\n\t\tservices: [\"authelia\", \"keycloak\", \"infisical\", \"postgresql\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"authelia-security\"],\n\t\testimatedMemoryMB: 3584,\n\t},\n\t{\n\t\tid: \"content-platform\",\n\t\tname: \"Content Platform\",\n\t\tdescription: \"CMS and newsletter stack with Directus, Strapi, Listmonk, and Stirling PDF\",\n\t\tservices: [\"directus\", \"strapi\", \"listmonk\", \"postgresql\", \"redis\", \"stirling-pdf\", \"caddy\"],\n\t\tskillPacks: [\"cms-stack\"],\n\t\testimatedMemoryMB: 3584,\n\t},\n\t{\n\t\tid: \"ai-orchestrator\",\n\t\tname: \"AI Orchestrator\",\n\t\tdescription: \"Langflow and Firecrawl for building and deploying AI workflows\",\n\t\tservices: [\"langflow\", \"firecrawl\", \"postgresql\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"ai-agent-orchestra\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t// ── New Presets (from feature analysis) ───────────────────────────────────\n\t{\n\t\tid: \"support-desk\",\n\t\tname: \"Support Desk\",\n\t\tdescription:\n\t\t\t\"AI-powered customer support with live chat, LLM observability, and ticket management\",\n\t\tservices: [\"chatwoot\", \"chatwoot-worker\", \"langfuse\", \"redis\", \"postgresql\", \"caddy\"],\n\t\tskillPacks: [\"customer-support\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t{\n\t\tid: \"sales-machine\",\n\t\tname: \"Sales Machine\",\n\t\tdescription:\n\t\t\t\"CRM-driven sales pipeline with email marketing, newsletters, and workflow automation\",\n\t\tservices: [\"twenty\", \"mautic\", \"listmonk\", \"n8n\", \"postgresql\", \"mysql\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"sales-pipeline\"],\n\t\testimatedMemoryMB: 4096,\n\t},\n\t{\n\t\tid: \"data-warehouse\",\n\t\tname: \"Data Warehouse\",\n\t\tdescription: \"End-to-end data pipeline with DAG orchestration, 300+ connectors, and monitoring\",\n\t\tservices: [\"airflow\", \"airbyte\", \"postgresql\", \"grafana\", \"prometheus\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"data-pipeline\"],\n\t\testimatedMemoryMB: 4096,\n\t},\n\t{\n\t\tid: \"voice-center\",\n\t\tname: \"Voice Center\",\n\t\tdescription:\n\t\t\t\"AI voice agent stack with programmable telephony, transcription, and real-time comms\",\n\t\tservices: [\"fonoster\", \"livekit\", \"whisper\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"voice-agent\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t{\n\t\tid: \"shopfront\",\n\t\tname: \"Shopfront\",\n\t\tdescription: \"AI-managed headless e-commerce with product management and object storage\",\n\t\tservices: [\"medusa\", \"minio\", \"postgresql\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"ecommerce-ops\"],\n\t\testimatedMemoryMB: 2560,\n\t},\n];\n\nconst presetMap = new Map<string, Preset>();\nfor (const preset of presets) {\n\tif (presetMap.has(preset.id)) {\n\t\tthrow new Error(`Duplicate preset ID: \"${preset.id}\"`);\n\t}\n\tpresetMap.set(preset.id, preset);\n}\n\nexport const presetRegistry: ReadonlyMap<string, Preset> = presetMap;\n\nexport function getPresetById(id: string): Preset | undefined {\n\treturn presetMap.get(id);\n}\n\nexport function getAllPresets(): Preset[] {\n\treturn [...presets];\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.cts","names":[],"sources":["../../src/presets/registry.ts"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"registry.d.cts","names":[],"sources":["../../src/presets/registry.ts"],"mappings":";;;cAwPa,cAAA,EAAgB,WAAA,SAAoB,MAAA;AAAA,iBAEjC,aAAA,CAAc,EAAA,WAAa,MAAA;AAAA,iBAI3B,aAAA,CAAA,GAAiB,MAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.mts","names":[],"sources":["../../src/presets/registry.ts"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"registry.d.mts","names":[],"sources":["../../src/presets/registry.ts"],"mappings":";;;cAwPa,cAAA,EAAgB,WAAA,SAAoB,MAAA;AAAA,iBAEjC,aAAA,CAAc,EAAA,WAAa,MAAA;AAAA,iBAI3B,aAAA,CAAA,GAAiB,MAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.mjs","names":[],"sources":["../../src/presets/registry.ts"],"sourcesContent":["import type { Preset } from \"../types.js\";\n\nconst presets: Preset[] = [\n {\n id: \"minimal\",\n name: \"Minimal\",\n description: \"OpenClaw + Redis for caching and session management\",\n services: [\"redis\", \"caddy\"],\n skillPacks: [],\n estimatedMemoryMB: 1024,\n },\n {\n id: \"creator\",\n name: \"Creator\",\n description:\n \"Full media creation stack with FFmpeg, Remotion, and MinIO storage\",\n services: [\"ffmpeg\", \"remotion\", \"minio\", \"redis\", \"caddy\"],\n skillPacks: [\"video-creator\"],\n estimatedMemoryMB: 2048,\n },\n {\n id: \"researcher\",\n name: \"Researcher\",\n description:\n \"Research agent with vector search, web scraping, and meta search\",\n services: [\n \"qdrant\",\n \"searxng\",\n \"browserless\",\n \"redis\",\n \"caddy\",\n \"postgresql\",\n ],\n skillPacks: [\"research-agent\"],\n estimatedMemoryMB: 2560,\n },\n {\n id: \"devops\",\n name: \"DevOps\",\n description:\n \"Full monitoring and automation stack with n8n, Grafana, and Uptime Kuma\",\n services: [\n \"n8n\",\n \"postgresql\",\n \"redis\",\n \"uptime-kuma\",\n \"grafana\",\n \"prometheus\",\n \"caddy\",\n ],\n skillPacks: [\"dev-ops\"],\n estimatedMemoryMB: 3072,\n },\n {\n id: \"full\",\n name: \"Full Stack\",\n description: \"Everything enabled — all services and skill packs\",\n services: [\n \"redis\",\n \"postgresql\",\n \"qdrant\",\n \"n8n\",\n \"ffmpeg\",\n \"remotion\",\n \"minio\",\n \"caddy\",\n \"browserless\",\n \"searxng\",\n \"meilisearch\",\n \"uptime-kuma\",\n \"grafana\",\n \"prometheus\",\n \"ollama\",\n \"whisper\",\n \"gotify\",\n ],\n skillPacks: [\n \"video-creator\",\n \"research-agent\",\n \"social-media\",\n \"dev-ops\",\n \"knowledge-base\",\n \"local-ai\",\n ],\n estimatedMemoryMB: 8192,\n },\n {\n id: \"content-creator\",\n name: \"Content Creator\",\n description:\n \"Social media scheduling with Postiz, media processing, and analytics\",\n services: [\n \"postiz\",\n \"ffmpeg\",\n \"minio\",\n \"redis\",\n \"postgresql\",\n \"umami\",\n \"caddy\",\n ],\n skillPacks: [\"content-creator\"],\n estimatedMemoryMB: 2048,\n },\n {\n id: \"ai-playground\",\n name: \"AI Playground\",\n description:\n \"Local AI stack with Ollama, Open WebUI, LiteLLM gateway, and document chat\",\n services: [\n \"ollama\",\n \"open-webui\",\n \"litellm\",\n \"anything-llm\",\n \"redis\",\n \"caddy\",\n ],\n skillPacks: [\"ai-playground\"],\n estimatedMemoryMB: 4096,\n },\n {\n id: \"ai-powerhouse\",\n name: \"AI Powerhouse\",\n description:\n \"Local AI stack with Ollama, Open WebUI, LiteLLM gateway, and document chat\",\n services: [\n \"ollama\",\n \"redis\",\n \"qdrant\",\n \"minio\",\n \"litellm\",\n \"anything-llm\",\n \"n8n\",\n \"postgresql\",\n \"caddy\",\n \"open-webui\",\n \"searxng\",\n ],\n skillPacks: [\"ai-playground\"],\n estimatedMemoryMB: 4096,\n },\n {\n id: \"ai-virtual-desktop\",\n name: \"AI Virtual Desktop\",\n description:\n \"Self-hosted autonomous AI agent with local LLM, vector memory, web search, browser automation, and workflow orchestration. The open-source alternative to Manus and Perplexity Computer.\",\n services: [\n \"ollama\",\n \"qdrant\",\n \"postgresql\",\n \"redis\",\n \"minio\",\n \"n8n\",\n \"browserless\",\n \"open-webui\",\n \"searxng\",\n \"caddy\",\n ],\n skillPacks: [\"research-agent\", \"dev-ops\"],\n estimatedMemoryMB: 6144,\n },\n {\n id: \"coding-team\",\n name: \"Coding Team\",\n description:\n \"AI development environment with coding agents, Git, and browser IDE\",\n services: [\n \"claude-code\",\n \"opencode\",\n \"gitea\",\n \"code-server\",\n \"redis\",\n \"caddy\",\n ],\n skillPacks: [\"coding-team\"],\n estimatedMemoryMB: 2560,\n },\n {\n id: \"lasuite-meet\",\n name: \"La Suite Meet\",\n description:\n \"Open-source video conferencing from La Suite numérique (Django + LiveKit)\",\n services: [\n \"postgresql\",\n \"redis\",\n \"livekit\",\n \"lasuite-meet-backend\",\n \"lasuite-meet-frontend\",\n \"lasuite-meet-agents\",\n \"whisper\",\n \"ollama\",\n \"caddy\",\n ],\n skillPacks: [],\n estimatedMemoryMB: 2048,\n },\n // ── New service presets ─────────────────────────────────────────────────\n {\n id: \"backend-platform\",\n name: \"Backend Platform\",\n description:\n \"BaaS stack with Appwrite, MariaDB, Redis, RabbitMQ for auth, storage, and async workflows\",\n services: [\"appwrite\", \"mariadb\", \"redis\", \"rabbitmq\", \"caddy\"],\n skillPacks: [\"appwrite-platform\"],\n estimatedMemoryMB: 3072,\n },\n {\n id: \"rag-platform\",\n name: \"RAG Platform\",\n description:\n \"RAGFlow with MySQL, Redis, MinIO, OpenSearch for knowledge ingestion and grounded AI assistants\",\n services: [\"ragflow\", \"mysql\", \"redis\", \"minio\", \"opensearch\", \"caddy\"],\n skillPacks: [\"ragflow-platform\"],\n estimatedMemoryMB: 6144,\n },\n {\n id: \"zero-trust\",\n name: \"Zero-Trust Security\",\n description:\n \"SSO, secrets management, and access control with Authelia, Keycloak, and Infisical\",\n services: [\n \"authelia\",\n \"keycloak\",\n \"infisical\",\n \"postgresql\",\n \"redis\",\n \"caddy\",\n ],\n skillPacks: [\"authelia-security\"],\n estimatedMemoryMB: 3584,\n },\n {\n id: \"content-platform\",\n name: \"Content Platform\",\n description:\n \"CMS and newsletter stack with Directus, Strapi, Listmonk, and Stirling PDF\",\n services: [\n \"directus\",\n \"strapi\",\n \"listmonk\",\n \"postgresql\",\n \"redis\",\n \"stirling-pdf\",\n \"caddy\",\n ],\n skillPacks: [\"cms-stack\"],\n estimatedMemoryMB: 3584,\n },\n {\n id: \"ai-orchestrator\",\n name: \"AI Orchestrator\",\n description:\n \"Langflow and Firecrawl for building and deploying AI workflows\",\n services: [\"langflow\", \"firecrawl\", \"postgresql\", \"redis\", \"caddy\"],\n skillPacks: [\"ai-agent-orchestra\"],\n estimatedMemoryMB: 3072,\n },\n // ── New Presets (from feature analysis) ───────────────────────────────────\n {\n id: \"support-desk\",\n name: \"Support Desk\",\n description:\n \"AI-powered customer support with live chat, LLM observability, and ticket management\",\n services: [\n \"chatwoot\",\n \"chatwoot-worker\",\n \"langfuse\",\n \"redis\",\n \"postgresql\",\n \"caddy\",\n ],\n skillPacks: [\"customer-support\"],\n estimatedMemoryMB: 3072,\n },\n {\n id: \"sales-machine\",\n name: \"Sales Machine\",\n description:\n \"CRM-driven sales pipeline with email marketing, newsletters, and workflow automation\",\n services: [\n \"twenty\",\n \"mautic\",\n \"listmonk\",\n \"n8n\",\n \"postgresql\",\n \"mysql\",\n \"redis\",\n \"caddy\",\n ],\n skillPacks: [\"sales-pipeline\"],\n estimatedMemoryMB: 4096,\n },\n {\n id: \"data-warehouse\",\n name: \"Data Warehouse\",\n description:\n \"End-to-end data pipeline with DAG orchestration, 300+ connectors, and monitoring\",\n services: [\n \"airflow\",\n \"airbyte\",\n \"postgresql\",\n \"grafana\",\n \"prometheus\",\n \"redis\",\n \"caddy\",\n ],\n skillPacks: [\"data-pipeline\"],\n estimatedMemoryMB: 4096,\n },\n {\n id: \"voice-center\",\n name: \"Voice Center\",\n description:\n \"AI voice agent stack with programmable telephony, transcription, and real-time comms\",\n services: [\"fonoster\", \"livekit\", \"whisper\", \"redis\", \"caddy\"],\n skillPacks: [\"voice-agent\"],\n estimatedMemoryMB: 3072,\n },\n {\n id: \"shopfront\",\n name: \"Shopfront\",\n description:\n \"AI-managed headless e-commerce with product management and object storage\",\n services: [\"medusa\", \"minio\", \"postgresql\", \"redis\", \"caddy\"],\n skillPacks: [\"ecommerce-ops\"],\n estimatedMemoryMB: 2560,\n },\n];\n\nconst presetMap = new Map<string, Preset>();\nfor (const preset of presets) {\n if (presetMap.has(preset.id)) {\n throw new Error(`Duplicate preset ID: \"${preset.id}\"`);\n }\n presetMap.set(preset.id, preset);\n}\n\nexport const presetRegistry: ReadonlyMap<string, Preset> = presetMap;\n\nexport function getPresetById(id: string): Preset | undefined {\n return presetMap.get(id);\n}\n\nexport function getAllPresets(): Preset[] {\n return [...presets];\n}\n"],"mappings":";AAEA,MAAM,UAAoB;CACxB;EACE,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU,CAAC,SAAS,QAAQ;EAC5B,YAAY,EAAE;EACd,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GAAC;GAAU;GAAY;GAAS;GAAS;GAAQ;EAC3D,YAAY,CAAC,gBAAgB;EAC7B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,iBAAiB;EAC9B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,UAAU;EACvB,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY;GACV;GACA;GACA;GACA;GACA;GACA;GACD;EACD,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,kBAAkB;EAC/B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,gBAAgB;EAC7B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,gBAAgB;EAC7B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,kBAAkB,UAAU;EACzC,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,cAAc;EAC3B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,EAAE;EACd,mBAAmB;EACpB;CAED;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GAAC;GAAY;GAAW;GAAS;GAAY;GAAQ;EAC/D,YAAY,CAAC,oBAAoB;EACjC,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GAAC;GAAW;GAAS;GAAS;GAAS;GAAc;GAAQ;EACvE,YAAY,CAAC,mBAAmB;EAChC,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,oBAAoB;EACjC,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,YAAY;EACzB,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GAAC;GAAY;GAAa;GAAc;GAAS;GAAQ;EACnE,YAAY,CAAC,qBAAqB;EAClC,mBAAmB;EACpB;CAED;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,mBAAmB;EAChC,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,iBAAiB;EAC9B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,gBAAgB;EAC7B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GAAC;GAAY;GAAW;GAAW;GAAS;GAAQ;EAC9D,YAAY,CAAC,cAAc;EAC3B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GAAC;GAAU;GAAS;GAAc;GAAS;GAAQ;EAC7D,YAAY,CAAC,gBAAgB;EAC7B,mBAAmB;EACpB;CACF;AAED,MAAM,4BAAY,IAAI,KAAqB;AAC3C,KAAK,MAAM,UAAU,SAAS;AAC5B,KAAI,UAAU,IAAI,OAAO,GAAG,CAC1B,OAAM,IAAI,MAAM,yBAAyB,OAAO,GAAG,GAAG;AAExD,WAAU,IAAI,OAAO,IAAI,OAAO;;AAGlC,MAAa,iBAA8C;AAE3D,SAAgB,cAAc,IAAgC;AAC5D,QAAO,UAAU,IAAI,GAAG;;AAG1B,SAAgB,gBAA0B;AACxC,QAAO,CAAC,GAAG,QAAQ"}
|
|
1
|
+
{"version":3,"file":"registry.mjs","names":[],"sources":["../../src/presets/registry.ts"],"sourcesContent":["import type { Preset } from \"../types.js\";\n\nconst presets: Preset[] = [\n\t{\n\t\tid: \"minimal\",\n\t\tname: \"Minimal\",\n\t\tdescription: \"OpenClaw + Redis for caching and session management\",\n\t\tservices: [\"redis\", \"caddy\"],\n\t\tskillPacks: [],\n\t\testimatedMemoryMB: 1024,\n\t},\n\t{\n\t\tid: \"creator\",\n\t\tname: \"Creator\",\n\t\tdescription: \"Full media creation stack with FFmpeg, Remotion, and MinIO storage\",\n\t\tservices: [\"ffmpeg\", \"remotion\", \"minio\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"video-creator\"],\n\t\testimatedMemoryMB: 2048,\n\t},\n\t{\n\t\tid: \"researcher\",\n\t\tname: \"Researcher\",\n\t\tdescription: \"Research agent with vector search, web scraping, and meta search\",\n\t\tservices: [\"qdrant\", \"searxng\", \"browserless\", \"redis\", \"caddy\", \"postgresql\"],\n\t\tskillPacks: [\"research-agent\"],\n\t\testimatedMemoryMB: 2560,\n\t},\n\t{\n\t\tid: \"devops\",\n\t\tname: \"DevOps\",\n\t\tdescription: \"Full monitoring and automation stack with n8n, Grafana, and Uptime Kuma\",\n\t\tservices: [\"n8n\", \"postgresql\", \"redis\", \"uptime-kuma\", \"grafana\", \"prometheus\", \"caddy\"],\n\t\tskillPacks: [\"dev-ops\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t{\n\t\tid: \"full\",\n\t\tname: \"Full Stack\",\n\t\tdescription: \"Everything enabled — all services and skill packs\",\n\t\tservices: [\n\t\t\t\"redis\",\n\t\t\t\"postgresql\",\n\t\t\t\"qdrant\",\n\t\t\t\"n8n\",\n\t\t\t\"ffmpeg\",\n\t\t\t\"remotion\",\n\t\t\t\"minio\",\n\t\t\t\"caddy\",\n\t\t\t\"browserless\",\n\t\t\t\"searxng\",\n\t\t\t\"meilisearch\",\n\t\t\t\"uptime-kuma\",\n\t\t\t\"grafana\",\n\t\t\t\"prometheus\",\n\t\t\t\"ollama\",\n\t\t\t\"whisper\",\n\t\t\t\"gotify\",\n\t\t],\n\t\tskillPacks: [\n\t\t\t\"video-creator\",\n\t\t\t\"research-agent\",\n\t\t\t\"social-media\",\n\t\t\t\"dev-ops\",\n\t\t\t\"knowledge-base\",\n\t\t\t\"local-ai\",\n\t\t],\n\t\testimatedMemoryMB: 8192,\n\t},\n\t{\n\t\tid: \"content-creator\",\n\t\tname: \"Content Creator\",\n\t\tdescription: \"Social media scheduling with Postiz, media processing, and analytics\",\n\t\tservices: [\"postiz\", \"ffmpeg\", \"minio\", \"redis\", \"postgresql\", \"umami\", \"caddy\"],\n\t\tskillPacks: [\"content-creator\"],\n\t\testimatedMemoryMB: 2048,\n\t},\n\t{\n\t\tid: \"ai-playground\",\n\t\tname: \"AI Playground\",\n\t\tdescription: \"Local AI stack with Ollama, Open WebUI, LiteLLM gateway, and document chat\",\n\t\tservices: [\"ollama\", \"open-webui\", \"litellm\", \"anything-llm\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"ai-playground\"],\n\t\testimatedMemoryMB: 4096,\n\t},\n\t{\n\t\tid: \"ai-powerhouse\",\n\t\tname: \"AI Powerhouse\",\n\t\tdescription: \"Local AI stack with Ollama, Open WebUI, LiteLLM gateway, and document chat\",\n\t\tservices: [\n\t\t\t\"ollama\",\n\t\t\t\"redis\",\n\t\t\t\"qdrant\",\n\t\t\t\"minio\",\n\t\t\t\"litellm\",\n\t\t\t\"anything-llm\",\n\t\t\t\"n8n\",\n\t\t\t\"postgresql\",\n\t\t\t\"caddy\",\n\t\t\t\"open-webui\",\n\t\t\t\"searxng\",\n\t\t],\n\t\tskillPacks: [\"ai-playground\"],\n\t\testimatedMemoryMB: 4096,\n\t},\n\t{\n\t\tid: \"ai-virtual-desktop\",\n\t\tname: \"AI Virtual Desktop\",\n\t\tdescription:\n\t\t\t\"Self-hosted autonomous AI agent with local LLM, vector memory, web search, browser automation, and workflow orchestration. The open-source alternative to Manus and Perplexity Computer.\",\n\t\tservices: [\n\t\t\t\"ollama\",\n\t\t\t\"qdrant\",\n\t\t\t\"postgresql\",\n\t\t\t\"redis\",\n\t\t\t\"minio\",\n\t\t\t\"n8n\",\n\t\t\t\"browserless\",\n\t\t\t\"open-webui\",\n\t\t\t\"searxng\",\n\t\t\t\"caddy\",\n\t\t],\n\t\tskillPacks: [\"research-agent\", \"dev-ops\"],\n\t\testimatedMemoryMB: 6144,\n\t},\n\t{\n\t\tid: \"coding-team\",\n\t\tname: \"Coding Team\",\n\t\tdescription: \"AI development environment with coding agents, Git, and browser IDE\",\n\t\tservices: [\"claude-code\", \"opencode\", \"gitea\", \"code-server\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"coding-team\"],\n\t\testimatedMemoryMB: 2560,\n\t},\n\t{\n\t\tid: \"lasuite-meet\",\n\t\tname: \"La Suite Meet\",\n\t\tdescription: \"Open-source video conferencing from La Suite numérique (Django + LiveKit)\",\n\t\tservices: [\n\t\t\t\"postgresql\",\n\t\t\t\"redis\",\n\t\t\t\"livekit\",\n\t\t\t\"lasuite-meet-backend\",\n\t\t\t\"lasuite-meet-frontend\",\n\t\t\t\"lasuite-meet-agents\",\n\t\t\t\"whisper\",\n\t\t\t\"ollama\",\n\t\t\t\"caddy\",\n\t\t],\n\t\tskillPacks: [],\n\t\testimatedMemoryMB: 2048,\n\t},\n\t// ── New service presets ─────────────────────────────────────────────────\n\t{\n\t\tid: \"backend-platform\",\n\t\tname: \"Backend Platform\",\n\t\tdescription:\n\t\t\t\"BaaS stack with Appwrite, MariaDB, Redis, RabbitMQ for auth, storage, and async workflows\",\n\t\tservices: [\"appwrite\", \"mariadb\", \"redis\", \"rabbitmq\", \"caddy\"],\n\t\tskillPacks: [\"appwrite-platform\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t{\n\t\tid: \"rag-platform\",\n\t\tname: \"RAG Platform\",\n\t\tdescription:\n\t\t\t\"RAGFlow with MySQL, Redis, MinIO, OpenSearch for knowledge ingestion and grounded AI assistants\",\n\t\tservices: [\"ragflow\", \"mysql\", \"redis\", \"minio\", \"opensearch\", \"caddy\"],\n\t\tskillPacks: [\"ragflow-platform\"],\n\t\testimatedMemoryMB: 6144,\n\t},\n\t{\n\t\tid: \"zero-trust\",\n\t\tname: \"Zero-Trust Security\",\n\t\tdescription:\n\t\t\t\"SSO, secrets management, and access control with Authelia, Keycloak, and Infisical\",\n\t\tservices: [\"authelia\", \"keycloak\", \"infisical\", \"postgresql\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"authelia-security\"],\n\t\testimatedMemoryMB: 3584,\n\t},\n\t{\n\t\tid: \"content-platform\",\n\t\tname: \"Content Platform\",\n\t\tdescription: \"CMS and newsletter stack with Directus, Strapi, Listmonk, and Stirling PDF\",\n\t\tservices: [\"directus\", \"strapi\", \"listmonk\", \"postgresql\", \"redis\", \"stirling-pdf\", \"caddy\"],\n\t\tskillPacks: [\"cms-stack\"],\n\t\testimatedMemoryMB: 3584,\n\t},\n\t{\n\t\tid: \"ai-orchestrator\",\n\t\tname: \"AI Orchestrator\",\n\t\tdescription: \"Langflow and Firecrawl for building and deploying AI workflows\",\n\t\tservices: [\"langflow\", \"firecrawl\", \"postgresql\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"ai-agent-orchestra\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t// ── New Presets (from feature analysis) ───────────────────────────────────\n\t{\n\t\tid: \"support-desk\",\n\t\tname: \"Support Desk\",\n\t\tdescription:\n\t\t\t\"AI-powered customer support with live chat, LLM observability, and ticket management\",\n\t\tservices: [\"chatwoot\", \"chatwoot-worker\", \"langfuse\", \"redis\", \"postgresql\", \"caddy\"],\n\t\tskillPacks: [\"customer-support\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t{\n\t\tid: \"sales-machine\",\n\t\tname: \"Sales Machine\",\n\t\tdescription:\n\t\t\t\"CRM-driven sales pipeline with email marketing, newsletters, and workflow automation\",\n\t\tservices: [\"twenty\", \"mautic\", \"listmonk\", \"n8n\", \"postgresql\", \"mysql\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"sales-pipeline\"],\n\t\testimatedMemoryMB: 4096,\n\t},\n\t{\n\t\tid: \"data-warehouse\",\n\t\tname: \"Data Warehouse\",\n\t\tdescription: \"End-to-end data pipeline with DAG orchestration, 300+ connectors, and monitoring\",\n\t\tservices: [\"airflow\", \"airbyte\", \"postgresql\", \"grafana\", \"prometheus\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"data-pipeline\"],\n\t\testimatedMemoryMB: 4096,\n\t},\n\t{\n\t\tid: \"voice-center\",\n\t\tname: \"Voice Center\",\n\t\tdescription:\n\t\t\t\"AI voice agent stack with programmable telephony, transcription, and real-time comms\",\n\t\tservices: [\"fonoster\", \"livekit\", \"whisper\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"voice-agent\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t{\n\t\tid: \"shopfront\",\n\t\tname: \"Shopfront\",\n\t\tdescription: \"AI-managed headless e-commerce with product management and object storage\",\n\t\tservices: [\"medusa\", \"minio\", \"postgresql\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"ecommerce-ops\"],\n\t\testimatedMemoryMB: 2560,\n\t},\n];\n\nconst presetMap = new Map<string, Preset>();\nfor (const preset of presets) {\n\tif (presetMap.has(preset.id)) {\n\t\tthrow new Error(`Duplicate preset ID: \"${preset.id}\"`);\n\t}\n\tpresetMap.set(preset.id, preset);\n}\n\nexport const presetRegistry: ReadonlyMap<string, Preset> = presetMap;\n\nexport function getPresetById(id: string): Preset | undefined {\n\treturn presetMap.get(id);\n}\n\nexport function getAllPresets(): Preset[] {\n\treturn [...presets];\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_vi_2VT5v0um = require("../vi.2VT5v0um-
|
|
1
|
+
const require_vi_2VT5v0um = require("../vi.2VT5v0um-iVBt6Fyq.cjs");
|
|
2
2
|
const require_presets_registry = require("./registry.cjs");
|
|
3
3
|
//#region src/presets/registry.test.ts
|
|
4
4
|
require_vi_2VT5v0um.describe("preset registry", () => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as describe, r as it, t as globalExpect } from "../vi.2VT5v0um-
|
|
1
|
+
import { n as describe, r as it, t as globalExpect } from "../vi.2VT5v0um-C_jmO7m2.mjs";
|
|
2
2
|
import { getAllPresets, getPresetById } from "./registry.mjs";
|
|
3
3
|
//#region src/presets/registry.test.ts
|
|
4
4
|
describe("preset registry", () => {
|
package/dist/resolver.cjs
CHANGED
|
@@ -70,6 +70,14 @@ function resolve(input) {
|
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
+
for (const def of require_services_registry.getAllServices()) if (def.mandatory && !serviceIds.has(def.id)) {
|
|
74
|
+
serviceIds.add(def.id);
|
|
75
|
+
serviceAddedBy.set(def.id, "mandatory");
|
|
76
|
+
addedDependencies.push({
|
|
77
|
+
service: def.id,
|
|
78
|
+
reason: "Mandatory OpenClaw platform service"
|
|
79
|
+
});
|
|
80
|
+
}
|
|
73
81
|
const unknownIds = [];
|
|
74
82
|
for (const id of serviceIds) if (!require_services_registry.getServiceById(id)) unknownIds.push(id);
|
|
75
83
|
if (unknownIds.length > 0) for (const id of unknownIds) {
|