@jacques-ai/core 0.0.7-alpha.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 (341) hide show
  1. package/dist/archive/archive-store.d.ts +166 -0
  2. package/dist/archive/archive-store.d.ts.map +1 -0
  3. package/dist/archive/archive-store.js +612 -0
  4. package/dist/archive/archive-store.js.map +1 -0
  5. package/dist/archive/bulk-archive.d.ts +63 -0
  6. package/dist/archive/bulk-archive.d.ts.map +1 -0
  7. package/dist/archive/bulk-archive.js +315 -0
  8. package/dist/archive/bulk-archive.js.map +1 -0
  9. package/dist/archive/filename-utils.d.ts +39 -0
  10. package/dist/archive/filename-utils.d.ts.map +1 -0
  11. package/dist/archive/filename-utils.js +78 -0
  12. package/dist/archive/filename-utils.js.map +1 -0
  13. package/dist/archive/index.d.ts +21 -0
  14. package/dist/archive/index.d.ts.map +1 -0
  15. package/dist/archive/index.js +45 -0
  16. package/dist/archive/index.js.map +1 -0
  17. package/dist/archive/manifest-extractor.d.ts +40 -0
  18. package/dist/archive/manifest-extractor.d.ts.map +1 -0
  19. package/dist/archive/manifest-extractor.js +456 -0
  20. package/dist/archive/manifest-extractor.js.map +1 -0
  21. package/dist/archive/migration.d.ts +59 -0
  22. package/dist/archive/migration.d.ts.map +1 -0
  23. package/dist/archive/migration.js +172 -0
  24. package/dist/archive/migration.js.map +1 -0
  25. package/dist/archive/plan-cataloger.d.ts +24 -0
  26. package/dist/archive/plan-cataloger.d.ts.map +1 -0
  27. package/dist/archive/plan-cataloger.js +100 -0
  28. package/dist/archive/plan-cataloger.js.map +1 -0
  29. package/dist/archive/plan-extractor.d.ts +84 -0
  30. package/dist/archive/plan-extractor.d.ts.map +1 -0
  31. package/dist/archive/plan-extractor.js +371 -0
  32. package/dist/archive/plan-extractor.js.map +1 -0
  33. package/dist/archive/search-indexer.d.ts +50 -0
  34. package/dist/archive/search-indexer.d.ts.map +1 -0
  35. package/dist/archive/search-indexer.js +294 -0
  36. package/dist/archive/search-indexer.js.map +1 -0
  37. package/dist/archive/subagent-store.d.ts +113 -0
  38. package/dist/archive/subagent-store.d.ts.map +1 -0
  39. package/dist/archive/subagent-store.js +173 -0
  40. package/dist/archive/subagent-store.js.map +1 -0
  41. package/dist/archive/types.d.ts +236 -0
  42. package/dist/archive/types.d.ts.map +1 -0
  43. package/dist/archive/types.js +30 -0
  44. package/dist/archive/types.js.map +1 -0
  45. package/dist/branding.d.ts +9 -0
  46. package/dist/branding.d.ts.map +1 -0
  47. package/dist/branding.js +50 -0
  48. package/dist/branding.js.map +1 -0
  49. package/dist/cache/git-utils.d.ts +36 -0
  50. package/dist/cache/git-utils.d.ts.map +1 -0
  51. package/dist/cache/git-utils.js +160 -0
  52. package/dist/cache/git-utils.js.map +1 -0
  53. package/dist/cache/hidden-projects.d.ts +19 -0
  54. package/dist/cache/hidden-projects.d.ts.map +1 -0
  55. package/dist/cache/hidden-projects.js +48 -0
  56. package/dist/cache/hidden-projects.js.map +1 -0
  57. package/dist/cache/index.d.ts +15 -0
  58. package/dist/cache/index.d.ts.map +1 -0
  59. package/dist/cache/index.js +20 -0
  60. package/dist/cache/index.js.map +1 -0
  61. package/dist/cache/metadata-extractor.d.ts +62 -0
  62. package/dist/cache/metadata-extractor.d.ts.map +1 -0
  63. package/dist/cache/metadata-extractor.js +574 -0
  64. package/dist/cache/metadata-extractor.js.map +1 -0
  65. package/dist/cache/mode-detector.d.ts +19 -0
  66. package/dist/cache/mode-detector.d.ts.map +1 -0
  67. package/dist/cache/mode-detector.js +161 -0
  68. package/dist/cache/mode-detector.js.map +1 -0
  69. package/dist/cache/persistence.d.ts +39 -0
  70. package/dist/cache/persistence.d.ts.map +1 -0
  71. package/dist/cache/persistence.js +98 -0
  72. package/dist/cache/persistence.js.map +1 -0
  73. package/dist/cache/project-discovery.d.ts +41 -0
  74. package/dist/cache/project-discovery.d.ts.map +1 -0
  75. package/dist/cache/project-discovery.js +212 -0
  76. package/dist/cache/project-discovery.js.map +1 -0
  77. package/dist/cache/session-index.d.ts +258 -0
  78. package/dist/cache/session-index.d.ts.map +1 -0
  79. package/dist/cache/session-index.js +1030 -0
  80. package/dist/cache/session-index.js.map +1 -0
  81. package/dist/cache/types.d.ts +159 -0
  82. package/dist/cache/types.d.ts.map +1 -0
  83. package/dist/cache/types.js +29 -0
  84. package/dist/cache/types.js.map +1 -0
  85. package/dist/catalog/bulk-extractor.d.ts +18 -0
  86. package/dist/catalog/bulk-extractor.d.ts.map +1 -0
  87. package/dist/catalog/bulk-extractor.js +150 -0
  88. package/dist/catalog/bulk-extractor.js.map +1 -0
  89. package/dist/catalog/extractor.d.ts +53 -0
  90. package/dist/catalog/extractor.d.ts.map +1 -0
  91. package/dist/catalog/extractor.js +522 -0
  92. package/dist/catalog/extractor.js.map +1 -0
  93. package/dist/catalog/index.d.ts +10 -0
  94. package/dist/catalog/index.d.ts.map +1 -0
  95. package/dist/catalog/index.js +11 -0
  96. package/dist/catalog/index.js.map +1 -0
  97. package/dist/catalog/types.d.ts +134 -0
  98. package/dist/catalog/types.d.ts.map +1 -0
  99. package/dist/catalog/types.js +8 -0
  100. package/dist/catalog/types.js.map +1 -0
  101. package/dist/client/index.d.ts +6 -0
  102. package/dist/client/index.d.ts.map +1 -0
  103. package/dist/client/index.js +5 -0
  104. package/dist/client/index.js.map +1 -0
  105. package/dist/client/websocket-client.d.ts +96 -0
  106. package/dist/client/websocket-client.d.ts.map +1 -0
  107. package/dist/client/websocket-client.js +222 -0
  108. package/dist/client/websocket-client.js.map +1 -0
  109. package/dist/context/index.d.ts +13 -0
  110. package/dist/context/index.d.ts.map +1 -0
  111. package/dist/context/index.js +26 -0
  112. package/dist/context/index.js.map +1 -0
  113. package/dist/context/indexer.d.ts +73 -0
  114. package/dist/context/indexer.d.ts.map +1 -0
  115. package/dist/context/indexer.js +233 -0
  116. package/dist/context/indexer.js.map +1 -0
  117. package/dist/context/manager.d.ts +66 -0
  118. package/dist/context/manager.d.ts.map +1 -0
  119. package/dist/context/manager.js +310 -0
  120. package/dist/context/manager.js.map +1 -0
  121. package/dist/context/types.d.ts +149 -0
  122. package/dist/context/types.d.ts.map +1 -0
  123. package/dist/context/types.js +36 -0
  124. package/dist/context/types.js.map +1 -0
  125. package/dist/handoff/catalog.d.ts +54 -0
  126. package/dist/handoff/catalog.d.ts.map +1 -0
  127. package/dist/handoff/catalog.js +121 -0
  128. package/dist/handoff/catalog.js.map +1 -0
  129. package/dist/handoff/generator.d.ts +107 -0
  130. package/dist/handoff/generator.d.ts.map +1 -0
  131. package/dist/handoff/generator.js +603 -0
  132. package/dist/handoff/generator.js.map +1 -0
  133. package/dist/handoff/index.d.ts +13 -0
  134. package/dist/handoff/index.d.ts.map +1 -0
  135. package/dist/handoff/index.js +12 -0
  136. package/dist/handoff/index.js.map +1 -0
  137. package/dist/handoff/llm-generator.d.ts +77 -0
  138. package/dist/handoff/llm-generator.d.ts.map +1 -0
  139. package/dist/handoff/llm-generator.js +513 -0
  140. package/dist/handoff/llm-generator.js.map +1 -0
  141. package/dist/handoff/prompts.d.ts +18 -0
  142. package/dist/handoff/prompts.d.ts.map +1 -0
  143. package/dist/handoff/prompts.js +22 -0
  144. package/dist/handoff/prompts.js.map +1 -0
  145. package/dist/handoff/types.d.ts +28 -0
  146. package/dist/handoff/types.d.ts.map +1 -0
  147. package/dist/handoff/types.js +7 -0
  148. package/dist/handoff/types.js.map +1 -0
  149. package/dist/index.d.ts +56 -0
  150. package/dist/index.d.ts.map +1 -0
  151. package/dist/index.js +132 -0
  152. package/dist/index.js.map +1 -0
  153. package/dist/logging/claude-operations.d.ts +111 -0
  154. package/dist/logging/claude-operations.d.ts.map +1 -0
  155. package/dist/logging/claude-operations.js +132 -0
  156. package/dist/logging/claude-operations.js.map +1 -0
  157. package/dist/logging/error-utils.d.ts +18 -0
  158. package/dist/logging/error-utils.d.ts.map +1 -0
  159. package/dist/logging/error-utils.js +37 -0
  160. package/dist/logging/error-utils.js.map +1 -0
  161. package/dist/logging/index.d.ts +11 -0
  162. package/dist/logging/index.d.ts.map +1 -0
  163. package/dist/logging/index.js +10 -0
  164. package/dist/logging/index.js.map +1 -0
  165. package/dist/logging/logger.d.ts +25 -0
  166. package/dist/logging/logger.d.ts.map +1 -0
  167. package/dist/logging/logger.js +39 -0
  168. package/dist/logging/logger.js.map +1 -0
  169. package/dist/notifications/constants.d.ts +16 -0
  170. package/dist/notifications/constants.d.ts.map +1 -0
  171. package/dist/notifications/constants.js +49 -0
  172. package/dist/notifications/constants.js.map +1 -0
  173. package/dist/notifications/index.d.ts +9 -0
  174. package/dist/notifications/index.d.ts.map +1 -0
  175. package/dist/notifications/index.js +8 -0
  176. package/dist/notifications/index.js.map +1 -0
  177. package/dist/notifications/types.d.ts +28 -0
  178. package/dist/notifications/types.d.ts.map +1 -0
  179. package/dist/notifications/types.js +7 -0
  180. package/dist/notifications/types.js.map +1 -0
  181. package/dist/notifications/utils.d.ts +20 -0
  182. package/dist/notifications/utils.d.ts.map +1 -0
  183. package/dist/notifications/utils.js +37 -0
  184. package/dist/notifications/utils.js.map +1 -0
  185. package/dist/plan/index.d.ts +12 -0
  186. package/dist/plan/index.d.ts.map +1 -0
  187. package/dist/plan/index.js +15 -0
  188. package/dist/plan/index.js.map +1 -0
  189. package/dist/plan/plan-parser.d.ts +33 -0
  190. package/dist/plan/plan-parser.d.ts.map +1 -0
  191. package/dist/plan/plan-parser.js +189 -0
  192. package/dist/plan/plan-parser.js.map +1 -0
  193. package/dist/plan/progress-computer.d.ts +34 -0
  194. package/dist/plan/progress-computer.d.ts.map +1 -0
  195. package/dist/plan/progress-computer.js +211 -0
  196. package/dist/plan/progress-computer.js.map +1 -0
  197. package/dist/plan/progress-matcher.d.ts +34 -0
  198. package/dist/plan/progress-matcher.d.ts.map +1 -0
  199. package/dist/plan/progress-matcher.js +297 -0
  200. package/dist/plan/progress-matcher.js.map +1 -0
  201. package/dist/plan/task-extractor.d.ts +30 -0
  202. package/dist/plan/task-extractor.d.ts.map +1 -0
  203. package/dist/plan/task-extractor.js +435 -0
  204. package/dist/plan/task-extractor.js.map +1 -0
  205. package/dist/plan/types.d.ts +131 -0
  206. package/dist/plan/types.d.ts.map +1 -0
  207. package/dist/plan/types.js +8 -0
  208. package/dist/plan/types.js.map +1 -0
  209. package/dist/project/aggregator.d.ts +43 -0
  210. package/dist/project/aggregator.d.ts.map +1 -0
  211. package/dist/project/aggregator.js +218 -0
  212. package/dist/project/aggregator.js.map +1 -0
  213. package/dist/project/index.d.ts +9 -0
  214. package/dist/project/index.d.ts.map +1 -0
  215. package/dist/project/index.js +9 -0
  216. package/dist/project/index.js.map +1 -0
  217. package/dist/project/types.d.ts +65 -0
  218. package/dist/project/types.d.ts.map +1 -0
  219. package/dist/project/types.js +27 -0
  220. package/dist/project/types.js.map +1 -0
  221. package/dist/session/detector.d.ts +113 -0
  222. package/dist/session/detector.d.ts.map +1 -0
  223. package/dist/session/detector.js +333 -0
  224. package/dist/session/detector.js.map +1 -0
  225. package/dist/session/filters.d.ts +32 -0
  226. package/dist/session/filters.d.ts.map +1 -0
  227. package/dist/session/filters.js +100 -0
  228. package/dist/session/filters.js.map +1 -0
  229. package/dist/session/format-title.d.ts +16 -0
  230. package/dist/session/format-title.d.ts.map +1 -0
  231. package/dist/session/format-title.js +54 -0
  232. package/dist/session/format-title.js.map +1 -0
  233. package/dist/session/index.d.ts +16 -0
  234. package/dist/session/index.d.ts.map +1 -0
  235. package/dist/session/index.js +10 -0
  236. package/dist/session/index.js.map +1 -0
  237. package/dist/session/parser.d.ts +264 -0
  238. package/dist/session/parser.d.ts.map +1 -0
  239. package/dist/session/parser.js +588 -0
  240. package/dist/session/parser.js.map +1 -0
  241. package/dist/session/token-estimator.d.ts +32 -0
  242. package/dist/session/token-estimator.d.ts.map +1 -0
  243. package/dist/session/token-estimator.js +139 -0
  244. package/dist/session/token-estimator.js.map +1 -0
  245. package/dist/session/transformer.d.ts +126 -0
  246. package/dist/session/transformer.d.ts.map +1 -0
  247. package/dist/session/transformer.js +158 -0
  248. package/dist/session/transformer.js.map +1 -0
  249. package/dist/setup/hooks-config.d.ts +35 -0
  250. package/dist/setup/hooks-config.d.ts.map +1 -0
  251. package/dist/setup/hooks-config.js +107 -0
  252. package/dist/setup/hooks-config.js.map +1 -0
  253. package/dist/setup/hooks-symlink.d.ts +17 -0
  254. package/dist/setup/hooks-symlink.d.ts.map +1 -0
  255. package/dist/setup/hooks-symlink.js +89 -0
  256. package/dist/setup/hooks-symlink.js.map +1 -0
  257. package/dist/setup/index.d.ts +13 -0
  258. package/dist/setup/index.d.ts.map +1 -0
  259. package/dist/setup/index.js +12 -0
  260. package/dist/setup/index.js.map +1 -0
  261. package/dist/setup/prerequisites.d.ts +11 -0
  262. package/dist/setup/prerequisites.d.ts.map +1 -0
  263. package/dist/setup/prerequisites.js +72 -0
  264. package/dist/setup/prerequisites.js.map +1 -0
  265. package/dist/setup/settings-merge.d.ts +33 -0
  266. package/dist/setup/settings-merge.d.ts.map +1 -0
  267. package/dist/setup/settings-merge.js +131 -0
  268. package/dist/setup/settings-merge.js.map +1 -0
  269. package/dist/setup/skills-install.d.ts +17 -0
  270. package/dist/setup/skills-install.d.ts.map +1 -0
  271. package/dist/setup/skills-install.js +60 -0
  272. package/dist/setup/skills-install.js.map +1 -0
  273. package/dist/setup/types.d.ts +39 -0
  274. package/dist/setup/types.d.ts.map +1 -0
  275. package/dist/setup/types.js +7 -0
  276. package/dist/setup/types.js.map +1 -0
  277. package/dist/setup/verification.d.ts +9 -0
  278. package/dist/setup/verification.d.ts.map +1 -0
  279. package/dist/setup/verification.js +91 -0
  280. package/dist/setup/verification.js.map +1 -0
  281. package/dist/shortcuts/index.d.ts +8 -0
  282. package/dist/shortcuts/index.d.ts.map +1 -0
  283. package/dist/shortcuts/index.js +6 -0
  284. package/dist/shortcuts/index.js.map +1 -0
  285. package/dist/shortcuts/key-utils.d.ts +54 -0
  286. package/dist/shortcuts/key-utils.d.ts.map +1 -0
  287. package/dist/shortcuts/key-utils.js +129 -0
  288. package/dist/shortcuts/key-utils.js.map +1 -0
  289. package/dist/shortcuts/shortcut-registry.d.ts +37 -0
  290. package/dist/shortcuts/shortcut-registry.d.ts.map +1 -0
  291. package/dist/shortcuts/shortcut-registry.js +322 -0
  292. package/dist/shortcuts/shortcut-registry.js.map +1 -0
  293. package/dist/sources/config.d.ts +91 -0
  294. package/dist/sources/config.d.ts.map +1 -0
  295. package/dist/sources/config.js +229 -0
  296. package/dist/sources/config.js.map +1 -0
  297. package/dist/sources/googledocs.d.ts +43 -0
  298. package/dist/sources/googledocs.d.ts.map +1 -0
  299. package/dist/sources/googledocs.js +298 -0
  300. package/dist/sources/googledocs.js.map +1 -0
  301. package/dist/sources/index.d.ts +14 -0
  302. package/dist/sources/index.d.ts.map +1 -0
  303. package/dist/sources/index.js +19 -0
  304. package/dist/sources/index.js.map +1 -0
  305. package/dist/sources/notion.d.ts +35 -0
  306. package/dist/sources/notion.d.ts.map +1 -0
  307. package/dist/sources/notion.js +352 -0
  308. package/dist/sources/notion.js.map +1 -0
  309. package/dist/sources/obsidian.d.ts +38 -0
  310. package/dist/sources/obsidian.d.ts.map +1 -0
  311. package/dist/sources/obsidian.js +228 -0
  312. package/dist/sources/obsidian.js.map +1 -0
  313. package/dist/sources/types.d.ts +133 -0
  314. package/dist/sources/types.d.ts.map +1 -0
  315. package/dist/sources/types.js +19 -0
  316. package/dist/sources/types.js.map +1 -0
  317. package/dist/storage/index.d.ts +6 -0
  318. package/dist/storage/index.d.ts.map +1 -0
  319. package/dist/storage/index.js +5 -0
  320. package/dist/storage/index.js.map +1 -0
  321. package/dist/storage/writer.d.ts +86 -0
  322. package/dist/storage/writer.d.ts.map +1 -0
  323. package/dist/storage/writer.js +137 -0
  324. package/dist/storage/writer.js.map +1 -0
  325. package/dist/types.d.ts +203 -0
  326. package/dist/types.d.ts.map +1 -0
  327. package/dist/types.js +8 -0
  328. package/dist/types.js.map +1 -0
  329. package/dist/utils/claude-token.d.ts +49 -0
  330. package/dist/utils/claude-token.d.ts.map +1 -0
  331. package/dist/utils/claude-token.js +169 -0
  332. package/dist/utils/claude-token.js.map +1 -0
  333. package/dist/utils/index.d.ts +7 -0
  334. package/dist/utils/index.d.ts.map +1 -0
  335. package/dist/utils/index.js +13 -0
  336. package/dist/utils/index.js.map +1 -0
  337. package/dist/utils/settings.d.ts +100 -0
  338. package/dist/utils/settings.d.ts.map +1 -0
  339. package/dist/utils/settings.js +206 -0
  340. package/dist/utils/settings.js.map +1 -0
  341. package/package.json +54 -0
