@sdsrs/codeagent 0.2.1 → 0.4.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.
Files changed (167) hide show
  1. package/LICENSE +0 -0
  2. package/README.md +18 -6
  3. package/dist/adapters/__tests__/code-graph.test.d.ts +2 -0
  4. package/dist/adapters/__tests__/code-graph.test.d.ts.map +1 -0
  5. package/dist/adapters/__tests__/code-graph.test.js +118 -0
  6. package/dist/adapters/__tests__/code-graph.test.js.map +1 -0
  7. package/dist/adapters/__tests__/memory.test.d.ts +2 -0
  8. package/dist/adapters/__tests__/memory.test.d.ts.map +1 -0
  9. package/dist/adapters/__tests__/memory.test.js +168 -0
  10. package/dist/adapters/__tests__/memory.test.js.map +1 -0
  11. package/dist/adapters/code-graph.d.ts +7 -1
  12. package/dist/adapters/code-graph.d.ts.map +1 -1
  13. package/dist/adapters/code-graph.js +69 -33
  14. package/dist/adapters/code-graph.js.map +1 -1
  15. package/dist/adapters/memory.d.ts +1 -1
  16. package/dist/adapters/memory.d.ts.map +1 -1
  17. package/dist/adapters/memory.js +23 -14
  18. package/dist/adapters/memory.js.map +1 -1
  19. package/dist/adapters/orchestration/gsd.d.ts +0 -0
  20. package/dist/adapters/orchestration/gsd.d.ts.map +1 -1
  21. package/dist/adapters/orchestration/gsd.js +18 -1
  22. package/dist/adapters/orchestration/gsd.js.map +1 -1
  23. package/dist/adapters/orchestration/interface.d.ts +0 -0
  24. package/dist/adapters/orchestration/interface.d.ts.map +0 -0
  25. package/dist/adapters/orchestration/interface.js +0 -0
  26. package/dist/adapters/orchestration/interface.js.map +0 -0
  27. package/dist/adapters/orchestration/superpowers.d.ts +0 -0
  28. package/dist/adapters/orchestration/superpowers.d.ts.map +0 -0
  29. package/dist/adapters/orchestration/superpowers.js +0 -0
  30. package/dist/adapters/orchestration/superpowers.js.map +0 -0
  31. package/dist/broker/__tests__/broker.test.d.ts +2 -0
  32. package/dist/broker/__tests__/broker.test.d.ts.map +1 -0
  33. package/dist/broker/__tests__/broker.test.js +207 -0
  34. package/dist/broker/__tests__/broker.test.js.map +1 -0
  35. package/dist/broker/__tests__/compressor.test.d.ts +2 -0
  36. package/dist/broker/__tests__/compressor.test.d.ts.map +1 -0
  37. package/dist/broker/__tests__/compressor.test.js +278 -0
  38. package/dist/broker/__tests__/compressor.test.js.map +1 -0
  39. package/dist/broker/__tests__/query-parser.test.d.ts +2 -0
  40. package/dist/broker/__tests__/query-parser.test.d.ts.map +1 -0
  41. package/dist/broker/__tests__/query-parser.test.js +101 -0
  42. package/dist/broker/__tests__/query-parser.test.js.map +1 -0
  43. package/dist/broker/broker.d.ts +1 -1
  44. package/dist/broker/broker.d.ts.map +1 -1
  45. package/dist/broker/broker.js +45 -29
  46. package/dist/broker/broker.js.map +1 -1
  47. package/dist/broker/compressor.d.ts +0 -0
  48. package/dist/broker/compressor.d.ts.map +1 -1
  49. package/dist/broker/compressor.js +82 -2
  50. package/dist/broker/compressor.js.map +1 -1
  51. package/dist/broker/context-pack.d.ts +3 -0
  52. package/dist/broker/context-pack.d.ts.map +1 -1
  53. package/dist/broker/context-pack.js +18 -0
  54. package/dist/broker/context-pack.js.map +1 -1
  55. package/dist/broker/query-parser.d.ts +0 -0
  56. package/dist/broker/query-parser.d.ts.map +0 -0
  57. package/dist/broker/query-parser.js +0 -0
  58. package/dist/broker/query-parser.js.map +0 -0
  59. package/dist/cli/commands/chat.d.ts +0 -0
  60. package/dist/cli/commands/chat.d.ts.map +1 -1
  61. package/dist/cli/commands/chat.js +14 -1
  62. package/dist/cli/commands/chat.js.map +1 -1
  63. package/dist/cli/commands/config.d.ts +1 -2
  64. package/dist/cli/commands/config.d.ts.map +1 -1
  65. package/dist/cli/commands/config.js +0 -0
  66. package/dist/cli/commands/config.js.map +0 -0
  67. package/dist/cli/commands/memory.d.ts +0 -0
  68. package/dist/cli/commands/memory.d.ts.map +0 -0
  69. package/dist/cli/commands/memory.js +0 -0
  70. package/dist/cli/commands/memory.js.map +0 -0
  71. package/dist/cli/commands/search.d.ts +0 -0
  72. package/dist/cli/commands/search.d.ts.map +1 -1
  73. package/dist/cli/commands/search.js +6 -2
  74. package/dist/cli/commands/search.js.map +1 -1
  75. package/dist/cli/commands/session.d.ts +0 -0
  76. package/dist/cli/commands/session.d.ts.map +0 -0
  77. package/dist/cli/commands/session.js +0 -0
  78. package/dist/cli/commands/session.js.map +0 -0
  79. package/dist/cli/index.d.ts +0 -0
  80. package/dist/cli/index.d.ts.map +0 -0
  81. package/dist/cli/index.js +6 -4
  82. package/dist/cli/index.js.map +1 -1
  83. package/dist/cli/tui/renderer.d.ts +0 -0
  84. package/dist/cli/tui/renderer.d.ts.map +0 -0
  85. package/dist/cli/tui/renderer.js +0 -0
  86. package/dist/cli/tui/renderer.js.map +0 -0
  87. package/dist/hooks/__tests__/stop.test.d.ts +2 -0
  88. package/dist/hooks/__tests__/stop.test.d.ts.map +1 -0
  89. package/dist/hooks/__tests__/stop.test.js +88 -0
  90. package/dist/hooks/__tests__/stop.test.js.map +1 -0
  91. package/dist/hooks/post-compact.d.ts +0 -0
  92. package/dist/hooks/post-compact.d.ts.map +0 -0
  93. package/dist/hooks/post-compact.js +8 -7
  94. package/dist/hooks/post-compact.js.map +1 -1
  95. package/dist/hooks/session-start.d.ts +0 -0
  96. package/dist/hooks/session-start.d.ts.map +0 -0
  97. package/dist/hooks/session-start.js +6 -5
  98. package/dist/hooks/session-start.js.map +1 -1
  99. package/dist/hooks/stop.d.ts +6 -0
  100. package/dist/hooks/stop.d.ts.map +1 -1
  101. package/dist/hooks/stop.js +59 -42
  102. package/dist/hooks/stop.js.map +1 -1
  103. package/dist/hooks/user-prompt.d.ts +0 -0
  104. package/dist/hooks/user-prompt.d.ts.map +0 -0
  105. package/dist/hooks/user-prompt.js +0 -0
  106. package/dist/hooks/user-prompt.js.map +0 -0
  107. package/dist/providers/__tests__/anthropic-api.test.d.ts +2 -0
  108. package/dist/providers/__tests__/anthropic-api.test.d.ts.map +1 -0
  109. package/dist/providers/__tests__/anthropic-api.test.js +113 -0
  110. package/dist/providers/__tests__/anthropic-api.test.js.map +1 -0
  111. package/dist/providers/__tests__/claude-sdk.test.d.ts +2 -0
  112. package/dist/providers/__tests__/claude-sdk.test.d.ts.map +1 -0
  113. package/dist/providers/__tests__/claude-sdk.test.js +121 -0
  114. package/dist/providers/__tests__/claude-sdk.test.js.map +1 -0
  115. package/dist/providers/anthropic-api.d.ts +1 -0
  116. package/dist/providers/anthropic-api.d.ts.map +1 -1
  117. package/dist/providers/anthropic-api.js +18 -12
  118. package/dist/providers/anthropic-api.js.map +1 -1
  119. package/dist/providers/claude-cli.d.ts +0 -0
  120. package/dist/providers/claude-cli.d.ts.map +1 -1
  121. package/dist/providers/claude-cli.js +4 -16
  122. package/dist/providers/claude-cli.js.map +1 -1
  123. package/dist/providers/claude-sdk.d.ts +3 -2
  124. package/dist/providers/claude-sdk.d.ts.map +1 -1
  125. package/dist/providers/claude-sdk.js +12 -11
  126. package/dist/providers/claude-sdk.js.map +1 -1
  127. package/dist/providers/interface.d.ts +1 -0
  128. package/dist/providers/interface.d.ts.map +1 -1
  129. package/dist/providers/interface.js +0 -0
  130. package/dist/providers/interface.js.map +0 -0
  131. package/dist/scripts/install-hooks.d.ts +2 -2
  132. package/dist/scripts/install-hooks.d.ts.map +0 -0
  133. package/dist/scripts/install-hooks.js +6 -9
  134. package/dist/scripts/install-hooks.js.map +1 -1
  135. package/dist/session/__tests__/manager.test.d.ts +2 -0
  136. package/dist/session/__tests__/manager.test.d.ts.map +1 -0
  137. package/dist/session/__tests__/manager.test.js +108 -0
  138. package/dist/session/__tests__/manager.test.js.map +1 -0
  139. package/dist/session/manager.d.ts +0 -0
  140. package/dist/session/manager.d.ts.map +1 -1
  141. package/dist/session/manager.js +2 -1
  142. package/dist/session/manager.js.map +1 -1
  143. package/dist/session/schema.d.ts +0 -0
  144. package/dist/session/schema.d.ts.map +1 -1
  145. package/dist/session/schema.js +2 -1
  146. package/dist/session/schema.js.map +1 -1
  147. package/dist/utils/__tests__/exec.test.d.ts +2 -0
  148. package/dist/utils/__tests__/exec.test.d.ts.map +1 -0
  149. package/dist/utils/__tests__/exec.test.js +104 -0
  150. package/dist/utils/__tests__/exec.test.js.map +1 -0
  151. package/dist/utils/__tests__/tokens.test.d.ts +2 -0
  152. package/dist/utils/__tests__/tokens.test.d.ts.map +1 -0
  153. package/dist/utils/__tests__/tokens.test.js +64 -0
  154. package/dist/utils/__tests__/tokens.test.js.map +1 -0
  155. package/dist/utils/exec.d.ts +16 -0
  156. package/dist/utils/exec.d.ts.map +1 -1
  157. package/dist/utils/exec.js +33 -3
  158. package/dist/utils/exec.js.map +1 -1
  159. package/dist/utils/tokens.d.ts +0 -0
  160. package/dist/utils/tokens.d.ts.map +0 -0
  161. package/dist/utils/tokens.js +0 -0
  162. package/dist/utils/tokens.js.map +0 -0
  163. package/package.json +1 -1
  164. package/src/skills/brainstorm.md +0 -0
  165. package/src/skills/remember.md +0 -0
  166. package/src/skills/review.md +0 -0
  167. package/src/skills/spec.md +0 -0
