@orchestrator-claude/cli 3.1.12 → 3.2.1

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.
Files changed (99) hide show
  1. package/dist/api-client/OrchestratorAPIClient.d.ts +50 -1
  2. package/dist/api-client/OrchestratorAPIClient.d.ts.map +1 -1
  3. package/dist/api-client/OrchestratorAPIClient.js +73 -1
  4. package/dist/api-client/OrchestratorAPIClient.js.map +1 -1
  5. package/dist/api-client/types.d.ts +95 -2
  6. package/dist/api-client/types.d.ts.map +1 -1
  7. package/dist/commands/InitCommand.d.ts +22 -3
  8. package/dist/commands/InitCommand.d.ts.map +1 -1
  9. package/dist/commands/InitCommand.js +147 -13
  10. package/dist/commands/InitCommand.js.map +1 -1
  11. package/dist/index.d.ts +1 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +1 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/services/BootstrapService.d.ts +100 -0
  16. package/dist/services/BootstrapService.d.ts.map +1 -0
  17. package/dist/services/BootstrapService.js +231 -0
  18. package/dist/services/BootstrapService.js.map +1 -0
  19. package/dist/services/CleanupManager.d.ts +49 -0
  20. package/dist/services/CleanupManager.d.ts.map +1 -0
  21. package/dist/services/CleanupManager.js +87 -0
  22. package/dist/services/CleanupManager.js.map +1 -0
  23. package/dist/services/CredentialGenerator.d.ts +11 -0
  24. package/dist/services/CredentialGenerator.d.ts.map +1 -0
  25. package/dist/services/CredentialGenerator.js +25 -0
  26. package/dist/services/CredentialGenerator.js.map +1 -0
  27. package/dist/services/VerificationService.d.ts +103 -0
  28. package/dist/services/VerificationService.d.ts.map +1 -0
  29. package/dist/services/VerificationService.js +350 -0
  30. package/dist/services/VerificationService.js.map +1 -0
  31. package/dist/templates/base/claude/skills/release/SKILL.md +236 -0
  32. package/dist/templates/base/claude/skills/release/release.sh +460 -0
  33. package/dist/templates/base/docker-compose.yml.hbs +189 -8
  34. package/dist/templates/base/mcp.json.hbs +16 -9
  35. package/dist/templates/default/docker-compose.yml +190 -10
  36. package/package.json +1 -1
  37. package/templates/base/claude/skills/release/SKILL.md +236 -0
  38. package/templates/base/claude/skills/release/release.sh +460 -0
  39. package/templates/base/docker-compose.yml.hbs +189 -8
  40. package/templates/base/mcp.json.hbs +16 -9
  41. package/templates/default/docker-compose.yml +190 -10
  42. package/dist/templates/base/orchestrator-index.json.hbs +0 -37
  43. package/dist/templates/projects/api/files/index.ts.hbs +0 -30
  44. package/dist/templates/projects/api/files/server.ts.hbs +0 -63
  45. package/dist/templates/projects/api/files/tsconfig.json.hbs +0 -27
  46. package/dist/templates/projects/api/files/vitest.config.ts.hbs +0 -28
  47. package/dist/templates/projects/api/template.config.json +0 -238
  48. package/dist/templates/projects/api/template.config.ts +0 -149
  49. package/dist/templates/projects/cli/files/cli.ts.hbs +0 -50
  50. package/dist/templates/projects/cli/files/index.ts.hbs +0 -8
  51. package/dist/templates/projects/cli/files/tsconfig.json.hbs +0 -27
  52. package/dist/templates/projects/cli/files/vitest.config.ts.hbs +0 -28
  53. package/dist/templates/projects/cli/template.config.json +0 -213
  54. package/dist/templates/projects/cli/template.config.ts +0 -126
  55. package/dist/templates/projects/frontend/files/App.tsx.hbs +0 -31
  56. package/dist/templates/projects/frontend/files/index.html.hbs +0 -13
  57. package/dist/templates/projects/frontend/files/main.tsx.hbs +0 -22
  58. package/dist/templates/projects/frontend/files/tsconfig.json.hbs +0 -34
  59. package/dist/templates/projects/frontend/files/tsconfig.node.json.hbs +0 -10
  60. package/dist/templates/projects/frontend/files/vite.config.ts.hbs +0 -19
  61. package/dist/templates/projects/frontend/files/vitest.config.ts.hbs +0 -36
  62. package/dist/templates/projects/frontend/template.config.json +0 -241
  63. package/dist/templates/projects/frontend/template.config.ts +0 -153
  64. package/dist/templates/projects/minimal/files/claude-settings.json.hbs +0 -20
  65. package/dist/templates/projects/minimal/files/env.example.hbs +0 -17
  66. package/dist/templates/projects/minimal/files/gitignore.hbs +0 -41
  67. package/dist/templates/projects/minimal/files/index.ts.hbs +0 -13
  68. package/dist/templates/projects/minimal/files/tsconfig.json.hbs +0 -27
  69. package/dist/templates/projects/minimal/template.config.json +0 -185
  70. package/dist/templates/projects/minimal/template.config.ts +0 -88
  71. package/templates/base/orchestrator-index.json.hbs +0 -37
  72. package/templates/projects/api/files/index.ts.hbs +0 -30
  73. package/templates/projects/api/files/server.ts.hbs +0 -63
  74. package/templates/projects/api/files/tsconfig.json.hbs +0 -27
  75. package/templates/projects/api/files/vitest.config.ts.hbs +0 -28
  76. package/templates/projects/api/template.config.json +0 -238
  77. package/templates/projects/api/template.config.ts +0 -149
  78. package/templates/projects/cli/files/cli.ts.hbs +0 -50
  79. package/templates/projects/cli/files/index.ts.hbs +0 -8
  80. package/templates/projects/cli/files/tsconfig.json.hbs +0 -27
  81. package/templates/projects/cli/files/vitest.config.ts.hbs +0 -28
  82. package/templates/projects/cli/template.config.json +0 -213
  83. package/templates/projects/cli/template.config.ts +0 -126
  84. package/templates/projects/frontend/files/App.tsx.hbs +0 -31
  85. package/templates/projects/frontend/files/index.html.hbs +0 -13
  86. package/templates/projects/frontend/files/main.tsx.hbs +0 -22
  87. package/templates/projects/frontend/files/tsconfig.json.hbs +0 -34
  88. package/templates/projects/frontend/files/tsconfig.node.json.hbs +0 -10
  89. package/templates/projects/frontend/files/vite.config.ts.hbs +0 -19
  90. package/templates/projects/frontend/files/vitest.config.ts.hbs +0 -36
  91. package/templates/projects/frontend/template.config.json +0 -241
  92. package/templates/projects/frontend/template.config.ts +0 -153
  93. package/templates/projects/minimal/files/claude-settings.json.hbs +0 -20
  94. package/templates/projects/minimal/files/env.example.hbs +0 -17
  95. package/templates/projects/minimal/files/gitignore.hbs +0 -41
  96. package/templates/projects/minimal/files/index.ts.hbs +0 -13
  97. package/templates/projects/minimal/files/tsconfig.json.hbs +0 -27
  98. package/templates/projects/minimal/template.config.json +0 -185
  99. package/templates/projects/minimal/template.config.ts +0 -88
