nightshift-mcp 1.1.1 → 2.0.0

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.
@@ -85,22 +85,22 @@ export const spawnAgentTool = defineTool({
85
85
  name: "spawn_agent",
86
86
  category: "agents",
87
87
  description: "Spawn another AI agent as a subprocess",
88
- fullDescription: `Spawn another AI agent as a subprocess to work on a task. The agent runs to completion and returns results.
89
-
90
- IMPORTANT — Timeout guidance (the default 300s is only good for simple tasks):
91
- - Simple/quick tasks (hello, version check): 30-60s
92
- - Code generation or small features: 300s (5 min, the default)
93
- - Research with web search or codebase exploration: 600s (10 min)
94
- - Full story implementation with tests: 600-900s (10-15 min)
95
- - Complex multi-file refactors: 900-1200s (15-20 min)
96
- If a task times out, retry with a LONGER timeout — do not retry with the same value.
97
-
98
- Agent selection guide (only available agents will work — check list_available_agents first):
99
- - claude: Best for complex logic, orchestration, nuanced judgment. Most capable but uses API credits.
100
- - codex: Good for code generation and straightforward implementation. Uses OpenAI credits.
101
- - gemini: Good for research, planning, code review. Uses Google credits.
102
- - goose: Flexible — can use any model via OpenRouter or Ollama (local/free). Good general-purpose agent.
103
- - ollama: Runs via local Ollama models. Free but less capable. Best for simple, well-defined tasks.
88
+ fullDescription: `Spawn another AI agent as a subprocess to work on a task. The agent runs to completion and returns results.
89
+
90
+ IMPORTANT — Timeout guidance (the default 300s is only good for simple tasks):
91
+ - Simple/quick tasks (hello, version check): 30-60s
92
+ - Code generation or small features: 300s (5 min, the default)
93
+ - Research with web search or codebase exploration: 600s (10 min)
94
+ - Full story implementation with tests: 600-900s (10-15 min)
95
+ - Complex multi-file refactors: 900-1200s (15-20 min)
96
+ If a task times out, retry with a LONGER timeout — do not retry with the same value.
97
+
98
+ Agent selection guide (only available agents will work — check list_available_agents first):
99
+ - claude: Best for complex logic, orchestration, nuanced judgment. Most capable but uses API credits.
100
+ - codex: Good for code generation and straightforward implementation. Uses OpenAI credits.
101
+ - gemini: Good for research, planning, code review. Uses Google credits.
102
+ - goose: Flexible — can use any model via OpenRouter or Ollama (local/free). Good general-purpose agent.
103
+ - ollama: Runs via local Ollama models. Free but less capable. Best for simple, well-defined tasks.
104
104
  - vibe: Follows detailed specs well. Good for tasks with clear acceptance criteria.`,
105
105
  inputSchema: z.object({
106
106
  agent: z.enum(AGENT_TYPES).describe("Which agent to spawn. IMPORTANT: only use agents confirmed available by list_available_agents or preflight check. Do NOT guess."),
@@ -218,8 +218,8 @@ export const delegateStory = defineTool({
218
218
  name: "delegate_story",
219
219
  category: "agents",
220
220
  description: "Delegate a user story to another AI agent",
221
- fullDescription: `Delegate a user story to another AI agent. Claims the story, spawns the agent with full context, and tracks completion. The spawned agent works autonomously.
222
-
221
+ fullDescription: `Delegate a user story to another AI agent. Claims the story, spawns the agent with full context, and tracks completion. The spawned agent works autonomously.
222
+
223
223
  IMPORTANT: Only delegate to agents that are actually available. Use list_available_agents or the preflight check to verify before choosing. If the agent you want isn't available, the tool will return an error with a list of agents that ARE available — use one of those instead.`,
224
224
  inputSchema: z.object({
225
225
  agent: z.enum(AGENT_TYPES).describe("Which agent to delegate to. MUST be an available agent — check list_available_agents first."),
@@ -274,31 +274,31 @@ IMPORTANT: Only delegate to agents that are actually available. Use list_availab
274
274
  // Resolve the nightshift CLI command for this project
275
275
  const ns = getNightshiftCliCommand(ctx.projectPath);
276
276
  // Build delegation prompt
277
- const delegationPrompt = `You are an autonomous coding agent. Complete this user story:
278
-
279
- ## Story: ${story.id} - ${story.title || "(untitled)"}
280
-
281
- ${story.description || "(No description provided)"}
282
-
283
- ### Acceptance Criteria:
284
- ${Array.isArray(story.acceptanceCriteria) && story.acceptanceCriteria.length > 0 ? story.acceptanceCriteria.map((c) => `- ${c}`).join("\n") : "(No acceptance criteria specified)"}
285
-
286
- ### Relevant Context:
287
- ${contextSection}
288
-
289
- ### Recent Chat:
290
- ${recentChat.map((m) => `[${m.agent}] ${m.type}: ${m.content.substring(0, 200)}`).join("\n")}
291
-
292
- ### Instructions:
293
- 1. Implement the acceptance criteria
294
- 2. Run quality checks (typecheck, lint, test)
295
- 3. Commit with message: "feat: ${story.id} - ${story.title}"
296
- 4. Use the nightshift CLI to coordinate (works without MCP):
297
- - Post updates: ${ns} chat --agent ${agent} --type STATUS_UPDATE --message "your progress"
298
- - When done: ${ns} complete ${story.id} --agent ${agent} --summary "what you did" --learnings "key insights"
299
- - If you hit limits: ${ns} failover --agent ${agent} --task "${story.id}" --message "reason"
300
- (If nightshift MCP tools are available, you can use those instead — they do the same thing.)
301
-
277
+ const delegationPrompt = `You are an autonomous coding agent. Complete this user story:
278
+
279
+ ## Story: ${story.id} - ${story.title || "(untitled)"}
280
+
281
+ ${story.description || "(No description provided)"}
282
+
283
+ ### Acceptance Criteria:
284
+ ${Array.isArray(story.acceptanceCriteria) && story.acceptanceCriteria.length > 0 ? story.acceptanceCriteria.map((c) => `- ${c}`).join("\n") : "(No acceptance criteria specified)"}
285
+
286
+ ### Relevant Context:
287
+ ${contextSection}
288
+
289
+ ### Recent Chat:
290
+ ${recentChat.map((m) => `[${m.agent}] ${m.type}: ${m.content.substring(0, 200)}`).join("\n")}
291
+
292
+ ### Instructions:
293
+ 1. Implement the acceptance criteria
294
+ 2. Run quality checks (typecheck, lint, test)
295
+ 3. Commit with message: "feat: ${story.id} - ${story.title}"
296
+ 4. Use the nightshift CLI to coordinate (works without MCP):
297
+ - Post updates: ${ns} chat --agent ${agent} --type STATUS_UPDATE --message "your progress"
298
+ - When done: ${ns} complete ${story.id} --agent ${agent} --summary "what you did" --learnings "key insights"
299
+ - If you hit limits: ${ns} failover --agent ${agent} --task "${story.id}" --message "reason"
300
+ (If nightshift MCP tools are available, you can use those instead — they do the same thing.)
301
+
302
302
  Begin implementation now.`;
303
303
  // Post delegation to chat
304
304
  ctx.chatManager.writeMessage({
@@ -389,8 +389,8 @@ export const delegateResearch = defineTool({
389
389
  name: "delegate_research",
390
390
  category: "agents",
391
391
  description: "Delegate research/planning task to an available agent",
392
- fullDescription: `Delegate a research or planning task to an AI agent. Automatically picks the best AVAILABLE agent (prefers gemini > claude > ollama > codex — but only agents that are actually installed and runnable). You can override the agent selection. Returns findings that can inform implementation decisions.
393
-
392
+ fullDescription: `Delegate a research or planning task to an AI agent. Automatically picks the best AVAILABLE agent (prefers gemini > claude > ollama > codex — but only agents that are actually installed and runnable). You can override the agent selection. Returns findings that can inform implementation decisions.
393
+
394
394
  Default timeout is 10 minutes. Research tasks involving web search or large codebase exploration may need the full duration.`,
395
395
  inputSchema: z.object({
396
396
  task: z.string().describe("The research/planning task (e.g., 'Analyze authentication patterns in codebase', 'Review PR for security issues', 'Plan architecture for feature X')"),
@@ -445,34 +445,34 @@ Default timeout is 10 minutes. Research tasks involving web search or large code
445
445
  // Resolve the nightshift CLI command for this project
446
446
  const ns = getNightshiftCliCommand(ctx.projectPath);
447
447
  // Build research prompt optimized for read-only analysis
448
- const researchPrompt = `You are a research and planning agent. Your task is to analyze and provide recommendations.
449
-
450
- ## Task
451
- ${task}
452
-
453
- ${context ? `## Additional Context\n${context}\n` : ""}
454
- ## Project Context
455
- ${prd ? `Project: ${prd.projectName || prd.project || "Unknown"}\nDescription: ${prd.description}` : "No PRD found."}
456
-
457
- ## Relevant Context from Previous Work:
458
- ${contextSection}
459
-
460
- ## Recent Agent Communication
461
- ${recentChat.map((m) => `[${m.agent}] ${m.type}: ${m.content.substring(0, 200)}`).join("\n")}
462
-
463
- ## Instructions
464
- 1. Analyze the codebase and gather relevant information
465
- 2. Use read_file, glob, and other read-only tools to explore
466
- 3. Provide clear findings and actionable recommendations
467
- 4. Structure your response as:
468
- - **Summary**: Brief overview of findings
469
- - **Details**: Detailed analysis
470
- - **Recommendations**: Specific actionable suggestions
471
- - **Considerations**: Trade-offs or things to watch out for
472
-
473
- 5. Post findings: ${ns} chat --agent ${selectedAgent} --type INFO --message "your findings here"
474
- (If nightshift MCP tools are available, you can use write_robot_chat and store_context instead.)
475
-
448
+ const researchPrompt = `You are a research and planning agent. Your task is to analyze and provide recommendations.
449
+
450
+ ## Task
451
+ ${task}
452
+
453
+ ${context ? `## Additional Context\n${context}\n` : ""}
454
+ ## Project Context
455
+ ${prd ? `Project: ${prd.projectName || prd.project || "Unknown"}\nDescription: ${prd.description}` : "No PRD found."}
456
+
457
+ ## Relevant Context from Previous Work:
458
+ ${contextSection}
459
+
460
+ ## Recent Agent Communication
461
+ ${recentChat.map((m) => `[${m.agent}] ${m.type}: ${m.content.substring(0, 200)}`).join("\n")}
462
+
463
+ ## Instructions
464
+ 1. Analyze the codebase and gather relevant information
465
+ 2. Use read_file, glob, and other read-only tools to explore
466
+ 3. Provide clear findings and actionable recommendations
467
+ 4. Structure your response as:
468
+ - **Summary**: Brief overview of findings
469
+ - **Details**: Detailed analysis
470
+ - **Recommendations**: Specific actionable suggestions
471
+ - **Considerations**: Trade-offs or things to watch out for
472
+
473
+ 5. Post findings: ${ns} chat --agent ${selectedAgent} --type INFO --message "your findings here"
474
+ (If nightshift MCP tools are available, you can use write_robot_chat and store_context instead.)
475
+
476
476
  Focus on analysis and recommendations. Do NOT attempt to write or modify files.`;
477
477
  // Post delegation to chat
478
478
  await ctx.chatManager.writeMessage({
@@ -547,17 +547,17 @@ export const orchestrate = defineTool({
547
547
  name: "orchestrate",
548
548
  category: "agents",
549
549
  description: "Start autonomous orchestration to complete the PRD",
550
- fullDescription: `Start autonomous orchestration to complete all stories and bugs in the PRD.
551
-
552
- This is the MAIN entry point for autonomous development. It:
553
- 1. Auto-starts the daemon (background process that survives agent failures)
554
- 2. The daemon orchestrates all work, spawning agents as needed
555
- 3. Handles agent timeouts, rate limits, and failovers automatically
556
- 4. Posts READY_TO_TEST when all work is complete
557
-
558
- The daemon runs independently - even if this agent hits rate limits, work continues.
559
-
560
- Use mode="daemon" (default) for resilient autonomous operation.
550
+ fullDescription: `Start autonomous orchestration to complete all stories and bugs in the PRD.
551
+
552
+ This is the MAIN entry point for autonomous development. It:
553
+ 1. Auto-starts the daemon (background process that survives agent failures)
554
+ 2. The daemon orchestrates all work, spawning agents as needed
555
+ 3. Handles agent timeouts, rate limits, and failovers automatically
556
+ 4. Posts READY_TO_TEST when all work is complete
557
+
558
+ The daemon runs independently - even if this agent hits rate limits, work continues.
559
+
560
+ Use mode="daemon" (default) for resilient autonomous operation.
561
561
  Use mode="inline" only for quick interactive sessions where you're actively monitoring.`,
562
562
  inputSchema: z.object({
563
563
  mode: z.enum(["daemon", "inline"]).optional().describe("Orchestration mode: 'daemon' (default, resilient - survives agent failures) or 'inline' (runs in this agent, for quick interactive work)"),
@@ -97,20 +97,20 @@ export const nightshiftSetup = defineTool({
97
97
  response += `## Suggestions\n${suggestions.map(s => `- ${s}`).join("\n")}\n\n`;
98
98
  }
99
99
  response += `## Agent Configuration\n\n`;
100
- response += `**Claude Code** (~/.claude.json):\n\`\`\`json
101
- {
102
- "mcpServers": {
103
- "nightshift": {
104
- "command": "nightshift-mcp",
105
- "args": ["${ctx.projectPath}"]
106
- }
107
- }
108
- }
100
+ response += `**Claude Code** (~/.claude.json):\n\`\`\`json
101
+ {
102
+ "mcpServers": {
103
+ "nightshift": {
104
+ "command": "nightshift-mcp",
105
+ "args": ["${ctx.projectPath}"]
106
+ }
107
+ }
108
+ }
109
109
  \`\`\`\n\n`;
110
- response += `**Codex** (~/.codex/config.toml):\n\`\`\`toml
111
- [mcp_servers.nightshift]
112
- command = "nightshift-mcp"
113
- args = ["${ctx.projectPath}"]
110
+ response += `**Codex** (~/.codex/config.toml):\n\`\`\`toml
111
+ [mcp_servers.nightshift]
112
+ command = "nightshift-mcp"
113
+ args = ["${ctx.projectPath}"]
114
114
  \`\`\`\n\n`;
115
115
  if (showExamples) {
116
116
  response += `## PRD Schema Reference\n\n`;
@@ -136,58 +136,58 @@ args = ["${ctx.projectPath}"]
136
136
  response += `- Use \`acceptanceCriteria\`, NOT \`acceptance_criteria\`, \`criteria\`, or \`requirements\`\n`;
137
137
  response += `- Use \`passes: false\` to mark incomplete, NOT \`status: "pending"\`\n`;
138
138
  response += `- Place prd.json in the **project root**, NOT in .robot-chat/\n\n`;
139
- response += `### Example prd.json\n\`\`\`json
140
- {
141
- "project": "MyProject",
142
- "description": "Brief project description",
143
- "userStories": [
144
- {
145
- "id": "US-001",
146
- "title": "Implement login page",
147
- "description": "Create a login page with email/password authentication",
148
- "acceptanceCriteria": [
149
- "Login form with email and password fields",
150
- "Form validation with error messages",
151
- "Redirects to dashboard on success"
152
- ],
153
- "priority": 1,
154
- "passes": false,
155
- "notes": ""
156
- },
157
- {
158
- "id": "US-002",
159
- "title": "Add logout button",
160
- "description": "Add a logout button to the navigation bar",
161
- "acceptanceCriteria": [
162
- "Logout button visible when authenticated",
163
- "Clears session and redirects to login"
164
- ],
165
- "priority": 2,
166
- "passes": false,
167
- "notes": ""
168
- }
169
- ]
170
- }
139
+ response += `### Example prd.json\n\`\`\`json
140
+ {
141
+ "project": "MyProject",
142
+ "description": "Brief project description",
143
+ "userStories": [
144
+ {
145
+ "id": "US-001",
146
+ "title": "Implement login page",
147
+ "description": "Create a login page with email/password authentication",
148
+ "acceptanceCriteria": [
149
+ "Login form with email and password fields",
150
+ "Form validation with error messages",
151
+ "Redirects to dashboard on success"
152
+ ],
153
+ "priority": 1,
154
+ "passes": false,
155
+ "notes": ""
156
+ },
157
+ {
158
+ "id": "US-002",
159
+ "title": "Add logout button",
160
+ "description": "Add a logout button to the navigation bar",
161
+ "acceptanceCriteria": [
162
+ "Logout button visible when authenticated",
163
+ "Clears session and redirects to login"
164
+ ],
165
+ "priority": 2,
166
+ "passes": false,
167
+ "notes": ""
168
+ }
169
+ ]
170
+ }
171
171
  \`\`\`\n\n`;
172
- response += `### Example bugs.json\n\`\`\`json
173
- {
174
- "project": "MyProject",
175
- "bugs": [
176
- {
177
- "id": "BUG-001",
178
- "title": "Login fails on mobile Safari",
179
- "description": "Login button unresponsive on iOS Safari",
180
- "stepsToReproduce": [
181
- "Open app on iOS Safari",
182
- "Enter credentials",
183
- "Tap login button",
184
- "Nothing happens"
185
- ],
186
- "priority": 1,
187
- "fixed": false
188
- }
189
- ]
190
- }
172
+ response += `### Example bugs.json\n\`\`\`json
173
+ {
174
+ "project": "MyProject",
175
+ "bugs": [
176
+ {
177
+ "id": "BUG-001",
178
+ "title": "Login fails on mobile Safari",
179
+ "description": "Login button unresponsive on iOS Safari",
180
+ "stepsToReproduce": [
181
+ "Open app on iOS Safari",
182
+ "Enter credentials",
183
+ "Tap login button",
184
+ "Nothing happens"
185
+ ],
186
+ "priority": 1,
187
+ "fixed": false
188
+ }
189
+ ]
190
+ }
191
191
  \`\`\`\n`;
192
192
  }
193
193
  return {
package/dist/types.d.ts CHANGED
@@ -15,6 +15,7 @@ export interface UserStory {
15
15
  notes: string;
16
16
  dependsOn?: string[];
17
17
  tags?: string[];
18
+ [key: string]: unknown;
18
19
  }
19
20
  /**
20
21
  * A bug report (similar structure to UserStory for consistency)
@@ -45,6 +46,7 @@ export interface PRD {
45
46
  branchName?: string;
46
47
  description: string;
47
48
  userStories: UserStory[];
49
+ [key: string]: unknown;
48
50
  }
49
51
  /**
50
52
  * A parsed chat message
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,iBAAiB,GACjB,kBAAkB,GAClB,eAAe,GACf,eAAe,GACf,SAAS,GACT,MAAM,GACN,OAAO,GACP,UAAU,GACV,QAAQ,GACR,iBAAiB,GACjB,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,GACf,eAAe,GACf,aAAa,GACb,WAAW,CAAC;AAEhB;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,GAAG,EAAE,CAAC;CACb;AAED;;;GAGG;AACH,MAAM,WAAW,GAAG;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,SAAS,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,IAAI,EAAE,IAAI,CAAC;IACX,mBAAmB;IACnB,IAAI,EAAE,WAAW,CAAC;IAClB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,oCAAoC;IACpC,OAAO,EAAE,WAAW,CAAC;IACrB,wCAAwC;IACxC,eAAe,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,IAAI,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,54 +1,56 @@
1
- {
2
- "name": "nightshift-mcp",
3
- "version": "1.1.1",
4
- "description": "Agent teams and multi-agent orchestration across AI models via MCP. Coordinate Claude, Codex, Gemini, Vibe, and Goose with delegation, failovers, and autonomous workflows.",
5
- "type": "module",
6
- "main": "dist/index.js",
7
- "bin": {
8
- "nightshift-mcp": "./dist/index.js",
9
- "nightshift-daemon": "./dist/daemon.js",
10
- "nightshift": "./dist/cli.js"
11
- },
12
- "files": [
13
- "dist",
14
- "README.md"
15
- ],
16
- "scripts": {
17
- "build": "tsc",
18
- "dev": "tsc --watch",
19
- "start": "node dist/index.js",
20
- "test": "vitest run",
21
- "test:watch": "vitest",
22
- "prepare": "npm run build",
23
- "prepublishOnly": "npm run build"
24
- },
25
- "keywords": [
26
- "mcp",
27
- "model-context-protocol",
28
- "ai-agents",
29
- "multi-agent",
30
- "agent-teams",
31
- "agentic",
32
- "claude",
33
- "codex",
34
- "gemini",
35
- "vibe",
36
- "orchestration",
37
- "agent-orchestration",
38
- "autonomous-agents",
39
- "agent-coordination",
40
- "nightshift"
41
- ],
42
- "license": "MIT",
43
- "dependencies": {
44
- "@modelcontextprotocol/sdk": "^1.0.0",
45
- "proper-lockfile": "^4.1.2",
46
- "zod": "^3.25.0"
47
- },
48
- "devDependencies": {
49
- "@types/node": "^20.0.0",
50
- "@types/proper-lockfile": "^4.1.4",
51
- "typescript": "^5.0.0",
52
- "vitest": "^1.0.0"
53
- }
54
- }
1
+ {
2
+ "name": "nightshift-mcp",
3
+ "version": "2.0.0",
4
+ "description": "Agent teams and multi-agent orchestration across AI models via MCP. Coordinate Claude, Codex, Gemini, Vibe, and Goose with delegation, failovers, and autonomous workflows.",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "nightshift-mcp": "./dist/index.js",
9
+ "nightshift-daemon": "./dist/daemon.js",
10
+ "nightshift": "./dist/cli.js"
11
+ },
12
+ "files": [
13
+ "dist",
14
+ "README.md"
15
+ ],
16
+ "scripts": {
17
+ "build": "tsc",
18
+ "dev": "tsc --watch",
19
+ "start": "node dist/index.js",
20
+ "test": "vitest run",
21
+ "test:watch": "vitest",
22
+ "prepare": "npm run build",
23
+ "prepublishOnly": "npm run build"
24
+ },
25
+ "keywords": [
26
+ "mcp",
27
+ "model-context-protocol",
28
+ "ai-agents",
29
+ "multi-agent",
30
+ "agent-teams",
31
+ "agentic",
32
+ "claude",
33
+ "codex",
34
+ "gemini",
35
+ "vibe",
36
+ "orchestration",
37
+ "agent-orchestration",
38
+ "autonomous-agents",
39
+ "agent-coordination",
40
+ "nightshift"
41
+ ],
42
+ "license": "MIT",
43
+ "dependencies": {
44
+ "@modelcontextprotocol/sdk": "^1.0.0",
45
+ "better-sqlite3": "^12.8.0",
46
+ "proper-lockfile": "^4.1.2",
47
+ "zod": "^3.25.0"
48
+ },
49
+ "devDependencies": {
50
+ "@types/better-sqlite3": "^7.6.13",
51
+ "@types/node": "^20.0.0",
52
+ "@types/proper-lockfile": "^4.1.4",
53
+ "typescript": "^5.0.0",
54
+ "vitest": "^1.0.0"
55
+ }
56
+ }