@@ -1,4 +1,4 @@
1
- import { execFileSync } from 'node:child_process';
1
+ import { execSafeAsync } from '../utils/exec.js';
2
2
  import { formatContextPack } from '../broker/broker.js';
3
3
  import { hasContent } from '../broker/context-pack.js';
4
4
  /**
@@ -37,21 +37,9 @@ export class ClaudeCLIProvider {
37
37
  }
38
38
  args.push(prompt);
39
39
  yield { type: 'text', content: '[executing claude -p...]' };
40
- let stdout;
41
- try {
42
- stdout = execFileSync('claude', args, {
43
- timeout: 120000,
44
- encoding: 'utf8',
45
- stdio: ['pipe', 'pipe', 'pipe'],
46
- maxBuffer: 2 * 1024 * 1024,
47
- }).trim();
48
- }
49
- catch {
50
- yield { type: 'error', content: 'claude -p execution failed' };
51
- return;
52
- }
53
- if (!stdout) {
54
- yield { type: 'error', content: 'claude -p returned empty output' };
40
+ const { stdout, ok, stderr } = await execSafeAsync('claude', args, { timeout: 120000 });
41
+ if (!ok || !stdout) {
42
+ yield { type: 'error', content: stderr || 'claude -p execution failed' };
55
43
  return;
56
44
  }
57
45
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"claude-cli.js","sourceRoot":"","sources":["../../src/providers/claude-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-cli.js","sourceRoot":"","sources":["../../src/providers/claude-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AASvD;;;;;;GAMG;AACH,MAAM,OAAO,iBAAiB;IACnB,IAAI,GAAG,YAAY,CAAC;IAE7B,KAAK,CAAC,YAAY,CAAC,QAAqB,EAAE;QACxC,OAAO;YACL,SAAS,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;SACzE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,iBAAyB,EACzB,QAAqB,EAAE;QAEvB,OAAO;YACL,SAAS,EAAE,cAAc,IAAI,CAAC,GAAG,EAAE,EAAE;YACrC,iBAAiB;SAClB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,CAAC,QAAQ,CACb,MAAqB,EACrB,KAAgB;QAEhB,4BAA4B;QAC5B,IAAI,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC;QAC/B,IAAI,KAAK,CAAC,WAAW,IAAI,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YACvD,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACxD,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,UAAU,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;YACnD,CAAC;QACH,CAAC;QAED,oDAAoD;QACpD,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAE/C,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAElB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;QAE5D,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxF,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,4BAA4B,EAAE,CAAC;YACzE,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,UAAU,CAAC;YAC/C,CAAC;YACD,MAAM;gBACJ,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM;gBAC/C,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,cAAc,EAAE;aAC1C,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAsB;QACrC,kCAAkC;IACpC,CAAC;CACF"}
@@ -10,8 +10,9 @@ import type { AgentProvider, SessionHandle, SessionOpts, TurnEvent, TurnInput }
10
10
  export declare class ClaudeSDKProvider implements AgentProvider {
11
11
  readonly name = "claude-sdk";
12
12
  private activeQueries;
13
- startSession(_opts?: SessionOpts): Promise<SessionHandle>;
14
- resumeSession(providerSessionId: string, _opts?: SessionOpts): Promise<SessionHandle>;
13
+ private sessionOpts;
14
+ startSession(opts?: SessionOpts): Promise<SessionHandle>;
15
+ resumeSession(providerSessionId: string, opts?: SessionOpts): Promise<SessionHandle>;
15
16
  sendTurn(handle: SessionHandle, input: TurnInput): AsyncIterable<TurnEvent>;
16
17
  endSession(handle: SessionHandle): Promise<void>;
17
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"claude-sdk.d.ts","sourceRoot":"","sources":["../../src/providers/claude-sdk.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,SAAS,EACT,SAAS,EACV,MAAM,gBAAgB,CAAC;AAExB;;;;;;;GAOG;AACH,qBAAa,iBAAkB,YAAW,aAAa;IACrD,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,OAAO,CAAC,aAAa,CAA4B;IAE3C,YAAY,CAAC,KAAK,GAAE,WAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IAO7D,aAAa,CACjB,iBAAiB,EAAE,MAAM,EACzB,KAAK,GAAE,WAAgB,GACtB,OAAO,CAAC,aAAa,CAAC;IAOlB,QAAQ,CACb,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,SAAS,GACf,aAAa,CAAC,SAAS,CAAC;IA2HrB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAOvD"}
1
+ {"version":3,"file":"claude-sdk.d.ts","sourceRoot":"","sources":["../../src/providers/claude-sdk.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,SAAS,EACT,SAAS,EACV,MAAM,gBAAgB,CAAC;AAExB;;;;;;;GAOG;AACH,qBAAa,iBAAkB,YAAW,aAAa;IACrD,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,WAAW,CAAkC;IAE/C,YAAY,CAAC,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IAM5D,aAAa,CACjB,iBAAiB,EAAE,MAAM,EACzB,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,aAAa,CAAC;IAMlB,QAAQ,CACb,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,SAAS,GACf,aAAa,CAAC,SAAS,CAAC;IA4HrB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAQvD"}
@@ -12,17 +12,16 @@ import { hasContent } from '../broker/context-pack.js';
12
12
  export class ClaudeSDKProvider {
13
13
  name = 'claude-sdk';
14
14
  activeQueries = new Map();
15
- async startSession(_opts = {}) {
16
- // We don't actually start the session until the first turn.
17
- // The session ID will come back from the SDK's init message.
15
+ sessionOpts = new Map();
16
+ async startSession(opts = {}) {
18
17
  const sessionId = `sdk-${globalThis.crypto.randomUUID()}`;
18
+ this.sessionOpts.set(sessionId, opts);
19
19
  return { sessionId };
20
20
  }
21
- async resumeSession(providerSessionId, _opts = {}) {
22
- return {
23
- sessionId: `sdk-resume-${globalThis.crypto.randomUUID()}`,
24
- providerSessionId,
25
- };
21
+ async resumeSession(providerSessionId, opts = {}) {
22
+ const sessionId = `sdk-resume-${globalThis.crypto.randomUUID()}`;
23
+ this.sessionOpts.set(sessionId, opts);
24
+ return { sessionId, providerSessionId };
26
25
  }
27
26
  async *sendTurn(handle, input) {
28
27
  // Build prompt with context pack injection
@@ -33,17 +32,18 @@ export class ClaudeSDKProvider {
33
32
  prompt = `${contextStr}\n\n${input.userMessage}`;
34
33
  }
35
34
  }
36
- // Build query options
35
+ // Build query options (respect SessionOpts from startSession/resumeSession)
36
+ const sessionOpts = this.sessionOpts.get(handle.sessionId) || {};
37
37
  const options = {
38
38
  systemPrompt: input.systemPrompt
39
39
  ? input.systemPrompt
40
40
  : { type: 'preset', preset: 'claude_code' },
41
41
  settingSources: ['project'],
42
- allowedTools: [
42
+ allowedTools: sessionOpts.allowedTools || [
43
43
  'Read', 'Write', 'Edit', 'Bash', 'Glob', 'Grep',
44
44
  'WebSearch', 'WebFetch', 'Agent',
45
45
  ],
46
- permissionMode: 'acceptEdits',
46
+ permissionMode: sessionOpts.permissionMode || 'acceptEdits',
47
47
  persistSession: true,
48
48
  };
49
49
  // Resume existing session if we have a provider session ID
@@ -143,6 +143,7 @@ export class ClaudeSDKProvider {
143
143
  q.close();
144
144
  this.activeQueries.delete(handle.sessionId);
145
145
  }
146
+ this.sessionOpts.delete(handle.sessionId);
146
147
  }
147
148
  }
148
149
  //# sourceMappingURL=claude-sdk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-sdk.js","sourceRoot":"","sources":["../../src/providers/claude-sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-sdk.js","sourceRoot":"","sources":["../../src/providers/claude-sdk.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ export interface TurnInput {
17
17
  export interface SessionOpts {
18
18
  cwd?: string;
19
19
  model?: string;
20
+ maxOutputTokens?: number;
20
21
  maxBudgetUsd?: number;
21
22
  maxTurns?: number;
22
23
  allowedTools?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/providers/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAI7D,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,UAAU,GACV,aAAa,GACb,cAAc,GACd,OAAO,GACP,MAAM,CAAC;AAEX,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAID,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAID,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,SAAS,GAAG,aAAa,GAAG,mBAAmB,GAAG,MAAM,GAAG,SAAS,CAAC;CACvF;AAID,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,0BAA0B;IAC1B,YAAY,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAEzD,iCAAiC;IACjC,aAAa,CAAC,iBAAiB,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAErF,yCAAyC;IACzC,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAE5E,gCAAgC;IAChC,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/providers/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAI7D,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,UAAU,GACV,aAAa,GACb,cAAc,GACd,OAAO,GACP,MAAM,CAAC;AAEX,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAID,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAID,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,SAAS,GAAG,aAAa,GAAG,mBAAmB,GAAG,MAAM,GAAG,SAAS,CAAC;CACvF;AAID,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,0BAA0B;IAC1B,YAAY,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAEzD,iCAAiC;IACjC,aAAa,CAAC,iBAAiB,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAErF,yCAAyC;IACzC,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAE5E,gCAAgC;IAChC,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD"}
File without changes
File without changes
@@ -4,8 +4,8 @@
4
4
  *
5
5
  * Usage: node dist/scripts/install-hooks.js [--global | --project]
6
6
  *
7
- * Registers hooks in .claude/settings.json (project) or
8
- * ~/.claude/settings.json (global).
7
+ * --project (default): .claude/settings.json in current directory
8
+ * --global: ~/.claude/settings.json
9
9
  */
