indusagi-coding-agent 0.1.23 → 0.1.24

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 (213) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/README.md +2 -0
  3. package/dist/cli/args.d.ts +117 -1
  4. package/dist/cli/args.d.ts.map +1 -1
  5. package/dist/cli/args.js +221 -52
  6. package/dist/cli/args.js.map +1 -1
  7. package/dist/cli/config-selector.d.ts +58 -2
  8. package/dist/cli/config-selector.d.ts.map +1 -1
  9. package/dist/cli/config-selector.js +130 -12
  10. package/dist/cli/config-selector.js.map +1 -1
  11. package/dist/cli/file-processor.d.ts +70 -2
  12. package/dist/cli/file-processor.d.ts.map +1 -1
  13. package/dist/cli/file-processor.js +240 -15
  14. package/dist/cli/file-processor.js.map +1 -1
  15. package/dist/cli/list-models.d.ts +63 -3
  16. package/dist/cli/list-models.d.ts.map +1 -1
  17. package/dist/cli/list-models.js +202 -27
  18. package/dist/cli/list-models.js.map +1 -1
  19. package/dist/cli/login-handler.d.ts +82 -8
  20. package/dist/cli/login-handler.d.ts.map +1 -1
  21. package/dist/cli/login-handler.js +410 -77
  22. package/dist/cli/login-handler.js.map +1 -1
  23. package/dist/cli/session-picker.d.ts +74 -2
  24. package/dist/cli/session-picker.d.ts.map +1 -1
  25. package/dist/cli/session-picker.js +236 -12
  26. package/dist/cli/session-picker.js.map +1 -1
  27. package/dist/core/agent-session.d.ts +214 -9
  28. package/dist/core/agent-session.d.ts.map +1 -1
  29. package/dist/core/agent-session.js +214 -9
  30. package/dist/core/agent-session.js.map +1 -1
  31. package/dist/core/bash-executor.d.ts +302 -12
  32. package/dist/core/bash-executor.d.ts.map +1 -1
  33. package/dist/core/bash-executor.js +302 -12
  34. package/dist/core/bash-executor.js.map +1 -1
  35. package/dist/core/diagnostics.d.ts +191 -0
  36. package/dist/core/diagnostics.d.ts.map +1 -1
  37. package/dist/core/diagnostics.js +142 -0
  38. package/dist/core/diagnostics.js.map +1 -1
  39. package/dist/core/event-bus.d.ts +146 -0
  40. package/dist/core/event-bus.d.ts.map +1 -1
  41. package/dist/core/event-bus.js +93 -0
  42. package/dist/core/event-bus.js.map +1 -1
  43. package/dist/core/export-html/ansi-to-html.d.ts +4 -0
  44. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
  45. package/dist/core/export-html/ansi-to-html.js +4 -0
  46. package/dist/core/export-html/ansi-to-html.js.map +1 -1
  47. package/dist/core/export-html/index.d.ts +128 -0
  48. package/dist/core/export-html/index.d.ts.map +1 -1
  49. package/dist/core/export-html/index.js +128 -0
  50. package/dist/core/export-html/index.js.map +1 -1
  51. package/dist/core/export-html/tool-renderer.d.ts +4 -0
  52. package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
  53. package/dist/core/export-html/tool-renderer.js +4 -0
  54. package/dist/core/export-html/tool-renderer.js.map +1 -1
  55. package/dist/core/keybindings.d.ts +142 -0
  56. package/dist/core/keybindings.d.ts.map +1 -1
  57. package/dist/core/keybindings.js +142 -0
  58. package/dist/core/keybindings.js.map +1 -1
  59. package/dist/core/model-registry.d.ts +98 -1
  60. package/dist/core/model-registry.d.ts.map +1 -1
  61. package/dist/core/model-registry.js +98 -1
  62. package/dist/core/model-registry.js.map +1 -1
  63. package/dist/core/model-resolver.d.ts +99 -1
  64. package/dist/core/model-resolver.d.ts.map +1 -1
  65. package/dist/core/model-resolver.js +99 -1
  66. package/dist/core/model-resolver.js.map +1 -1
  67. package/dist/core/prompt-templates.js.map +1 -1
  68. package/dist/core/session-manager.d.ts +127 -0
  69. package/dist/core/session-manager.d.ts.map +1 -1
  70. package/dist/core/session-manager.js +125 -0
  71. package/dist/core/session-manager.js.map +1 -1
  72. package/dist/core/skills.js.map +1 -1
  73. package/dist/core/subagents.js.map +1 -1
  74. package/dist/core/tools/bash.d.ts +391 -11
  75. package/dist/core/tools/bash.d.ts.map +1 -1
  76. package/dist/core/tools/bash.js +269 -2
  77. package/dist/core/tools/bash.js.map +1 -1
  78. package/dist/core/tools/edit.d.ts +284 -6
  79. package/dist/core/tools/edit.d.ts.map +1 -1
  80. package/dist/core/tools/edit.js +238 -0
  81. package/dist/core/tools/edit.js.map +1 -1
  82. package/dist/core/tools/find.d.ts +169 -5
  83. package/dist/core/tools/find.d.ts.map +1 -1
  84. package/dist/core/tools/find.js +136 -0
  85. package/dist/core/tools/find.js.map +1 -1
  86. package/dist/core/tools/grep.d.ts +285 -5
  87. package/dist/core/tools/grep.d.ts.map +1 -1
  88. package/dist/core/tools/grep.js +247 -0
  89. package/dist/core/tools/grep.js.map +1 -1
  90. package/dist/core/tools/ls.d.ts +6 -0
  91. package/dist/core/tools/ls.d.ts.map +1 -1
  92. package/dist/core/tools/ls.js +6 -0
  93. package/dist/core/tools/ls.js.map +1 -1
  94. package/dist/core/tools/read.d.ts +308 -7
  95. package/dist/core/tools/read.d.ts.map +1 -1
  96. package/dist/core/tools/read.js +231 -0
  97. package/dist/core/tools/read.js.map +1 -1
  98. package/dist/core/tools/webfetch.d.ts +118 -3
  99. package/dist/core/tools/webfetch.d.ts.map +1 -1
  100. package/dist/core/tools/webfetch.js +118 -3
  101. package/dist/core/tools/webfetch.js.map +1 -1
  102. package/dist/core/tools/websearch.d.ts +130 -3
  103. package/dist/core/tools/websearch.d.ts.map +1 -1
  104. package/dist/core/tools/websearch.js +130 -3
  105. package/dist/core/tools/websearch.js.map +1 -1
  106. package/dist/core/tools/write.d.ts +251 -5
  107. package/dist/core/tools/write.d.ts.map +1 -1
  108. package/dist/core/tools/write.js +210 -0
  109. package/dist/core/tools/write.js.map +1 -1
  110. package/dist/modes/interactive/components/assistant-message.d.ts +164 -1
  111. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  112. package/dist/modes/interactive/components/assistant-message.js +164 -1
  113. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  114. package/dist/modes/interactive/components/bash-execution.d.ts +297 -1
  115. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  116. package/dist/modes/interactive/components/bash-execution.js +297 -1
  117. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  118. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  119. package/dist/modes/interactive/components/tool-execution.js +251 -1
  120. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  121. package/dist/modes/interactive/components/user-message.d.ts +186 -1
  122. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  123. package/dist/modes/interactive/components/user-message.js +186 -1
  124. package/dist/modes/interactive/components/user-message.js.map +1 -1
  125. package/dist/modes/interactive/interactive-mode.d.ts +1567 -13
  126. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  127. package/dist/modes/interactive/interactive-mode.js +1567 -13
  128. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  129. package/dist/modes/interactive/theme/theme.d.ts +422 -0
  130. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  131. package/dist/modes/interactive/theme/theme.js +422 -0
  132. package/dist/modes/interactive/theme/theme.js.map +1 -1
  133. package/dist/modes/print-mode.d.ts +538 -5
  134. package/dist/modes/print-mode.d.ts.map +1 -1
  135. package/dist/modes/print-mode.js +538 -5
  136. package/dist/modes/print-mode.js.map +1 -1
  137. package/dist/modes/rpc/rpc-client.d.ts +921 -8
  138. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  139. package/dist/modes/rpc/rpc-client.js +921 -8
  140. package/dist/modes/rpc/rpc-client.js.map +1 -1
  141. package/dist/modes/rpc/rpc-mode.d.ts +802 -9
  142. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  143. package/dist/modes/rpc/rpc-mode.js +802 -9
  144. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  145. package/dist/modes/rpc/rpc-types.d.ts +356 -3
  146. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  147. package/dist/modes/rpc/rpc-types.js +356 -3
  148. package/dist/modes/rpc/rpc-types.js.map +1 -1
  149. package/dist/modes/shared.d.ts +386 -0
  150. package/dist/modes/shared.d.ts.map +1 -0
  151. package/dist/modes/shared.js +543 -0
  152. package/dist/modes/shared.js.map +1 -0
  153. package/dist/utils/array.d.ts +389 -0
  154. package/dist/utils/array.d.ts.map +1 -0
  155. package/dist/utils/array.js +585 -0
  156. package/dist/utils/array.js.map +1 -0
  157. package/dist/utils/color-formatter.d.ts +318 -0
  158. package/dist/utils/color-formatter.d.ts.map +1 -0
  159. package/dist/utils/color-formatter.js +442 -0
  160. package/dist/utils/color-formatter.js.map +1 -0
  161. package/dist/utils/data-transformer.d.ts +326 -0
  162. package/dist/utils/data-transformer.d.ts.map +1 -0
  163. package/dist/utils/data-transformer.js +512 -0
  164. package/dist/utils/data-transformer.js.map +1 -0
  165. package/dist/utils/date-formatter.d.ts +281 -0
  166. package/dist/utils/date-formatter.d.ts.map +1 -0
  167. package/dist/utils/date-formatter.js +503 -0
  168. package/dist/utils/date-formatter.js.map +1 -0
  169. package/dist/utils/error-handler.d.ts +541 -0
  170. package/dist/utils/error-handler.d.ts.map +1 -0
  171. package/dist/utils/error-handler.js +726 -0
  172. package/dist/utils/error-handler.js.map +1 -0
  173. package/dist/utils/file-operations.d.ts +297 -0
  174. package/dist/utils/file-operations.d.ts.map +1 -0
  175. package/dist/utils/file-operations.js +505 -0
  176. package/dist/utils/file-operations.js.map +1 -0
  177. package/dist/utils/frontmatter.d.ts +268 -6
  178. package/dist/utils/frontmatter.d.ts.map +1 -1
  179. package/dist/utils/frontmatter.js +500 -21
  180. package/dist/utils/frontmatter.js.map +1 -1
  181. package/dist/utils/json-formatter.d.ts +259 -0
  182. package/dist/utils/json-formatter.d.ts.map +1 -0
  183. package/dist/utils/json-formatter.js +517 -0
  184. package/dist/utils/json-formatter.js.map +1 -0
  185. package/dist/utils/logger.d.ts +176 -0
  186. package/dist/utils/logger.d.ts.map +1 -0
  187. package/dist/utils/logger.js +346 -0
  188. package/dist/utils/logger.js.map +1 -0
  189. package/dist/utils/markdown-formatter.d.ts +211 -0
  190. package/dist/utils/markdown-formatter.d.ts.map +1 -0
  191. package/dist/utils/markdown-formatter.js +482 -0
  192. package/dist/utils/markdown-formatter.js.map +1 -0
  193. package/dist/utils/path-validator.d.ts +603 -0
  194. package/dist/utils/path-validator.d.ts.map +1 -0
  195. package/dist/utils/path-validator.js +870 -0
  196. package/dist/utils/path-validator.js.map +1 -0
  197. package/dist/utils/string-formatter.d.ts +609 -0
  198. package/dist/utils/string-formatter.d.ts.map +1 -0
  199. package/dist/utils/string-formatter.js +806 -0
  200. package/dist/utils/string-formatter.js.map +1 -0
  201. package/dist/utils/type-guards.d.ts +629 -0
  202. package/dist/utils/type-guards.d.ts.map +1 -0
  203. package/dist/utils/type-guards.js +662 -0
  204. package/dist/utils/type-guards.js.map +1 -0
  205. package/docs/COMPLETE-GUIDE.md +300 -0
  206. package/docs/MODES-ARCHITECTURE.md +565 -0
  207. package/docs/PRINT-MODE-GUIDE.md +456 -0
  208. package/docs/RPC-GUIDE.md +705 -0
  209. package/docs/UTILS-IMPLEMENTATION-SUMMARY.md +647 -0
  210. package/docs/UTILS-MODULE-OVERVIEW.md +1480 -0
  211. package/docs/UTILS-QA-CHECKLIST.md +1061 -0
  212. package/docs/UTILS-USAGE-GUIDE.md +1419 -0
  213. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"bash-executor.js","sourceRoot":"","sources":["../../src/core/bash-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bash-executor.js","sourceRoot":"","sources":["../../src/core/bash-executor.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,206 @@
1
+ /**
2
+ * Diagnostics System - Resource collision detection and health checks
3
+ *
4
+ * Purpose:
5
+ * Detects and reports conflicts when multiple resources (extensions, skills,
6
+ * prompts, themes) with the same name are loaded from different sources.
7
+ * Helps identify misconfiguration and resource loading issues.
8
+ *
9
+ * Architecture:
10
+ * - Collision Detection: Tracks resources by type and name
11
+ * - Winner Selection: Deterministic priority for conflicting resources
12
+ * - Priority Order: Local > npm packages > git > remote
13
+ * - Reporting: Detailed diagnostic messages with paths and sources
14
+ *
15
+ * Key Features:
16
+ * - Detects duplicate resource names
17
+ * - Identifies resource source (npm package, git, local, etc.)
18
+ * - Provides clear messages about which resource wins
19
+ * - Tracks full paths for debugging
20
+ * - Supports multiple resource types
21
+ * - Type-safe diagnostic reporting
22
+ *
23
+ * Resource Types:
24
+ * - "extension" - Custom agent extensions
25
+ * - "skill" - Custom skills/capabilities
26
+ * - "prompt" - Custom prompt templates
27
+ * - "theme" - Custom UI themes
28
+ *
29
+ * Collision Priority (highest to lowest):
30
+ * 1. Local resources (~/.indusagi/resources/)
31
+ * 2. NPM packages (node_modules/)
32
+ * 3. Git repositories
33
+ * 4. Remote resources
34
+ *
35
+ * Example Collision:
36
+ * - File 1: ~/.indusagi/extensions/my-tool.js (local)
37
+ * - File 2: node_modules/my-package/extension.js (npm)
38
+ * - Result: Local file wins, npm file flagged as collision
39
+ *
40
+ * Diagnostic Types:
41
+ * - "warning" - Non-critical issue (e.g., deprecated API)
42
+ * - "error" - Critical issue (e.g., invalid config)
43
+ * - "collision" - Resource name conflict
44
+ *
45
+ * Usage Examples:
46
+ * ```typescript
47
+ * // Record a warning
48
+ * const diagnostic: ResourceDiagnostic = {
49
+ * type: "warning",
50
+ * message: "Extension uses deprecated API",
51
+ * path: "/home/user/.indusagi/extensions/old-ext.js"
52
+ * };
53
+ *
54
+ * // Record a collision
55
+ * const collision: ResourceDiagnostic = {
56
+ * type: "collision",
57
+ * message: "Extension 'my-tool' loaded from multiple sources",
58
+ * collision: {
59
+ * resourceType: "extension",
60
+ * name: "my-tool",
61
+ * winnerPath: "/home/user/.indusagi/extensions/my-tool.js",
62
+ * winnerSource: "local",
63
+ * loserPath: "/home/user/node_modules/my-tool-pkg/extension.js",
64
+ * loserSource: "npm:my-tool-pkg"
65
+ * }
66
+ * };
67
+ *
68
+ * // Report error
69
+ * const error: ResourceDiagnostic = {
70
+ * type: "error",
71
+ * message: "Failed to load skill: invalid JSON",
72
+ * path: "/home/user/.indusagi/skills/broken.json"
73
+ * };
74
+ * ```
75
+ *
76
+ * Collision Handling Strategy:
77
+ * 1. When loading resources, track by (type, name)
78
+ * 2. If collision detected:
79
+ * a. Determine winner by priority
80
+ * b. Use winner resource
81
+ * c. Log collision diagnostic
82
+ * d. Continue loading other resources
83
+ * 3. Report all collisions after load complete
84
+ *
85
+ * Examples of Detected Collisions:
86
+ *
87
+ * 1. Extension Name Conflict:
88
+ * ```
89
+ * ~/.indusagi/extensions/analyzer.ts
90
+ * node_modules/code-analyzer/extension.ts
91
+ * → Local wins, npm extension ignored
92
+ * ```
93
+ *
94
+ * 2. Skill Name Conflict:
95
+ * ```
96
+ * ~/.indusagi/skills/debug.json
97
+ * ~/.indusagi/skills-backup/debug.json
98
+ * → First wins, second ignored (both local, path decides)
99
+ * ```
100
+ *
101
+ * 3. Prompt Template Conflict:
102
+ * ```
103
+ * ~/.indusagi/prompts/system.md
104
+ * node_modules/custom-prompts/system.md
105
+ * → Local wins, npm prompt ignored
106
+ * ```
107
+ *
108
+ * 4. Theme Conflict:
109
+ * ```
110
+ * ~/.indusagi/themes/dark.json
111
+ * node_modules/@themes/dark/theme.json
112
+ * → Local wins, npm theme ignored
113
+ * ```
114
+ *
115
+ * Source Identification:
116
+ * - Path starts with "/node_modules/" → "npm:package-name"
117
+ * - Path starts with "/.git/" → "git:repository"
118
+ * - Path starts with "~/.indusagi/" → "local"
119
+ * - Other paths → derived from directory structure
120
+ *
121
+ * Troubleshooting Tips:
122
+ * - Check diagnostic output for collision warnings
123
+ * - Look for duplicate resource names in ~/.indusagi/
124
+ * - Remove duplicate files to resolve collisions
125
+ * - Check installed npm packages for conflicts
126
+ * - Use verbose mode to see resource loading order
127
+ *
128
+ * Performance Implications:
129
+ * - Resource tracking uses maps (O(1) lookup)
130
+ * - Collision detection is O(n) where n = number of resources
131
+ * - No external I/O for diagnostics
132
+ * - Results cached for duration of session
133
+ *
134
+ * Related Files:
135
+ * - Resource loading: src/core/resource-loader.ts
136
+ * - Extension system: src/core/extensions/
137
+ * - Skill system: src/core/skills.ts
138
+ * - Theme system: src/cli/themes.ts
139
+ *
140
+ * Based on diagnostic system from indusagi-agent
141
+ * Original: https://github.com/varunisrani/indusagi-ts/vendor/indusagi-agent/src/diagnostics.ts
142
+ */
1
143
  export interface ResourceCollision {
144
+ /**
145
+ * Type of resource that collided
146
+ *
147
+ * - "extension": Custom agent extensions
148
+ * - "skill": Custom capabilities/behaviors
149
+ * - "prompt": Custom prompt templates
150
+ * - "theme": Custom UI themes
151
+ */
2
152
  resourceType: "extension" | "skill" | "prompt" | "theme";
153
+ /**
154
+ * Resource name that collided
155
+ * Examples: skill command name, extension ID, prompt name, theme name
156
+ */
3
157
  name: string;
158
+ /**
159
+ * Full file path of the winning resource (loaded and used)
160
+ * Example: "/home/user/.indusagi/extensions/my-tool.js"
161
+ */
4
162
  winnerPath: string;
163
+ /**
164
+ * Full file path of the losing resource (ignored)
165
+ * Example: "/home/user/node_modules/my-tool/extension.js"
166
+ */
5
167
  loserPath: string;
168
+ /**
169
+ * Source of winning resource
170
+ * Examples: "local", "npm:package-name", "git:repo", etc.
171
+ */
6
172
  winnerSource?: string;
173
+ /**
174
+ * Source of losing resource
175
+ */
7
176
  loserSource?: string;
8
177
  }
9
178
  export interface ResourceDiagnostic {
179
+ /**
180
+ * Severity level of diagnostic
181
+ *
182
+ * - "warning": Non-critical issue that should be fixed
183
+ * - "error": Critical issue that may cause failures
184
+ * - "collision": Resource name conflict between sources
185
+ */
10
186
  type: "warning" | "error" | "collision";
187
+ /**
188
+ * Human-readable diagnostic message
189
+ * Examples:
190
+ * - "Extension 'analytics' loaded from multiple sources"
191
+ * - "Failed to parse theme configuration"
192
+ * - "Skill command 'analyze' already defined"
193
+ */
11
194
  message: string;
195
+ /**
196
+ * File path related to this diagnostic
197
+ * Example: "/home/user/.indusagi/extensions/broken.ts"
198
+ */
12
199
  path?: string;
200
+ /**
201
+ * Collision details (only for type="collision")
202
+ * Contains information about which resource won and which lost
203
+ */
13
204
  collision?: ResourceCollision;
14
205
  }
15
206
  //# sourceMappingURL=diagnostics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/core/diagnostics.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IACjC,YAAY,EAAE,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,WAAW,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC9B"}
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/core/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6IG;AAEH,MAAM,WAAW,iBAAiB;IACjC;;;;;;;OAOG;IACH,YAAY,EAAE,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAEzD;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IAClC;;;;;;OAMG;IACH,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,WAAW,CAAC;IAExC;;;;;;OAMG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC9B"}
@@ -1,2 +1,144 @@
1
+ /**
2
+ * Diagnostics System - Resource collision detection and health checks
3
+ *
4
+ * Purpose:
5
+ * Detects and reports conflicts when multiple resources (extensions, skills,
6
+ * prompts, themes) with the same name are loaded from different sources.
7
+ * Helps identify misconfiguration and resource loading issues.
8
+ *
9
+ * Architecture:
10
+ * - Collision Detection: Tracks resources by type and name
11
+ * - Winner Selection: Deterministic priority for conflicting resources
12
+ * - Priority Order: Local > npm packages > git > remote
13
+ * - Reporting: Detailed diagnostic messages with paths and sources
14
+ *
15
+ * Key Features:
16
+ * - Detects duplicate resource names
17
+ * - Identifies resource source (npm package, git, local, etc.)
18
+ * - Provides clear messages about which resource wins
19
+ * - Tracks full paths for debugging
20
+ * - Supports multiple resource types
21
+ * - Type-safe diagnostic reporting
22
+ *
23
+ * Resource Types:
24
+ * - "extension" - Custom agent extensions
25
+ * - "skill" - Custom skills/capabilities
26
+ * - "prompt" - Custom prompt templates
27
+ * - "theme" - Custom UI themes
28
+ *
29
+ * Collision Priority (highest to lowest):
30
+ * 1. Local resources (~/.indusagi/resources/)
31
+ * 2. NPM packages (node_modules/)
32
+ * 3. Git repositories
33
+ * 4. Remote resources
34
+ *
35
+ * Example Collision:
36
+ * - File 1: ~/.indusagi/extensions/my-tool.js (local)
37
+ * - File 2: node_modules/my-package/extension.js (npm)
38
+ * - Result: Local file wins, npm file flagged as collision
39
+ *
40
+ * Diagnostic Types:
41
+ * - "warning" - Non-critical issue (e.g., deprecated API)
42
+ * - "error" - Critical issue (e.g., invalid config)
43
+ * - "collision" - Resource name conflict
44
+ *
45
+ * Usage Examples:
46
+ * ```typescript
47
+ * // Record a warning
48
+ * const diagnostic: ResourceDiagnostic = {
49
+ * type: "warning",
50
+ * message: "Extension uses deprecated API",
51
+ * path: "/home/user/.indusagi/extensions/old-ext.js"
52
+ * };
53
+ *
54
+ * // Record a collision
55
+ * const collision: ResourceDiagnostic = {
56
+ * type: "collision",
57
+ * message: "Extension 'my-tool' loaded from multiple sources",
58
+ * collision: {
59
+ * resourceType: "extension",
60
+ * name: "my-tool",
61
+ * winnerPath: "/home/user/.indusagi/extensions/my-tool.js",
62
+ * winnerSource: "local",
63
+ * loserPath: "/home/user/node_modules/my-tool-pkg/extension.js",
64
+ * loserSource: "npm:my-tool-pkg"
65
+ * }
66
+ * };
67
+ *
68
+ * // Report error
69
+ * const error: ResourceDiagnostic = {
70
+ * type: "error",
71
+ * message: "Failed to load skill: invalid JSON",
72
+ * path: "/home/user/.indusagi/skills/broken.json"
73
+ * };
74
+ * ```
75
+ *
76
+ * Collision Handling Strategy:
77
+ * 1. When loading resources, track by (type, name)
78
+ * 2. If collision detected:
79
+ * a. Determine winner by priority
80
+ * b. Use winner resource
81
+ * c. Log collision diagnostic
82
+ * d. Continue loading other resources
83
+ * 3. Report all collisions after load complete
84
+ *
85
+ * Examples of Detected Collisions:
86
+ *
87
+ * 1. Extension Name Conflict:
88
+ * ```
89
+ * ~/.indusagi/extensions/analyzer.ts
90
+ * node_modules/code-analyzer/extension.ts
91
+ * → Local wins, npm extension ignored
92
+ * ```
93
+ *
94
+ * 2. Skill Name Conflict:
95
+ * ```
96
+ * ~/.indusagi/skills/debug.json
97
+ * ~/.indusagi/skills-backup/debug.json
98
+ * → First wins, second ignored (both local, path decides)
99
+ * ```
100
+ *
101
+ * 3. Prompt Template Conflict:
102
+ * ```
103
+ * ~/.indusagi/prompts/system.md
104
+ * node_modules/custom-prompts/system.md
105
+ * → Local wins, npm prompt ignored
106
+ * ```
107
+ *
108
+ * 4. Theme Conflict:
109
+ * ```
110
+ * ~/.indusagi/themes/dark.json
111
+ * node_modules/@themes/dark/theme.json
112
+ * → Local wins, npm theme ignored
113
+ * ```
114
+ *
115
+ * Source Identification:
116
+ * - Path starts with "/node_modules/" → "npm:package-name"
117
+ * - Path starts with "/.git/" → "git:repository"
118
+ * - Path starts with "~/.indusagi/" → "local"
119
+ * - Other paths → derived from directory structure
120
+ *
121
+ * Troubleshooting Tips:
122
+ * - Check diagnostic output for collision warnings
123
+ * - Look for duplicate resource names in ~/.indusagi/
124
+ * - Remove duplicate files to resolve collisions
125
+ * - Check installed npm packages for conflicts
126
+ * - Use verbose mode to see resource loading order
127
+ *
128
+ * Performance Implications:
129
+ * - Resource tracking uses maps (O(1) lookup)
130
+ * - Collision detection is O(n) where n = number of resources
131
+ * - No external I/O for diagnostics
132
+ * - Results cached for duration of session
133
+ *
134
+ * Related Files:
135
+ * - Resource loading: src/core/resource-loader.ts
136
+ * - Extension system: src/core/extensions/
137
+ * - Skill system: src/core/skills.ts
138
+ * - Theme system: src/cli/themes.ts
139
+ *
140
+ * Based on diagnostic system from indusagi-agent
141
+ * Original: https://github.com/varunisrani/indusagi-ts/vendor/indusagi-agent/src/diagnostics.ts
142
+ */
1
143
  export {};
2
144
  //# sourceMappingURL=diagnostics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/core/diagnostics.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/core/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6IG"}
@@ -1,9 +1,155 @@
1
+ /**
2
+ * Event Bus - Core publish/subscribe system for agent events
3
+ *
4
+ * Purpose:
5
+ * Provides a decoupled event system for agent lifecycle events, tool execution,
6
+ * and state changes. Enables loose coupling between agent components.
7
+ *
8
+ * Architecture:
9
+ * - Wraps Node.js EventEmitter with type-safe interfaces
10
+ * - Automatic error handling and async support
11
+ * - Channel-based event routing (string identifiers)
12
+ * - Handler cleanup with unsubscribe functions
13
+ *
14
+ * Event Channels (as used throughout agent):
15
+ * - "agent:initialized" - Agent session created and ready
16
+ * - "agent:message" - New message added to session
17
+ * - "agent:tool:execute" - Tool execution started
18
+ * - "agent:tool:complete" - Tool execution finished
19
+ * - "agent:error" - Error occurred during execution
20
+ * - "agent:state" - Agent state changed
21
+ * - "session:persisted" - Session saved to disk
22
+ * - "session:compacted" - Session compressed
23
+ *
24
+ * Safety Features:
25
+ * - Async handler wrapping with error catching
26
+ * - Automatic error logging for handler failures
27
+ * - Handler isolation (errors don't propagate to other handlers)
28
+ * - Clean unsubscribe functions prevent memory leaks
29
+ *
30
+ * Example Usage:
31
+ * ```typescript
32
+ * const eventBus = createEventBus();
33
+ *
34
+ * // Subscribe to events
35
+ * const unsubscribe = eventBus.on("agent:message", async (data) => {
36
+ * console.log("New message:", data);
37
+ * });
38
+ *
39
+ * // Emit events
40
+ * eventBus.emit("agent:message", { role: "assistant", content: "Hello" });
41
+ *
42
+ * // Unsubscribe when done
43
+ * unsubscribe();
44
+ *
45
+ * // Clear all listeners
46
+ * eventBus.clear();
47
+ * ```
48
+ *
49
+ * Based on event bus pattern from indusagi-agent
50
+ * Original: https://github.com/varunisrani/indusagi-ts/vendor/indusagi-agent/src/event-bus.ts
51
+ */
52
+ /**
53
+ * EventBus Interface - Read-only pub/sub access
54
+ *
55
+ * Provides emit and subscribe methods for event-driven communication.
56
+ * Used by components that need to listen to or publish events.
57
+ */
1
58
  export interface EventBus {
59
+ /**
60
+ * Publish an event on a channel
61
+ *
62
+ * @param channel - The event channel name (e.g., "agent:message")
63
+ * @param data - Arbitrary data to send to subscribers
64
+ *
65
+ * Example:
66
+ * ```
67
+ * eventBus.emit("agent:message", {
68
+ * role: "user",
69
+ * content: "Execute bash command: ls -la"
70
+ * });
71
+ * ```
72
+ */
2
73
  emit(channel: string, data: unknown): void;
74
+ /**
75
+ * Subscribe to events on a channel
76
+ *
77
+ * @param channel - The event channel to listen to
78
+ * @param handler - Async function called when event is emitted
79
+ *
80
+ * @returns Unsubscribe function - call to remove the listener
81
+ *
82
+ * Safety:
83
+ * - Handler errors are caught and logged, don't break other listeners
84
+ * - Handler is wrapped to support async operations
85
+ * - Always call unsubscribe when done to prevent memory leaks
86
+ *
87
+ * Example:
88
+ * ```
89
+ * const unsubscribe = eventBus.on("agent:error", async (error) => {
90
+ * console.error("Agent error:", error.message);
91
+ * // Send alert, log to file, etc.
92
+ * });
93
+ *
94
+ * // Later: unsubscribe when component is destroyed
95
+ * unsubscribe();
96
+ * ```
97
+ */
3
98
  on(channel: string, handler: (data: unknown) => void): () => void;
4
99
  }
100
+ /**
101
+ * EventBusController Interface - Full pub/sub control
102
+ *
103
+ * Extends EventBus with additional control methods.
104
+ * Used by the agent core to manage the event system.
105
+ */
5
106
  export interface EventBusController extends EventBus {
107
+ /**
108
+ * Remove all event listeners
109
+ *
110
+ * Cleanup method to reset the event bus state.
111
+ * Called when:
112
+ * - Switching sessions
113
+ * - Shutting down agent
114
+ * - Resetting state in tests
115
+ *
116
+ * Example:
117
+ * ```
118
+ * // Clean up before switching to new session
119
+ * eventBus.clear();
120
+ * await loadSession(newSessionId);
121
+ * ```
122
+ */
6
123
  clear(): void;
7
124
  }
125
+ /**
126
+ * Create a new event bus instance
127
+ *
128
+ * Creates a fresh pub/sub system with error handling.
129
+ * Typically called once at agent startup.
130
+ *
131
+ * @returns EventBusController with emit, on, and clear methods
132
+ *
133
+ * Implementation Details:
134
+ * - Wraps Node.js EventEmitter for type safety
135
+ * - Handlers are wrapped to catch async errors
136
+ * - Each handler gets its own error logging
137
+ * - Unsubscribe functions use closure to cleanup listeners
138
+ *
139
+ * Example:
140
+ * ```
141
+ * const eventBus = createEventBus();
142
+ *
143
+ * // Set up listeners early
144
+ * eventBus.on("agent:error", handleError);
145
+ * eventBus.on("agent:message", updateUI);
146
+ *
147
+ * // Use throughout agent lifecycle
148
+ * // ...
149
+ *
150
+ * // Clean up on shutdown
151
+ * eventBus.clear();
152
+ * ```
153
+ */
8
154
  export declare function createEventBus(): EventBusController;
9
155
  //# sourceMappingURL=event-bus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/core/event-bus.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,QAAQ;IACxB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3C,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CAClE;AAED,MAAM,WAAW,kBAAmB,SAAQ,QAAQ;IACnD,KAAK,IAAI,IAAI,CAAC;CACd;AAED,wBAAgB,cAAc,IAAI,kBAAkB,CAqBnD"}
1
+ {"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/core/event-bus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAIH;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACxB;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAE3C;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CAClE;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAmB,SAAQ,QAAQ;IACnD;;;;;;;;;;;;;;;OAeG;IACH,KAAK,IAAI,IAAI,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,cAAc,IAAI,kBAAkB,CAuCnD"}
@@ -1,22 +1,115 @@
1
+ /**
2
+ * Event Bus - Core publish/subscribe system for agent events
3
+ *
4
+ * Purpose:
5
+ * Provides a decoupled event system for agent lifecycle events, tool execution,
6
+ * and state changes. Enables loose coupling between agent components.
7
+ *
8
+ * Architecture:
9
+ * - Wraps Node.js EventEmitter with type-safe interfaces
10
+ * - Automatic error handling and async support
11
+ * - Channel-based event routing (string identifiers)
12
+ * - Handler cleanup with unsubscribe functions
13
+ *
14
+ * Event Channels (as used throughout agent):
15
+ * - "agent:initialized" - Agent session created and ready
16
+ * - "agent:message" - New message added to session
17
+ * - "agent:tool:execute" - Tool execution started
18
+ * - "agent:tool:complete" - Tool execution finished
19
+ * - "agent:error" - Error occurred during execution
20
+ * - "agent:state" - Agent state changed
21
+ * - "session:persisted" - Session saved to disk
22
+ * - "session:compacted" - Session compressed
23
+ *
24
+ * Safety Features:
25
+ * - Async handler wrapping with error catching
26
+ * - Automatic error logging for handler failures
27
+ * - Handler isolation (errors don't propagate to other handlers)
28
+ * - Clean unsubscribe functions prevent memory leaks
29
+ *
30
+ * Example Usage:
31
+ * ```typescript
32
+ * const eventBus = createEventBus();
33
+ *
34
+ * // Subscribe to events
35
+ * const unsubscribe = eventBus.on("agent:message", async (data) => {
36
+ * console.log("New message:", data);
37
+ * });
38
+ *
39
+ * // Emit events
40
+ * eventBus.emit("agent:message", { role: "assistant", content: "Hello" });
41
+ *
42
+ * // Unsubscribe when done
43
+ * unsubscribe();
44
+ *
45
+ * // Clear all listeners
46
+ * eventBus.clear();
47
+ * ```
48
+ *
49
+ * Based on event bus pattern from indusagi-agent
50
+ * Original: https://github.com/varunisrani/indusagi-ts/vendor/indusagi-agent/src/event-bus.ts
51
+ */
1
52
  import { EventEmitter } from "node:events";
53
+ /**
54
+ * Create a new event bus instance
55
+ *
56
+ * Creates a fresh pub/sub system with error handling.
57
+ * Typically called once at agent startup.
58
+ *
59
+ * @returns EventBusController with emit, on, and clear methods
60
+ *
61
+ * Implementation Details:
62
+ * - Wraps Node.js EventEmitter for type safety
63
+ * - Handlers are wrapped to catch async errors
64
+ * - Each handler gets its own error logging
65
+ * - Unsubscribe functions use closure to cleanup listeners
66
+ *
67
+ * Example:
68
+ * ```
69
+ * const eventBus = createEventBus();
70
+ *
71
+ * // Set up listeners early
72
+ * eventBus.on("agent:error", handleError);
73
+ * eventBus.on("agent:message", updateUI);
74
+ *
75
+ * // Use throughout agent lifecycle
76
+ * // ...
77
+ *
78
+ * // Clean up on shutdown
79
+ * eventBus.clear();
80
+ * ```
81
+ */
2
82
  export function createEventBus() {
3
83
  const emitter = new EventEmitter();
4
84
  return {
85
+ // ============================================================================
86
+ // EMIT: Publish events to all subscribers
87
+ // ============================================================================
5
88
  emit: (channel, data) => {
6
89
  emitter.emit(channel, data);
7
90
  },
91
+ // ============================================================================
92
+ // ON: Subscribe to events with automatic error handling
93
+ // ============================================================================
8
94
  on: (channel, handler) => {
95
+ // Wrap handler to catch errors and support async operations
9
96
  const safeHandler = async (data) => {
10
97
  try {
11
98
  await handler(data);
12
99
  }
13
100
  catch (err) {
101
+ // Log error without propagating to other handlers
14
102
  console.error(`Event handler error (${channel}):`, err);
15
103
  }
16
104
  };
105
+ // Register wrapped handler
17
106
  emitter.on(channel, safeHandler);
107
+ // Return cleanup function
18
108
  return () => emitter.off(channel, safeHandler);
19
109
  },
110
+ // ============================================================================
111
+ // CLEAR: Remove all listeners for reset/cleanup
112
+ // ============================================================================
20
113
  clear: () => {
21
114
  emitter.removeAllListeners();
22
115
  },
@@ -1 +1 @@
1
- {"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../src/core/event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAW3C,MAAM,UAAU,cAAc;IAC7B,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;IACnC,OAAO;QACN,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;YACvB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YACxB,MAAM,WAAW,GAAG,KAAK,EAAE,IAAa,EAAE,EAAE;gBAC3C,IAAI,CAAC;oBACJ,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,OAAO,CAAC,KAAK,CAAC,wBAAwB,OAAO,IAAI,EAAE,GAAG,CAAC,CAAC;gBACzD,CAAC;YACF,CAAC,CAAC;YACF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACjC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAChD,CAAC;QACD,KAAK,EAAE,GAAG,EAAE;YACX,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC9B,CAAC;KACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../src/core/event-bus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA8E3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,cAAc;IAC7B,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;IAEnC,OAAO;QACN,+EAA+E;QAC/E,0CAA0C;QAC1C,+EAA+E;QAC/E,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;YACvB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC;QAED,+EAA+E;QAC/E,wDAAwD;QACxD,+EAA+E;QAC/E,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YACxB,4DAA4D;YAC5D,MAAM,WAAW,GAAG,KAAK,EAAE,IAAa,EAAE,EAAE;gBAC3C,IAAI,CAAC;oBACJ,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,kDAAkD;oBAClD,OAAO,CAAC,KAAK,CAAC,wBAAwB,OAAO,IAAI,EAAE,GAAG,CAAC,CAAC;gBACzD,CAAC;YACF,CAAC,CAAC;YAEF,2BAA2B;YAC3B,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAEjC,0BAA0B;YAC1B,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAChD,CAAC;QAED,+EAA+E;QAC/E,gDAAgD;QAChD,+EAA+E;QAC/E,KAAK,EAAE,GAAG,EAAE;YACX,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC9B,CAAC;KACD,CAAC;AACH,CAAC"}