@better-openclaw/core 1.0.8 → 1.0.10
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.d.mts.map +1 -1
- package/dist/bare-metal-partition.mjs +1 -0
- package/dist/bare-metal-partition.mjs.map +1 -1
- package/dist/bare-metal-partition.test.mjs +1 -1
- package/dist/composer.d.mts.map +1 -1
- package/dist/composer.mjs +11 -1
- package/dist/composer.mjs.map +1 -1
- package/dist/composer.snapshot.test.mjs +1 -1
- package/dist/composer.test.mjs +1 -1
- package/dist/errors.d.mts +17 -0
- package/dist/errors.d.mts.map +1 -0
- package/dist/errors.mjs +24 -0
- package/dist/errors.mjs.map +1 -0
- package/dist/generate.d.mts +4 -3
- package/dist/generate.d.mts.map +1 -1
- package/dist/generate.mjs +13 -5
- package/dist/generate.mjs.map +1 -1
- package/dist/generate.test.mjs +1 -1
- package/dist/generators/bare-metal-install.test.mjs +1 -1
- package/dist/generators/traefik.d.mts +19 -0
- package/dist/generators/traefik.d.mts.map +1 -0
- package/dist/generators/traefik.mjs +86 -0
- package/dist/generators/traefik.mjs.map +1 -0
- package/dist/generators/traefik.test.d.mts +1 -0
- package/dist/generators/traefik.test.mjs +69 -0
- package/dist/generators/traefik.test.mjs.map +1 -0
- package/dist/index.d.mts +4 -2
- package/dist/index.mjs +4 -2
- package/dist/migrations.d.mts +14 -0
- package/dist/migrations.d.mts.map +1 -0
- package/dist/migrations.mjs +33 -0
- package/dist/migrations.mjs.map +1 -0
- package/dist/migrations.test.d.mts +1 -0
- package/dist/migrations.test.mjs +42 -0
- package/dist/migrations.test.mjs.map +1 -0
- package/dist/presets/registry.test.mjs +1 -1
- package/dist/resolver.d.mts +6 -1
- package/dist/resolver.d.mts.map +1 -1
- package/dist/resolver.mjs +21 -3
- package/dist/resolver.mjs.map +1 -1
- package/dist/resolver.test.mjs +1 -1
- package/dist/schema.d.mts +1 -0
- package/dist/schema.d.mts.map +1 -1
- package/dist/schema.mjs +1 -0
- package/dist/schema.mjs.map +1 -1
- package/dist/schema.test.mjs +1 -1
- package/dist/services/definitions/caddy.mjs +20 -1
- package/dist/services/definitions/caddy.mjs.map +1 -1
- package/dist/services/definitions/cal-com.d.mts +7 -0
- package/dist/services/definitions/cal-com.d.mts.map +1 -0
- package/dist/services/definitions/cal-com.mjs +88 -0
- package/dist/services/definitions/cal-com.mjs.map +1 -0
- package/dist/services/definitions/grafana.mjs +13 -1
- package/dist/services/definitions/grafana.mjs.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 +8 -2
- package/dist/services/definitions/index.mjs.map +1 -1
- package/dist/services/definitions/neo4j.d.mts +7 -0
- package/dist/services/definitions/neo4j.d.mts.map +1 -0
- package/dist/services/definitions/neo4j.mjs +91 -0
- package/dist/services/definitions/neo4j.mjs.map +1 -0
- package/dist/services/definitions/traefik.mjs +0 -1
- package/dist/services/definitions/traefik.mjs.map +1 -1
- package/dist/services/definitions/xyops.d.mts +7 -0
- package/dist/services/definitions/xyops.d.mts.map +1 -0
- package/dist/services/definitions/xyops.mjs +86 -0
- package/dist/services/definitions/xyops.mjs.map +1 -0
- package/dist/services/registry.test.mjs +1 -1
- package/dist/skills/registry.d.mts.map +1 -1
- package/dist/skills/registry.mjs +454 -6
- package/dist/skills/registry.mjs.map +1 -1
- package/dist/types.d.mts +8 -1
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/validator.mjs +11 -0
- package/dist/validator.mjs.map +1 -1
- package/dist/validator.test.mjs +1 -1
- package/dist/version-manager.d.mts +1 -1
- package/dist/version-manager.d.mts.map +1 -1
- package/dist/version-manager.mjs +11 -5
- package/dist/version-manager.mjs.map +1 -1
- package/dist/version-manager.test.d.mts +1 -0
- package/dist/version-manager.test.mjs +102 -0
- package/dist/version-manager.test.mjs.map +1 -0
- package/dist/{vi.2VT5v0um-Qk6MgAnK.mjs → vi.2VT5v0um-YSByewHe.mjs} +5 -5
- package/dist/{vi.2VT5v0um-Qk6MgAnK.mjs.map → vi.2VT5v0um-YSByewHe.mjs.map} +1 -1
- package/package.json +1 -1
- package/src/__snapshots__/composer.snapshot.test.ts.snap +15 -1
- package/src/bare-metal-partition.ts +1 -0
- package/src/composer.ts +22 -1
- package/src/errors.ts +23 -0
- package/src/generate.ts +22 -4
- package/src/generators/traefik.test.ts +97 -0
- package/src/generators/traefik.ts +104 -0
- package/src/index.ts +7 -1
- package/src/migrations.test.ts +36 -0
- package/src/migrations.ts +49 -0
- package/src/resolver.ts +37 -3
- package/src/schema.ts +1 -0
- package/src/services/definitions/caddy.ts +23 -1
- package/src/services/definitions/cal-com.ts +91 -0
- package/src/services/definitions/grafana.ts +16 -1
- package/src/services/definitions/index.ts +9 -0
- package/src/services/definitions/neo4j.ts +96 -0
- package/src/services/definitions/traefik.ts +0 -2
- package/src/services/definitions/xyops.ts +94 -0
- package/src/skills/registry.ts +352 -6
- package/src/types.ts +5 -1
- package/src/validator.ts +16 -0
- package/src/version-manager.test.ts +134 -0
- package/src/version-manager.ts +12 -5
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type { ServiceDefinition } from "../../types.js";
|
|
2
|
+
|
|
3
|
+
export const calComDefinition: ServiceDefinition = {
|
|
4
|
+
id: "cal-com",
|
|
5
|
+
name: "Cal.com",
|
|
6
|
+
description:
|
|
7
|
+
"Open-source scheduling platform for appointments, meetings, and booking management with calendar integrations and customizable workflows.",
|
|
8
|
+
category: "automation",
|
|
9
|
+
icon: "📅",
|
|
10
|
+
|
|
11
|
+
image: "calcom/cal.com",
|
|
12
|
+
imageTag: "latest",
|
|
13
|
+
ports: [
|
|
14
|
+
{
|
|
15
|
+
host: 3005,
|
|
16
|
+
container: 3000,
|
|
17
|
+
description: "Cal.com web UI",
|
|
18
|
+
exposed: true,
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
volumes: [],
|
|
22
|
+
environment: [
|
|
23
|
+
{
|
|
24
|
+
key: "DATABASE_URL",
|
|
25
|
+
defaultValue: "postgresql://calcom:${CALCOM_DB_PASSWORD}@postgresql:5432/calcom",
|
|
26
|
+
secret: true,
|
|
27
|
+
description: "PostgreSQL connection URL for Cal.com",
|
|
28
|
+
required: true,
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
key: "NEXTAUTH_SECRET",
|
|
32
|
+
defaultValue: "",
|
|
33
|
+
secret: true,
|
|
34
|
+
description: "NextAuth.js session encryption secret",
|
|
35
|
+
required: true,
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
key: "CALENDSO_ENCRYPTION_KEY",
|
|
39
|
+
defaultValue: "",
|
|
40
|
+
secret: true,
|
|
41
|
+
description: "Encryption key for calendar data at rest",
|
|
42
|
+
required: true,
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
key: "NEXT_PUBLIC_WEBAPP_URL",
|
|
46
|
+
defaultValue: "http://localhost:3005",
|
|
47
|
+
secret: false,
|
|
48
|
+
description: "Public URL of the Cal.com instance",
|
|
49
|
+
required: true,
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
healthcheck: {
|
|
53
|
+
test: "wget -q --spider http://localhost:3000 || exit 1",
|
|
54
|
+
interval: "30s",
|
|
55
|
+
timeout: "10s",
|
|
56
|
+
retries: 3,
|
|
57
|
+
startPeriod: "60s",
|
|
58
|
+
},
|
|
59
|
+
dependsOn: [],
|
|
60
|
+
restartPolicy: "unless-stopped",
|
|
61
|
+
networks: ["openclaw-network"],
|
|
62
|
+
|
|
63
|
+
skills: [],
|
|
64
|
+
openclawEnvVars: [
|
|
65
|
+
{
|
|
66
|
+
key: "CALCOM_HOST",
|
|
67
|
+
defaultValue: "cal-com",
|
|
68
|
+
secret: false,
|
|
69
|
+
description: "Cal.com hostname for OpenClaw",
|
|
70
|
+
required: true,
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
key: "CALCOM_PORT",
|
|
74
|
+
defaultValue: "3000",
|
|
75
|
+
secret: false,
|
|
76
|
+
description: "Cal.com port for OpenClaw",
|
|
77
|
+
required: true,
|
|
78
|
+
},
|
|
79
|
+
],
|
|
80
|
+
|
|
81
|
+
docsUrl: "https://cal.com/docs",
|
|
82
|
+
tags: ["calendar", "scheduling", "booking", "appointments"],
|
|
83
|
+
maturity: "beta",
|
|
84
|
+
|
|
85
|
+
requires: ["postgresql"],
|
|
86
|
+
recommends: ["redis"],
|
|
87
|
+
conflictsWith: [],
|
|
88
|
+
|
|
89
|
+
minMemoryMB: 512,
|
|
90
|
+
gpuRequired: false,
|
|
91
|
+
};
|
|
@@ -53,7 +53,22 @@ export const grafanaDefinition: ServiceDefinition = {
|
|
|
53
53
|
networks: ["openclaw-network"],
|
|
54
54
|
|
|
55
55
|
skills: [],
|
|
56
|
-
openclawEnvVars: [
|
|
56
|
+
openclawEnvVars: [
|
|
57
|
+
{
|
|
58
|
+
key: "GRAFANA_HOST",
|
|
59
|
+
defaultValue: "grafana",
|
|
60
|
+
secret: false,
|
|
61
|
+
description: "Grafana hostname",
|
|
62
|
+
required: false,
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
key: "GRAFANA_PORT",
|
|
66
|
+
defaultValue: "3000",
|
|
67
|
+
secret: false,
|
|
68
|
+
description: "Grafana internal port",
|
|
69
|
+
required: false,
|
|
70
|
+
},
|
|
71
|
+
],
|
|
57
72
|
|
|
58
73
|
docsUrl: "https://grafana.com/docs/grafana/latest/",
|
|
59
74
|
tags: ["dashboards", "visualization", "metrics", "monitoring"],
|
|
@@ -3,6 +3,7 @@ export { appflowyDefinition } from "./appflowy.js";
|
|
|
3
3
|
export { beszelDefinition } from "./beszel.js";
|
|
4
4
|
export { browserlessDefinition } from "./browserless.js";
|
|
5
5
|
export { caddyDefinition } from "./caddy.js";
|
|
6
|
+
export { calComDefinition } from "./cal-com.js";
|
|
6
7
|
export { chromadbDefinition } from "./chromadb.js";
|
|
7
8
|
export { claudeCodeDefinition } from "./claude-code.js";
|
|
8
9
|
export { codeServerDefinition } from "./code-server.js";
|
|
@@ -39,6 +40,7 @@ export { minioDefinition } from "./minio.js";
|
|
|
39
40
|
export { mixpostDefinition } from "./mixpost.js";
|
|
40
41
|
export { motionCanvasDefinition } from "./motion-canvas.js";
|
|
41
42
|
export { n8nDefinition } from "./n8n.js";
|
|
43
|
+
export { neo4jDefinition } from "./neo4j.js";
|
|
42
44
|
export { nocodbDefinition } from "./nocodb.js";
|
|
43
45
|
export { ntfyDefinition } from "./ntfy.js";
|
|
44
46
|
export { ollamaDefinition } from "./ollama.js";
|
|
@@ -70,6 +72,7 @@ export { valkeyDefinition } from "./valkey.js";
|
|
|
70
72
|
export { watchtowerDefinition } from "./watchtower.js";
|
|
71
73
|
export { weaviateDefinition } from "./weaviate.js";
|
|
72
74
|
export { whisperDefinition } from "./whisper.js";
|
|
75
|
+
export { xyopsDefinition } from "./xyops.js";
|
|
73
76
|
|
|
74
77
|
import type { ServiceDefinition } from "../../types.js";
|
|
75
78
|
import { anythingLlmDefinition } from "./anything-llm.js";
|
|
@@ -77,6 +80,7 @@ import { appflowyDefinition } from "./appflowy.js";
|
|
|
77
80
|
import { beszelDefinition } from "./beszel.js";
|
|
78
81
|
import { browserlessDefinition } from "./browserless.js";
|
|
79
82
|
import { caddyDefinition } from "./caddy.js";
|
|
83
|
+
import { calComDefinition } from "./cal-com.js";
|
|
80
84
|
import { chromadbDefinition } from "./chromadb.js";
|
|
81
85
|
import { claudeCodeDefinition } from "./claude-code.js";
|
|
82
86
|
import { codeServerDefinition } from "./code-server.js";
|
|
@@ -113,6 +117,7 @@ import { minioDefinition } from "./minio.js";
|
|
|
113
117
|
import { mixpostDefinition } from "./mixpost.js";
|
|
114
118
|
import { motionCanvasDefinition } from "./motion-canvas.js";
|
|
115
119
|
import { n8nDefinition } from "./n8n.js";
|
|
120
|
+
import { neo4jDefinition } from "./neo4j.js";
|
|
116
121
|
import { nocodbDefinition } from "./nocodb.js";
|
|
117
122
|
import { ntfyDefinition } from "./ntfy.js";
|
|
118
123
|
import { ollamaDefinition } from "./ollama.js";
|
|
@@ -144,6 +149,7 @@ import { valkeyDefinition } from "./valkey.js";
|
|
|
144
149
|
import { watchtowerDefinition } from "./watchtower.js";
|
|
145
150
|
import { weaviateDefinition } from "./weaviate.js";
|
|
146
151
|
import { whisperDefinition } from "./whisper.js";
|
|
152
|
+
import { xyopsDefinition } from "./xyops.js";
|
|
147
153
|
|
|
148
154
|
export const allServiceDefinitions: ServiceDefinition[] = [
|
|
149
155
|
redisDefinition,
|
|
@@ -218,4 +224,7 @@ export const allServiceDefinitions: ServiceDefinition[] = [
|
|
|
218
224
|
lasuiteMeetAgentsDefinition,
|
|
219
225
|
desktopEnvironmentDefinition,
|
|
220
226
|
streamGatewayDefinition,
|
|
227
|
+
neo4jDefinition,
|
|
228
|
+
calComDefinition,
|
|
229
|
+
xyopsDefinition,
|
|
221
230
|
];
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { ServiceDefinition } from "../../types.js";
|
|
2
|
+
|
|
3
|
+
export const neo4jDefinition: ServiceDefinition = {
|
|
4
|
+
id: "neo4j",
|
|
5
|
+
name: "Neo4j",
|
|
6
|
+
description:
|
|
7
|
+
"Graph database platform for connected data, enabling knowledge graphs, fraud detection, and relationship-driven queries with the Cypher query language.",
|
|
8
|
+
category: "database",
|
|
9
|
+
icon: "🔵",
|
|
10
|
+
|
|
11
|
+
image: "neo4j",
|
|
12
|
+
imageTag: "5-community",
|
|
13
|
+
ports: [
|
|
14
|
+
{
|
|
15
|
+
host: 7474,
|
|
16
|
+
container: 7474,
|
|
17
|
+
description: "Neo4j Browser (HTTP)",
|
|
18
|
+
exposed: true,
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
host: 7687,
|
|
22
|
+
container: 7687,
|
|
23
|
+
description: "Bolt protocol",
|
|
24
|
+
exposed: true,
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
volumes: [
|
|
28
|
+
{
|
|
29
|
+
name: "neo4j-data",
|
|
30
|
+
containerPath: "/data",
|
|
31
|
+
description: "Persistent Neo4j data",
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
environment: [
|
|
35
|
+
{
|
|
36
|
+
key: "NEO4J_AUTH",
|
|
37
|
+
defaultValue: "neo4j/${NEO4J_PASSWORD}",
|
|
38
|
+
secret: true,
|
|
39
|
+
description: "Neo4j authentication credentials (user/password)",
|
|
40
|
+
required: true,
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
healthcheck: {
|
|
44
|
+
test: "wget -q --spider http://localhost:7474 || exit 1",
|
|
45
|
+
interval: "30s",
|
|
46
|
+
timeout: "10s",
|
|
47
|
+
retries: 3,
|
|
48
|
+
startPeriod: "30s",
|
|
49
|
+
},
|
|
50
|
+
dependsOn: [],
|
|
51
|
+
restartPolicy: "unless-stopped",
|
|
52
|
+
networks: ["openclaw-network"],
|
|
53
|
+
|
|
54
|
+
skills: [],
|
|
55
|
+
openclawEnvVars: [
|
|
56
|
+
{
|
|
57
|
+
key: "NEO4J_HOST",
|
|
58
|
+
defaultValue: "neo4j",
|
|
59
|
+
secret: false,
|
|
60
|
+
description: "Neo4j hostname for OpenClaw",
|
|
61
|
+
required: true,
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
key: "NEO4J_BOLT_PORT",
|
|
65
|
+
defaultValue: "7687",
|
|
66
|
+
secret: false,
|
|
67
|
+
description: "Neo4j Bolt protocol port for OpenClaw",
|
|
68
|
+
required: true,
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
key: "NEO4J_HTTP_PORT",
|
|
72
|
+
defaultValue: "7474",
|
|
73
|
+
secret: false,
|
|
74
|
+
description: "Neo4j HTTP port for OpenClaw",
|
|
75
|
+
required: true,
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
key: "NEO4J_PASSWORD",
|
|
79
|
+
defaultValue: "",
|
|
80
|
+
secret: true,
|
|
81
|
+
description: "Neo4j password for OpenClaw",
|
|
82
|
+
required: true,
|
|
83
|
+
},
|
|
84
|
+
],
|
|
85
|
+
|
|
86
|
+
docsUrl: "https://neo4j.com/docs/",
|
|
87
|
+
tags: ["graph", "database", "knowledge-graph", "cypher"],
|
|
88
|
+
maturity: "stable",
|
|
89
|
+
|
|
90
|
+
requires: [],
|
|
91
|
+
recommends: [],
|
|
92
|
+
conflictsWith: [],
|
|
93
|
+
|
|
94
|
+
minMemoryMB: 512,
|
|
95
|
+
gpuRequired: false,
|
|
96
|
+
};
|
|
@@ -38,8 +38,6 @@ export const traefikDefinition: ServiceDefinition = {
|
|
|
38
38
|
},
|
|
39
39
|
],
|
|
40
40
|
environment: [],
|
|
41
|
-
command:
|
|
42
|
-
"--api.dashboard=true --providers.docker=true --entrypoints.web.address=:80 --entrypoints.websecure.address=:443",
|
|
43
41
|
dependsOn: [],
|
|
44
42
|
restartPolicy: "unless-stopped",
|
|
45
43
|
networks: ["openclaw-network"],
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import type { ServiceDefinition } from "../../types.js";
|
|
2
|
+
|
|
3
|
+
export const xyopsDefinition: ServiceDefinition = {
|
|
4
|
+
id: "xyops",
|
|
5
|
+
name: "xyOps",
|
|
6
|
+
description:
|
|
7
|
+
"Job scheduling, workflow automation, server monitoring, alerting, and incident response platform with a visual workflow editor and fleet management.",
|
|
8
|
+
category: "automation",
|
|
9
|
+
icon: "⚙️",
|
|
10
|
+
|
|
11
|
+
image: "ghcr.io/pixlcore/xyops",
|
|
12
|
+
imageTag: "latest",
|
|
13
|
+
ports: [
|
|
14
|
+
{
|
|
15
|
+
host: 5522,
|
|
16
|
+
container: 5522,
|
|
17
|
+
description: "xyOps web interface",
|
|
18
|
+
exposed: true,
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
host: 5523,
|
|
22
|
+
container: 5523,
|
|
23
|
+
description: "xyOps secondary service",
|
|
24
|
+
exposed: false,
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
volumes: [
|
|
28
|
+
{
|
|
29
|
+
name: "xyops-data",
|
|
30
|
+
containerPath: "/opt/xyops/data",
|
|
31
|
+
description: "Persistent xyOps data and configuration",
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: "/var/run/docker.sock",
|
|
35
|
+
containerPath: "/var/run/docker.sock",
|
|
36
|
+
description: "Docker socket for container management",
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
environment: [
|
|
40
|
+
{
|
|
41
|
+
key: "TZ",
|
|
42
|
+
defaultValue: "UTC",
|
|
43
|
+
secret: false,
|
|
44
|
+
description: "Timezone for xyOps",
|
|
45
|
+
required: false,
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
key: "XYOPS_xysat_local",
|
|
49
|
+
defaultValue: "1",
|
|
50
|
+
secret: false,
|
|
51
|
+
description: "Enable local satellite mode for monitoring the host",
|
|
52
|
+
required: false,
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
healthcheck: {
|
|
56
|
+
test: "wget -q --spider http://localhost:5522 || exit 1",
|
|
57
|
+
interval: "30s",
|
|
58
|
+
timeout: "10s",
|
|
59
|
+
retries: 3,
|
|
60
|
+
startPeriod: "30s",
|
|
61
|
+
},
|
|
62
|
+
dependsOn: [],
|
|
63
|
+
restartPolicy: "unless-stopped",
|
|
64
|
+
networks: ["openclaw-network"],
|
|
65
|
+
|
|
66
|
+
skills: [],
|
|
67
|
+
openclawEnvVars: [
|
|
68
|
+
{
|
|
69
|
+
key: "XYOPS_HOST",
|
|
70
|
+
defaultValue: "xyops",
|
|
71
|
+
secret: false,
|
|
72
|
+
description: "xyOps hostname for OpenClaw",
|
|
73
|
+
required: true,
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
key: "XYOPS_PORT",
|
|
77
|
+
defaultValue: "5522",
|
|
78
|
+
secret: false,
|
|
79
|
+
description: "xyOps port for OpenClaw",
|
|
80
|
+
required: true,
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
|
|
84
|
+
docsUrl: "https://github.com/pixlcore/xyops",
|
|
85
|
+
tags: ["scheduling", "automation", "monitoring", "alerting", "incident-response", "workflow"],
|
|
86
|
+
maturity: "stable",
|
|
87
|
+
|
|
88
|
+
requires: [],
|
|
89
|
+
recommends: [],
|
|
90
|
+
conflictsWith: [],
|
|
91
|
+
|
|
92
|
+
minMemoryMB: 256,
|
|
93
|
+
gpuRequired: false,
|
|
94
|
+
};
|