@@ -0,0 +1,77 @@
1
+ /**
2
+ * LLM Handoff Generator
3
+ *
4
+ * Generates handoff documents using Claude Code CLI with the jacques-handoff skill.
5
+ * This provides higher-quality, AI-powered extraction compared to the rule-based generator.
6
+ */
7
+ /**
8
+ * Result of LLM-powered handoff generation
9
+ */
10
+ export interface LLMHandoffResult {
11
+ /** Full path to the generated handoff file */
12
+ filePath: string;
13
+ /** Filename of the handoff */
14
+ filename: string;
15
+ /** The handoff content */
16
+ content: string;
17
+ /** Input tokens used by the LLM */
18
+ inputTokens: number;
19
+ /** Output tokens generated by the LLM */
20
+ outputTokens: number;
21
+ /** Total tokens used */
22
+ totalTokens: number;
23
+ }
24
+ /**
25
+ * Error thrown when Claude Code CLI fails
26
+ */
27
+ export declare class ClaudeCodeError extends Error {
28
+ readonly exitCode?: number | undefined;
29
+ readonly stderr?: string | undefined;
30
+ constructor(message: string, exitCode?: number | undefined, stderr?: string | undefined);
31
+ }
32
+ /**
33
+ * Callbacks for streaming LLM output
34
+ */
35
+ export interface LLMStreamCallbacks {
36
+ /** Called when new text is generated */
37
+ onTextDelta?: (text: string) => void;
38
+ /** Called when token counts are updated */
39
+ onTokenUpdate?: (inputTokens: number, outputTokens: number) => void;
40
+ /** Called when a new processing stage begins */
41
+ onStage?: (stage: string) => void;
42
+ }
43
+ /**
44
+ * Options for generateHandoffWithLLM
45
+ */
46
+ export interface LLMHandoffOptions {
47
+ /** Timeout in milliseconds (default: 120000) */
48
+ timeout?: number;
49
+ /** AbortSignal for cancellation */
50
+ signal?: AbortSignal;
51
+ /** Callbacks for streaming output */
52
+ stream?: LLMStreamCallbacks;
53
+ }
54
+ /**
55
+ * Generate a handoff document using Claude Code CLI with the jacques-handoff skill.
56
+ *
57
+ * This function:
58
+ * 1. Reads the skill prompt from ~/.claude/skills/jacques-handoff/SKILL.md
59
+ * 2. Passes the transcript path to Claude (it uses Read tool to access it)
60
+ * 3. Claude extracts relevant info and generates the handoff
61
+ * 4. Saves the generated handoff to .jacques/handoffs/
62
+ *
63
+ * @param transcriptPath - Path to the session transcript (JSONL file)
64
+ * @param projectDir - Project directory (for saving the handoff)
65
+ * @param options - Optional timeout and abort signal
66
+ * @returns The generated handoff result with token usage
67
+ */
68
+ export declare function generateHandoffWithLLM(transcriptPath: string, projectDir: string, options?: LLMHandoffOptions): Promise<LLMHandoffResult>;
69
+ /**
70
+ * Check if the jacques-handoff skill is installed
71
+ */
72
+ export declare function isSkillInstalled(): Promise<boolean>;
73
+ /**
74
+ * Get the path to the jacques-handoff skill
75
+ */
76
+ export declare function getSkillPath(): string;
77
+ //# sourceMappingURL=llm-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-generator.d.ts","sourceRoot":"","sources":["../../src/handoff/llm-generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmCH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,QAAQ,CAAC,EAAE,MAAM;aACjB,MAAM,CAAC,EAAE,MAAM;gBAF/B,OAAO,EAAE,MAAM,EACC,QAAQ,CAAC,EAAE,MAAM,YAAA,EACjB,MAAM,CAAC,EAAE,MAAM,YAAA;CAKlC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,wCAAwC;IACxC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,2CAA2C;IAC3C,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACpE,gDAAgD;IAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,qCAAqC;IACrC,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B;AAiWD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,sBAAsB,CAC1C,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC,CAyK3B;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAOzD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC"}
@@ -0,0 +1,513 @@
1
+ /**
2
+ * LLM Handoff Generator
3
+ *
4
+ * Generates handoff documents using Claude Code CLI with the jacques-handoff skill.
5
+ * This provides higher-quality, AI-powered extraction compared to the rule-based generator.
6
+ */
7
+ import { spawn } from "child_process";
8
+ import { promises as fs, appendFileSync } from "fs";
9
+ import { join } from "path";
10
+ import { homedir } from "os";
11
+ import { ensureHandoffsDir, generateHandoffFilename } from "./catalog.js";
12
+ import { getCompactContextForSkill } from "./generator.js";
13
+ import { ClaudeOperationLogger } from "../logging/index.js";
14
+ /** Path to the jacques-handoff skill file */
15
+ const SKILL_PATH = join(homedir(), ".claude/skills/jacques-handoff/SKILL.md");
16
+ /** Default timeout for Claude Code CLI (5 minutes - handoffs can take a while for long conversations) */
17
+ const DEFAULT_TIMEOUT = 300000;
18
+ /** Enable debug logging for streaming events */
19
+ const DEBUG_STREAMING = process.env.JACQUES_DEBUG_STREAMING === "1";
20
+ /** Debug log file path */
21
+ const DEBUG_LOG_FILE = "/tmp/jacques-streaming-debug.log";
22
+ /** Write debug message to file */
23
+ function debugLog(message) {
24
+ if (!DEBUG_STREAMING)
25
+ return;
26
+ const timestamp = new Date().toISOString();
27
+ const line = `[${timestamp}] ${message}\n`;
28
+ // Sync write to ensure we see output immediately
29
+ try {
30
+ appendFileSync(DEBUG_LOG_FILE, line);
31
+ }
32
+ catch {
33
+ // Ignore write errors
34
+ }
35
+ }
36
+ /**
37
+ * Error thrown when Claude Code CLI fails
38
+ */
39
+ export class ClaudeCodeError extends Error {
40
+ exitCode;
41
+ stderr;
42
+ constructor(message, exitCode, stderr) {
43
+ super(message);
44
+ this.exitCode = exitCode;
45
+ this.stderr = stderr;
46
+ this.name = "ClaudeCodeError";
47
+ }
48
+ }
49
+ /**
50
+ * Handle a streaming event from Claude Code CLI
51
+ *
52
+ * Event structure (with --include-partial-messages):
53
+ * - type: "stream_event", event.type: "message_start" - initial token count
54
+ * - type: "stream_event", event.type: "content_block_delta" - text chunks (delta.text)
55
+ * - type: "stream_event", event.type: "message_delta" - final usage
56
+ * - type: "result" - final result with total usage
57
+ */
58
+ function handleStreamEvent(event, callbacks, state) {
59
+ if (!callbacks) {
60
+ debugLog(`[EVENT] NO CALLBACKS - skipping event type=${event.type}`);
61
+ return;
62
+ }
63
+ debugLog(`[EVENT] type=${event.type} callbacks.onTextDelta=${!!callbacks.onTextDelta} callbacks.onTokenUpdate=${!!callbacks.onTokenUpdate}`);
64
+ // Handle stream_event wrapper
65
+ if (event.type === "stream_event") {
66
+ const inner = event.event;
67
+ if (!inner)
68
+ return;
69
+ debugLog(`[STREAM] inner.type=${inner.type}`);
70
+ // Content block start - could be text or tool_use
71
+ // Structure: { type: "content_block_start", content_block: { type: "text" | "tool_use", ... } }
72
+ if (inner.type === "content_block_start") {
73
+ const contentBlock = inner.content_block;
74
+ debugLog(`[BLOCK_START] type=${contentBlock?.type} name=${contentBlock?.name}`);
75
+ // Notify when a tool starts being used
76
+ if (contentBlock?.type === "tool_use" && contentBlock.name) {
77
+ callbacks.onStage?.(`Using ${contentBlock.name}...`);
78
+ }
79
+ }
80
+ // Text delta - partial text as it's generated
81
+ // Structure: { type: "content_block_delta", delta: { type: "text_delta", text: "..." } }
82
+ if (inner.type === "content_block_delta") {
83
+ const delta = inner.delta;
84
+ debugLog(`[DELTA] type=${delta?.type} text=${delta?.text?.substring(0, 50)} json=${delta?.partial_json?.substring(0, 50)}`);
85
+ if (delta?.type === "text_delta" && delta.text) {
86
+ debugLog(`[TEXT_DELTA] calling onTextDelta with: ${delta.text.substring(0, 100)}`);
87
+ callbacks.onTextDelta?.(delta.text);
88
+ }
89
+ }
90
+ // Message start - contains initial input token count
91
+ // Structure: { type: "message_start", message: { usage: { input_tokens, cache_read_input_tokens, ... } } }
92
+ if (inner.type === "message_start") {
93
+ const message = inner.message;
94
+ if (message?.usage && state) {
95
+ // Include cache read tokens in input count
96
+ const inputTokens = (message.usage.input_tokens || 0) + (message.usage.cache_read_input_tokens || 0);
97
+ state.inputTokens = inputTokens;
98
+ debugLog(`[TOKEN_UPDATE] message_start: input=${state.inputTokens} output=${state.outputTokens}`);
99
+ callbacks.onTokenUpdate?.(state.inputTokens, state.outputTokens);
100
+ }
101
+ }
102
+ // Message delta - contains output token updates
103
+ // Structure: { type: "message_delta", usage: { output_tokens, ... } }
104
+ if (inner.type === "message_delta") {
105
+ const usage = inner.usage;
106
+ if (usage && state) {
107
+ if (usage.output_tokens) {
108
+ state.outputTokens = usage.output_tokens;
109
+ }
110
+ if (usage.input_tokens || usage.cache_read_input_tokens) {
111
+ state.inputTokens = (usage.input_tokens || 0) + (usage.cache_read_input_tokens || 0);
112
+ }
113
+ debugLog(`[TOKEN_UPDATE] message_delta: input=${state.inputTokens} output=${state.outputTokens}`);
114
+ callbacks.onTokenUpdate?.(state.inputTokens, state.outputTokens);
115
+ }
116
+ }
117
+ }
118
+ // Handle result event (final response)
119
+ if (event.type === "result") {
120
+ debugLog(`[RESULT] event received`);
121
+ const usage = event.usage;
122
+ if (usage && state) {
123
+ state.inputTokens = (usage.input_tokens || 0) + (usage.cache_read_input_tokens || 0);
124
+ state.outputTokens = usage.output_tokens || state.outputTokens;
125
+ debugLog(`[TOKEN_UPDATE] result: input=${state.inputTokens} output=${state.outputTokens}`);
126
+ callbacks.onTokenUpdate?.(state.inputTokens, state.outputTokens);
127
+ }
128
+ }
129
+ }
130
+ /**
131
+ * Run Claude Code CLI and return the result
132
+ */
133
+ async function runClaudeCode(systemPrompt, userPrompt, cwd, options = {}) {
134
+ const timeout = options.timeout ?? DEFAULT_TIMEOUT;
135
+ const useStreaming = !!options.stream;
136
+ return new Promise((resolve, reject) => {
137
+ let proc = null;
138
+ let timeoutId = null;
139
+ let killed = false;
140
+ // Handle abort signal
141
+ const abortHandler = () => {
142
+ killed = true;
143
+ proc?.kill("SIGTERM");
144
+ reject(new ClaudeCodeError("Cancelled by user"));
145
+ };
146
+ if (options.signal) {
147
+ if (options.signal.aborted) {
148
+ reject(new ClaudeCodeError("Cancelled by user"));
149
+ return;
150
+ }
151
+ options.signal.addEventListener("abort", abortHandler, { once: true });
152
+ }
153
+ const cleanup = () => {
154
+ if (timeoutId)
155
+ clearTimeout(timeoutId);
156
+ if (options.signal) {
157
+ options.signal.removeEventListener("abort", abortHandler);
158
+ }
159
+ };
160
+ // Build command arguments
161
+ const args = [
162
+ "-p",
163
+ userPrompt,
164
+ "--system-prompt",
165
+ systemPrompt,
166
+ "--output-format",
167
+ useStreaming ? "stream-json" : "json",
168
+ "--allowedTools",
169
+ "Write", // Only needs Write to save handoff; context is pre-extracted
170
+ ];
171
+ // Add streaming flags
172
+ if (useStreaming) {
173
+ args.push("--verbose");
174
+ args.push("--include-partial-messages");
175
+ }
176
+ debugLog(`[SPAWN] Starting claude with args: ${args.join(" ").substring(0, 200)}...`);
177
+ debugLog(`[SPAWN] useStreaming=${useStreaming} hasStreamCallbacks=${!!options.stream}`);
178
+ proc = spawn("claude", args, {
179
+ cwd,
180
+ stdio: ["pipe", "pipe", "pipe"],
181
+ env: {
182
+ ...process.env,
183
+ // Prevent Jacques hooks from running in subprocess
184
+ JACQUES_SUBPROCESS: "1",
185
+ },
186
+ });
187
+ // IMPORTANT: Close stdin immediately to trigger streaming output
188
+ // Without this, Claude CLI buffers output waiting for input
189
+ proc.stdin?.end();
190
+ debugLog(`[SPAWN] Process started with PID: ${proc.pid}, stdin closed`);
191
+ let stdout = "";
192
+ let stderr = "";
193
+ let streamBuffer = "";
194
+ let accumulatedContent = "";
195
+ const tokenState = { inputTokens: 0, outputTokens: 0 };
196
+ const collectedEvents = []; // Collect ALL events for debugging
197
+ const toolsCalled = []; // Track tools used during operation
198
+ proc.stdout?.on("data", (data) => {
199
+ const chunk = data.toString();
200
+ stdout += chunk;
201
+ if (useStreaming) {
202
+ debugLog(`[STDOUT] received ${chunk.length} bytes`);
203
+ // Parse line-by-line for streaming
204
+ streamBuffer += chunk;
205
+ const lines = streamBuffer.split("\n");
206
+ // Keep the last incomplete line in the buffer
207
+ streamBuffer = lines.pop() || "";
208
+ debugLog(`[STDOUT] ${lines.length} complete lines to parse`);
209
+ for (const line of lines) {
210
+ if (!line.trim())
211
+ continue;
212
+ try {
213
+ const event = JSON.parse(line);
214
+ // Collect ALL events for debugging
215
+ collectedEvents.push(event);
216
+ handleStreamEvent(event, options.stream, tokenState);
217
+ // Track tool calls
218
+ if (event.type === "stream_event") {
219
+ const inner = event.event;
220
+ if (inner?.type === "content_block_start") {
221
+ const block = inner.content_block;
222
+ if (block?.type === "tool_use" && block.name && !toolsCalled.includes(block.name)) {
223
+ toolsCalled.push(block.name);
224
+ }
225
+ }
226
+ }
227
+ // Accumulate content from text deltas
228
+ if (event.type === "stream_event") {
229
+ const inner = event.event;
230
+ if (inner?.type === "content_block_delta") {
231
+ const delta = inner.delta;
232
+ if (delta?.type === "text_delta" && delta.text) {
233
+ accumulatedContent += delta.text;
234
+ }
235
+ }
236
+ }
237
+ // Also capture final result content (fallback)
238
+ if (event.type === "result") {
239
+ const result = event.result;
240
+ if (result && !accumulatedContent) {
241
+ accumulatedContent = result;
242
+ }
243
+ }
244
+ }
245
+ catch {
246
+ // Ignore malformed JSON lines
247
+ }
248
+ }
249
+ }
250
+ });
251
+ proc.stderr?.on("data", (data) => {
252
+ const chunk = data.toString();
253
+ stderr += chunk;
254
+ debugLog(`[STDERR] ${chunk.substring(0, 200)}`);
255
+ });
256
+ proc.on("close", (code) => {
257
+ debugLog(`[CLOSE] Process exited with code: ${code}`);
258
+ debugLog(`[CLOSE] accumulatedContent length: ${accumulatedContent.length}`);
259
+ debugLog(`[CLOSE] tokenState: input=${tokenState.inputTokens} output=${tokenState.outputTokens}`);
260
+ cleanup();
261
+ if (killed)
262
+ return;
263
+ if (code !== 0) {
264
+ // Try to extract error from stdout if stderr is empty
265
+ let errorMessage = stderr;
266
+ if (!errorMessage && stdout) {
267
+ // Look for error in JSON stream output
268
+ const lines = stdout.split("\n").filter(Boolean);
269
+ for (const line of lines) {
270
+ try {
271
+ const parsed = JSON.parse(line);
272
+ if (parsed.error || parsed.type === "error") {
273
+ errorMessage = parsed.error || parsed.message || JSON.stringify(parsed);
274
+ break;
275
+ }
276
+ }
277
+ catch {
278
+ // Not JSON, continue
279
+ }
280
+ }
281
+ // If no error found in JSON, show last few lines
282
+ if (!errorMessage) {
283
+ errorMessage = lines.slice(-5).join("\n").substring(0, 1000);
284
+ }
285
+ }
286
+ reject(new ClaudeCodeError(`Claude Code failed with exit code ${code}: ${errorMessage || "Unknown error"}`, code ?? undefined, stderr || stdout));
287
+ return;
288
+ }
289
+ if (useStreaming) {
290
+ // For streaming, use accumulated content and token state
291
+ resolve({
292
+ content: accumulatedContent,
293
+ inputTokens: tokenState.inputTokens,
294
+ outputTokens: tokenState.outputTokens,
295
+ cliArgs: args,
296
+ cliEvents: collectedEvents,
297
+ toolsCalled,
298
+ });
299
+ }
300
+ else {
301
+ try {
302
+ // Parse the JSON output
303
+ const response = JSON.parse(stdout);
304
+ // Extract content - Claude CLI returns result field
305
+ const content = response.result || response.text || "";
306
+ // For non-streaming, capture the full response as an event
307
+ collectedEvents.push(response);
308
+ resolve({
309
+ content,
310
+ inputTokens: response.usage?.input_tokens || 0,
311
+ outputTokens: response.usage?.output_tokens || 0,
312
+ cliArgs: args,
313
+ cliEvents: collectedEvents,
314
+ toolsCalled: [], // Non-streaming doesn't track tool calls
315
+ });
316
+ }
317
+ catch (e) {
318
+ reject(new ClaudeCodeError(`Failed to parse Claude Code output: ${e instanceof Error ? e.message : String(e)}`));
319
+ }
320
+ }
321
+ });
322
+ proc.on("error", (err) => {
323
+ cleanup();
324
+ if (!killed) {
325
+ reject(new ClaudeCodeError(`Failed to spawn Claude Code: ${err.message}`));
326
+ }
327
+ });
328
+ // Set timeout
329
+ timeoutId = setTimeout(() => {
330
+ killed = true;
331
+ proc?.kill("SIGTERM");
332
+ reject(new ClaudeCodeError(`Claude Code timed out after ${timeout / 1000} seconds`));
333
+ }, timeout);
334
+ });
335
+ }
336
+ /**
337
+ * Generate a handoff document using Claude Code CLI with the jacques-handoff skill.
338
+ *
339
+ * This function:
340
+ * 1. Reads the skill prompt from ~/.claude/skills/jacques-handoff/SKILL.md
341
+ * 2. Passes the transcript path to Claude (it uses Read tool to access it)
342
+ * 3. Claude extracts relevant info and generates the handoff
343
+ * 4. Saves the generated handoff to .jacques/handoffs/
344
+ *
345
+ * @param transcriptPath - Path to the session transcript (JSONL file)
346
+ * @param projectDir - Project directory (for saving the handoff)
347
+ * @param options - Optional timeout and abort signal
348
+ * @returns The generated handoff result with token usage
349
+ */
350
+ export async function generateHandoffWithLLM(transcriptPath, projectDir, options = {}) {
351
+ // 1. Read skill prompt
352
+ let skillPrompt;
353
+ try {
354
+ skillPrompt = await fs.readFile(SKILL_PATH, "utf-8");
355
+ }
356
+ catch (err) {
357
+ throw new ClaudeCodeError(`Failed to read skill file at ${SKILL_PATH}: ${err instanceof Error ? err.message : String(err)}`);
358
+ }
359
+ // 2. Verify transcript exists
360
+ try {
361
+ await fs.access(transcriptPath);
362
+ }
363
+ catch (err) {
364
+ throw new ClaudeCodeError(`Transcript not found at ${transcriptPath}`);
365
+ }
366
+ // 3. Pre-extract compact context (rule-based, ~2k tokens instead of 60k)
367
+ // This avoids Claude reading the full transcript file
368
+ const { context: userPrompt, tokenEstimate } = await getCompactContextForSkill(transcriptPath, projectDir);
369
+ debugLog(`[CONTEXT] Pre-extracted compact context: ~${tokenEstimate} tokens`);
370
+ // 4. Run Claude Code CLI with logging
371
+ const operationId = ClaudeOperationLogger.createOperationId();
372
+ const startTime = Date.now();
373
+ // Estimate tokens (~4 chars per token is a rough estimate)
374
+ const userPromptTokensEst = Math.ceil(userPrompt.length / 4);
375
+ const systemPromptTokensEst = Math.ceil(skillPrompt.length / 4);
376
+ // Truncate for preview (first 200 chars)
377
+ const truncate = (s, len) => s.length > len ? s.substring(0, len) + "..." : s;
378
+ // Log operation START
379
+ const startOperation = {
380
+ id: operationId,
381
+ timestamp: new Date().toISOString(),
382
+ operation: "llm-handoff",
383
+ phase: "start",
384
+ inputTokens: 0,
385
+ outputTokens: 0,
386
+ totalTokens: 0,
387
+ durationMs: 0,
388
+ success: true, // Optimistic
389
+ userPromptChars: userPrompt.length,
390
+ systemPromptChars: skillPrompt.length,
391
+ userPromptTokensEst,
392
+ systemPromptTokensEst,
393
+ userPromptPreview: truncate(userPrompt.replace(/\n/g, " "), 200),
394
+ systemPromptPreview: truncate(skillPrompt.replace(/\n/g, " "), 200),
395
+ // Include full prompts only in debug mode
396
+ ...(ClaudeOperationLogger.isDebugMode() && {
397
+ userPrompt,
398
+ systemPrompt: skillPrompt,
399
+ }),
400
+ };
401
+ await ClaudeOperationLogger.log(startOperation);
402
+ debugLog(`[OPERATION] Started: user=${userPromptTokensEst} tokens est, system=${systemPromptTokensEst} tokens est`);
403
+ let result;
404
+ let operationSuccess = true;
405
+ let errorMessage;
406
+ try {
407
+ result = await runClaudeCode(skillPrompt, userPrompt, projectDir, options);
408
+ }
409
+ catch (error) {
410
+ operationSuccess = false;
411
+ errorMessage = error instanceof Error ? error.message : String(error);
412
+ // Log the failed operation
413
+ const failedOperation = {
414
+ id: operationId,
415
+ timestamp: new Date().toISOString(),
416
+ operation: "llm-handoff",
417
+ phase: "complete",
418
+ inputTokens: 0,
419
+ outputTokens: 0,
420
+ totalTokens: 0,
421
+ durationMs: Date.now() - startTime,
422
+ success: false,
423
+ errorMessage,
424
+ userPromptChars: userPrompt.length,
425
+ systemPromptChars: skillPrompt.length,
426
+ userPromptTokensEst,
427
+ systemPromptTokensEst,
428
+ // Include full prompts only in debug mode
429
+ ...(ClaudeOperationLogger.isDebugMode() && {
430
+ userPrompt,
431
+ systemPrompt: skillPrompt,
432
+ }),
433
+ };
434
+ await ClaudeOperationLogger.log(failedOperation);
435
+ throw error;
436
+ }
437
+ const durationMs = Date.now() - startTime;
438
+ // Calculate overhead (input tokens - estimated prompt tokens)
439
+ const promptTokensEst = userPromptTokensEst + systemPromptTokensEst;
440
+ const overheadTokens = result.inputTokens - promptTokensEst;
441
+ // Save debug data (always, for inspection)
442
+ const debugData = {
443
+ operationId,
444
+ timestamp: new Date().toISOString(),
445
+ userPrompt,
446
+ systemPrompt: skillPrompt,
447
+ cliArgs: result.cliArgs,
448
+ cliEvents: result.cliEvents,
449
+ response: result.content,
450
+ };
451
+ const debugFilePath = await ClaudeOperationLogger.saveDebugData(debugData);
452
+ debugLog(`[DEBUG] Saved debug data to: ${debugFilePath}`);
453
+ // Log the successful operation COMPLETE
454
+ const completeOperation = {
455
+ id: operationId,
456
+ timestamp: new Date().toISOString(),
457
+ operation: "llm-handoff",
458
+ phase: "complete",
459
+ inputTokens: result.inputTokens,
460
+ outputTokens: result.outputTokens,
461
+ totalTokens: result.inputTokens + result.outputTokens,
462
+ durationMs,
463
+ success: true,
464
+ userPromptChars: userPrompt.length,
465
+ systemPromptChars: skillPrompt.length,
466
+ userPromptTokensEst,
467
+ systemPromptTokensEst,
468
+ outputLength: result.content.length,
469
+ toolsCalled: result.toolsCalled.length > 0 ? result.toolsCalled : undefined,
470
+ // Include full prompts only in debug mode
471
+ ...(ClaudeOperationLogger.isDebugMode() && {
472
+ userPrompt,
473
+ systemPrompt: skillPrompt,
474
+ }),
475
+ };
476
+ await ClaudeOperationLogger.log(completeOperation);
477
+ debugLog(`[OPERATION] Complete: ${result.inputTokens} in (est: ${promptTokensEst}, overhead: ${overheadTokens}), ${result.outputTokens} out, ${durationMs}ms`);
478
+ if (result.toolsCalled.length > 0) {
479
+ debugLog(`[TOOLS] Called: ${result.toolsCalled.join(", ")}`);
480
+ }
481
+ // 5. Save handoff file
482
+ const handoffsDir = await ensureHandoffsDir(projectDir);
483
+ const filename = generateHandoffFilename();
484
+ const filePath = join(handoffsDir, filename);
485
+ await fs.writeFile(filePath, result.content, "utf-8");
486
+ return {
487
+ filePath,
488
+ filename,
489
+ content: result.content,
490
+ inputTokens: result.inputTokens,
491
+ outputTokens: result.outputTokens,
492
+ totalTokens: result.inputTokens + result.outputTokens,
493
+ };
494
+ }
495
+ /**
496
+ * Check if the jacques-handoff skill is installed
497
+ */
498
+ export async function isSkillInstalled() {
499
+ try {
500
+ await fs.access(SKILL_PATH);
501
+ return true;
502
+ }
503
+ catch {
504
+ return false;
505
+ }
506
+ }
507
+ /**
508
+ * Get the path to the jacques-handoff skill
509
+ */
510
+ export function getSkillPath() {
511
+ return SKILL_PATH;
512
+ }
513
+ //# sourceMappingURL=llm-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-generator.js","sourceRoot":"","sources":["../../src/handoff/llm-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Handoff Prompts
3
+ *
4
+ * Prompts for invoking the handoff orchestrator and related operations.
5
+ */
6
+ /**
7
+ * The prompt to invoke the handoff orchestrator subagent
8
+ */
9
+ export declare const HANDOFF_INVOCATION = "Use the handoff-orchestrator to prepare for a new session";
10
+ /**
11
+ * Get the handoff orchestrator invocation prompt
12
+ */
13
+ export declare function getHandoffPrompt(): string;
14
+ /**
15
+ * Get a display-friendly version of the handoff prompt
16
+ */
17
+ export declare function getHandoffPromptDisplay(): string;
18
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/handoff/prompts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB,8DAA8D,CAAC;AAE9F;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Handoff Prompts
3
+ *
4
+ * Prompts for invoking the handoff orchestrator and related operations.
5
+ */
6
+ /**
7
+ * The prompt to invoke the handoff orchestrator subagent
8
+ */
9
+ export const HANDOFF_INVOCATION = "Use the handoff-orchestrator to prepare for a new session";
10
+ /**
11
+ * Get the handoff orchestrator invocation prompt
12
+ */
13
+ export function getHandoffPrompt() {
14
+ return HANDOFF_INVOCATION;
15
+ }
16
+ /**
17
+ * Get a display-friendly version of the handoff prompt
18
+ */
19
+ export function getHandoffPromptDisplay() {
20
+ return HANDOFF_INVOCATION;
21
+ }
22
+ //# sourceMappingURL=prompts.js.map