10
10
  export {};
11
11
  //# sourceMappingURL=install-hooks.d.ts.map
File without changes
@@ -4,8 +4,8 @@
4
4
  *
5
5
  * Usage: node dist/scripts/install-hooks.js [--global | --project]
6
6
  *
7
- * Registers hooks in .claude/settings.json (project) or
8
- * ~/.claude/settings.json (global).
7
+ * --project (default): .claude/settings.json in current directory
8
+ * --global: ~/.claude/settings.json
9
9
  */
10
10
  import fs from 'node:fs';
11
11
  import path from 'node:path';
@@ -40,18 +40,15 @@ const HOOK_DEFINITIONS = {
40
40
  };
41
41
  function main() {
42
42
  const args = process.argv.slice(2);
43
+ // --project is the default; --global installs to ~/.claude/settings.json
43
44
  const isGlobal = args.includes('--global');
44
45
  // Determine dist directory (where compiled hooks live)
45
46
  const scriptDir = path.dirname(new URL(import.meta.url).pathname);
46
47
  const distDir = path.resolve(scriptDir, '..');
47
48
  // Determine settings file location
48
- let settingsPath;
49
- if (isGlobal) {
50
- settingsPath = path.join(os.homedir(), '.claude', 'settings.json');
51
- }
52
- else {
53
- settingsPath = path.join(process.cwd(), '.claude', 'settings.json');
54
- }
49
+ const settingsPath = isGlobal
50
+ ? path.join(os.homedir(), '.claude', 'settings.json')
51
+ : path.join(process.cwd(), '.claude', 'settings.json');
55
52
  // Read existing settings
56
53
  let settings = {};
57
54
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"install-hooks.js","sourceRoot":"","sources":["../../src/scripts/install-hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install-hooks.js","sourceRoot":"","sources":["../../src/scripts/install-hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=manager.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.test.d.ts","sourceRoot":"","sources":["../../../src/session/__tests__/manager.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,108 @@
1
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
+ import { SessionManager } from '../manager.js';
3
+ import fs from 'node:fs';
4
+ import path from 'node:path';
5
+ import os from 'node:os';
6
+ describe('SessionManager', () => {
7
+ let manager;
8
+ let dbPath;
9
+ beforeEach(() => {
10
+ dbPath = path.join(os.tmpdir(), `codeagent-test-${Date.now()}.db`);
11
+ manager = new SessionManager(dbPath);
12
+ });
13
+ afterEach(() => {
14
+ manager.close();
15
+ try {
16
+ fs.unlinkSync(dbPath);
17
+ }
18
+ catch { /* ok */ }
19
+ try {
20
+ fs.unlinkSync(dbPath + '-wal');
21
+ }
22
+ catch { /* ok */ }
23
+ try {
24
+ fs.unlinkSync(dbPath + '-shm');
25
+ }
26
+ catch { /* ok */ }
27
+ });
28
+ it('creates a session', () => {
29
+ const session = manager.create({ repoRoot: '/tmp/test-repo' });
30
+ expect(session.id).toMatch(/^sess-/);
31
+ expect(session.repoRoot).toBe('/tmp/test-repo');
32
+ expect(session.status).toBe('active');
33
+ expect(session.provider).toBe('sdk');
34
+ expect(session.orchestration).toBe('gsd');
35
+ expect(session.stage).toBe('general');
36
+ });
37
+ it('gets a session by ID', () => {
38
+ const created = manager.create({ repoRoot: '/tmp/test-repo' });
39
+ const fetched = manager.get(created.id);
40
+ expect(fetched).not.toBeNull();
41
+ expect(fetched.id).toBe(created.id);
42
+ });
43
+ it('returns null for nonexistent session', () => {
44
+ expect(manager.get('nonexistent')).toBeNull();
45
+ });
46
+ it('lists sessions', () => {
47
+ manager.create({ repoRoot: '/tmp/repo1' });
48
+ manager.create({ repoRoot: '/tmp/repo2' });
49
+ manager.create({ repoRoot: '/tmp/repo1' });
50
+ const all = manager.list();
51
+ expect(all).toHaveLength(3);
52
+ const repo1 = manager.list({ repoRoot: '/tmp/repo1' });
53
+ expect(repo1).toHaveLength(2);
54
+ });
55
+ it('gets active session for a repo', () => {
56
+ const s1 = manager.create({ repoRoot: '/tmp/repo' });
57
+ const s2 = manager.create({ repoRoot: '/tmp/repo' });
58
+ const active = manager.getActive('/tmp/repo');
59
+ expect(active).not.toBeNull();
60
+ // Should return one of the active sessions
61
+ expect([s1.id, s2.id]).toContain(active.id);
62
+ });
63
+ it('updates session fields', () => {
64
+ const session = manager.create({ repoRoot: '/tmp/repo' });
65
+ manager.update(session.id, {
66
+ stage: 'implement',
67
+ title: 'Build payment feature',
68
+ providerSessionId: 'sdk-123',
69
+ });
70
+ const updated = manager.get(session.id);
71
+ expect(updated.stage).toBe('implement');
72
+ expect(updated.title).toBe('Build payment feature');
73
+ expect(updated.providerSessionId).toBe('sdk-123');
74
+ });
75
+ it('records and retrieves events', () => {
76
+ const session = manager.create({ repoRoot: '/tmp/repo' });
77
+ manager.addEvent(session.id, 'session_start');
78
+ manager.addEvent(session.id, 'user_turn', { message: 'hello' });
79
+ manager.addEvent(session.id, 'agent_turn', { tokens: 100 });
80
+ const events = manager.getEvents(session.id);
81
+ expect(events).toHaveLength(3);
82
+ expect(events[0].eventType).toBe('agent_turn'); // DESC order
83
+ });
84
+ it('filters events by type', () => {
85
+ const session = manager.create({ repoRoot: '/tmp/repo' });
86
+ manager.addEvent(session.id, 'user_turn', { message: 'a' });
87
+ manager.addEvent(session.id, 'agent_turn');
88
+ manager.addEvent(session.id, 'user_turn', { message: 'b' });
89
+ const userEvents = manager.getEvents(session.id, { types: ['user_turn'] });
90
+ expect(userEvents).toHaveLength(2);
91
+ });
92
+ it('deletes a session with cascade', () => {
93
+ const session = manager.create({ repoRoot: '/tmp/repo' });
94
+ manager.addEvent(session.id, 'session_start');
95
+ manager.delete(session.id);
96
+ expect(manager.get(session.id)).toBeNull();
97
+ expect(manager.getEvents(session.id)).toHaveLength(0);
98
+ });
99
+ it('marks session as completed', () => {
100
+ const session = manager.create({ repoRoot: '/tmp/repo' });
101
+ manager.update(session.id, { status: 'completed' });
102
+ const updated = manager.get(session.id);
103
+ expect(updated.status).toBe('completed');
104
+ // Should not show as active
105
+ expect(manager.getActive('/tmp/repo')).toBeNull();
106
+ });
107
+ });
108
+ //# sourceMappingURL=manager.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.test.js","sourceRoot":"","sources":["../../../src/session/__tests__/manager.test.ts"],"names":[],"mappings":"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"}
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/session/manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAIvD,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC1C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,SAAS,GACjB,WAAW,GACX,YAAY,GACZ,cAAc,GACd,cAAc,GACd,OAAO,GACP,eAAe,GACf,aAAa,CAAC;AAIlB,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAoB;gBAElB,MAAM,CAAC,EAAE,MAAM;IAI3B,2BAA2B;IAC3B,MAAM,CAAC,IAAI,EAAE;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO;IAiBX,0BAA0B;IAC1B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAQ/B,oDAAoD;IACpD,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAY3C,yCAAyC;IACzC,IAAI,CAAC,IAAI,CAAC,EAAE;QACV,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,EAAE;IAwBb,4BAA4B;IAC5B,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC;QACf,iBAAiB,EAAE,MAAM,CAAC;QAC1B,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;QAC1C,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC,GACD,IAAI;IA+BP,6BAA6B;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAarE,+BAA+B;IAC/B,SAAS,CACP,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA;KAAE,GAC7C,YAAY,EAAE;IAsBjB,sCAAsC;IACtC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIxB,oCAAoC;IACpC,KAAK,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/session/manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAIvD,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC1C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,SAAS,GACjB,WAAW,GACX,YAAY,GACZ,cAAc,GACd,cAAc,GACd,OAAO,GACP,eAAe,GACf,aAAa,CAAC;AAIlB,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAoB;gBAElB,MAAM,CAAC,EAAE,MAAM;IAI3B,2BAA2B;IAC3B,MAAM,CAAC,IAAI,EAAE;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO;IAiBX,0BAA0B;IAC1B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAQ/B,oDAAoD;IACpD,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAY3C,yCAAyC;IACzC,IAAI,CAAC,IAAI,CAAC,EAAE;QACV,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,EAAE;IAwBb,4BAA4B;IAC5B,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC;QACf,iBAAiB,EAAE,MAAM,CAAC;QAC1B,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;QAC1C,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC,GACD,IAAI;IA+BP,6BAA6B;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAarE,+BAA+B;IAC/B,SAAS,CACP,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA;KAAE,GAC7C,YAAY,EAAE;IAuBjB,sCAAsC;IACtC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIxB,oCAAoC;IACpC,KAAK,IAAI,IAAI;CAGd"}
@@ -98,7 +98,8 @@ export class SessionManager {
98
98
  conditions.push(`event_type IN (${placeholders})`);
99
99
  params.push(...opts.types);
100
100
  }
101
- const limit = opts?.limit || 50;
101
+ const rawLimit = opts?.limit ?? 50;
102
+ const limit = Number.isFinite(rawLimit) && rawLimit > 0 ? Math.min(rawLimit, 200) : 50;
102
103
  const rows = this.db
103
104
  .prepare(`SELECT * FROM session_events
104
105
  WHERE ${conditions.join(' AND ')}
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/session/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAqC3C,0BAA0B;AAE1B,MAAM,OAAO,cAAc;IACjB,EAAE,CAAoB;IAE9B,YAAY,MAAe;QACzB,IAAI,CAAC,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,2BAA2B;IAC3B,MAAM,CAAC,IAMN;QACC,MAAM,EAAE,GAAG,QAAQ,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;KAG5B,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CACN,EAAE,EACF,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,QAAQ,IAAI,KAAK,EACtB,IAAI,CAAC,aAAa,IAAI,KAAK,EAC3B,IAAI,CAAC,MAAM,IAAI,IAAI,EACnB,IAAI,CAAC,KAAK,IAAI,IAAI,CACnB,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;IACvB,CAAC;IAED,0BAA0B;IAC1B,GAAG,CAAC,EAAU;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,GAAG,CAAC,EAAE,CAE5D,CAAC;QACd,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,oDAAoD;IACpD,SAAS,CAAC,QAAgB;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;mDAE2C,CAC5C;aACA,GAAG,CAAC,QAAQ,CAAwC,CAAC;QACxD,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,yCAAyC;IACzC,IAAI,CAAC,IAIJ;QACC,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,MAAM,GAAc,EAAE,CAAC;QAE7B,IAAI,IAAI,EAAE,QAAQ,EAAE,CAAC;YACnB,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;YACjB,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,MAAM,QAAQ,GAAG,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEvF,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,OAAO,CAAC,0BAA0B,KAAK,mCAAmC,CAAC;aAC3E,GAAG,CAAC,GAAG,MAAM,EAAE,KAAK,CAA8B,CAAC;QAEtD,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,4BAA4B;IAC5B,MAAM,CACJ,EAAU,EACV,OAME;QAEF,MAAM,IAAI,GAAa,CAAC,8BAA8B,CAAC,CAAC;QACxD,MAAM,MAAM,GAAc,EAAE,CAAC;QAE7B,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,CAAC,EAAE;aACJ,OAAO,CAAC,uBAAuB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;aAC9D,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IACpB,CAAC;IAED,6BAA6B;IAC7B,QAAQ,CAAC,SAAiB,EAAE,IAAe,EAAE,OAAiB;QAC5D,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;0BACkB,CACnB;aACA,GAAG,CACF,SAAS,EACT,IAAI,EACJ,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CACzC,CAAC;IACN,CAAC;IAED,+BAA+B;IAC/B,SAAS,CACP,SAAiB,EACjB,IAA8C;QAE9C,MAAM,UAAU,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACtC,MAAM,MAAM,GAAc,CAAC,SAAS,CAAC,CAAC;QAEtC,IAAI,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzD,UAAU,CAAC,IAAI,CAAC,kBAAkB,YAAY,GAAG,CAAC,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,OAAO,CACN;iBACS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;0CACC,CACnC;aACA,GAAG,CAAC,GAAG,MAAM,EAAE,KAAK,CAA8B,CAAC;QAEtD,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,sCAAsC;IACtC,MAAM,CAAC,EAAU;QACf,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,oCAAoC;IACpC,KAAK;QACH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;CACF;AAED,sBAAsB;AAEtB,SAAS,UAAU,CAAC,GAA4B;IAC9C,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAY;QACpB,QAAQ,EAAE,GAAG,CAAC,SAAmB;QACjC,QAAQ,EAAE,GAAG,CAAC,QAAkB;QAChC,iBAAiB,EAAE,GAAG,CAAC,mBAAoC;QAC3D,aAAa,EAAE,GAAG,CAAC,aAAuB;QAC1C,KAAK,EAAE,GAAG,CAAC,KAAe;QAC1B,KAAK,EAAE,GAAG,CAAC,KAAsB;QACjC,MAAM,EAAE,GAAG,CAAC,MAA2C;QACvD,MAAM,EAAE,GAAG,CAAC,MAAuB;QACnC,YAAY,EAAE,GAAG,CAAC,cAA+B;QACjD,SAAS,EAAE,GAAG,CAAC,UAAoB;QACnC,SAAS,EAAE,GAAG,CAAC,UAAoB;KACpC,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,GAA4B;IAC5C,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAY;QACpB,SAAS,EAAE,GAAG,CAAC,UAAoB;QACnC,SAAS,EAAE,GAAG,CAAC,UAAoB;QACnC,OAAO,EAAE,GAAG,CAAC,OAAwB;QACrC,SAAS,EAAE,GAAG,CAAC,UAAoB;KACpC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/session/manager.ts"],"names":[],"mappings":"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"}
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/session/schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AA0CtC;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAe/D"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/session/schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AA2CtC;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAe/D"}
@@ -1,6 +1,7 @@
1
1
  import Database from 'better-sqlite3';
2
2
  import path from 'node:path';
3
3
  import fs from 'node:fs';
4
+ import os from 'node:os';
4
5
  const MIGRATIONS = [
5
6
  // V1: Initial schema
6
7
  `
@@ -57,7 +58,7 @@ export function openDatabase(dbPath) {
57
58
  }
58
59
  function getDefaultDbPath() {
59
60
  // Store in XDG data dir or fallback to home
60
- const dataDir = process.env.XDG_DATA_HOME || path.join(process.env.HOME || '', '.local', 'share');
61
+ const dataDir = process.env.XDG_DATA_HOME || path.join(os.homedir(), '.local', 'share');
61
62
  return path.join(dataDir, 'codeagent', 'codeagent.db');
62
63
  }
63
64
  function ensureSchema(db) {
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/session/schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,MAAM,UAAU,GAAa;IAC3B,qBAAqB;IACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCC;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,MAAe;IAC1C,MAAM,YAAY,GAAG,MAAM,IAAI,gBAAgB,EAAE,CAAC;IAClD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC;IACtC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAE/B,iBAAiB;IACjB,YAAY,CAAC,EAAE,CAAC,CAAC;IAEjB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,gBAAgB;IACvB,4CAA4C;IAC5C,MAAM,OAAO,GACX,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpF,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,YAAY,CAAC,EAAqB;IACzC,wBAAwB;IACxB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC,GAAG,EAE3D,CAAC;QACd,IAAI,GAAG;YAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,0BAA0B;IAC5B,CAAC;IAED,iEAAiE;IACjE,KAAK,IAAI,CAAC,GAAG,cAAc,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxD,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjB,IAAI,CAAC;YACH,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,EAAE,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,GAAG,EAAE,CAAC;YAC/C,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACpB,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/session/schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,MAAM,UAAU,GAAa;IAC3B,qBAAqB;IACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCC;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,MAAe;IAC1C,MAAM,YAAY,GAAG,MAAM,IAAI,gBAAgB,EAAE,CAAC;IAClD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC;IACtC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAE/B,iBAAiB;IACjB,YAAY,CAAC,EAAE,CAAC,CAAC;IAEjB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,gBAAgB;IACvB,4CAA4C;IAC5C,MAAM,OAAO,GACX,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1E,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,YAAY,CAAC,EAAqB;IACzC,wBAAwB;IACxB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC,GAAG,EAE3D,CAAC;QACd,IAAI,GAAG;YAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,0BAA0B;IAC5B,CAAC;IAED,iEAAiE;IACjE,KAAK,IAAI,CAAC,GAAG,cAAc,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxD,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjB,IAAI,CAAC;YACH,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,EAAE,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,GAAG,EAAE,CAAC;YAC/C,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACpB,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=exec.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exec.test.d.ts","sourceRoot":"","sources":["../../../src/utils/__tests__/exec.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,104 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { execSafe, execQuiet, execSafeAsync, execQuietAsync } from '../exec.js';
3
+ describe('execSafe', () => {
4
+ it('runs a command and returns stdout', () => {
5
+ const result = execSafe('echo', ['hello world']);
6
+ expect(result.ok).toBe(true);
7
+ expect(result.stdout).toBe('hello world');
8
+ });
9
+ it('returns ok:false for nonexistent command', () => {
10
+ const result = execSafe('nonexistent-command-xyz', ['arg']);
11
+ expect(result.ok).toBe(false);
12
+ expect(result.stdout).toBe('');
13
+ });
14
+ it('returns ok:false for command that exits non-zero', () => {
15
+ const result = execSafe('node', ['-e', 'process.exit(1)']);
16
+ expect(result.ok).toBe(false);
17
+ });
18
+ it('returns ok:false on timeout', () => {
19
+ const result = execSafe('node', ['-e', 'setTimeout(()=>{},5000)'], { timeout: 200 });
20
+ expect(result.ok).toBe(false);
21
+ });
22
+ it('trims stdout whitespace', () => {
23
+ const result = execSafe('echo', [' trimmed ']);
24
+ expect(result.ok).toBe(true);
25
+ expect(result.stdout).toBe('trimmed');
26
+ });
27
+ it('does not interpret shell metacharacters', () => {
28
+ // With execFileSync, shell metacharacters are passed as literal args
29
+ const result = execSafe('echo', ['$(whoami)', '&&', 'echo', 'injected']);
30
+ expect(result.ok).toBe(true);
31
+ // Should output the literal string, not execute the command
32
+ expect(result.stdout).toContain('$(whoami)');
33
+ expect(result.stdout).toContain('&&');
34
+ });
35
+ it('handles args with spaces correctly', () => {
36
+ const result = execSafe('echo', ['hello world', 'foo bar']);
37
+ expect(result.ok).toBe(true);
38
+ expect(result.stdout).toBe('hello world foo bar');
39
+ });
40
+ it('respects cwd option', () => {
41
+ const result = execSafe('pwd', [], { cwd: '/tmp' });
42
+ expect(result.ok).toBe(true);
43
+ // On some systems /tmp is a symlink, so just check it resolves
44
+ expect(result.stdout).toContain('tmp');
45
+ });
46
+ });
47
+ describe('execQuiet', () => {
48
+ it('returns stdout on success', () => {
49
+ expect(execQuiet('echo', ['hi'])).toBe('hi');
50
+ });
51
+ it('returns empty string on failure', () => {
52
+ expect(execQuiet('nonexistent-xyz', [])).toBe('');
53
+ });
54
+ });
55
+ describe('execSafeAsync', () => {
56
+ it('runs a command and returns stdout', async () => {
57
+ const result = await execSafeAsync('echo', ['hello world']);
58
+ expect(result.ok).toBe(true);
59
+ expect(result.stdout).toBe('hello world');
60
+ });
61
+ it('returns ok:false for nonexistent command', async () => {
62
+ const result = await execSafeAsync('nonexistent-command-xyz', ['arg']);
63
+ expect(result.ok).toBe(false);
64
+ expect(result.stdout).toBe('');
65
+ });
66
+ it('returns ok:false for command that exits non-zero', async () => {
67
+ const result = await execSafeAsync('node', ['-e', 'process.exit(1)']);
68
+ expect(result.ok).toBe(false);
69
+ });
70
+ it('returns ok:false on timeout', async () => {
71
+ const result = await execSafeAsync('node', ['-e', 'setTimeout(()=>{},5000)'], { timeout: 200 });
72
+ expect(result.ok).toBe(false);
73
+ });
74
+ it('trims stdout whitespace', async () => {
75
+ const result = await execSafeAsync('echo', [' trimmed ']);
76
+ expect(result.ok).toBe(true);
77
+ expect(result.stdout).toBe('trimmed');
78
+ });
79
+ it('does not interpret shell metacharacters', async () => {
80
+ const result = await execSafeAsync('echo', ['$(whoami)', '&&', 'echo', 'injected']);
81
+ expect(result.ok).toBe(true);
82
+ expect(result.stdout).toContain('$(whoami)');
83
+ expect(result.stdout).toContain('&&');
84
+ });
85
+ it('handles args with spaces correctly', async () => {
86
+ const result = await execSafeAsync('echo', ['hello world', 'foo bar']);
87
+ expect(result.ok).toBe(true);
88
+ expect(result.stdout).toBe('hello world foo bar');
89
+ });
90
+ it('respects cwd option', async () => {
91
+ const result = await execSafeAsync('pwd', [], { cwd: '/tmp' });
92
+ expect(result.ok).toBe(true);
93
+ expect(result.stdout).toContain('tmp');
94
+ });
95
+ });
96
+ describe('execQuietAsync', () => {
97
+ it('returns stdout on success', async () => {
98
+ expect(await execQuietAsync('echo', ['hi'])).toBe('hi');
99
+ });
100
+ it('returns empty string on failure', async () => {
101
+ expect(await execQuietAsync('nonexistent-xyz', [])).toBe('');
102
+ });
103
+ });
104
+ //# sourceMappingURL=exec.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exec.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/exec.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tokens.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.test.d.ts","sourceRoot":"","sources":["../../../src/utils/__tests__/tokens.test.ts"],"names":[],"mappings":""}