@archznn/crewloop-skills 0.6.0 → 0.7.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 (245) hide show
  1. package/README.md +4 -16
  2. package/package.json +1 -2
  3. package/packages/cli/dist/agents.js +1 -1
  4. package/packages/cli/dist/agents.js.map +1 -1
  5. package/packages/cli/dist/cli.d.ts.map +1 -1
  6. package/packages/cli/dist/cli.js +2 -30
  7. package/packages/cli/dist/cli.js.map +1 -1
  8. package/packages/cli/dist/hooks.d.ts +6 -4
  9. package/packages/cli/dist/hooks.d.ts.map +1 -1
  10. package/packages/cli/dist/hooks.js +250 -98
  11. package/packages/cli/dist/hooks.js.map +1 -1
  12. package/packages/cli/dist/tests/hooks.test.js +245 -33
  13. package/packages/cli/dist/tests/hooks.test.js.map +1 -1
  14. package/references/conventions.md +1 -10
  15. package/references/workflow.md +1 -1
  16. package/servers/dashboard/README.md +55 -1
  17. package/servers/dashboard/dist/adapters/agy.d.ts +19 -0
  18. package/servers/dashboard/dist/adapters/agy.d.ts.map +1 -0
  19. package/servers/dashboard/dist/adapters/agy.js +108 -0
  20. package/servers/dashboard/dist/adapters/agy.js.map +1 -0
  21. package/servers/dashboard/dist/adapters/codex.d.ts.map +1 -1
  22. package/servers/dashboard/dist/adapters/codex.js +2 -0
  23. package/servers/dashboard/dist/adapters/codex.js.map +1 -1
  24. package/servers/dashboard/dist/adapters/kimi.d.ts +1 -1
  25. package/servers/dashboard/dist/adapters/kimi.d.ts.map +1 -1
  26. package/servers/dashboard/dist/adapters/kimi.js +9 -0
  27. package/servers/dashboard/dist/adapters/kimi.js.map +1 -1
  28. package/servers/dashboard/dist/adapters/shim.d.ts +1 -1
  29. package/servers/dashboard/dist/adapters/shim.d.ts.map +1 -1
  30. package/servers/dashboard/dist/adapters/shim.js +32 -11
  31. package/servers/dashboard/dist/adapters/shim.js.map +1 -1
  32. package/servers/dashboard/dist/adapters/shim.test.js +46 -4
  33. package/servers/dashboard/dist/adapters/shim.test.js.map +1 -1
  34. package/servers/dashboard/dist/lib/constants.d.ts +5 -0
  35. package/servers/dashboard/dist/lib/constants.d.ts.map +1 -0
  36. package/servers/dashboard/dist/lib/constants.js +46 -0
  37. package/servers/dashboard/dist/lib/constants.js.map +1 -0
  38. package/servers/dashboard/dist/lib/format.d.ts +6 -0
  39. package/servers/dashboard/dist/lib/format.d.ts.map +1 -0
  40. package/servers/dashboard/dist/lib/format.js +52 -0
  41. package/servers/dashboard/dist/lib/format.js.map +1 -0
  42. package/servers/dashboard/dist/lib/graph.d.ts +22 -0
  43. package/servers/dashboard/dist/lib/graph.d.ts.map +1 -0
  44. package/servers/dashboard/dist/lib/graph.js +45 -0
  45. package/servers/dashboard/dist/lib/graph.js.map +1 -0
  46. package/servers/dashboard/dist/lib/invocations.d.ts +32 -0
  47. package/servers/dashboard/dist/lib/invocations.d.ts.map +1 -0
  48. package/servers/dashboard/dist/lib/invocations.js +135 -0
  49. package/servers/dashboard/dist/lib/invocations.js.map +1 -0
  50. package/servers/dashboard/dist/lib/invocations.test.d.ts +2 -0
  51. package/servers/dashboard/dist/lib/invocations.test.d.ts.map +1 -0
  52. package/servers/dashboard/dist/lib/invocations.test.js +68 -0
  53. package/servers/dashboard/dist/lib/invocations.test.js.map +1 -0
  54. package/servers/dashboard/dist/lib/paths.d.ts +2 -0
  55. package/servers/dashboard/dist/lib/paths.d.ts.map +1 -0
  56. package/servers/dashboard/dist/lib/paths.js +40 -0
  57. package/servers/dashboard/dist/lib/paths.js.map +1 -0
  58. package/servers/dashboard/dist/presenter.d.ts.map +1 -1
  59. package/servers/dashboard/dist/presenter.js +2 -0
  60. package/servers/dashboard/dist/presenter.js.map +1 -1
  61. package/servers/dashboard/dist/public/assets/index-DjmMKbPN.css +1 -0
  62. package/servers/dashboard/dist/public/assets/index-DzOqMleZ.js +5323 -0
  63. package/servers/dashboard/dist/public/assets/index-DzOqMleZ.js.map +1 -0
  64. package/servers/dashboard/dist/public/index.html +16 -0
  65. package/servers/dashboard/dist/server.d.ts.map +1 -1
  66. package/servers/dashboard/dist/server.js +5 -1
  67. package/servers/dashboard/dist/server.js.map +1 -1
  68. package/servers/dashboard/dist/skills/infer.d.ts.map +1 -1
  69. package/servers/dashboard/dist/skills/infer.js +0 -6
  70. package/servers/dashboard/dist/skills/infer.js.map +1 -1
  71. package/servers/dashboard/dist/skills/infer.test.js +10 -3
  72. package/servers/dashboard/dist/skills/infer.test.js.map +1 -1
  73. package/servers/dashboard/dist/skills/mapping.d.ts +0 -3
  74. package/servers/dashboard/dist/skills/mapping.d.ts.map +1 -1
  75. package/servers/dashboard/dist/skills/mapping.js +0 -18
  76. package/servers/dashboard/dist/skills/mapping.js.map +1 -1
  77. package/servers/dashboard/dist/skills/registry.d.ts.map +1 -1
  78. package/servers/dashboard/dist/skills/registry.js +0 -1
  79. package/servers/dashboard/dist/skills/registry.js.map +1 -1
  80. package/servers/dashboard/dist/tests/adapters.test.d.ts +2 -0
  81. package/servers/dashboard/dist/tests/adapters.test.d.ts.map +1 -0
  82. package/servers/dashboard/dist/tests/adapters.test.js +180 -0
  83. package/servers/dashboard/dist/tests/adapters.test.js.map +1 -0
  84. package/servers/dashboard/dist/tests/lib-helpers.test.d.ts +2 -0
  85. package/servers/dashboard/dist/tests/lib-helpers.test.d.ts.map +1 -0
  86. package/servers/dashboard/dist/tests/lib-helpers.test.js +123 -0
  87. package/servers/dashboard/dist/tests/lib-helpers.test.js.map +1 -0
  88. package/servers/dashboard/dist/tests/shim.test.js +88 -2
  89. package/servers/dashboard/dist/tests/shim.test.js.map +1 -1
  90. package/servers/dashboard/dist/types.d.ts +5 -2
  91. package/servers/dashboard/dist/types.d.ts.map +1 -1
  92. package/servers/dashboard/package.json +22 -5
  93. package/servers/dashboard/src/adapters/agy.ts +136 -0
  94. package/servers/dashboard/src/adapters/codex.ts +2 -0
  95. package/servers/dashboard/src/adapters/kimi.ts +11 -1
  96. package/servers/dashboard/src/adapters/shim.test.ts +57 -4
  97. package/servers/dashboard/src/adapters/shim.ts +31 -11
  98. package/servers/dashboard/src/lib/constants.ts +44 -0
  99. package/servers/dashboard/src/lib/format.ts +44 -0
  100. package/servers/dashboard/src/lib/graph.ts +69 -0
  101. package/servers/dashboard/src/lib/invocations.test.ts +70 -0
  102. package/servers/dashboard/src/lib/invocations.ts +172 -0
  103. package/servers/dashboard/src/lib/paths.ts +35 -0
  104. package/servers/dashboard/src/presenter.ts +2 -0
  105. package/servers/dashboard/src/server.ts +5 -1
  106. package/servers/dashboard/src/skills/infer.test.ts +11 -3
  107. package/servers/dashboard/src/skills/infer.ts +1 -8
  108. package/servers/dashboard/src/skills/mapping.ts +0 -20
  109. package/servers/dashboard/src/skills/registry.ts +0 -1
  110. package/servers/dashboard/src/tests/adapters.test.ts +198 -0
  111. package/servers/dashboard/src/tests/lib-helpers.test.ts +133 -0
  112. package/servers/dashboard/src/tests/shim.test.ts +110 -2
  113. package/servers/dashboard/src/types.ts +5 -3
  114. package/servers/dashboard/ui/index.html +15 -0
  115. package/servers/dashboard/ui/postcss.config.js +6 -0
  116. package/servers/dashboard/ui/src/App.tsx +360 -0
  117. package/servers/dashboard/ui/src/components/ActiveSkillPanel.tsx +69 -0
  118. package/servers/dashboard/ui/src/components/ActivityGraph.tsx +74 -0
  119. package/servers/dashboard/ui/src/components/CommandPalette.tsx +200 -0
  120. package/servers/dashboard/ui/src/components/FileActivity.tsx +20 -0
  121. package/servers/dashboard/ui/src/components/FileDiff.tsx +68 -0
  122. package/servers/dashboard/ui/src/components/FileList.tsx +64 -0
  123. package/servers/dashboard/ui/src/components/FilterBar.tsx +208 -0
  124. package/servers/dashboard/ui/src/components/Network3D.tsx +178 -0
  125. package/servers/dashboard/ui/src/components/SessionSelector.tsx +95 -0
  126. package/servers/dashboard/ui/src/components/Sidebar.tsx +110 -0
  127. package/servers/dashboard/ui/src/components/TelemetryPanel.tsx +57 -0
  128. package/servers/dashboard/ui/src/components/Timeline.tsx +57 -0
  129. package/servers/dashboard/ui/src/components/TimelineRow.tsx +112 -0
  130. package/servers/dashboard/ui/src/components/TopBar.tsx +116 -0
  131. package/servers/dashboard/ui/src/components/ViewHeader.tsx +19 -0
  132. package/servers/dashboard/ui/src/components/ui/Icon.tsx +105 -0
  133. package/servers/dashboard/ui/src/components/ui/StatusBadge.tsx +19 -0
  134. package/servers/dashboard/ui/src/components/views/FilesView.tsx +23 -0
  135. package/servers/dashboard/ui/src/components/views/NetworkView.tsx +20 -0
  136. package/servers/dashboard/ui/src/components/views/Overview.tsx +135 -0
  137. package/servers/dashboard/ui/src/components/views/SessionsView.tsx +84 -0
  138. package/servers/dashboard/ui/src/components/views/SettingsView.tsx +138 -0
  139. package/servers/dashboard/ui/src/components/views/SkillsView.tsx +92 -0
  140. package/servers/dashboard/ui/src/components/views/TimelineView.tsx +46 -0
  141. package/servers/dashboard/ui/src/contexts/FilterContext.tsx +41 -0
  142. package/servers/dashboard/ui/src/contexts/PinnedSessionsContext.tsx +80 -0
  143. package/servers/dashboard/ui/src/contexts/SettingsContext.tsx +60 -0
  144. package/servers/dashboard/ui/src/hooks/useCommandPalette.ts +36 -0
  145. package/servers/dashboard/ui/src/hooks/useKeyboardShortcut.ts +38 -0
  146. package/servers/dashboard/ui/src/hooks/useNow.ts +12 -0
  147. package/servers/dashboard/ui/src/hooks/useReducedMotion.ts +15 -0
  148. package/servers/dashboard/ui/src/hooks/useSessions.ts +64 -0
  149. package/servers/dashboard/ui/src/hooks/useTheme.ts +30 -0
  150. package/servers/dashboard/ui/src/hooks/useViewport.ts +19 -0
  151. package/servers/dashboard/ui/src/hooks/useWebSocket.ts +118 -0
  152. package/servers/dashboard/ui/src/lib/export.test.ts +33 -0
  153. package/servers/dashboard/ui/src/lib/export.ts +39 -0
  154. package/servers/dashboard/ui/src/lib/filter.test.ts +95 -0
  155. package/servers/dashboard/ui/src/lib/filter.ts +178 -0
  156. package/servers/dashboard/ui/src/lib/format.test.ts +25 -0
  157. package/servers/dashboard/ui/src/lib/search.test.ts +52 -0
  158. package/servers/dashboard/ui/src/lib/search.ts +60 -0
  159. package/servers/dashboard/ui/src/lib/settings.test.ts +50 -0
  160. package/servers/dashboard/ui/src/lib/settings.ts +56 -0
  161. package/servers/dashboard/ui/src/lib/types.ts +124 -0
  162. package/servers/dashboard/ui/src/main.tsx +19 -0
  163. package/servers/dashboard/ui/src/styles/index.css +155 -0
  164. package/servers/dashboard/ui/tailwind.config.js +45 -0
  165. package/servers/dashboard/ui/tsconfig.json +33 -0
  166. package/servers/dashboard/ui/tsconfig.node.json +10 -0
  167. package/servers/dashboard/ui/vite.config.ts +37 -0
  168. package/servers/dashboard/ui/vitest.config.ts +8 -0
  169. package/skills/accessibility-auditor/SKILL.md +0 -20
  170. package/skills/architect/SKILL.md +0 -45
  171. package/skills/designer/SKILL.md +0 -30
  172. package/skills/docs-writer/SKILL.md +0 -13
  173. package/skills/engineer/SKILL.md +0 -30
  174. package/skills/maintainer/SKILL.md +0 -20
  175. package/skills/orchestrator/SKILL.md +0 -13
  176. package/skills/product-manager/SKILL.md +0 -20
  177. package/skills/researcher/SKILL.md +0 -20
  178. package/skills/reviewer/SKILL.md +0 -30
  179. package/skills/security-guard/SKILL.md +0 -20
  180. package/skills/shipper/SKILL.md +0 -33
  181. package/skills/tester/SKILL.md +0 -20
  182. package/packages/cli/dist/mcp.d.ts +0 -28
  183. package/packages/cli/dist/mcp.d.ts.map +0 -1
  184. package/packages/cli/dist/mcp.js +0 -148
  185. package/packages/cli/dist/mcp.js.map +0 -1
  186. package/packages/cli/dist/tests/mcp.test.d.ts +0 -2
  187. package/packages/cli/dist/tests/mcp.test.d.ts.map +0 -1
  188. package/packages/cli/dist/tests/mcp.test.js +0 -232
  189. package/packages/cli/dist/tests/mcp.test.js.map +0 -1
  190. package/references/obsidian-mcp-usage.md +0 -190
  191. package/servers/dashboard/public/app.js +0 -516
  192. package/servers/dashboard/public/index.html +0 -96
  193. package/servers/dashboard/public/styles.css +0 -819
  194. package/servers/obsidian-mcp/README.md +0 -82
  195. package/servers/obsidian-mcp/pyproject.toml +0 -32
  196. package/servers/obsidian-mcp/src/obsidian_mcp/__init__.py +0 -0
  197. package/servers/obsidian-mcp/src/obsidian_mcp/config.py +0 -47
  198. package/servers/obsidian-mcp/src/obsidian_mcp/indexer/__init__.py +0 -0
  199. package/servers/obsidian-mcp/src/obsidian_mcp/indexer/embeddings.py +0 -105
  200. package/servers/obsidian-mcp/src/obsidian_mcp/indexer/indexer.py +0 -79
  201. package/servers/obsidian-mcp/src/obsidian_mcp/indexer/store.py +0 -141
  202. package/servers/obsidian-mcp/src/obsidian_mcp/indexer/sync.py +0 -37
  203. package/servers/obsidian-mcp/src/obsidian_mcp/learning/__init__.py +0 -0
  204. package/servers/obsidian-mcp/src/obsidian_mcp/learning/detector.py +0 -66
  205. package/servers/obsidian-mcp/src/obsidian_mcp/learning/note_generator.py +0 -40
  206. package/servers/obsidian-mcp/src/obsidian_mcp/main.py +0 -4
  207. package/servers/obsidian-mcp/src/obsidian_mcp/models.py +0 -42
  208. package/servers/obsidian-mcp/src/obsidian_mcp/privacy/__init__.py +0 -0
  209. package/servers/obsidian-mcp/src/obsidian_mcp/privacy/filter.py +0 -68
  210. package/servers/obsidian-mcp/src/obsidian_mcp/rag/__init__.py +0 -0
  211. package/servers/obsidian-mcp/src/obsidian_mcp/rag/engine.py +0 -50
  212. package/servers/obsidian-mcp/src/obsidian_mcp/rag/graph_search.py +0 -55
  213. package/servers/obsidian-mcp/src/obsidian_mcp/rag/text_search.py +0 -37
  214. package/servers/obsidian-mcp/src/obsidian_mcp/rag/vector_search.py +0 -118
  215. package/servers/obsidian-mcp/src/obsidian_mcp/server.py +0 -61
  216. package/servers/obsidian-mcp/src/obsidian_mcp/tools/__init__.py +0 -0
  217. package/servers/obsidian-mcp/src/obsidian_mcp/tools/create.py +0 -43
  218. package/servers/obsidian-mcp/src/obsidian_mcp/tools/delete.py +0 -16
  219. package/servers/obsidian-mcp/src/obsidian_mcp/tools/learn.py +0 -42
  220. package/servers/obsidian-mcp/src/obsidian_mcp/tools/list.py +0 -16
  221. package/servers/obsidian-mcp/src/obsidian_mcp/tools/read.py +0 -15
  222. package/servers/obsidian-mcp/src/obsidian_mcp/tools/registry.py +0 -130
  223. package/servers/obsidian-mcp/src/obsidian_mcp/tools/related.py +0 -20
  224. package/servers/obsidian-mcp/src/obsidian_mcp/tools/search.py +0 -26
  225. package/servers/obsidian-mcp/src/obsidian_mcp/tools/sync.py +0 -22
  226. package/servers/obsidian-mcp/src/obsidian_mcp/tools/update.py +0 -34
  227. package/servers/obsidian-mcp/src/obsidian_mcp/vault/__init__.py +0 -0
  228. package/servers/obsidian-mcp/src/obsidian_mcp/vault/parser.py +0 -82
  229. package/servers/obsidian-mcp/src/obsidian_mcp/vault/repository.py +0 -68
  230. package/servers/obsidian-mcp/src/obsidian_mcp/vault/writer.py +0 -61
  231. package/servers/obsidian-mcp/tests/conftest.py +0 -39
  232. package/servers/obsidian-mcp/tests/test_async_tools.py +0 -87
  233. package/servers/obsidian-mcp/tests/test_edge_cases.py +0 -59
  234. package/servers/obsidian-mcp/tests/test_indexer.py +0 -27
  235. package/servers/obsidian-mcp/tests/test_integration.py +0 -90
  236. package/servers/obsidian-mcp/tests/test_learning.py +0 -34
  237. package/servers/obsidian-mcp/tests/test_privacy.py +0 -31
  238. package/servers/obsidian-mcp/tests/test_privacy_config.py +0 -44
  239. package/servers/obsidian-mcp/tests/test_rag.py +0 -64
  240. package/servers/obsidian-mcp/tests/test_read_raw.py +0 -37
  241. package/servers/obsidian-mcp/tests/test_tfidf_fallback.py +0 -54
  242. package/servers/obsidian-mcp/tests/test_tools.py +0 -108
  243. package/servers/obsidian-mcp/tests/test_vault.py +0 -103
  244. package/servers/obsidian-mcp/tests/test_writer.py +0 -139
  245. package/skills/obsidian-second-brain/SKILL.md +0 -298
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeAgy = normalizeAgy;
4
+ const EVENT_MAP = {
5
+ PreToolUse: 'tool_start',
6
+ PostToolUse: 'tool_end',
7
+ };
8
+ const TOOL_NAME_MAP = {
9
+ run_command: 'Bash',
10
+ view_file: 'Read',
11
+ write_to_file: 'Write',
12
+ replace_file_content: 'Edit',
13
+ multi_replace_file_content: 'Edit',
14
+ list_dir: 'Glob',
15
+ find_by_name: 'Glob',
16
+ grep_search: 'Grep',
17
+ search_web: 'WebSearch',
18
+ read_url_content: 'FetchURL',
19
+ ask_question: 'AskUserQuestion',
20
+ generate_image: 'ReadMediaFile',
21
+ manage_task: 'Task',
22
+ invoke_subagent: 'Agent',
23
+ define_subagent: 'Agent',
24
+ manage_subagents: 'Agent',
25
+ send_message: 'Agent',
26
+ schedule: 'CronCreate',
27
+ list_permissions: 'Bash',
28
+ ask_permission: 'AskUserQuestion',
29
+ };
30
+ const DETAIL_FIELDS = {
31
+ Bash: ['CommandLine'],
32
+ Read: ['AbsolutePath'],
33
+ Write: ['TargetFile'],
34
+ Edit: ['TargetFile'],
35
+ Glob: ['DirectoryPath', 'Pattern'],
36
+ Grep: ['Query'],
37
+ WebSearch: ['query'],
38
+ FetchURL: ['Url'],
39
+ AskUserQuestion: [],
40
+ ReadMediaFile: [],
41
+ Task: [],
42
+ Agent: [],
43
+ CronCreate: [],
44
+ };
45
+ function normalizeToolName(name) {
46
+ if (!name)
47
+ return undefined;
48
+ return TOOL_NAME_MAP[name] || name;
49
+ }
50
+ function extractDetail(tool, args) {
51
+ if (!args || typeof args !== 'object')
52
+ return undefined;
53
+ const fields = tool ? DETAIL_FIELDS[tool] || [] : [];
54
+ for (const field of fields) {
55
+ const value = args[field];
56
+ if (typeof value === 'string' && value.length > 0) {
57
+ return value;
58
+ }
59
+ }
60
+ if (tool && fields.length > 0) {
61
+ return undefined;
62
+ }
63
+ const serialized = JSON.stringify(args);
64
+ if (serialized === '{}')
65
+ return undefined;
66
+ return serialized.length > 200 ? `${serialized.slice(0, 197)}...` : serialized;
67
+ }
68
+ const SKILL_PATH_RE = /[\\/]skills[\\/]([^\\/]+)[\\/]SKILL\.md$/i;
69
+ function inferSkillFromReadPath(tool, args) {
70
+ if (tool !== 'Read' || !args || typeof args !== 'object')
71
+ return undefined;
72
+ const rawPath = args.AbsolutePath || args.path || args.filePath || args.file_path;
73
+ if (typeof rawPath !== 'string')
74
+ return undefined;
75
+ const match = rawPath.match(SKILL_PATH_RE);
76
+ return match ? match[1] : undefined;
77
+ }
78
+ function generateId(sessionId, stepIdx) {
79
+ const suffix = stepIdx !== undefined ? String(stepIdx) : `${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;
80
+ return `agy:${sessionId}:${suffix}`;
81
+ }
82
+ function normalizeAgy(payload) {
83
+ const eventName = payload.hook_event_name || 'PostToolUse';
84
+ const event_type = EVENT_MAP[eventName];
85
+ if (!event_type) {
86
+ return undefined;
87
+ }
88
+ const session_id = payload.conversationId || payload.sessionId || payload.session_id || 'unknown';
89
+ const stepIdx = typeof payload.stepIdx === 'number' ? payload.stepIdx : undefined;
90
+ const toolCall = payload.toolCall;
91
+ const rawToolName = toolCall?.name || payload.toolName;
92
+ const tool = normalizeToolName(rawToolName);
93
+ const args = toolCall?.args;
94
+ const skill = inferSkillFromReadPath(tool, args);
95
+ return {
96
+ id: generateId(session_id, stepIdx),
97
+ timestamp: Date.now(),
98
+ source: 'agy',
99
+ session_id,
100
+ event_type,
101
+ tool,
102
+ skill,
103
+ detail: extractDetail(tool, args),
104
+ input: args,
105
+ output: payload.error !== undefined ? { error: payload.error } : undefined,
106
+ };
107
+ }
108
+ //# sourceMappingURL=agy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agy.js","sourceRoot":"","sources":["../../src/adapters/agy.ts"],"names":[],"mappings":";;AA4GA,oCA2BC;AApHD,MAAM,SAAS,GAA8B;IAC3C,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,UAAU;CACxB,CAAC;AAEF,MAAM,aAAa,GAA2B;IAC5C,WAAW,EAAE,MAAM;IACnB,SAAS,EAAE,MAAM;IACjB,aAAa,EAAE,OAAO;IACtB,oBAAoB,EAAE,MAAM;IAC5B,0BAA0B,EAAE,MAAM;IAClC,QAAQ,EAAE,MAAM;IAChB,YAAY,EAAE,MAAM;IACpB,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,WAAW;IACvB,gBAAgB,EAAE,UAAU;IAC5B,YAAY,EAAE,iBAAiB;IAC/B,cAAc,EAAE,eAAe;IAC/B,WAAW,EAAE,MAAM;IACnB,eAAe,EAAE,OAAO;IACxB,eAAe,EAAE,OAAO;IACxB,gBAAgB,EAAE,OAAO;IACzB,YAAY,EAAE,OAAO;IACrB,QAAQ,EAAE,YAAY;IACtB,gBAAgB,EAAE,MAAM;IACxB,cAAc,EAAE,iBAAiB;CAClC,CAAC;AAEF,MAAM,aAAa,GAA6B;IAC9C,IAAI,EAAE,CAAC,aAAa,CAAC;IACrB,IAAI,EAAE,CAAC,cAAc,CAAC;IACtB,KAAK,EAAE,CAAC,YAAY,CAAC;IACrB,IAAI,EAAE,CAAC,YAAY,CAAC;IACpB,IAAI,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC;IAClC,IAAI,EAAE,CAAC,OAAO,CAAC;IACf,SAAS,EAAE,CAAC,OAAO,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,eAAe,EAAE,EAAE;IACnB,aAAa,EAAE,EAAE;IACjB,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,UAAU,EAAE,EAAE;CACf,CAAC;AAEF,SAAS,iBAAiB,CAAC,IAAwB;IACjD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACrC,CAAC;AAED,SAAS,aAAa,CAAC,IAAwB,EAAE,IAAyC;IACxF,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAExD,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACrD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC1C,OAAO,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AACjF,CAAC;AAED,MAAM,aAAa,GAAG,2CAA2C,CAAC;AAElE,SAAS,sBAAsB,CAC7B,IAAwB,EACxB,IAAyC;IAEzC,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAE3E,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC;IAClF,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAElD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC3C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC;AAED,SAAS,UAAU,CAAC,SAAiB,EAAE,OAA2B;IAChE,MAAM,MAAM,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACnH,OAAO,OAAO,SAAS,IAAI,MAAM,EAAE,CAAC;AACtC,CAAC;AAED,SAAgB,YAAY,CAAC,OAAuB;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,eAAe,IAAI,aAAa,CAAC;IAC3D,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,IAAI,SAAS,CAAC;IAClG,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAClF,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,MAAM,WAAW,GAAG,QAAQ,EAAE,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC;IACvD,MAAM,IAAI,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,QAAQ,EAAE,IAAI,CAAC;IAC5B,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAEjD,OAAO;QACL,EAAE,EAAE,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC;QACnC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,MAAM,EAAE,KAAoB;QAC5B,UAAU;QACV,UAAU;QACV,IAAI;QACJ,KAAK;QACL,MAAM,EAAE,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC;QACjC,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS;KAC3E,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,cAAc,EAAa,MAAM,UAAU,CAAC;AAEvE,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AASD,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,cAAc,GAAG,SAAS,CAgBpF"}
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,cAAc,EAAa,MAAM,UAAU,CAAC;AAEvE,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AASD,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,cAAc,GAAG,SAAS,CAkBpF"}
@@ -21,6 +21,8 @@ function normalizeCodex(payload) {
21
21
  event_type,
22
22
  tool: payload.toolName,
23
23
  skill: payload.skill,
24
+ input: payload.toolInput,
25
+ output: payload.toolResponse,
24
26
  };
25
27
  }
26
28
  function generateId() {
@@ -1 +1 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":";;AA+BA,wCAgBC;AAvBD,MAAM,SAAS,GAA8B;IAC3C,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,UAAU;IACvB,YAAY,EAAE,eAAe;IAC7B,IAAI,EAAE,aAAa;CACpB,CAAC;AAEF,SAAgB,cAAc,CAAC,OAAyB;IACtD,MAAM,SAAS,GAAG,OAAO,CAAC,eAAe,IAAI,aAAa,CAAC;IAC3D,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,EAAE,EAAE,UAAU,EAAE;QAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,MAAM,EAAE,OAAsB;QAC9B,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,IAAI,SAAS;QAChE,UAAU;QACV,IAAI,EAAE,OAAO,CAAC,QAAQ;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC;AACJ,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACnE,CAAC"}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":";;AA+BA,wCAkBC;AAzBD,MAAM,SAAS,GAA8B;IAC3C,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,UAAU;IACvB,YAAY,EAAE,eAAe;IAC7B,IAAI,EAAE,aAAa;CACpB,CAAC;AAEF,SAAgB,cAAc,CAAC,OAAyB;IACtD,MAAM,SAAS,GAAG,OAAO,CAAC,eAAe,IAAI,aAAa,CAAC;IAC3D,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,EAAE,EAAE,UAAU,EAAE;QAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,MAAM,EAAE,OAAsB;QAC9B,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,IAAI,SAAS;QAChE,UAAU;QACV,IAAI,EAAE,OAAO,CAAC,QAAQ;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,SAAS;QACxB,MAAM,EAAE,OAAO,CAAC,YAAY;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACnE,CAAC"}
@@ -5,7 +5,7 @@ export interface KimiHookPayload {
5
5
  cwd: string;
6
6
  tool_name?: string;
7
7
  tool_input?: Record<string, unknown>;
8
- tool_response?: Record<string, unknown>;
8
+ tool_output?: string | Record<string, unknown>;
9
9
  stop_reason?: string;
10
10
  usage?: unknown;
11
11
  skill?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"kimi.d.ts","sourceRoot":"","sources":["../../src/adapters/kimi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,cAAc,EAAa,MAAM,UAAU,CAAC;AAEvE,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAUD,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,GAAG,SAAS,CAelF"}
1
+ {"version":3,"file":"kimi.d.ts","sourceRoot":"","sources":["../../src/adapters/kimi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,cAAc,EAAa,MAAM,UAAU,CAAC;AAEvE,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAUD,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,GAAG,SAAS,CAiBlF"}
@@ -21,8 +21,17 @@ function normalizeKimi(payload) {
21
21
  event_type,
22
22
  tool: payload.tool_name,
23
23
  skill: payload.skill,
24
+ input: payload.tool_input,
25
+ output: normalizeOutput(payload.tool_output),
24
26
  };
25
27
  }
28
+ function normalizeOutput(output) {
29
+ if (output === undefined)
30
+ return undefined;
31
+ if (typeof output === 'string')
32
+ return { output };
33
+ return output;
34
+ }
26
35
  function generateId() {
27
36
  return `${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;
28
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"kimi.js","sourceRoot":"","sources":["../../src/adapters/kimi.ts"],"names":[],"mappings":";;AAsBA,sCAeC;AAvBD,MAAM,SAAS,GAA8B;IAC3C,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,UAAU;IACvB,YAAY,EAAE,eAAe;IAC7B,UAAU,EAAE,aAAa;IACzB,IAAI,EAAE,aAAa;CACpB,CAAC;AAEF,SAAgB,aAAa,CAAC,OAAwB;IACpD,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACtD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,EAAE,EAAE,UAAU,EAAE;QAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,MAAM,EAAE,MAAqB;QAC7B,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,SAAS;QAC3C,UAAU;QACV,IAAI,EAAE,OAAO,CAAC,SAAS;QACvB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC;AACJ,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACnE,CAAC"}
1
+ {"version":3,"file":"kimi.js","sourceRoot":"","sources":["../../src/adapters/kimi.ts"],"names":[],"mappings":";;AAsBA,sCAiBC;AAzBD,MAAM,SAAS,GAA8B;IAC3C,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,UAAU;IACvB,YAAY,EAAE,eAAe;IAC7B,UAAU,EAAE,aAAa;IACzB,IAAI,EAAE,aAAa;CACpB,CAAC;AAEF,SAAgB,aAAa,CAAC,OAAwB;IACpD,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACtD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,EAAE,EAAE,UAAU,EAAE;QAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,MAAM,EAAE,MAAqB;QAC7B,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,SAAS;QAC3C,UAAU;QACV,IAAI,EAAE,OAAO,CAAC,SAAS;QACvB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,UAAU;QACzB,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC;KAC7C,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,MAAoD;IAEpD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACnE,CAAC"}
@@ -3,6 +3,6 @@ export declare function getDefaultSkill(argv: string[]): string | undefined;
3
3
  export declare function detectSource(argv: string[]): AgentSource | undefined;
4
4
  export declare function normalizePayload(source: AgentSource, raw: unknown): DashboardEvent | undefined;
5
5
  export declare function buildEvent(source: AgentSource, raw: Record<string, unknown>, defaultSkill?: string): DashboardEvent | undefined;
6
- export declare function postEvent(event: DashboardEvent): void;
6
+ export declare function postEvent(event: DashboardEvent, onDone?: () => void): void;
7
7
  export declare function runShim(): void;
8
8
  //# sourceMappingURL=shim.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shim.d.ts","sourceRoot":"","sources":["../../src/adapters/shim.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAO5D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAOlE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,GAAG,SAAS,CAepE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,GAAG,cAAc,GAAG,SAAS,CAe9F;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,YAAY,CAAC,EAAE,MAAM,GACpB,cAAc,GAAG,SAAS,CA0B5B;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAwBrD;AAED,wBAAgB,OAAO,IAAI,IAAI,CA0B9B"}
1
+ {"version":3,"file":"shim.d.ts","sourceRoot":"","sources":["../../src/adapters/shim.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAQ5D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAOlE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,GAAG,SAAS,CAgBpE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,GAAG,cAAc,GAAG,SAAS,CAiB9F;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,YAAY,CAAC,EAAE,MAAM,GACpB,cAAc,GAAG,SAAS,CA4B5B;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAqC1E;AAED,wBAAgB,OAAO,IAAI,IAAI,CA2B9B"}
@@ -12,6 +12,7 @@ exports.runShim = runShim;
12
12
  const node_http_1 = __importDefault(require("node:http"));
13
13
  const kimi_1 = require("./kimi");
14
14
  const codex_1 = require("./codex");
15
+ const agy_1 = require("./agy");
15
16
  const sanitize_1 = require("../filters/sanitize");
16
17
  const DEFAULT_SERVER_URL = 'http://127.0.0.1:7890';
17
18
  function getDefaultSkill(argv) {
@@ -24,14 +25,15 @@ function getDefaultSkill(argv) {
24
25
  }
25
26
  function detectSource(argv) {
26
27
  const arg = argv[2];
27
- if (arg === 'kimi' || arg === 'codex' || arg === 'opencode' || arg === 'log-watcher') {
28
+ if (arg === 'kimi' || arg === 'codex' || arg === 'opencode' || arg === 'log-watcher' || arg === 'agy') {
28
29
  return arg;
29
30
  }
30
31
  const env = process.env.CREWLOOP_DASHBOARD_SOURCE;
31
32
  if (env === 'kimi' ||
32
33
  env === 'codex' ||
33
34
  env === 'opencode' ||
34
- env === 'log-watcher') {
35
+ env === 'log-watcher' ||
36
+ env === 'agy') {
35
37
  return env;
36
38
  }
37
39
  return undefined;
@@ -46,6 +48,8 @@ function normalizePayload(source, raw) {
46
48
  return (0, kimi_1.normalizeKimi)(payload);
47
49
  case 'codex':
48
50
  return (0, codex_1.normalizeCodex)(payload);
51
+ case 'agy':
52
+ return (0, agy_1.normalizeAgy)(payload);
49
53
  default:
50
54
  return undefined;
51
55
  }
@@ -58,23 +62,33 @@ function buildEvent(source, raw, defaultSkill) {
58
62
  if (base.event_type === 'session_start' && defaultSkill) {
59
63
  base.skill = defaultSkill;
60
64
  }
65
+ else if (source === 'agy' && defaultSkill && !base.skill) {
66
+ base.skill = defaultSkill;
67
+ }
61
68
  const isPost = base.event_type === 'tool_end';
62
69
  const sanitized = (0, sanitize_1.sanitize)({
63
70
  tool_name: base.tool || '',
64
- tool_input: (raw.tool_input || raw.toolInput),
65
- tool_response: (raw.tool_response || raw.toolResponse),
71
+ tool_input: (base.input || raw.tool_input || raw.toolInput),
72
+ tool_response: (base.output || raw.tool_response || raw.toolResponse),
66
73
  }, isPost ? 'post' : 'pre');
67
74
  return {
68
75
  ...base,
69
- detail: sanitized.detail,
76
+ detail: sanitized.detail ?? base.detail,
70
77
  status: sanitized.status,
71
78
  duration_ms: sanitized.duration_ms,
72
79
  };
73
80
  }
74
- function postEvent(event) {
81
+ function postEvent(event, onDone) {
75
82
  const serverUrl = process.env.CREWLOOP_DASHBOARD_URL || DEFAULT_SERVER_URL;
76
83
  const body = JSON.stringify(event);
77
84
  const url = new URL('/event', serverUrl);
85
+ let done = false;
86
+ function finish() {
87
+ if (done)
88
+ return;
89
+ done = true;
90
+ onDone?.();
91
+ }
78
92
  const req = node_http_1.default.request({
79
93
  hostname: url.hostname,
80
94
  port: url.port,
@@ -85,16 +99,22 @@ function postEvent(event) {
85
99
  'Content-Length': Buffer.byteLength(body),
86
100
  },
87
101
  timeout: 300,
88
- }, () => { });
89
- req.on('error', () => { });
90
- req.on('timeout', () => req.destroy());
102
+ }, (res) => {
103
+ res.resume();
104
+ finish();
105
+ });
106
+ req.on('error', finish);
107
+ req.on('timeout', () => {
108
+ req.destroy();
109
+ finish();
110
+ });
91
111
  req.write(body);
92
112
  req.end();
93
113
  }
94
114
  function runShim() {
95
115
  const source = detectSource(process.argv);
96
116
  if (!source) {
97
- process.stderr.write('crewloop-shim: unknown source. Use: crewloop-shim <kimi|codex>\n');
117
+ process.stderr.write('crewloop-shim: unknown source. Use: crewloop-shim <kimi|codex|agy>\n');
98
118
  process.exit(1);
99
119
  }
100
120
  const defaultSkill = getDefaultSkill(process.argv);
@@ -108,7 +128,8 @@ function runShim() {
108
128
  const payload = JSON.parse(raw);
109
129
  const event = buildEvent(source, payload, defaultSkill);
110
130
  if (event) {
111
- postEvent(event);
131
+ postEvent(event, () => process.exit(0));
132
+ return;
112
133
  }
113
134
  }
114
135
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"shim.js","sourceRoot":"","sources":["../../src/adapters/shim.ts"],"names":[],"mappings":";;;;;AAQA,0CAOC;AAED,oCAeC;AAED,4CAeC;AAED,gCA8BC;AAED,8BAwBC;AAED,0BA0BC;AAvID,0DAA6B;AAE7B,iCAA6D;AAC7D,mCAAgE;AAChE,kDAA+C;AAE/C,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;AAEnD,SAAgB,eAAe,CAAC,IAAc;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC5C,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACvB,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAC/C,OAAO,GAAG,IAAI,SAAS,CAAC;AAC1B,CAAC;AAED,SAAgB,YAAY,CAAC,IAAc;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;QACrF,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;IAClD,IACE,GAAG,KAAK,MAAM;QACd,GAAG,KAAK,OAAO;QACf,GAAG,KAAK,UAAU;QAClB,GAAG,KAAK,aAAa,EACrB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,gBAAgB,CAAC,MAAmB,EAAE,GAAY;IAChE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,GAA8B,CAAC;IAE/C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,IAAA,oBAAa,EAAC,OAAqC,CAAC,CAAC;QAC9D,KAAK,OAAO;YACV,OAAO,IAAA,sBAAc,EAAC,OAAsC,CAAC,CAAC;QAChE;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAgB,UAAU,CACxB,MAAmB,EACnB,GAA4B,EAC5B,YAAqB;IAErB,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,KAAK,eAAe,IAAI,YAAY,EAAE,CAAC;QACxD,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;IAC5B,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC;IAC9C,MAAM,SAAS,GAAG,IAAA,mBAAQ,EACxB;QACE,SAAS,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;QAC1B,UAAU,EAAE,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,SAAS,CAAwC;QACpF,aAAa,EAAE,CAAC,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,YAAY,CAAwC;KAC9F,EACD,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CACxB,CAAC;IAEF,OAAO;QACL,GAAG,IAAI;QACP,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,WAAW,EAAE,SAAS,CAAC,WAAW;KACnC,CAAC;AACJ,CAAC;AAED,SAAgB,SAAS,CAAC,KAAqB;IAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,kBAAkB,CAAC;IAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAEnC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,mBAAI,CAAC,OAAO,CACtB;QACE,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,QAAQ;QAClB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;SAC1C;QACD,OAAO,EAAE,GAAG;KACb,EACD,GAAG,EAAE,GAAE,CAAC,CACT,CAAC;IAEF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC1B,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACvC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,GAAG,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC;AAED,SAAgB,OAAO;IACrB,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACzF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;QACjC,GAAG,IAAI,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;QAC3B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YACxD,IAAI,KAAK,EAAE,CAAC;gBACV,SAAS,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,+CAA+C;QACjD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"shim.js","sourceRoot":"","sources":["../../src/adapters/shim.ts"],"names":[],"mappings":";;;;;AASA,0CAOC;AAED,oCAgBC;AAED,4CAiBC;AAED,gCAgCC;AAED,8BAqCC;AAED,0BA2BC;AA3JD,0DAA6B;AAE7B,iCAA6D;AAC7D,mCAAgE;AAChE,+BAA0D;AAC1D,kDAA+C;AAE/C,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;AAEnD,SAAgB,eAAe,CAAC,IAAc;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC5C,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACvB,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAC/C,OAAO,GAAG,IAAI,SAAS,CAAC;AAC1B,CAAC;AAED,SAAgB,YAAY,CAAC,IAAc;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,aAAa,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;QACtG,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;IAClD,IACE,GAAG,KAAK,MAAM;QACd,GAAG,KAAK,OAAO;QACf,GAAG,KAAK,UAAU;QAClB,GAAG,KAAK,aAAa;QACrB,GAAG,KAAK,KAAK,EACb,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,gBAAgB,CAAC,MAAmB,EAAE,GAAY;IAChE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,GAA8B,CAAC;IAE/C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,IAAA,oBAAa,EAAC,OAAqC,CAAC,CAAC;QAC9D,KAAK,OAAO;YACV,OAAO,IAAA,sBAAc,EAAC,OAAsC,CAAC,CAAC;QAChE,KAAK,KAAK;YACR,OAAO,IAAA,kBAAY,EAAC,OAAoC,CAAC,CAAC;QAC5D;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAgB,UAAU,CACxB,MAAmB,EACnB,GAA4B,EAC5B,YAAqB;IAErB,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,KAAK,eAAe,IAAI,YAAY,EAAE,CAAC;QACxD,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;IAC5B,CAAC;SAAM,IAAI,MAAM,KAAK,KAAK,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3D,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;IAC5B,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC;IAC9C,MAAM,SAAS,GAAG,IAAA,mBAAQ,EACxB;QACE,SAAS,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;QAC1B,UAAU,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,SAAS,CAAwC;QAClG,aAAa,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,YAAY,CAAwC;KAC7G,EACD,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CACxB,CAAC;IAEF,OAAO;QACL,GAAG,IAAI;QACP,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM;QACvC,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,WAAW,EAAE,SAAS,CAAC,WAAW;KACnC,CAAC;AACJ,CAAC;AAED,SAAgB,SAAS,CAAC,KAAqB,EAAE,MAAmB;IAClE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,kBAAkB,CAAC;IAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAEnC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACzC,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,SAAS,MAAM;QACb,IAAI,IAAI;YAAE,OAAO;QACjB,IAAI,GAAG,IAAI,CAAC;QACZ,MAAM,EAAE,EAAE,CAAC;IACb,CAAC;IAED,MAAM,GAAG,GAAG,mBAAI,CAAC,OAAO,CACtB;QACE,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,QAAQ;QAClB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;SAC1C;QACD,OAAO,EAAE,GAAG;KACb,EACD,CAAC,GAAG,EAAE,EAAE;QACN,GAAG,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,EAAE,CAAC;IACX,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxB,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACrB,GAAG,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,EAAE,CAAC;IACX,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,GAAG,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC;AAED,SAAgB,OAAO;IACrB,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;QAC7F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;QACjC,GAAG,IAAI,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;QAC3B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YACxD,IAAI,KAAK,EAAE,CAAC;gBACV,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxC,OAAO;YACT,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,+CAA+C;QACjD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -47,18 +47,18 @@ const shim_1 = require("./shim");
47
47
  strict_1.default.equal(event?.detail, 'README.md');
48
48
  strict_1.default.equal(event?.status, 'running');
49
49
  });
50
- (0, node_test_1.it)('builds Kimi PostToolUse event with status', () => {
50
+ (0, node_test_1.it)('builds Kimi PostToolUse event with input and wrapped output', () => {
51
51
  const event = (0, shim_1.buildEvent)('kimi', {
52
52
  hook_event_name: 'PostToolUse',
53
53
  session_id: 'sess-1',
54
54
  cwd: '/project',
55
55
  tool_name: 'Read',
56
56
  tool_input: { path: 'README.md' },
57
- tool_response: { success: true, duration_ms: 12 },
57
+ tool_output: 'README content',
58
58
  });
59
59
  strict_1.default.equal(event?.event_type, 'tool_end');
60
- strict_1.default.equal(event?.status, 'success');
61
- strict_1.default.equal(event?.duration_ms, 12);
60
+ strict_1.default.deepEqual(event?.input, { path: 'README.md' });
61
+ strict_1.default.deepEqual(event?.output, { output: 'README content' });
62
62
  });
63
63
  (0, node_test_1.it)('builds Codex event', () => {
64
64
  const event = (0, shim_1.buildEvent)('codex', {
@@ -111,5 +111,47 @@ const shim_1 = require("./shim");
111
111
  });
112
112
  strict_1.default.equal(event?.skill, 'engineer');
113
113
  });
114
+ (0, node_test_1.it)('preserves AGY detail extracted by the adapter', () => {
115
+ const event = (0, shim_1.buildEvent)('agy', {
116
+ hook_event_name: 'PreToolUse',
117
+ conversationId: 'sess-agy',
118
+ stepIdx: 0,
119
+ toolCall: {
120
+ name: 'run_command',
121
+ args: { CommandLine: 'git status', Cwd: '/project' },
122
+ },
123
+ });
124
+ strict_1.default.equal(event?.source, 'agy');
125
+ strict_1.default.equal(event?.tool, 'Bash');
126
+ strict_1.default.equal(event?.detail, 'git status');
127
+ strict_1.default.equal(event?.status, 'running');
128
+ });
129
+ (0, node_test_1.it)('applies default skill fallback to AGY tool events', () => {
130
+ const event = (0, shim_1.buildEvent)('agy', {
131
+ hook_event_name: 'PreToolUse',
132
+ conversationId: 'sess-agy-default',
133
+ stepIdx: 0,
134
+ toolCall: {
135
+ name: 'run_command',
136
+ args: { CommandLine: 'git status', Cwd: '/project' },
137
+ },
138
+ }, 'orchestrator');
139
+ strict_1.default.equal(event?.event_type, 'tool_start');
140
+ strict_1.default.equal(event?.skill, 'orchestrator');
141
+ });
142
+ (0, node_test_1.it)('prefers AGY inferred skill over default skill fallback', () => {
143
+ const event = (0, shim_1.buildEvent)('agy', {
144
+ hook_event_name: 'PreToolUse',
145
+ conversationId: 'sess-agy-inferred',
146
+ stepIdx: 0,
147
+ toolCall: {
148
+ name: 'view_file',
149
+ args: { AbsolutePath: '/home/arch/.agents/skills/engineer/SKILL.md' },
150
+ },
151
+ }, 'orchestrator');
152
+ strict_1.default.equal(event?.event_type, 'tool_start');
153
+ strict_1.default.equal(event?.tool, 'Read');
154
+ strict_1.default.equal(event?.skill, 'engineer');
155
+ });
114
156
  });
115
157
  //# sourceMappingURL=shim.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shim.test.js","sourceRoot":"","sources":["../../src/adapters/shim.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shim.test.js","sourceRoot":"","sources":["../../src/adapters/shim.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare const SKILL_ICONS: Record<string, string>;
2
+ export declare function skillIcon(skillName: string | undefined): string;
3
+ export declare function sourceIcon(source: string | undefined): string;
4
+ export declare const TYPE_COLORS: Record<string, string>;
5
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAgB9C,CAAC;AAEF,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAG/D;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAa7D;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI9C,CAAC"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TYPE_COLORS = exports.SKILL_ICONS = void 0;
4
+ exports.skillIcon = skillIcon;
5
+ exports.sourceIcon = sourceIcon;
6
+ exports.SKILL_ICONS = {
7
+ orchestrator: 'Target',
8
+ architect: 'Blueprint',
9
+ designer: 'Palette',
10
+ engineer: 'Wrench',
11
+ reviewer: 'MagnifyingGlass',
12
+ shipper: 'RocketLaunch',
13
+ 'docs-writer': 'Article',
14
+ tester: 'Flask',
15
+ 'product-manager': 'ChartBar',
16
+ maintainer: 'Toolbox',
17
+ researcher: 'Microscope',
18
+ 'security-guard': 'Shield',
19
+ 'accessibility-auditor': 'Person',
20
+ 'project-mapper': 'TreeStructure',
21
+ default: 'Circle',
22
+ };
23
+ function skillIcon(skillName) {
24
+ const key = String(skillName || '').toLowerCase().replace(/\s+/g, '-');
25
+ return exports.SKILL_ICONS[key] || exports.SKILL_ICONS.default;
26
+ }
27
+ function sourceIcon(source) {
28
+ switch (source) {
29
+ case 'kimi':
30
+ return 'ChatTeardropText';
31
+ case 'codex':
32
+ return 'Terminal';
33
+ case 'opencode':
34
+ return 'CodeBlock';
35
+ case 'log-watcher':
36
+ return 'FileText';
37
+ default:
38
+ return 'Monitor';
39
+ }
40
+ }
41
+ exports.TYPE_COLORS = {
42
+ skill: 'var(--accent)',
43
+ tool: 'var(--running)',
44
+ file: 'var(--text-secondary)',
45
+ };
46
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":";;;AAkBA,8BAGC;AAED,gCAaC;AApCY,QAAA,WAAW,GAA2B;IACjD,YAAY,EAAE,QAAQ;IACtB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,iBAAiB;IAC3B,OAAO,EAAE,cAAc;IACvB,aAAa,EAAE,SAAS;IACxB,MAAM,EAAE,OAAO;IACf,iBAAiB,EAAE,UAAU;IAC7B,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,YAAY;IACxB,gBAAgB,EAAE,QAAQ;IAC1B,uBAAuB,EAAE,QAAQ;IACjC,gBAAgB,EAAE,eAAe;IACjC,OAAO,EAAE,QAAQ;CAClB,CAAC;AAEF,SAAgB,SAAS,CAAC,SAA6B;IACrD,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACvE,OAAO,mBAAW,CAAC,GAAG,CAAC,IAAI,mBAAW,CAAC,OAAO,CAAC;AACjD,CAAC;AAED,SAAgB,UAAU,CAAC,MAA0B;IACnD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,kBAAkB,CAAC;QAC5B,KAAK,OAAO;YACV,OAAO,UAAU,CAAC;QACpB,KAAK,UAAU;YACb,OAAO,WAAW,CAAC;QACrB,KAAK,aAAa;YAChB,OAAO,UAAU,CAAC;QACpB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAEY,QAAA,WAAW,GAA2B;IACjD,KAAK,EAAE,eAAe;IACtB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,uBAAuB;CAC9B,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare function formatDuration(ms: number | undefined | null): string;
2
+ export declare function formatTime(ts: number): string;
3
+ export declare function truncate(str: string | undefined | null, n: number): string;
4
+ export declare function escapeHtml(str: unknown): string;
5
+ export declare function prettyJson(obj: unknown): string;
6
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/lib/format.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAWpE;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAQ7C;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAG1E;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAO/C;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAM/C"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatDuration = formatDuration;
4
+ exports.formatTime = formatTime;
5
+ exports.truncate = truncate;
6
+ exports.escapeHtml = escapeHtml;
7
+ exports.prettyJson = prettyJson;
8
+ function formatDuration(ms) {
9
+ if (!ms || ms < 0)
10
+ return '00:00';
11
+ const totalSeconds = Math.floor(ms / 1000);
12
+ const minutes = Math.floor(totalSeconds / 60).toString().padStart(2, '0');
13
+ const seconds = (totalSeconds % 60).toString().padStart(2, '0');
14
+ if (totalSeconds < 3600)
15
+ return `${minutes}:${seconds}`;
16
+ const hours = Math.floor(totalSeconds / 3600);
17
+ const mins = Math.floor((totalSeconds % 3600) / 60)
18
+ .toString()
19
+ .padStart(2, '0');
20
+ return `${hours}:${mins}:${seconds}`;
21
+ }
22
+ function formatTime(ts) {
23
+ const d = new Date(ts);
24
+ return d.toLocaleTimeString(undefined, {
25
+ hour12: false,
26
+ hour: '2-digit',
27
+ minute: '2-digit',
28
+ second: '2-digit',
29
+ });
30
+ }
31
+ function truncate(str, n) {
32
+ if (!str)
33
+ return '';
34
+ return str.length > n ? str.slice(0, n - 1) + '…' : str;
35
+ }
36
+ function escapeHtml(str) {
37
+ return String(str)
38
+ .replace(/&/g, '&amp;')
39
+ .replace(/</g, '&lt;')
40
+ .replace(/>/g, '&gt;')
41
+ .replace(/"/g, '&quot;')
42
+ .replace(/'/g, '&#039;');
43
+ }
44
+ function prettyJson(obj) {
45
+ try {
46
+ return JSON.stringify(obj, null, 2);
47
+ }
48
+ catch {
49
+ return String(obj);
50
+ }
51
+ }
52
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/lib/format.ts"],"names":[],"mappings":";;AAAA,wCAWC;AAED,gCAQC;AAED,4BAGC;AAED,gCAOC;AAED,gCAMC;AA3CD,SAAgB,cAAc,CAAC,EAA6B;IAC1D,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IAClC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChE,IAAI,YAAY,GAAG,IAAI;QAAE,OAAO,GAAG,OAAO,IAAI,OAAO,EAAE,CAAC;IACxD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;SAChD,QAAQ,EAAE;SACV,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACpB,OAAO,GAAG,KAAK,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;AACvC,CAAC;AAED,SAAgB,UAAU,CAAC,EAAU;IACnC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IACvB,OAAO,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE;QACrC,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,QAAQ,CAAC,GAA8B,EAAE,CAAS;IAChE,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAC1D,CAAC;AAED,SAAgB,UAAU,CAAC,GAAY;IACrC,OAAO,MAAM,CAAC,GAAG,CAAC;SACf,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,SAAgB,UAAU,CAAC,GAAY;IACrC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;AACH,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { ClientSession } from '../types';
2
+ import type { ToolInvocation } from './invocations';
3
+ export interface GraphNode {
4
+ id: string;
5
+ type: 'skill' | 'tool' | 'file';
6
+ label: string;
7
+ weight: number;
8
+ x?: number;
9
+ y?: number;
10
+ z?: number;
11
+ }
12
+ export interface GraphLink {
13
+ source: string;
14
+ target: string;
15
+ weight: number;
16
+ }
17
+ export interface Graph3D {
18
+ nodes: GraphNode[];
19
+ links: GraphLink[];
20
+ }
21
+ export declare function buildGraph3D(session: ClientSession | undefined, invocations: ToolInvocation[]): Graph3D;
22
+ //# sourceMappingURL=graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/lib/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,EAAE,SAAS,EAAE,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,OAAO,CA2CvG"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildGraph3D = buildGraph3D;
4
+ const paths_1 = require("./paths");
5
+ function buildGraph3D(session, invocations) {
6
+ const nodes = new Map();
7
+ const links = [];
8
+ const skillName = session?.activeSkill?.name || session?.skill || 'unknown';
9
+ const skillId = `skill:${skillName}`;
10
+ nodes.set(skillId, { id: skillId, type: 'skill', label: skillName, weight: 1 });
11
+ function ensureNode(id, type, label, weight = 0) {
12
+ const existing = nodes.get(id);
13
+ if (existing) {
14
+ existing.weight += weight;
15
+ return existing;
16
+ }
17
+ const node = { id, type, label, weight };
18
+ nodes.set(id, node);
19
+ return node;
20
+ }
21
+ function addLink(sourceId, targetId, weight = 1) {
22
+ const existing = links.find((l) => l.source === sourceId && l.target === targetId);
23
+ if (existing) {
24
+ existing.weight += weight;
25
+ }
26
+ else {
27
+ links.push({ source: sourceId, target: targetId, weight });
28
+ }
29
+ }
30
+ for (const inv of invocations) {
31
+ if (inv.meta)
32
+ continue;
33
+ const toolId = `tool:${inv.tool}`;
34
+ ensureNode(toolId, 'tool', inv.tool, 1);
35
+ addLink(skillId, toolId, 1);
36
+ const path = (0, paths_1.resolvePath)(inv.input, inv.output);
37
+ if (path) {
38
+ const fileId = `file:${path}`;
39
+ ensureNode(fileId, 'file', path, 1);
40
+ addLink(toolId, fileId, 1);
41
+ }
42
+ }
43
+ return { nodes: Array.from(nodes.values()), links };
44
+ }
45
+ //# sourceMappingURL=graph.js.map