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.
- package/CHANGELOG.md +65 -0
- package/README.md +2 -0
- package/dist/cli/args.d.ts +117 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +221 -52
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/config-selector.d.ts +58 -2
- package/dist/cli/config-selector.d.ts.map +1 -1
- package/dist/cli/config-selector.js +130 -12
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/cli/file-processor.d.ts +70 -2
- package/dist/cli/file-processor.d.ts.map +1 -1
- package/dist/cli/file-processor.js +240 -15
- package/dist/cli/file-processor.js.map +1 -1
- package/dist/cli/list-models.d.ts +63 -3
- package/dist/cli/list-models.d.ts.map +1 -1
- package/dist/cli/list-models.js +202 -27
- package/dist/cli/list-models.js.map +1 -1
- package/dist/cli/login-handler.d.ts +82 -8
- package/dist/cli/login-handler.d.ts.map +1 -1
- package/dist/cli/login-handler.js +410 -77
- package/dist/cli/login-handler.js.map +1 -1
- package/dist/cli/session-picker.d.ts +74 -2
- package/dist/cli/session-picker.d.ts.map +1 -1
- package/dist/cli/session-picker.js +236 -12
- package/dist/cli/session-picker.js.map +1 -1
- package/dist/core/agent-session.d.ts +214 -9
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +214 -9
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/bash-executor.d.ts +302 -12
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js +302 -12
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/diagnostics.d.ts +191 -0
- package/dist/core/diagnostics.d.ts.map +1 -1
- package/dist/core/diagnostics.js +142 -0
- package/dist/core/diagnostics.js.map +1 -1
- package/dist/core/event-bus.d.ts +146 -0
- package/dist/core/event-bus.d.ts.map +1 -1
- package/dist/core/event-bus.js +93 -0
- package/dist/core/event-bus.js.map +1 -1
- package/dist/core/export-html/ansi-to-html.d.ts +4 -0
- package/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
- package/dist/core/export-html/ansi-to-html.js +4 -0
- package/dist/core/export-html/ansi-to-html.js.map +1 -1
- package/dist/core/export-html/index.d.ts +128 -0
- package/dist/core/export-html/index.d.ts.map +1 -1
- package/dist/core/export-html/index.js +128 -0
- package/dist/core/export-html/index.js.map +1 -1
- package/dist/core/export-html/tool-renderer.d.ts +4 -0
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
- package/dist/core/export-html/tool-renderer.js +4 -0
- package/dist/core/export-html/tool-renderer.js.map +1 -1
- package/dist/core/keybindings.d.ts +142 -0
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +142 -0
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/model-registry.d.ts +98 -1
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +98 -1
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.d.ts +99 -1
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +99 -1
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/prompt-templates.js.map +1 -1
- package/dist/core/session-manager.d.ts +127 -0
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +125 -0
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/skills.js.map +1 -1
- package/dist/core/subagents.js.map +1 -1
- package/dist/core/tools/bash.d.ts +391 -11
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +269 -2
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit.d.ts +284 -6
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +238 -0
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/find.d.ts +169 -5
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +136 -0
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.d.ts +285 -5
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js +247 -0
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/ls.d.ts +6 -0
- package/dist/core/tools/ls.d.ts.map +1 -1
- package/dist/core/tools/ls.js +6 -0
- package/dist/core/tools/ls.js.map +1 -1
- package/dist/core/tools/read.d.ts +308 -7
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +231 -0
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/webfetch.d.ts +118 -3
- package/dist/core/tools/webfetch.d.ts.map +1 -1
- package/dist/core/tools/webfetch.js +118 -3
- package/dist/core/tools/webfetch.js.map +1 -1
- package/dist/core/tools/websearch.d.ts +130 -3
- package/dist/core/tools/websearch.d.ts.map +1 -1
- package/dist/core/tools/websearch.js +130 -3
- package/dist/core/tools/websearch.js.map +1 -1
- package/dist/core/tools/write.d.ts +251 -5
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js +210 -0
- package/dist/core/tools/write.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts +164 -1
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +164 -1
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/bash-execution.d.ts +297 -1
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/bash-execution.js +297 -1
- package/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +251 -1
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/components/user-message.d.ts +186 -1
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.js +186 -1
- package/dist/modes/interactive/components/user-message.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +1567 -13
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +1567 -13
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/theme.d.ts +422 -0
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +422 -0
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/print-mode.d.ts +538 -5
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +538 -5
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +921 -8
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +921 -8
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts +802 -9
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +802 -9
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +356 -3
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js +356 -3
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/modes/shared.d.ts +386 -0
- package/dist/modes/shared.d.ts.map +1 -0
- package/dist/modes/shared.js +543 -0
- package/dist/modes/shared.js.map +1 -0
- package/dist/utils/array.d.ts +389 -0
- package/dist/utils/array.d.ts.map +1 -0
- package/dist/utils/array.js +585 -0
- package/dist/utils/array.js.map +1 -0
- package/dist/utils/color-formatter.d.ts +318 -0
- package/dist/utils/color-formatter.d.ts.map +1 -0
- package/dist/utils/color-formatter.js +442 -0
- package/dist/utils/color-formatter.js.map +1 -0
- package/dist/utils/data-transformer.d.ts +326 -0
- package/dist/utils/data-transformer.d.ts.map +1 -0
- package/dist/utils/data-transformer.js +512 -0
- package/dist/utils/data-transformer.js.map +1 -0
- package/dist/utils/date-formatter.d.ts +281 -0
- package/dist/utils/date-formatter.d.ts.map +1 -0
- package/dist/utils/date-formatter.js +503 -0
- package/dist/utils/date-formatter.js.map +1 -0
- package/dist/utils/error-handler.d.ts +541 -0
- package/dist/utils/error-handler.d.ts.map +1 -0
- package/dist/utils/error-handler.js +726 -0
- package/dist/utils/error-handler.js.map +1 -0
- package/dist/utils/file-operations.d.ts +297 -0
- package/dist/utils/file-operations.d.ts.map +1 -0
- package/dist/utils/file-operations.js +505 -0
- package/dist/utils/file-operations.js.map +1 -0
- package/dist/utils/frontmatter.d.ts +268 -6
- package/dist/utils/frontmatter.d.ts.map +1 -1
- package/dist/utils/frontmatter.js +500 -21
- package/dist/utils/frontmatter.js.map +1 -1
- package/dist/utils/json-formatter.d.ts +259 -0
- package/dist/utils/json-formatter.d.ts.map +1 -0
- package/dist/utils/json-formatter.js +517 -0
- package/dist/utils/json-formatter.js.map +1 -0
- package/dist/utils/logger.d.ts +176 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +346 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/markdown-formatter.d.ts +211 -0
- package/dist/utils/markdown-formatter.d.ts.map +1 -0
- package/dist/utils/markdown-formatter.js +482 -0
- package/dist/utils/markdown-formatter.js.map +1 -0
- package/dist/utils/path-validator.d.ts +603 -0
- package/dist/utils/path-validator.d.ts.map +1 -0
- package/dist/utils/path-validator.js +870 -0
- package/dist/utils/path-validator.js.map +1 -0
- package/dist/utils/string-formatter.d.ts +609 -0
- package/dist/utils/string-formatter.d.ts.map +1 -0
- package/dist/utils/string-formatter.js +806 -0
- package/dist/utils/string-formatter.js.map +1 -0
- package/dist/utils/type-guards.d.ts +629 -0
- package/dist/utils/type-guards.d.ts.map +1 -0
- package/dist/utils/type-guards.js +662 -0
- package/dist/utils/type-guards.js.map +1 -0
- package/docs/COMPLETE-GUIDE.md +300 -0
- package/docs/MODES-ARCHITECTURE.md +565 -0
- package/docs/PRINT-MODE-GUIDE.md +456 -0
- package/docs/RPC-GUIDE.md +705 -0
- package/docs/UTILS-IMPLEMENTATION-SUMMARY.md +647 -0
- package/docs/UTILS-MODULE-OVERVIEW.md +1480 -0
- package/docs/UTILS-QA-CHECKLIST.md +1061 -0
- package/docs/UTILS-USAGE-GUIDE.md +1419 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bash-executor.js","sourceRoot":"","sources":["../../src/core/bash-executor.ts"],"names":[],"mappings":"AAAA
|
|
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;
|
|
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"}
|
package/dist/core/diagnostics.js
CHANGED
|
@@ -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"}
|
package/dist/core/event-bus.d.ts
CHANGED
|
@@ -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":"
|
|
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"}
|
package/dist/core/event-bus.js
CHANGED
|
@@ -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;
|
|
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"}
|