gsd-lite 0.1.0 → 0.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.
@@ -11,7 +11,7 @@
11
11
  "plugins": [
12
12
  {
13
13
  "name": "gsd-lite",
14
- "source": ".",
14
+ "source": "./",
15
15
  "description": "AI orchestration tool — GSD management shell + Superpowers quality core. 5 commands, 4 agents, 5 workflows, MCP server, context monitoring.",
16
16
  "version": "0.1.0",
17
17
  "keywords": ["orchestration", "mcp", "tdd", "task-management"],
@@ -7,11 +7,6 @@
7
7
  "url": "https://github.com/sdsrss"
8
8
  },
9
9
  "repository": "https://github.com/sdsrss/gsd-lite",
10
- "homepage": "https://github.com/sdsrss/gsd-lite",
11
10
  "license": "MIT",
12
- "keywords": ["claude-code", "orchestration", "mcp", "ai-agent", "task-management", "tdd"],
13
- "commands": "./commands/",
14
- "agents": "./agents/",
15
- "hooks": "./hooks/hooks.json",
16
- "mcpServers": "./.claude-plugin/mcp.json"
11
+ "keywords": ["claude-code", "orchestration", "mcp", "ai-agent", "task-management", "tdd"]
17
12
  }
package/.mcp.json ADDED
@@ -0,0 +1,8 @@
1
+ {
2
+ "mcpServers": {
3
+ "gsd-lite": {
4
+ "command": "npx",
5
+ "args": ["-y", "gsd-lite@latest"]
6
+ }
7
+ }
8
+ }
package/cli.js CHANGED
@@ -1,30 +1,36 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { main as install } from './install.js';
4
- import { main as uninstall } from './uninstall.js';
5
-
6
3
  function printHelp() {
7
- console.log(`GSD-Lite CLI
4
+ console.log(`GSD-Lite — AI orchestration tool for Claude Code
8
5
 
9
6
  Usage:
10
- gsd-lite install [--dry-run]
11
- gsd-lite uninstall
12
- gsd-lite help
13
-
14
- Default command:
15
- gsd-lite # same as install
7
+ gsd-lite # Start MCP stdio server (default)
8
+ gsd-lite serve # Start MCP stdio server (explicit)
9
+ gsd-lite install # Install hooks/commands into Claude Code
10
+ gsd-lite uninstall # Remove hooks/commands from Claude Code
11
+ gsd-lite help # Show this help
16
12
  `);
17
13
  }
18
14
 
19
- const [command = 'install'] = process.argv.slice(2);
15
+ const [command] = process.argv.slice(2);
20
16
 
21
17
  switch (command) {
22
- case 'install':
18
+ case undefined:
19
+ case 'serve': {
20
+ const { main } = await import('./src/server.js');
21
+ main().catch(console.error);
22
+ break;
23
+ }
24
+ case 'install': {
25
+ const { main: install } = await import('./install.js');
23
26
  install();
24
27
  break;
25
- case 'uninstall':
28
+ }
29
+ case 'uninstall': {
30
+ const { main: uninstall } = await import('./uninstall.js');
26
31
  uninstall();
27
32
  break;
33
+ }
28
34
  case 'help':
29
35
  case '--help':
30
36
  case '-h':
@@ -34,4 +40,4 @@ switch (command) {
34
40
  console.error(`Unknown command: ${command}`);
35
41
  printHelp();
36
42
  process.exitCode = 1;
37
- }
43
+ }
package/hooks/hooks.json CHANGED
@@ -1,4 +1,5 @@
1
1
  {
2
+ "description": "GSD-Lite context monitoring hooks",
2
3
  "hooks": {
3
4
  "PostToolUse": [
4
5
  {
@@ -11,9 +12,5 @@
11
12
  ]
12
13
  }
13
14
  ]
14
- },
15
- "statusLine": {
16
- "type": "command",
17
- "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/context-monitor.js\" statusLine"
18
15
  }
19
16
  }
package/install.js CHANGED
@@ -5,6 +5,7 @@ import { existsSync, mkdirSync, cpSync, readFileSync, writeFileSync, rmSync } fr
5
5
  import { join, dirname } from 'node:path';
6
6
  import { homedir } from 'node:os';
7
7
  import { fileURLToPath, pathToFileURL } from 'node:url';
8
+ import { execSync } from 'node:child_process';
8
9
 
9
10
  const __dirname = dirname(fileURLToPath(import.meta.url));
10
11
  const CLAUDE_DIR = join(homedir(), '.claude');
@@ -109,10 +110,21 @@ export function main() {
109
110
 
110
111
  // 6. Stable runtime for MCP server
111
112
  copyDir(join(__dirname, 'src'), join(RUNTIME_DIR, 'src'), 'runtime/src → ~/.claude/gsd-lite/src/');
112
- copyDir(join(__dirname, 'node_modules'), join(RUNTIME_DIR, 'node_modules'), 'runtime/node_modules → ~/.claude/gsd-lite/node_modules/');
113
113
  copyFile(join(__dirname, 'package.json'), join(RUNTIME_DIR, 'package.json'), 'runtime/package.json → ~/.claude/gsd-lite/package.json');
114
114
 
115
- // 7. Register MCP server in settings.json
115
+ // 7. Runtime dependencies copy local node_modules or install fresh (npx hoists deps)
116
+ const localNM = join(__dirname, 'node_modules');
117
+ if (existsSync(localNM)) {
118
+ copyDir(localNM, join(RUNTIME_DIR, 'node_modules'), 'runtime/node_modules (copied)');
119
+ } else if (!DRY_RUN) {
120
+ log(' ⧗ Installing runtime dependencies...');
121
+ execSync('npm install --omit=dev', { cwd: RUNTIME_DIR, stdio: 'pipe' });
122
+ log(' ✓ runtime dependencies installed');
123
+ } else {
124
+ log(' [dry-run] Would install runtime dependencies');
125
+ }
126
+
127
+ // 8. Register MCP server in settings.json
116
128
  const settingsPath = join(CLAUDE_DIR, 'settings.json');
117
129
  if (!DRY_RUN) {
118
130
  let settings = {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gsd-lite",
3
- "version": "0.1.0",
3
+ "version": "0.2.1",
4
4
  "description": "AI orchestration tool for Claude Code — GSD management shell + Superpowers quality core",
5
5
  "type": "module",
6
6
  "bin": {
@@ -27,6 +27,7 @@
27
27
  ],
28
28
  "files": [
29
29
  ".claude-plugin/",
30
+ ".mcp.json",
30
31
  "src/",
31
32
  "commands/",
32
33
  "agents/",
package/src/server.js CHANGED
@@ -12,7 +12,7 @@ import {
12
12
  } from './tools/orchestrator.js';
13
13
 
14
14
  const server = new Server(
15
- { name: 'gsd-lite', version: '0.1.0' },
15
+ { name: 'gsd-lite', version: '0.2.0' },
16
16
  { capabilities: { tools: {} } }
17
17
  );
18
18
 
@@ -167,7 +167,7 @@ async function dispatchToolCall(name, args) {
167
167
  result = {
168
168
  status: 'ok',
169
169
  server: 'gsd-lite',
170
- version: '0.1.0',
170
+ version: '0.2.0',
171
171
  state_exists: !stateResult.error,
172
172
  ...(stateResult.error ? {} : {
173
173
  project: stateResult.project,
@@ -230,7 +230,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
230
230
  };
231
231
  });
232
232
 
233
- async function main() {
233
+ export async function main() {
234
234
  const transport = new StdioServerTransport();
235
235
  await server.connect(transport);
236
236
  }
@@ -1,8 +0,0 @@
1
- {
2
- "mcpServers": {
3
- "gsd-lite": {
4
- "command": "node",
5
- "args": ["${CLAUDE_PLUGIN_ROOT}/src/server.js"]
6
- }
7
- }
8
- }