@@ -1,19 +1,200 @@
1
+ # docker-compose.yml — Generated by orchestrator init
2
+ # Stack: PostgreSQL (state) + MinIO (artifacts) + Neo4j (knowledge graph, optional) + API
3
+ #
4
+ # Ports:
5
+ # API: http://localhost:3001 (orchestrator REST API + MCP server)
6
+ # PostgreSQL: localhost:5432 (workflow state - direct access)
7
+ # MinIO S3: http://localhost:9000 (artifact storage - S3 API)
8
+ # MinIO UI: http://localhost:9001 (MinIO console)
9
+ # Neo4j HTTP: http://localhost:7474 (knowledge graph browser - requires --profile knowledge-graph)
10
+ # Neo4j Bolt: bolt://localhost:7687 (knowledge graph driver - requires --profile knowledge-graph)
11
+ #
12
+ # Usage:
13
+ # docker compose up -d # Start core services (API + PostgreSQL)
14
+ # docker compose --profile object-storage up -d # Add MinIO
15
+ # docker compose --profile knowledge-graph up -d # Add Neo4j
16
+ # docker compose --profile full up -d # Start everything
17
+
1
18
  services:
19
+ postgres:
20
+ image: postgres:15-alpine
21
+ container_name: {{projectName}}-postgres
22
+ environment:
23
+ POSTGRES_DB: ${POSTGRES_DB:-orchestrator}
24
+ POSTGRES_USER: ${POSTGRES_USER:-orchestrator}
25
+ POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
26
+ volumes:
27
+ - {{projectName}}-postgres-data:/var/lib/postgresql/data
28
+ ports:
29
+ - "${POSTGRES_PORT:-5432}:5432" # PostgreSQL
30
+ healthcheck:
31
+ test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-orchestrator} -d ${POSTGRES_DB:-orchestrator}"]
32
+ interval: 10s
33
+ timeout: 5s
34
+ retries: 5
35
+ start_period: 10s
36
+ restart: unless-stopped
37
+ networks:
38
+ - {{projectName}}-network
39
+
40
+ neo4j:
41
+ image: neo4j:5-community
42
+ container_name: {{projectName}}-neo4j
43
+ environment:
44
+ NEO4J_AUTH: neo4j/${NEO4J_PASSWORD:-orchestrator_neo4j}
45
+ NEO4J_PLUGINS: '["apoc"]'
46
+ NEO4J_dbms_memory_pagecache_size: 512M
47
+ NEO4J_dbms_memory_heap_initial__size: 512M
48
+ NEO4J_dbms_memory_heap_max__size: 1G
49
+ NEO4J_dbms_security_procedures_unrestricted: apoc.*
50
+ NEO4J_dbms_security_procedures_allowlist: apoc.*
51
+ ports:
52
+ - "${NEO4J_HTTP_PORT:-7474}:7474" # Neo4j browser
53
+ - "${NEO4J_BOLT_PORT:-7687}:7687" # Neo4j bolt
54
+ volumes:
55
+ - {{projectName}}-neo4j-data:/data
56
+ - {{projectName}}-neo4j-logs:/logs
57
+ healthcheck:
58
+ test: ["CMD", "wget", "-qO-", "http://localhost:7474"]
59
+ interval: 10s
60
+ timeout: 5s
61
+ retries: 5
62
+ start_period: 20s
63
+ restart: unless-stopped
64
+ networks:
65
+ - {{projectName}}-network
66
+ profiles:
67
+ - knowledge-graph
68
+ - full
69
+
70
+ minio:
71
+ image: minio/minio:latest
72
+ container_name: {{projectName}}-minio
73
+ command: server /data --console-address ":9001"
74
+ environment:
75
+ MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin}
76
+ MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
77
+ ports:
78
+ - "${MINIO_S3_PORT:-9000}:9000" # MinIO S3 API
79
+ - "${MINIO_CONSOLE_PORT:-9001}:9001" # MinIO console
80
+ volumes:
81
+ - {{projectName}}-minio-data:/data
82
+ healthcheck:
83
+ test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
84
+ interval: 10s
85
+ timeout: 5s
86
+ retries: 5
87
+ start_period: 10s
88
+ restart: unless-stopped
89
+ networks:
90
+ - {{projectName}}-network
91
+ profiles:
92
+ - object-storage
93
+ - full
94
+
95
+ minio-init:
96
+ image: minio/mc:latest
97
+ container_name: {{projectName}}-minio-init
98
+ depends_on:
99
+ minio:
100
+ condition: service_healthy
101
+ entrypoint: >
102
+ /bin/sh -c "
103
+ mc alias set myminio http://minio:9000 ${MINIO_ROOT_USER:-minioadmin} ${MINIO_ROOT_PASSWORD};
104
+ mc mb --ignore-existing myminio/orchestrator-static;
105
+ mc mb --ignore-existing myminio/orchestrator-artifacts;
106
+ mc anonymous set download myminio/orchestrator-static;
107
+ echo 'MinIO buckets initialized successfully';
108
+ exit 0;
109
+ "
110
+ networks:
111
+ - {{projectName}}-network
112
+ profiles:
113
+ - object-storage
114
+ - full
115
+ restart: "no"
116
+
117
+ db-migrate:
118
+ image: cmac01/orchestrator-api:{{orchestratorVersion}}
119
+ container_name: {{projectName}}-db-migrate
120
+ depends_on:
121
+ postgres:
122
+ condition: service_healthy
123
+ environment:
124
+ NODE_ENV: production
125
+ RUN_MIGRATIONS: "true"
126
+ PERSISTENCE_MODE: postgres
127
+ DATABASE_URL: postgresql://${POSTGRES_USER:-orchestrator}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB:-orchestrator}
128
+ POSTGRES_HOST: postgres
129
+ POSTGRES_PORT: "5432"
130
+ POSTGRES_DB: ${POSTGRES_DB:-orchestrator}
131
+ POSTGRES_USER: ${POSTGRES_USER:-orchestrator}
132
+ POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
133
+ networks:
134
+ - {{projectName}}-network
135
+ restart: "no"
136
+
2
137
  orchestrator-api:
