@better-openclaw/core 1.0.24 → 1.0.26
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/addon-stack.cjs +725 -0
- package/dist/addon-stack.cjs.map +1 -0
- package/dist/addon-stack.d.cts +23 -0
- package/dist/addon-stack.d.cts.map +1 -0
- package/dist/addon-stack.d.mts +23 -0
- package/dist/addon-stack.d.mts.map +1 -0
- package/dist/addon-stack.mjs +723 -0
- package/dist/addon-stack.mjs.map +1 -0
- package/dist/addon-stack.test.cjs +461 -0
- package/dist/addon-stack.test.cjs.map +1 -0
- package/dist/addon-stack.test.d.cts +1 -0
- package/dist/addon-stack.test.d.mts +1 -0
- package/dist/addon-stack.test.mjs +461 -0
- package/dist/addon-stack.test.mjs.map +1 -0
- package/dist/bare-metal-partition.test.cjs +20 -20
- package/dist/bare-metal-partition.test.cjs.map +1 -1
- package/dist/bare-metal-partition.test.mjs +2 -2
- package/dist/compose-validation.test.cjs +1 -1
- package/dist/composer.cjs +5 -1
- package/dist/composer.cjs.map +1 -1
- package/dist/composer.d.cts +24 -1
- package/dist/composer.d.cts.map +1 -1
- package/dist/composer.d.mts +24 -1
- package/dist/composer.d.mts.map +1 -1
- package/dist/composer.mjs +1 -1
- package/dist/composer.mjs.map +1 -1
- package/dist/composer.snapshot.test.cjs +20 -20
- package/dist/composer.snapshot.test.cjs.map +1 -1
- package/dist/composer.snapshot.test.mjs +2 -2
- package/dist/composer.test.cjs +54 -54
- package/dist/composer.test.cjs.map +1 -1
- package/dist/composer.test.mjs +2 -2
- package/dist/deployers/strip-host-ports.cjs +1 -1
- package/dist/deployers/strip-host-ports.test.cjs +26 -26
- package/dist/deployers/strip-host-ports.test.cjs.map +1 -1
- package/dist/deployers/strip-host-ports.test.mjs +1 -1
- package/dist/generate.cjs +3 -3
- package/dist/generate.mjs +3 -3
- package/dist/generate.test.cjs +56 -56
- package/dist/generate.test.cjs.map +1 -1
- package/dist/generate.test.mjs +1 -1
- package/dist/generators/bare-metal-install.test.cjs +18 -18
- package/dist/generators/bare-metal-install.test.cjs.map +1 -1
- package/dist/generators/bare-metal-install.test.mjs +1 -1
- package/dist/generators/caddy.test.cjs +13 -13
- package/dist/generators/caddy.test.cjs.map +1 -1
- package/dist/generators/caddy.test.mjs +1 -1
- package/dist/generators/clone-repos.test.cjs +27 -27
- package/dist/generators/clone-repos.test.cjs.map +1 -1
- package/dist/generators/clone-repos.test.mjs +1 -1
- package/dist/generators/env.cjs +1 -1
- package/dist/generators/env.test.cjs +17 -17
- package/dist/generators/env.test.cjs.map +1 -1
- package/dist/generators/env.test.mjs +1 -1
- package/dist/generators/health-check.test.cjs +39 -39
- package/dist/generators/health-check.test.cjs.map +1 -1
- package/dist/generators/health-check.test.mjs +1 -1
- package/dist/generators/postgres-init.cjs +5 -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 +5 -0
- package/dist/generators/postgres-init.mjs.map +1 -1
- package/dist/generators/scripts.test.cjs +39 -39
- package/dist/generators/scripts.test.cjs.map +1 -1
- package/dist/generators/scripts.test.mjs +1 -1
- package/dist/generators/skills.cjs +1 -1
- package/dist/generators/skills.d.cts.map +1 -1
- package/dist/generators/skills.d.mts.map +1 -1
- package/dist/generators/skills.mjs +141 -0
- package/dist/generators/skills.mjs.map +1 -1
- package/dist/generators/traefik.test.cjs +32 -32
- package/dist/generators/traefik.test.cjs.map +1 -1
- package/dist/generators/traefik.test.mjs +1 -1
- package/dist/index.cjs +21 -5
- package/dist/index.d.cts +5 -4
- package/dist/index.d.mts +5 -4
- package/dist/index.mjs +7 -6
- package/dist/migrations.test.cjs +16 -16
- package/dist/migrations.test.cjs.map +1 -1
- package/dist/migrations.test.mjs +1 -1
- package/dist/presets/presets.test.cjs +1 -1
- package/dist/presets/registry.test.cjs +14 -14
- package/dist/presets/registry.test.cjs.map +1 -1
- package/dist/presets/registry.test.mjs +1 -1
- package/dist/resolver.test.cjs +95 -95
- package/dist/resolver.test.cjs.map +1 -1
- package/dist/resolver.test.mjs +1 -1
- package/dist/{schema-eX44HhRp.d.mts → schema-BQnZrcw8.d.cts} +300 -2
- package/dist/schema-BQnZrcw8.d.cts.map +1 -0
- package/dist/{schema-tn5RK8CM.d.cts → schema-SBpL0bdI.d.mts} +300 -2
- package/dist/schema-SBpL0bdI.d.mts.map +1 -0
- package/dist/schema.cjs +148 -2
- 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 +139 -2
- package/dist/schema.mjs.map +1 -1
- package/dist/schema.test.cjs +86 -86
- package/dist/schema.test.cjs.map +1 -1
- package/dist/schema.test.mjs +1 -1
- package/dist/services/definitions/browserless.cjs +4 -1
- package/dist/services/definitions/browserless.cjs.map +1 -1
- package/dist/services/definitions/browserless.mjs +4 -1
- package/dist/services/definitions/browserless.mjs.map +1 -1
- package/dist/services/definitions/burnlink.cjs +142 -0
- package/dist/services/definitions/burnlink.cjs.map +1 -0
- package/dist/services/definitions/burnlink.d.cts +7 -0
- package/dist/services/definitions/burnlink.d.cts.map +1 -0
- package/dist/services/definitions/burnlink.d.mts +7 -0
- package/dist/services/definitions/burnlink.d.mts.map +1 -0
- package/dist/services/definitions/burnlink.mjs +141 -0
- package/dist/services/definitions/burnlink.mjs.map +1 -0
- package/dist/services/definitions/convex.cjs +43 -1
- package/dist/services/definitions/convex.cjs.map +1 -1
- package/dist/services/definitions/convex.mjs +43 -1
- package/dist/services/definitions/convex.mjs.map +1 -1
- package/dist/services/definitions/grafana.cjs +11 -1
- package/dist/services/definitions/grafana.cjs.map +1 -1
- package/dist/services/definitions/grafana.mjs +11 -1
- package/dist/services/definitions/grafana.mjs.map +1 -1
- package/dist/services/definitions/hindsight.cjs +130 -0
- package/dist/services/definitions/hindsight.cjs.map +1 -0
- package/dist/services/definitions/hindsight.d.cts +7 -0
- package/dist/services/definitions/hindsight.d.cts.map +1 -0
- package/dist/services/definitions/hindsight.d.mts +7 -0
- package/dist/services/definitions/hindsight.d.mts.map +1 -0
- package/dist/services/definitions/hindsight.mjs +129 -0
- package/dist/services/definitions/hindsight.mjs.map +1 -0
- package/dist/services/definitions/index.cjs +9 -0
- package/dist/services/definitions/index.cjs.map +1 -1
- package/dist/services/definitions/index.d.cts +4 -1
- package/dist/services/definitions/index.d.cts.map +1 -1
- package/dist/services/definitions/index.d.mts +4 -1
- package/dist/services/definitions/index.d.mts.map +1 -1
- package/dist/services/definitions/index.mjs +7 -1
- package/dist/services/definitions/index.mjs.map +1 -1
- package/dist/services/definitions/meilisearch.cjs +11 -1
- package/dist/services/definitions/meilisearch.cjs.map +1 -1
- package/dist/services/definitions/meilisearch.mjs +11 -1
- package/dist/services/definitions/meilisearch.mjs.map +1 -1
- package/dist/services/definitions/minio.cjs +3 -1
- package/dist/services/definitions/minio.cjs.map +1 -1
- package/dist/services/definitions/minio.mjs +3 -1
- package/dist/services/definitions/minio.mjs.map +1 -1
- package/dist/services/definitions/n8n.cjs +11 -1
- package/dist/services/definitions/n8n.cjs.map +1 -1
- package/dist/services/definitions/n8n.mjs +11 -1
- package/dist/services/definitions/n8n.mjs.map +1 -1
- package/dist/services/definitions/ollama.cjs +3 -1
- package/dist/services/definitions/ollama.cjs.map +1 -1
- package/dist/services/definitions/ollama.mjs +3 -1
- package/dist/services/definitions/ollama.mjs.map +1 -1
- package/dist/services/definitions/opensandbox.cjs +149 -0
- package/dist/services/definitions/opensandbox.cjs.map +1 -0
- package/dist/services/definitions/opensandbox.d.cts +7 -0
- package/dist/services/definitions/opensandbox.d.cts.map +1 -0
- package/dist/services/definitions/opensandbox.d.mts +7 -0
- package/dist/services/definitions/opensandbox.d.mts.map +1 -0
- package/dist/services/definitions/opensandbox.mjs +148 -0
- package/dist/services/definitions/opensandbox.mjs.map +1 -0
- package/dist/services/definitions/qdrant.cjs +3 -1
- package/dist/services/definitions/qdrant.cjs.map +1 -1
- package/dist/services/definitions/qdrant.mjs +3 -1
- package/dist/services/definitions/qdrant.mjs.map +1 -1
- package/dist/services/definitions/searxng.cjs +8 -1
- package/dist/services/definitions/searxng.cjs.map +1 -1
- package/dist/services/definitions/searxng.mjs +8 -1
- package/dist/services/definitions/searxng.mjs.map +1 -1
- package/dist/services/definitions/uptime-kuma.cjs +8 -1
- package/dist/services/definitions/uptime-kuma.cjs.map +1 -1
- package/dist/services/definitions/uptime-kuma.mjs +8 -1
- package/dist/services/definitions/uptime-kuma.mjs.map +1 -1
- package/dist/services/registry.test.cjs +36 -36
- package/dist/services/registry.test.cjs.map +1 -1
- package/dist/services/registry.test.mjs +1 -1
- package/dist/{skills-BlzpHmpH.cjs → skills-BSF7iNa4.cjs} +142 -1
- package/dist/{skills-BlzpHmpH.cjs.map → skills-BSF7iNa4.cjs.map} +1 -1
- package/dist/{vi.2VT5v0um-C_jmO7m2.mjs → test.CTcmp4Su-ClCHJ3FA.mjs} +6793 -6403
- package/dist/test.CTcmp4Su-ClCHJ3FA.mjs.map +1 -0
- package/dist/{vi.2VT5v0um-iVBt6Fyq.cjs → test.CTcmp4Su-DlzTarwH.cjs} +6793 -6403
- package/dist/test.CTcmp4Su-DlzTarwH.cjs.map +1 -0
- package/dist/track-analytics.test.cjs +28 -28
- package/dist/track-analytics.test.cjs.map +1 -1
- package/dist/track-analytics.test.mjs +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +10 -2
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +10 -2
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/validator.cjs +1 -1
- package/dist/validator.test.cjs +15 -15
- package/dist/validator.test.cjs.map +1 -1
- package/dist/validator.test.mjs +2 -2
- package/dist/version-manager.test.cjs +37 -37
- package/dist/version-manager.test.cjs.map +1 -1
- package/dist/version-manager.test.mjs +1 -1
- package/package.json +4 -4
- package/src/__snapshots__/composer.snapshot.test.ts.snap +5 -0
- package/src/addon-stack.test.ts +648 -0
- package/src/addon-stack.ts +1046 -0
- package/src/composer.ts +4 -4
- package/src/generators/postgres-init.ts +2 -0
- package/src/generators/skills.ts +142 -0
- package/src/index.ts +20 -2
- package/src/schema.ts +190 -0
- package/src/services/definitions/browserless.ts +3 -0
- package/src/services/definitions/burnlink.ts +142 -0
- package/src/services/definitions/convex.ts +31 -0
- package/src/services/definitions/grafana.ts +9 -0
- package/src/services/definitions/hindsight.ts +131 -0
- package/src/services/definitions/index.ts +10 -0
- package/src/services/definitions/meilisearch.ts +9 -0
- package/src/services/definitions/minio.ts +2 -0
- package/src/services/definitions/n8n.ts +9 -0
- package/src/services/definitions/ollama.ts +2 -0
- package/src/services/definitions/opensandbox.ts +156 -0
- package/src/services/definitions/qdrant.ts +2 -0
- package/src/services/definitions/searxng.ts +3 -0
- package/src/services/definitions/uptime-kuma.ts +3 -0
- package/src/types.ts +18 -0
- package/dist/schema-eX44HhRp.d.mts.map +0 -1
- package/dist/schema-tn5RK8CM.d.cts.map +0 -1
- package/dist/vi.2VT5v0um-C_jmO7m2.mjs.map +0 -1
- package/dist/vi.2VT5v0um-iVBt6Fyq.cjs.map +0 -1
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import type { ServiceDefinition } from "../../types.js";
|
|
2
|
+
|
|
3
|
+
export const hindsightDefinition: ServiceDefinition = {
|
|
4
|
+
id: "hindsight",
|
|
5
|
+
name: "Hindsight",
|
|
6
|
+
description:
|
|
7
|
+
"Open-source agent memory system with Retain/Recall/Reflect operations, multi-strategy retrieval (semantic, keyword, graph, temporal), and MCP server support.",
|
|
8
|
+
category: "ai",
|
|
9
|
+
icon: "🧠",
|
|
10
|
+
|
|
11
|
+
image: "ghcr.io/vectorize-io/hindsight",
|
|
12
|
+
imageTag: "latest",
|
|
13
|
+
ports: [
|
|
14
|
+
{
|
|
15
|
+
host: 8889,
|
|
16
|
+
container: 8888,
|
|
17
|
+
description: "Hindsight API and MCP endpoint",
|
|
18
|
+
exposed: true,
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
host: 9998,
|
|
22
|
+
container: 9999,
|
|
23
|
+
description: "Hindsight admin web UI",
|
|
24
|
+
exposed: true,
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
volumes: [
|
|
28
|
+
{
|
|
29
|
+
name: "hindsight-data",
|
|
30
|
+
containerPath: "/home/hindsight/.pg0",
|
|
31
|
+
description: "Embedded PostgreSQL data (used when no external DB configured)",
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
environment: [
|
|
35
|
+
{
|
|
36
|
+
key: "HINDSIGHT_API_LLM_PROVIDER",
|
|
37
|
+
defaultValue: "openai",
|
|
38
|
+
secret: false,
|
|
39
|
+
description: "LLM provider (openai, anthropic, gemini, groq, ollama, lmstudio)",
|
|
40
|
+
required: true,
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
key: "HINDSIGHT_API_LLM_API_KEY",
|
|
44
|
+
defaultValue: "",
|
|
45
|
+
secret: true,
|
|
46
|
+
description: "API key for the configured LLM provider",
|
|
47
|
+
required: true,
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
key: "HINDSIGHT_API_LLM_MODEL",
|
|
51
|
+
defaultValue: "o3-mini",
|
|
52
|
+
secret: false,
|
|
53
|
+
description: "LLM model to use for memory operations (e.g., o3-mini, claude-sonnet-4-20250514)",
|
|
54
|
+
required: true,
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
key: "HINDSIGHT_API_DATABASE_URL",
|
|
58
|
+
defaultValue: "postgresql://hindsight:${HINDSIGHT_DB_PASSWORD}@postgresql:5432/hindsight",
|
|
59
|
+
secret: false,
|
|
60
|
+
description: "PostgreSQL connection string (leave empty to use embedded pg0 for dev)",
|
|
61
|
+
required: false,
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
key: "HINDSIGHT_API_MCP_ENABLED",
|
|
65
|
+
defaultValue: "true",
|
|
66
|
+
secret: false,
|
|
67
|
+
description: "Enable MCP server for agent tool integration",
|
|
68
|
+
required: false,
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
key: "HINDSIGHT_API_SKIP_LLM_VERIFICATION",
|
|
72
|
+
defaultValue: "false",
|
|
73
|
+
secret: false,
|
|
74
|
+
description: "Skip LLM connection verification on startup",
|
|
75
|
+
required: false,
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
healthcheck: {
|
|
79
|
+
test: "wget -q --spider http://localhost:8888/metrics || exit 1",
|
|
80
|
+
interval: "30s",
|
|
81
|
+
timeout: "10s",
|
|
82
|
+
retries: 5,
|
|
83
|
+
startPeriod: "30s",
|
|
84
|
+
},
|
|
85
|
+
dependsOn: [],
|
|
86
|
+
restartPolicy: "unless-stopped",
|
|
87
|
+
networks: ["openclaw-network"],
|
|
88
|
+
|
|
89
|
+
skills: [],
|
|
90
|
+
openclawEnvVars: [
|
|
91
|
+
{
|
|
92
|
+
key: "HINDSIGHT_HOST",
|
|
93
|
+
defaultValue: "hindsight",
|
|
94
|
+
secret: false,
|
|
95
|
+
description: "Hindsight hostname for agent memory operations",
|
|
96
|
+
required: false,
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
key: "HINDSIGHT_API_PORT",
|
|
100
|
+
defaultValue: "8888",
|
|
101
|
+
secret: false,
|
|
102
|
+
description: "Hindsight API port",
|
|
103
|
+
required: false,
|
|
104
|
+
},
|
|
105
|
+
],
|
|
106
|
+
|
|
107
|
+
docsUrl: "https://hindsight.vectorize.io/",
|
|
108
|
+
tags: ["agent-memory", "mcp", "recall", "knowledge-graph", "semantic-search"],
|
|
109
|
+
maturity: "beta",
|
|
110
|
+
|
|
111
|
+
requires: ["postgresql"],
|
|
112
|
+
recommends: ["ollama"],
|
|
113
|
+
conflictsWith: [],
|
|
114
|
+
|
|
115
|
+
minMemoryMB: 512,
|
|
116
|
+
gpuRequired: false,
|
|
117
|
+
capDropCompatible: true,
|
|
118
|
+
proxyPath: "/hindsight",
|
|
119
|
+
envQuirks: [
|
|
120
|
+
{
|
|
121
|
+
key: "HINDSIGHT_API_LLM_API_KEY",
|
|
122
|
+
issue: "min_length" as const,
|
|
123
|
+
fix: { type: "generate_base64url" as const, minBytes: 16 },
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
key: "HINDSIGHT_API_DATABASE_URL",
|
|
127
|
+
issue: "must_sync" as const,
|
|
128
|
+
fix: { type: "sync_with" as const, syncKey: "HINDSIGHT_DB_PASSWORD" },
|
|
129
|
+
},
|
|
130
|
+
],
|
|
131
|
+
};
|
|
@@ -11,6 +11,7 @@ export { axolotlDefinition } from "./axolotl.js";
|
|
|
11
11
|
export { baserowDefinition } from "./baserow.js";
|
|
12
12
|
export { beszelDefinition } from "./beszel.js";
|
|
13
13
|
export { browserlessDefinition } from "./browserless.js";
|
|
14
|
+
export { burnlinkDefinition } from "./burnlink.js";
|
|
14
15
|
export { caddyDefinition } from "./caddy.js";
|
|
15
16
|
export { calComDefinition } from "./cal-com.js";
|
|
16
17
|
export { calibreWebDefinition } from "./calibre-web.js";
|
|
@@ -58,6 +59,7 @@ export { grafanaDefinition } from "./grafana.js";
|
|
|
58
59
|
export { graylogDefinition } from "./graylog.js";
|
|
59
60
|
export { headscaleDefinition } from "./headscale.js";
|
|
60
61
|
export { hedgedocDefinition } from "./hedgedoc.js";
|
|
62
|
+
export { hindsightDefinition } from "./hindsight.js";
|
|
61
63
|
export { hexstrikeDefinition } from "./hexstrike.js";
|
|
62
64
|
export { heyformDefinition } from "./heyform.js";
|
|
63
65
|
export { homeassistantDefinition } from "./homeassistant.js";
|
|
@@ -115,6 +117,7 @@ export { openWebuiDefinition } from "./open-webui.js";
|
|
|
115
117
|
export { opencodeDefinition } from "./opencode.js";
|
|
116
118
|
export { openhandsDefinition } from "./openhands.js";
|
|
117
119
|
export { openpanelDefinition } from "./openpanel.js";
|
|
120
|
+
export { opensandboxDefinition } from "./opensandbox.js";
|
|
118
121
|
export { opensearchDefinition } from "./opensearch.js";
|
|
119
122
|
export { outlineDefinition } from "./outline.js";
|
|
120
123
|
export { paperlessNgxDefinition } from "./paperless-ngx.js";
|
|
@@ -201,6 +204,7 @@ import { axolotlDefinition } from "./axolotl.js";
|
|
|
201
204
|
import { baserowDefinition } from "./baserow.js";
|
|
202
205
|
import { beszelDefinition } from "./beszel.js";
|
|
203
206
|
import { browserlessDefinition } from "./browserless.js";
|
|
207
|
+
import { burnlinkDefinition } from "./burnlink.js";
|
|
204
208
|
import { caddyDefinition } from "./caddy.js";
|
|
205
209
|
import { calComDefinition } from "./cal-com.js";
|
|
206
210
|
import { calibreWebDefinition } from "./calibre-web.js";
|
|
@@ -248,6 +252,7 @@ import { grafanaDefinition } from "./grafana.js";
|
|
|
248
252
|
import { graylogDefinition } from "./graylog.js";
|
|
249
253
|
import { headscaleDefinition } from "./headscale.js";
|
|
250
254
|
import { hedgedocDefinition } from "./hedgedoc.js";
|
|
255
|
+
import { hindsightDefinition } from "./hindsight.js";
|
|
251
256
|
import { hexstrikeDefinition } from "./hexstrike.js";
|
|
252
257
|
import { heyformDefinition } from "./heyform.js";
|
|
253
258
|
import { homeassistantDefinition } from "./homeassistant.js";
|
|
@@ -305,6 +310,7 @@ import { openWebuiDefinition } from "./open-webui.js";
|
|
|
305
310
|
import { opencodeDefinition } from "./opencode.js";
|
|
306
311
|
import { openhandsDefinition } from "./openhands.js";
|
|
307
312
|
import { openpanelDefinition } from "./openpanel.js";
|
|
313
|
+
import { opensandboxDefinition } from "./opensandbox.js";
|
|
308
314
|
import { opensearchDefinition } from "./opensearch.js";
|
|
309
315
|
import { outlineDefinition } from "./outline.js";
|
|
310
316
|
import { paperlessNgxDefinition } from "./paperless-ngx.js";
|
|
@@ -561,6 +567,10 @@ export const allServiceDefinitions: ServiceDefinition[] = [
|
|
|
561
567
|
vikunjaDefinition,
|
|
562
568
|
wireguardDefinition,
|
|
563
569
|
woodpeckerCiDefinition,
|
|
570
|
+
// ── New Integrations ────────────────────────────────────────────────────
|
|
571
|
+
hindsightDefinition,
|
|
572
|
+
burnlinkDefinition,
|
|
573
|
+
opensandboxDefinition,
|
|
564
574
|
// ── SaaS Boilerplates ────────────────────────────────────────────────────
|
|
565
575
|
openSaasDefinition,
|
|
566
576
|
apptensionSaasDefinition,
|
|
@@ -80,4 +80,13 @@ export const meilisearchDefinition: ServiceDefinition = {
|
|
|
80
80
|
|
|
81
81
|
minMemoryMB: 256,
|
|
82
82
|
gpuRequired: false,
|
|
83
|
+
capDropCompatible: true,
|
|
84
|
+
proxyPath: "/meilisearch",
|
|
85
|
+
envQuirks: [
|
|
86
|
+
{
|
|
87
|
+
key: "MEILI_MASTER_KEY",
|
|
88
|
+
issue: "min_length" as const,
|
|
89
|
+
fix: { type: "generate_base64url" as const, minBytes: 24 },
|
|
90
|
+
},
|
|
91
|
+
],
|
|
83
92
|
};
|
|
@@ -150,4 +150,13 @@ export const n8nDefinition: ServiceDefinition = {
|
|
|
150
150
|
|
|
151
151
|
minMemoryMB: 512,
|
|
152
152
|
gpuRequired: false,
|
|
153
|
+
capDropCompatible: true,
|
|
154
|
+
proxyPath: "/n8n",
|
|
155
|
+
envQuirks: [
|
|
156
|
+
{
|
|
157
|
+
key: "DB_POSTGRESDB_PASSWORD",
|
|
158
|
+
issue: "must_sync" as const,
|
|
159
|
+
fix: { type: "sync_with" as const, syncKey: "N8N_DB_PASSWORD" },
|
|
160
|
+
},
|
|
161
|
+
],
|
|
153
162
|
};
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import type { ServiceDefinition } from "../../types.js";
|
|
2
|
+
|
|
3
|
+
export const opensandboxDefinition: ServiceDefinition = {
|
|
4
|
+
id: "opensandbox",
|
|
5
|
+
name: "OpenSandbox",
|
|
6
|
+
description:
|
|
7
|
+
"Secure containerized code execution for AI agents. Multi-language sandboxes (Python, JS/TS, Java, Go, Bash) with file operations, resource limits, and network isolation.",
|
|
8
|
+
category: "dev-tools",
|
|
9
|
+
icon: "📦",
|
|
10
|
+
|
|
11
|
+
image: "opensandbox/server",
|
|
12
|
+
imageTag: "v1.0.6",
|
|
13
|
+
ports: [
|
|
14
|
+
{
|
|
15
|
+
host: 8080,
|
|
16
|
+
container: 8080,
|
|
17
|
+
description: "OpenSandbox Lifecycle API (FastAPI)",
|
|
18
|
+
exposed: true,
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
volumes: [
|
|
22
|
+
{
|
|
23
|
+
name: "/var/run/docker.sock",
|
|
24
|
+
containerPath: "/var/run/docker.sock",
|
|
25
|
+
description:
|
|
26
|
+
"Docker socket (required for managing sandbox containers)",
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: "./sandbox.toml",
|
|
30
|
+
containerPath: "/root/.sandbox.toml:ro",
|
|
31
|
+
description: "OpenSandbox configuration file (read-only bind mount)",
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
environment: [
|
|
35
|
+
{
|
|
36
|
+
key: "OPEN_SANDBOX_API_KEY",
|
|
37
|
+
defaultValue: "",
|
|
38
|
+
secret: true,
|
|
39
|
+
description:
|
|
40
|
+
"API key for OpenSandbox lifecycle API authentication (min 32 chars)",
|
|
41
|
+
required: true,
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
key: "OPENSANDBOX_LOG_LEVEL",
|
|
45
|
+
defaultValue: "INFO",
|
|
46
|
+
secret: false,
|
|
47
|
+
description: "Log verbosity (DEBUG, INFO, WARNING, ERROR)",
|
|
48
|
+
required: false,
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
key: "OPENSANDBOX_RUNTIME_TYPE",
|
|
52
|
+
defaultValue: "docker",
|
|
53
|
+
secret: false,
|
|
54
|
+
description: "Runtime backend (always docker for VPS deployments)",
|
|
55
|
+
required: false,
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
key: "OPENSANDBOX_EXECD_IMAGE",
|
|
59
|
+
defaultValue: "opensandbox/execd:v1.0.6",
|
|
60
|
+
secret: false,
|
|
61
|
+
description:
|
|
62
|
+
"Execution daemon image injected into sandbox containers",
|
|
63
|
+
required: false,
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
key: "OPENSANDBOX_NETWORK_MODE",
|
|
67
|
+
defaultValue: "bridge",
|
|
68
|
+
secret: false,
|
|
69
|
+
description:
|
|
70
|
+
"Container networking mode (always bridge for isolation)",
|
|
71
|
+
required: false,
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
key: "OPENSANDBOX_PIDS_LIMIT",
|
|
75
|
+
defaultValue: "512",
|
|
76
|
+
secret: false,
|
|
77
|
+
description: "Max PIDs per sandbox (fork bomb protection)",
|
|
78
|
+
required: false,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
key: "OPENSANDBOX_NO_NEW_PRIVILEGES",
|
|
82
|
+
defaultValue: "true",
|
|
83
|
+
secret: false,
|
|
84
|
+
description: "Security: prevent privilege escalation in sandboxes",
|
|
85
|
+
required: false,
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
key: "OPENSANDBOX_SECURE_RUNTIME",
|
|
89
|
+
defaultValue: "gvisor",
|
|
90
|
+
secret: false,
|
|
91
|
+
description: "Secure container runtime (gVisor for sandbox isolation)",
|
|
92
|
+
required: false,
|
|
93
|
+
},
|
|
94
|
+
],
|
|
95
|
+
healthcheck: {
|
|
96
|
+
test: "curl --fail http://localhost:8080/health || exit 1",
|
|
97
|
+
interval: "30s",
|
|
98
|
+
timeout: "10s",
|
|
99
|
+
retries: 3,
|
|
100
|
+
startPeriod: "15s",
|
|
101
|
+
},
|
|
102
|
+
dependsOn: [],
|
|
103
|
+
restartPolicy: "unless-stopped",
|
|
104
|
+
networks: ["openclaw-network"],
|
|
105
|
+
|
|
106
|
+
skills: [{ skillId: "code-sandbox", autoInstall: true }],
|
|
107
|
+
openclawEnvVars: [
|
|
108
|
+
{
|
|
109
|
+
key: "OPENSANDBOX_HOST",
|
|
110
|
+
defaultValue: "opensandbox",
|
|
111
|
+
secret: false,
|
|
112
|
+
description: "OpenSandbox hostname for OpenClaw",
|
|
113
|
+
required: true,
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
key: "OPENSANDBOX_PORT",
|
|
117
|
+
defaultValue: "8080",
|
|
118
|
+
secret: false,
|
|
119
|
+
description: "OpenSandbox port for OpenClaw",
|
|
120
|
+
required: true,
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
key: "OPENSANDBOX_API_KEY",
|
|
124
|
+
defaultValue: "${OPEN_SANDBOX_API_KEY}",
|
|
125
|
+
secret: true,
|
|
126
|
+
description: "OpenSandbox API key for OpenClaw",
|
|
127
|
+
required: true,
|
|
128
|
+
},
|
|
129
|
+
],
|
|
130
|
+
|
|
131
|
+
docsUrl: "https://github.com/anthropics/OpenSandbox",
|
|
132
|
+
tags: [
|
|
133
|
+
"sandbox",
|
|
134
|
+
"code-execution",
|
|
135
|
+
"security",
|
|
136
|
+
"ai-agent",
|
|
137
|
+
"isolation",
|
|
138
|
+
],
|
|
139
|
+
maturity: "stable",
|
|
140
|
+
|
|
141
|
+
requires: [],
|
|
142
|
+
recommends: [],
|
|
143
|
+
conflictsWith: [],
|
|
144
|
+
|
|
145
|
+
minMemoryMB: 768,
|
|
146
|
+
gpuRequired: false,
|
|
147
|
+
capDropCompatible: true,
|
|
148
|
+
proxyPath: "/sandbox",
|
|
149
|
+
envQuirks: [
|
|
150
|
+
{
|
|
151
|
+
key: "OPEN_SANDBOX_API_KEY",
|
|
152
|
+
issue: "min_length",
|
|
153
|
+
fix: { type: "generate_base64url", minBytes: 32 },
|
|
154
|
+
},
|
|
155
|
+
],
|
|
156
|
+
};
|
package/src/types.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type { z } from "zod";
|
|
2
2
|
import type {
|
|
3
|
+
AddonStackInputSchema,
|
|
4
|
+
AddonStackResultSchema,
|
|
5
|
+
AddonStackUpdateInputSchema,
|
|
6
|
+
AddonStackUpdateResultSchema,
|
|
3
7
|
AddedDependencySchema,
|
|
4
8
|
AiProviderSchema,
|
|
5
9
|
ApiErrorSchema,
|
|
@@ -9,6 +13,8 @@ import type {
|
|
|
9
13
|
DeploymentTypeSchema,
|
|
10
14
|
DeploySchema,
|
|
11
15
|
DeployTargetSchema,
|
|
16
|
+
EnvQuirkFixSchema,
|
|
17
|
+
EnvQuirkSchema,
|
|
12
18
|
EnvVariableSchema,
|
|
13
19
|
ErrorSchema,
|
|
14
20
|
GenerationInputSchema,
|
|
@@ -24,6 +30,7 @@ import type {
|
|
|
24
30
|
PlatformSchema,
|
|
25
31
|
PortMappingSchema,
|
|
26
32
|
PresetSchema,
|
|
33
|
+
ProxyRouteSchema,
|
|
27
34
|
ProxyTypeSchema,
|
|
28
35
|
ResolvedServiceSchema,
|
|
29
36
|
ResolverOutputSchema,
|
|
@@ -33,6 +40,7 @@ import type {
|
|
|
33
40
|
ServiceDefinitionSchema,
|
|
34
41
|
SkillBindingSchema,
|
|
35
42
|
SkillPackSchema,
|
|
43
|
+
SkippedServiceSchema,
|
|
36
44
|
ValidateRequestSchema,
|
|
37
45
|
ValidateResponseSchema,
|
|
38
46
|
VolumeMappingSchema,
|
|
@@ -86,6 +94,16 @@ export type ValidateRequest = z.infer<typeof ValidateRequestSchema>;
|
|
|
86
94
|
export type ValidateResponse = z.infer<typeof ValidateResponseSchema>;
|
|
87
95
|
export type ApiError = z.infer<typeof ApiErrorSchema>;
|
|
88
96
|
|
|
97
|
+
// Addon Stack (Clawexa)
|
|
98
|
+
export type EnvQuirkFix = z.infer<typeof EnvQuirkFixSchema>;
|
|
99
|
+
export type EnvQuirk = z.infer<typeof EnvQuirkSchema>;
|
|
100
|
+
export type ProxyRoute = z.infer<typeof ProxyRouteSchema>;
|
|
101
|
+
export type SkippedService = z.infer<typeof SkippedServiceSchema>;
|
|
102
|
+
export type AddonStackInput = z.infer<typeof AddonStackInputSchema>;
|
|
103
|
+
export type AddonStackResult = z.infer<typeof AddonStackResultSchema>;
|
|
104
|
+
export type AddonStackUpdateInput = z.infer<typeof AddonStackUpdateInputSchema>;
|
|
105
|
+
export type AddonStackUpdateResult = z.infer<typeof AddonStackUpdateResultSchema>;
|
|
106
|
+
|
|
89
107
|
// ─── Additional Types ───────────────────────────────────────────────────────
|
|
90
108
|
|
|
91
109
|
export interface ResolverInput {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema-eX44HhRp.d.mts","names":[],"sources":["../src/schema.ts"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema-tn5RK8CM.d.cts","names":[],"sources":["../src/schema.ts"],"mappings":"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"}
|