@damper/cli 0.5.6 → 0.5.7

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/index.js CHANGED
@@ -5,7 +5,7 @@ import { statusCommand } from './commands/status.js';
5
5
  import { cleanupCommand } from './commands/cleanup.js';
6
6
  import { setupCommand } from './commands/setup.js';
7
7
  import { releaseCommand } from './commands/release.js';
8
- const VERSION = '0.5.6';
8
+ const VERSION = '0.5.7';
9
9
  function showHelp() {
10
10
  console.log(`
11
11
  ${pc.bold('@damper/cli')} - Agent orchestration for Damper tasks
@@ -126,20 +126,47 @@ export async function launchClaude(options) {
126
126
  '--mcp-config', mcpConfigPath,
127
127
  initialPrompt,
128
128
  ];
129
- // Launch Claude Code using spawnSync for reliable TTY handling
129
+ // Launch Claude Code
130
130
  try {
131
131
  const { spawnSync } = await import('node:child_process');
132
- const result = spawnSync('claude', [
133
- '--mcp-config', mcpConfigPath,
134
- initialPrompt
135
- ], {
136
- cwd,
137
- stdio: 'inherit',
138
- env: {
139
- ...process.env,
140
- DAMPER_API_KEY: apiKey,
141
- },
142
- });
132
+ // Check if stdin is a TTY - if not, we may need special handling
133
+ const isTTY = process.stdin.isTTY;
134
+ if (process.env.DEBUG) {
135
+ console.log(pc.dim(`Debug: stdin.isTTY = ${isTTY}`));
136
+ }
137
+ // Use script command on macOS to ensure proper TTY allocation
138
+ // This is needed when running through npx which may not pass TTY properly
139
+ const isMac = process.platform === 'darwin';
140
+ let result;
141
+ if (isMac) {
142
+ // script -q /dev/null ensures TTY is allocated
143
+ result = spawnSync('script', [
144
+ '-q', '/dev/null',
145
+ 'claude',
146
+ '--mcp-config', mcpConfigPath,
147
+ initialPrompt
148
+ ], {
149
+ cwd,
150
+ stdio: 'inherit',
151
+ env: {
152
+ ...process.env,
153
+ DAMPER_API_KEY: apiKey,
154
+ },
155
+ });
156
+ }
157
+ else {
158
+ result = spawnSync('claude', [
159
+ '--mcp-config', mcpConfigPath,
160
+ initialPrompt
161
+ ], {
162
+ cwd,
163
+ stdio: 'inherit',
164
+ env: {
165
+ ...process.env,
166
+ DAMPER_API_KEY: apiKey,
167
+ },
168
+ });
169
+ }
143
170
  if (result.error) {
144
171
  const error = result.error;
145
172
  if (error.code === 'ENOENT') {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@damper/cli",
3
- "version": "0.5.6",
3
+ "version": "0.5.7",
4
4
  "description": "CLI tool for orchestrating Damper task workflows with Claude Code",
5
5
  "author": "Damper <hello@usedamper.com>",
6
6
  "repository": {