3
138
  image: cmac01/orchestrator-api:{{orchestratorVersion}}
4
139
  container_name: {{projectName}}-orchestrator-api
5
- user: "${UID:-1000}:${GID:-1000}"
140
+ depends_on:
141
+ postgres:
142
+ condition: service_healthy
143
+ db-migrate:
144
+ condition: service_completed_successfully
145
+ env_file: .env
146
+ environment:
147
+ NODE_ENV: production
148
+ API_HOST: "0.0.0.0"
149
+ API_PORT: "3001"
150
+ PERSISTENCE_MODE: postgres
151
+ RUN_MIGRATIONS: "false"
152
+ # PostgreSQL connection (service name resolves within Docker network)
153
+ POSTGRES_HOST: postgres
154
+ POSTGRES_PORT: "5432"
155
+ DATABASE_URL: postgresql://${POSTGRES_USER:-orchestrator}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB:-orchestrator}
156
+ # MinIO object storage (requires --profile object-storage or --profile full)
157
+ ENABLE_OBJECT_STORAGE: "${ENABLE_OBJECT_STORAGE:-true}"
158
+ OBJECT_STORAGE_PROVIDER: minio
159
+ OBJECT_STORAGE_ENDPOINT: "http://minio:9000"
160
+ OBJECT_STORAGE_REGION: us-east-1
161
+ OBJECT_STORAGE_ACCESS_KEY: ${MINIO_ROOT_USER:-minioadmin}
162
+ OBJECT_STORAGE_SECRET_KEY: ${MINIO_ROOT_PASSWORD}
163
+ BUCKET_STATIC: orchestrator-static
164
+ BUCKET_ARTIFACTS: orchestrator-artifacts
165
+ # Neo4j knowledge graph (requires --profile knowledge-graph or --profile full)
166
+ NEO4J_URI: "${NEO4J_URI:-bolt://neo4j:7687}"
167
+ NEO4J_USER: "${NEO4J_USER:-neo4j}"
168
+ NEO4J_PASSWORD: "${NEO4J_PASSWORD:-orchestrator_neo4j}"
169
+ ENABLE_KNOWLEDGE_GRAPH: "${ENABLE_KNOWLEDGE_GRAPH:-false}"
170
+ # JWT Authentication
171
+ JWT_SECRET: ${JWT_SECRET}
6
172
  ports:
7
- - "3001:3001"
173
+ - "3001:3001" # Orchestrator REST API + MCP server
8
174
  volumes:
9
- - .:/app/project:rw
10
- environment:
11
- - ORCHESTRATOR_ROOT=/app/project
12
- - NODE_ENV=development
175
+ # Staging area for Artifact Relay Pattern (TD-039)
176
+ # Sub-agents write artifacts here; main agent relays to MinIO via MCP
177
+ - /tmp/orchestrator:/tmp/orchestrator
13
178
  healthcheck:
14
179
  test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://127.0.0.1:3001/api/v1/health"]
15
180
  interval: 30s
16
- timeout: 3s
17
- start_period: 10s
181
+ timeout: 10s
18
182
  retries: 3
183
+ start_period: 15s
19
184
  restart: unless-stopped
185
+ networks:
186
+ - {{projectName}}-network
187
+
188
+ volumes:
189
+ {{projectName}}-postgres-data:
190
+ driver: local
191
+ {{projectName}}-neo4j-data:
192
+ driver: local
193
+ {{projectName}}-neo4j-logs:
194
+ driver: local
195
+ {{projectName}}-minio-data:
196
+ driver: local
197
+
198
+ networks:
199
+ {{projectName}}-network:
200
+ driver: bridge
@@ -3,22 +3,29 @@
3
3
  "mcpServers": {
4
4
  "orchestrator-tools": {
5
5
  "command": "npx",
6
- "args": [
7
- "@orchestrator-claude/mcp-server"
8
- ],
6
+ "args": ["@orchestrator-claude/mcp-server"],
9
7
  "env": {
10
8
  "ORCHESTRATOR_API_URL": "http://localhost:3001",
11
- "ORCHESTRATOR_ROOT": ".orchestrator",
9
+ "ORCHESTRATOR_PROJECT_ID": "{{projectId}}",
10
+ "ORCHESTRATOR_AUTH_EMAIL": "{{authEmail}}",
11
+ "ORCHESTRATOR_AUTH_PASSWORD": "{{authPassword}}",
12
+ "NODE_ENV": "production"
13
+ }
14
+ },
15
+ "orchestrator-extended": {
16
+ "command": "npx",
17
+ "args": ["@orchestrator-claude/mcp-server", "--server", "extended"],
18
+ "env": {
19
+ "ORCHESTRATOR_API_URL": "http://localhost:3001",
20
+ "ORCHESTRATOR_PROJECT_ID": "{{projectId}}",
21
+ "ORCHESTRATOR_AUTH_EMAIL": "{{authEmail}}",
22
+ "ORCHESTRATOR_AUTH_PASSWORD": "{{authPassword}}",
12
23
  "NODE_ENV": "production"
13
24
  }
14
25
  },
15
26
  "perplexity": {
16
27
  "command": "npx",
17
- "args": [
18
- "@orchestrator-claude/mcp-server",
19
- "--server",
20
- "perplexity"
21
- ],
28
+ "args": ["@orchestrator-claude/mcp-server", "--server", "perplexity"],
22
29
  "env": {
23
30
  "ORCHESTRATOR_API_URL": "http://localhost:3001",
24
31
  "PERPLEXITY_API_KEY": "{{perplexityApiKey}}"
@@ -1,20 +1,200 @@
1
- version: '3.8'
1
+ # docker-compose.yml — Generated by orchestrator init
2
+ # Stack: PostgreSQL (state) + MinIO (artifacts) + Neo4j (knowledge graph, optional) + API
3
+ #
4
+ # Ports:
5
+ # API: http://localhost:3001 (orchestrator REST API + MCP server)
6
+ # PostgreSQL: localhost:5432 (workflow state - direct access)
7
+ # MinIO S3: http://localhost:9000 (artifact storage - S3 API)
8
+ # MinIO UI: http://localhost:9001 (MinIO console)
9
+ # Neo4j HTTP: http://localhost:7474 (knowledge graph browser - requires --profile knowledge-graph)
10
+ # Neo4j Bolt: bolt://localhost:7687 (knowledge graph driver - requires --profile knowledge-graph)
11
+ #
12
+ # Usage:
13
+ # docker compose up -d # Start core services (API + PostgreSQL)
14
+ # docker compose --profile object-storage up -d # Add MinIO
15
+ # docker compose --profile knowledge-graph up -d # Add Neo4j
16
+ # docker compose --profile full up -d # Start everything
2
17
 
3
18
  services:
4
- orchestrator-api:
5
- image: cmac01/orchestrator-api:{{orchestratorVersion}}
6
- container_name: {{projectName}}-orchestrator-api
19
+ postgres:
20
+ image: postgres:15-alpine
21
+ container_name: my-project-postgres
22
+ environment:
23
+ POSTGRES_DB: ${POSTGRES_DB:-orchestrator}
24
+ POSTGRES_USER: ${POSTGRES_USER:-orchestrator}
25
+ POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
26
+ volumes:
27
+ - my-project-postgres-data:/var/lib/postgresql/data
28
+ ports:
29
+ - "${POSTGRES_PORT:-5432}:5432" # PostgreSQL
30
+ healthcheck:
31
+ test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-orchestrator} -d ${POSTGRES_DB:-orchestrator}"]
32
+ interval: 10s
33
+ timeout: 5s
34
+ retries: 5
35
+ start_period: 10s
36
+ restart: unless-stopped
37
+ networks:
38
+ - my-project-network
39
+
40
+ neo4j:
41
+ image: neo4j:5-community
42
+ container_name: my-project-neo4j
43
+ environment:
44
+ NEO4J_AUTH: neo4j/${NEO4J_PASSWORD:-orchestrator_neo4j}
45
+ NEO4J_PLUGINS: '["apoc"]'
46
+ NEO4J_dbms_memory_pagecache_size: 512M
47
+ NEO4J_dbms_memory_heap_initial__size: 512M
48
+ NEO4J_dbms_memory_heap_max__size: 1G
49
+ NEO4J_dbms_security_procedures_unrestricted: apoc.*
50
+ NEO4J_dbms_security_procedures_allowlist: apoc.*
51
+ ports:
52
+ - "${NEO4J_HTTP_PORT:-7474}:7474" # Neo4j browser
53
+ - "${NEO4J_BOLT_PORT:-7687}:7687" # Neo4j bolt
54
+ volumes:
55
+ - my-project-neo4j-data:/data
56
+ - my-project-neo4j-logs:/logs
57
+ healthcheck:
58
+ test: ["CMD", "wget", "-qO-", "http://localhost:7474"]
59
+ interval: 10s
60
+ timeout: 5s
61
+ retries: 5
62
+ start_period: 20s
63
+ restart: unless-stopped
64
+ networks:
65
+ - my-project-network
66
+ profiles:
67
+ - knowledge-graph
68
+ - full
69
+
70
+ minio:
71
+ image: minio/minio:latest
72
+ container_name: my-project-minio
73
+ command: server /data --console-address ":9001"
74
+ environment:
75
+ MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin}
76
+ MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
7
77
  ports:
8
- - "3001:3001"
78
+ - "${MINIO_S3_PORT:-9000}:9000" # MinIO S3 API
79
+ - "${MINIO_CONSOLE_PORT:-9001}:9001" # MinIO console
9
80
  volumes:
10
- - .:/app/project:rw
81
+ - my-project-minio-data:/data
82
+ healthcheck:
83
+ test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
84
+ interval: 10s
85
+ timeout: 5s
86
+ retries: 5
87
+ start_period: 10s
88
+ restart: unless-stopped
89
+ networks:
90
+ - my-project-network
91
+ profiles:
92
+ - object-storage
93
+ - full
94
+
95
+ minio-init:
96
+ image: minio/mc:latest
97
+ container_name: my-project-minio-init
98
+ depends_on:
99
+ minio:
100
+ condition: service_healthy
101
+ entrypoint: >
102
+ /bin/sh -c "
103
+ mc alias set myminio http://minio:9000 ${MINIO_ROOT_USER:-minioadmin} ${MINIO_ROOT_PASSWORD};
104
+ mc mb --ignore-existing myminio/orchestrator-static;
105
+ mc mb --ignore-existing myminio/orchestrator-artifacts;
106
+ mc anonymous set download myminio/orchestrator-static;
107
+ echo 'MinIO buckets initialized successfully';
108
+ exit 0;
109
+ "
110
+ networks:
111
+ - my-project-network
112
+ profiles:
113
+ - object-storage
114
+ - full
115
+ restart: "no"
116
+
117
+ db-migrate:
118
+ image: cmac01/orchestrator-api:latest
119
+ container_name: my-project-db-migrate
120
+ depends_on:
121
+ postgres:
122
+ condition: service_healthy
123
+ environment:
124
+ NODE_ENV: production
125
+ RUN_MIGRATIONS: "true"
126
+ PERSISTENCE_MODE: postgres
127
+ DATABASE_URL: postgresql://${POSTGRES_USER:-orchestrator}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB:-orchestrator}
128
+ POSTGRES_HOST: postgres
129
+ POSTGRES_PORT: "5432"
130
+ POSTGRES_DB: ${POSTGRES_DB:-orchestrator}
131
+ POSTGRES_USER: ${POSTGRES_USER:-orchestrator}
132
+ POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
133
+ networks:
134
+ - my-project-network
135
+ restart: "no"
136
+
137
+ orchestrator-api:
138
+ image: cmac01/orchestrator-api:latest
139
+ container_name: my-project-orchestrator-api
140
+ depends_on:
141
+ postgres:
142
+ condition: service_healthy
143
+ db-migrate:
144
+ condition: service_completed_successfully
145
+ env_file: .env
11
146
  environment:
12
- - ORCHESTRATOR_ROOT=/app/project
13
- - NODE_ENV=development
147
+ NODE_ENV: production
148
+ API_HOST: "0.0.0.0"
149
+ API_PORT: "3001"
150
+ PERSISTENCE_MODE: postgres
151
+ RUN_MIGRATIONS: "false"
152
+ # PostgreSQL connection (service name resolves within Docker network)
153
+ POSTGRES_HOST: postgres
154
+ POSTGRES_PORT: "5432"
155
+ DATABASE_URL: postgresql://${POSTGRES_USER:-orchestrator}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB:-orchestrator}
156
+ # MinIO object storage (requires --profile object-storage or --profile full)
157
+ ENABLE_OBJECT_STORAGE: "${ENABLE_OBJECT_STORAGE:-true}"
158
+ OBJECT_STORAGE_PROVIDER: minio
159
+ OBJECT_STORAGE_ENDPOINT: "http://minio:9000"
160
+ OBJECT_STORAGE_REGION: us-east-1
161
+ OBJECT_STORAGE_ACCESS_KEY: ${MINIO_ROOT_USER:-minioadmin}
162
+ OBJECT_STORAGE_SECRET_KEY: ${MINIO_ROOT_PASSWORD}
163
+ BUCKET_STATIC: orchestrator-static
164
+ BUCKET_ARTIFACTS: orchestrator-artifacts
165
+ # Neo4j knowledge graph (requires --profile knowledge-graph or --profile full)
166
+ NEO4J_URI: "${NEO4J_URI:-bolt://neo4j:7687}"
167
+ NEO4J_USER: "${NEO4J_USER:-neo4j}"
168
+ NEO4J_PASSWORD: "${NEO4J_PASSWORD:-orchestrator_neo4j}"
169
+ ENABLE_KNOWLEDGE_GRAPH: "${ENABLE_KNOWLEDGE_GRAPH:-false}"
170
+ # JWT Authentication
171
+ JWT_SECRET: ${JWT_SECRET}
172
+ ports:
173
+ - "3001:3001" # Orchestrator REST API + MCP server
174
+ volumes:
175
+ # Staging area for Artifact Relay Pattern (TD-039)
176
+ # Sub-agents write artifacts here; main agent relays to MinIO via MCP
177
+ - /tmp/orchestrator:/tmp/orchestrator
14
178
  healthcheck:
15
179
  test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://127.0.0.1:3001/api/v1/health"]
16
180
  interval: 30s
17
- timeout: 3s
18
- start_period: 10s
181
+ timeout: 10s
19
182
  retries: 3
183
+ start_period: 15s
20
184
  restart: unless-stopped
185
+ networks:
186
+ - my-project-network
187
+
188
+ volumes:
189
+ my-project-postgres-data:
190
+ driver: local
191
+ my-project-neo4j-data:
192
+ driver: local
193
+ my-project-neo4j-logs:
194
+ driver: local
195
+ my-project-minio-data:
196
+ driver: local
197
+
198
+ networks:
199
+ my-project-network:
200
+ driver: bridge
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orchestrator-claude/cli",
3
- "version": "3.1.12",
3
+ "version": "3.2.1",
4
4
  "description": "Orchestrator CLI - Project scaffolding, migration and management",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -0,0 +1,236 @@
1
+ ---
2
+ name: release
3
+ description: Executa release oficial do Orchestrator via CI/CD. NUNCA faca bump manual de versao - sempre use esta skill.
4
+ allowed-tools: Read, Bash, Grep, Glob
5
+ ---
6
+
7
+ # Release Skill
8
+
9
+ ## REGRA CRITICA
10
+
11
+ **NUNCA faca bump de versao manualmente!**
12
+
13
+ - ❌ NUNCA edite `package.json` para alterar versao
14
+ - ❌ NUNCA crie tags git manualmente
15
+ - ❌ NUNCA faca `docker build` + `docker push` manual
16
+ - ✅ SEMPRE use esta skill para releases
17
+
18
+ Releases manuais causam dessincronizacao entre npm, Docker e package.json.
19
+
20
+ ## Descricao
21
+
22
+ Esta skill automatiza o processo de release do Orchestrator:
23
+
24
+ 1. Valida pre-requisitos (git clean, branch main)
25
+ 2. Calcula nova versao (patch/minor/major)
26
+ 3. Atualiza TODOS os arquivos de versao
27
+ 4. Cria commit e tag
28
+ 5. Push dispara CI/CD (npm publish + Docker build)
29
+
30
+ ## Arquivos Atualizados pelo Script
31
+
32
+ O script atualiza automaticamente:
33
+
34
+ - `package.json` (root)
35
+ - `packages/cli/package.json`
36
+ - `packages/mcp-server/package.json`
37
+ - `packages/cli/src/index.ts` (CLI_VERSION constant)
38
+ - `src/infrastructure/templates/base/package.json.hbs` (template versions)
39
+
40
+ ## Invocacao
41
+
42
+ ```
43
+ /release patch # 1.5.6 -> 1.5.7
44
+ /release minor # 1.5.6 -> 1.6.0
45
+ /release major # 1.5.6 -> 2.0.0
46
+ /release 2.0.0 # Versao explicita
47
+ ```
48
+
49
+ ## Parametros
50
+
51
+ | Parametro | Tipo | Obrigatorio | Descricao |
52
+ |-----------|------|-------------|-----------|
53
+ | `version` | string | Sim | patch, minor, major, ou x.y.z |
54
+ | `--dry-run` | flag | Nao | Mostra o que seria feito sem executar |
55
+ | `--force` | flag | Nao | Pula confirmacoes interativas |
56
+
57
+ ## Processo de Execucao
58
+
59
+ ### 1. Pre-verificacao
60
+
61
+ Antes de executar o script, verifique:
62
+
63
+ ```bash
64
+ # Working tree limpa?
65
+ git status
66
+
67
+ # Na branch main?
68
+ git branch --show-current
69
+
70
+ # Ultima tag?
71
+ git describe --tags --abbrev=0
72
+ ```
73
+
74
+ ### 2. Dry Run (Recomendado)
75
+
76
+ Sempre faca dry-run primeiro:
77
+
78
+ ```bash
79
+ ./scripts/release.sh --dry-run patch
80
+ ```
81
+
82
+ ### 3. Executar Release
83
+
84
+ ```bash
85
+ ./scripts/release.sh patch
86
+ ```
87
+
88
+ ### 4. Monitorar CI/CD
89
+
90
+ Apos o push, monitore o pipeline:
91
+ - GitHub Actions: https://github.com/orchestratorAII/orchestrator_claude/actions
92
+
93
+ ## Exemplos de Uso
94
+
95
+ ### Release de Patch (Bug Fix)
96
+
97
+ ```
98
+ User: "Faca release do fix que acabamos de fazer"
99
+
100
+ Claude:
101
+ 1. Verifico pre-requisitos
102
+ 2. Executo: ./scripts/release.sh --dry-run patch
103
+ 3. Confirmo com usuario
104
+ 4. Executo: ./scripts/release.sh patch
105
+ 5. Reporto URL do pipeline
106
+ ```
107
+
108
+ ### Release de Minor (Nova Feature)
109
+
110
+ ```
111
+ User: "Release da nova feature de dashboard"
112
+
113
+ Claude:
114
+ 1. Verifico CHANGELOG atualizado
115
+ 2. Executo: ./scripts/release.sh --dry-run minor
116
+ 3. Confirmo com usuario
117
+ 4. Executo: ./scripts/release.sh minor
118
+ ```
119
+
120
+ ### Release de Major (Breaking Change)
121
+
122
+ ```
123
+ User: "Precisamos fazer release 2.0.0"
124
+
125
+ Claude:
126
+ 1. Verifico CHANGELOG com breaking changes documentados
127
+ 2. Executo: ./scripts/release.sh --dry-run 2.0.0
128
+ 3. ALERTA sobre breaking changes
129
+ 4. Confirmo DUAS vezes com usuario
130
+ 5. Executo: ./scripts/release.sh 2.0.0
131
+ ```
132
+
133
+ ## Output Esperado
134
+
135
+ ```
136
+ ════════════════════════════════════════
137
+ Orchestrator Release Script
138
+ ════════════════════════════════════════
139
+
140
+ 🔍 Validating prerequisites...
141
+ ✅ All prerequisites satisfied
142
+ 🔍 Validating working tree...
143
+ ✅ Working tree is clean
144
+
145
+ Release Plan:
146
+ Current version: 1.5.6
147
+ New version: 1.5.7
148
+ Git tag: v1.5.7
149
+
150
+ ✅ Tag 'v1.5.7' is available
151
+
152
+ Files to update:
153
+ - package.json (root)
154
+ - packages/cli/package.json
155
+ - packages/mcp-server/package.json
156
+ - packages/cli/src/index.ts (CLI_VERSION)
157
+ - src/infrastructure/templates/base/package.json.hbs (templates)
158
+
159
+ Continue with release? (y/N): y
160
+
161
+ 📝 Updating versions to 1.5.7...
162
+ ✅ All versions updated to 1.5.7
163
+ ✅ Version bump committed
164
+ ✅ Tag created: v1.5.7
165
+ ⬆️ Pushing to remote...
166
+ ✅ Pushed main and tag v1.5.7
167
+
168
+ ════════════════════════════════════════
169
+ Release v1.5.7 initiated!
170
+ ════════════════════════════════════════
171
+
172
+ 🚀 CI/CD pipeline will now:
173
+ - Build and publish Docker image
174
+ - Publish npm packages
175
+
176
+ 📍 Monitor pipeline at:
177
+ https://github.com/orchestratorAII/orchestrator_claude/actions
178
+ ```
179
+
180
+ ## Troubleshooting
181
+
182
+ ### Working tree not clean
183
+
184
+ ```
185
+ ❌ Working tree is not clean
186
+ Please commit or stash your changes
187
+ ```
188
+
189
+ **Solucao:** Commit ou stash as mudancas pendentes antes do release.
190
+
191
+ ### Tag already exists
192
+
193
+ ```
194
+ ❌ Tag 'v1.5.7' already exists
195
+ ```
196
+
197
+ **Solucao:** Use uma versao diferente ou delete a tag existente (se foi erro).
198
+
199
+ ### Not on main branch
200
+
201
+ ```
202
+ ⚠️ You are on branch 'feature-x', not main
203
+ ```
204
+
205
+ **Solucao:** Merge para main primeiro, depois faca release.
206
+
207
+ ## Integracao com CI/CD
208
+
209
+ O push da tag dispara automaticamente:
210
+
211
+ 1. **GitHub Actions** (`release.yml`)
212
+ - Build e teste
213
+ - Publish npm packages
214
+ - Build e push Docker image
215
+
216
+ 2. **Versoes Sincronizadas**
217
+ - npm: @orchestrator-claude/cli
218
+ - npm: @orchestrator-claude/mcp-server
219
+ - Docker: orchestrator-api:vX.Y.Z
220
+
221
+ ## Notas Importantes
222
+
223
+ 1. **Sempre faca dry-run primeiro** para verificar mudancas
224
+ 2. **CHANGELOG deve estar atualizado** antes do release
225
+ 3. **CI/CD faz o publish** - nunca publique manualmente
226
+ 4. **Uma tag = uma versao** em todos os lugares
227
+ 5. **Major releases** requerem confirmacao extra
228
+
229
+ ## Checklist Pre-Release
230
+
231
+ - [ ] CHANGELOG.md atualizado com todas as mudancas
232
+ - [ ] Todos os testes passando (`npm test`)
233
+ - [ ] Build funcionando (`npm run build`)
234
+ - [ ] Working tree limpa
235
+ - [ ] Na branch main
236
+ - [ ] Dry-run executado e revisado