@kadi.build/core 0.0.1-alpha.2 → 0.0.1-alpha.4

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 (99) hide show
  1. package/README.md +1122 -216
  2. package/dist/KadiClient.d.ts +303 -0
  3. package/dist/KadiClient.d.ts.map +1 -0
  4. package/dist/KadiClient.js +1162 -0
  5. package/dist/KadiClient.js.map +1 -0
  6. package/dist/errors/error-codes.d.ts +215 -0
  7. package/dist/errors/error-codes.d.ts.map +1 -0
  8. package/dist/errors/error-codes.js +295 -0
  9. package/dist/errors/error-codes.js.map +1 -0
  10. package/dist/index.d.ts +15 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +24 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/loadAbility.d.ts +65 -0
  15. package/dist/loadAbility.d.ts.map +1 -0
  16. package/dist/loadAbility.js +335 -0
  17. package/dist/loadAbility.js.map +1 -0
  18. package/dist/messages/BrokerMessages.d.ts +84 -0
  19. package/dist/messages/BrokerMessages.d.ts.map +1 -0
  20. package/dist/messages/BrokerMessages.js +127 -0
  21. package/dist/messages/BrokerMessages.js.map +1 -0
  22. package/dist/messages/MessageBuilder.d.ts +83 -0
  23. package/dist/messages/MessageBuilder.d.ts.map +1 -0
  24. package/dist/messages/MessageBuilder.js +144 -0
  25. package/dist/messages/MessageBuilder.js.map +1 -0
  26. package/dist/schemas/events.schemas.d.ts +177 -0
  27. package/dist/schemas/events.schemas.d.ts.map +1 -0
  28. package/dist/schemas/events.schemas.js +265 -0
  29. package/dist/schemas/events.schemas.js.map +1 -0
  30. package/dist/schemas/index.d.ts +3 -0
  31. package/dist/schemas/index.d.ts.map +1 -0
  32. package/dist/schemas/index.js +4 -0
  33. package/dist/schemas/index.js.map +1 -0
  34. package/dist/schemas/kadi.schemas.d.ts +70 -0
  35. package/dist/schemas/kadi.schemas.d.ts.map +1 -0
  36. package/dist/schemas/kadi.schemas.js +120 -0
  37. package/dist/schemas/kadi.schemas.js.map +1 -0
  38. package/dist/transports/BrokerTransport.d.ts +96 -0
  39. package/dist/transports/BrokerTransport.d.ts.map +1 -0
  40. package/dist/transports/BrokerTransport.js +145 -0
  41. package/dist/transports/BrokerTransport.js.map +1 -0
  42. package/dist/transports/NativeTransport.d.ts +92 -0
  43. package/dist/transports/NativeTransport.d.ts.map +1 -0
  44. package/dist/transports/NativeTransport.js +221 -0
  45. package/dist/transports/NativeTransport.js.map +1 -0
  46. package/dist/transports/StdioTransport.d.ts +112 -0
  47. package/dist/transports/StdioTransport.d.ts.map +1 -0
  48. package/dist/transports/StdioTransport.js +440 -0
  49. package/dist/transports/StdioTransport.js.map +1 -0
  50. package/dist/transports/Transport.d.ts +93 -0
  51. package/dist/transports/Transport.d.ts.map +1 -0
  52. package/dist/transports/Transport.js +13 -0
  53. package/dist/transports/Transport.js.map +1 -0
  54. package/dist/types/broker.d.ts +31 -0
  55. package/dist/types/broker.d.ts.map +1 -0
  56. package/dist/types/broker.js +6 -0
  57. package/dist/types/broker.js.map +1 -0
  58. package/dist/types/core.d.ts +138 -0
  59. package/dist/types/core.d.ts.map +1 -0
  60. package/dist/types/core.js +26 -0
  61. package/dist/types/core.js.map +1 -0
  62. package/dist/types/events.d.ts +186 -0
  63. package/dist/types/events.d.ts.map +1 -0
  64. package/dist/types/events.js +16 -0
  65. package/dist/types/events.js.map +1 -0
  66. package/dist/types/index.d.ts +9 -0
  67. package/dist/types/index.d.ts.map +1 -0
  68. package/dist/types/index.js +13 -0
  69. package/dist/types/index.js.map +1 -0
  70. package/dist/types/protocol.d.ts +160 -0
  71. package/dist/types/protocol.d.ts.map +1 -0
  72. package/dist/types/protocol.js +5 -0
  73. package/dist/types/protocol.js.map +1 -0
  74. package/dist/utils/agentUtils.d.ts +102 -0
  75. package/dist/utils/agentUtils.d.ts.map +1 -0
  76. package/dist/utils/agentUtils.js +166 -0
  77. package/dist/utils/agentUtils.js.map +1 -0
  78. package/dist/utils/commandUtils.d.ts +45 -0
  79. package/dist/utils/commandUtils.d.ts.map +1 -0
  80. package/dist/utils/commandUtils.js +145 -0
  81. package/dist/utils/commandUtils.js.map +1 -0
  82. package/dist/utils/configUtils.d.ts +55 -0
  83. package/dist/utils/configUtils.d.ts.map +1 -0
  84. package/dist/utils/configUtils.js +100 -0
  85. package/dist/utils/configUtils.js.map +1 -0
  86. package/dist/utils/logger.d.ts +59 -0
  87. package/dist/utils/logger.d.ts.map +1 -0
  88. package/dist/utils/logger.js +122 -0
  89. package/dist/utils/logger.js.map +1 -0
  90. package/dist/utils/pathUtils.d.ts +48 -0
  91. package/dist/utils/pathUtils.d.ts.map +1 -0
  92. package/dist/utils/pathUtils.js +128 -0
  93. package/dist/utils/pathUtils.js.map +1 -0
  94. package/package.json +58 -5
  95. package/agent.json +0 -18
  96. package/broker.js +0 -214
  97. package/index.js +0 -382
  98. package/ipc.js +0 -220
  99. package/ipcInterfaces/pythonAbilityIPC.py +0 -177
@@ -0,0 +1,102 @@
1
+ export interface AbilityJSON {
2
+ name: string;
3
+ version: string;
4
+ description?: string;
5
+ main?: string;
6
+ command?: string;
7
+ [key: string]: any;
8
+ }
9
+ export interface ProjectJSON {
10
+ name: string;
11
+ version: string;
12
+ abilities?: Array<{
13
+ name: string;
14
+ version: string;
15
+ }>;
16
+ [key: string]: any;
17
+ }
18
+ export interface KadiJSON {
19
+ brokers?: Array<{
20
+ name: string;
21
+ url: string;
22
+ default?: boolean;
23
+ }>;
24
+ api?: string;
25
+ [key: string]: any;
26
+ }
27
+ /**
28
+ * Get ability configuration JSON
29
+ */
30
+ export declare function getAbilityJSON(abilityName: string, abilityVersion: string): AbilityJSON | null;
31
+ /**
32
+ * Get path to ability's agent.json file
33
+ */
34
+ export declare function getAbilityJSONPath(abilityName: string, abilityVersion: string): string;
35
+ /**
36
+ * Get the abilities directory path
37
+ */
38
+ export declare function getAbilitiesDir(): string;
39
+ /**
40
+ * Get project configuration JSON
41
+ */
42
+ export declare function getProjectJSON(): ProjectJSON | null;
43
+ /**
44
+ * Get path to project's agent.json file
45
+ */
46
+ export declare function getProjectJSONPath(): string;
47
+ /**
48
+ * Get Kadi core configuration JSON
49
+ */
50
+ export declare function getKadiCoreJSON(): KadiJSON | null;
51
+ /**
52
+ * Get path to Kadi core's agent.json file
53
+ */
54
+ export declare function getKadiCoreJSONPath(): string;
55
+ /**
56
+ * Get main Kadi configuration JSON
57
+ */
58
+ export declare function getKadiJSON(): KadiJSON | null;
59
+ /**
60
+ * Get path to main Kadi agent.json file
61
+ */
62
+ export declare function getKadiJSONPath(): string;
63
+ /**
64
+ * Get Kadi executable path
65
+ */
66
+ export declare function getKadiExecPath(): string;
67
+ /**
68
+ * Get Kadi installation path
69
+ */
70
+ export declare function getKadiInstallPath(): string;
71
+ /**
72
+ * Get ability version from abilities array
73
+ * @param abilities - Array of ability configurations
74
+ * @param name - Name of the ability to find
75
+ * @returns The ability version or 'latest' if not found
76
+ */
77
+ export declare function getAbilityVersionFromArray(abilities: Array<{
78
+ name: string;
79
+ version: string;
80
+ }>, name: string): string;
81
+ export declare const KADI_API_URL: string | undefined;
82
+ export declare const SEARCH_API_URL: string | undefined;
83
+ export declare const GET_API_URL: string | undefined;
84
+ declare const _default: {
85
+ getAbilityJSON: typeof getAbilityJSON;
86
+ getAbilityJSONPath: typeof getAbilityJSONPath;
87
+ getAbilitiesDir: typeof getAbilitiesDir;
88
+ getProjectJSON: typeof getProjectJSON;
89
+ getProjectJSONPath: typeof getProjectJSONPath;
90
+ getKadiCoreJSON: typeof getKadiCoreJSON;
91
+ getKadiCoreJSONPath: typeof getKadiCoreJSONPath;
92
+ getKadiJSON: typeof getKadiJSON;
93
+ getKadiJSONPath: typeof getKadiJSONPath;
94
+ getKadiExecPath: typeof getKadiExecPath;
95
+ getKadiInstallPath: typeof getKadiInstallPath;
96
+ getAbilityVersionFromArray: typeof getAbilityVersionFromArray;
97
+ KADI_API_URL: string | undefined;
98
+ SEARCH_API_URL: string | undefined;
99
+ GET_API_URL: string | undefined;
100
+ };
101
+ export default _default;
102
+ //# sourceMappingURL=agentUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentUtils.d.ts","sourceRoot":"","sources":["../../src/utils/agentUtils.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC,CAAC;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,GACrB,WAAW,GAAG,IAAI,CAcpB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,GACrB,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,WAAW,GAAG,IAAI,CAcnD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,QAAQ,GAAG,IAAI,CAiBjD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,QAAQ,GAAG,IAAI,CAc7C;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,EACnD,IAAI,EAAE,MAAM,GACX,MAAM,CAqBR;AAID,eAAO,MAAM,YAAY,oBAAe,CAAC;AACzC,eAAO,MAAM,cAAc,oBAEd,CAAC;AACd,eAAO,MAAM,WAAW,oBAAmD,CAAC;;;;;;;;;;;;;;;;;;AAG5E,wBAgBE"}
@@ -0,0 +1,166 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { kadiAgentPath, kadiExecDir, kadiRootDir, abilitiesDir, projectAgentPath, kadiCoreAgentPath } from './pathUtils.js';
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = path.dirname(__filename);
7
+ /**
8
+ * Get ability configuration JSON
9
+ */
10
+ export function getAbilityJSON(abilityName, abilityVersion) {
11
+ const abilityJSONPath = getAbilityJSONPath(abilityName, abilityVersion);
12
+ if (!fs.existsSync(abilityJSONPath)) {
13
+ return null;
14
+ }
15
+ try {
16
+ const content = fs.readFileSync(abilityJSONPath, 'utf-8');
17
+ return JSON.parse(content);
18
+ }
19
+ catch (error) {
20
+ console.error(`Failed to read ability JSON at ${abilityJSONPath}:`, error);
21
+ return null;
22
+ }
23
+ }
24
+ /**
25
+ * Get path to ability's agent.json file
26
+ */
27
+ export function getAbilityJSONPath(abilityName, abilityVersion) {
28
+ return path.join(abilitiesDir, abilityName, abilityVersion, 'agent.json');
29
+ }
30
+ /**
31
+ * Get the abilities directory path
32
+ */
33
+ export function getAbilitiesDir() {
34
+ return abilitiesDir;
35
+ }
36
+ /**
37
+ * Get project configuration JSON
38
+ */
39
+ export function getProjectJSON() {
40
+ const projectJSONPath = getProjectJSONPath();
41
+ if (!fs.existsSync(projectJSONPath)) {
42
+ return null;
43
+ }
44
+ try {
45
+ const content = fs.readFileSync(projectJSONPath, 'utf-8');
46
+ return JSON.parse(content);
47
+ }
48
+ catch (error) {
49
+ console.error(`Failed to read project JSON at ${projectJSONPath}:`, error);
50
+ return null;
51
+ }
52
+ }
53
+ /**
54
+ * Get path to project's agent.json file
55
+ */
56
+ export function getProjectJSONPath() {
57
+ return projectAgentPath;
58
+ }
59
+ /**
60
+ * Get Kadi core configuration JSON
61
+ */
62
+ export function getKadiCoreJSON() {
63
+ const kadiCoreJSONPath = getKadiCoreJSONPath();
64
+ if (!fs.existsSync(kadiCoreJSONPath)) {
65
+ return null;
66
+ }
67
+ try {
68
+ const content = fs.readFileSync(kadiCoreJSONPath, 'utf-8');
69
+ return JSON.parse(content);
70
+ }
71
+ catch (error) {
72
+ console.error(`Failed to read Kadi core JSON at ${kadiCoreJSONPath}:`, error);
73
+ return null;
74
+ }
75
+ }
76
+ /**
77
+ * Get path to Kadi core's agent.json file
78
+ */
79
+ export function getKadiCoreJSONPath() {
80
+ return kadiCoreAgentPath;
81
+ }
82
+ /**
83
+ * Get main Kadi configuration JSON
84
+ */
85
+ export function getKadiJSON() {
86
+ const kadiJSONPath = getKadiJSONPath();
87
+ if (!fs.existsSync(kadiJSONPath)) {
88
+ return null;
89
+ }
90
+ try {
91
+ const content = fs.readFileSync(kadiJSONPath, 'utf-8');
92
+ return JSON.parse(content);
93
+ }
94
+ catch (error) {
95
+ console.error(`Failed to read Kadi JSON at ${kadiJSONPath}:`, error);
96
+ return null;
97
+ }
98
+ }
99
+ /**
100
+ * Get path to main Kadi agent.json file
101
+ */
102
+ export function getKadiJSONPath() {
103
+ return kadiAgentPath;
104
+ }
105
+ /**
106
+ * Get Kadi executable path
107
+ */
108
+ export function getKadiExecPath() {
109
+ return kadiExecDir;
110
+ }
111
+ /**
112
+ * Get Kadi installation path
113
+ */
114
+ export function getKadiInstallPath() {
115
+ return kadiRootDir;
116
+ }
117
+ /**
118
+ * Get ability version from abilities array
119
+ * @param abilities - Array of ability configurations
120
+ * @param name - Name of the ability to find
121
+ * @returns The ability version or 'latest' if not found
122
+ */
123
+ export function getAbilityVersionFromArray(abilities, name) {
124
+ const ability = abilities.find((a) => a.name === name);
125
+ if (ability) {
126
+ return ability.version;
127
+ }
128
+ // Check if ability exists in abilities directory with a default version
129
+ const abilityDir = path.join(abilitiesDir, name);
130
+ if (fs.existsSync(abilityDir)) {
131
+ const versions = fs
132
+ .readdirSync(abilityDir)
133
+ .filter((dir) => fs.statSync(path.join(abilityDir, dir)).isDirectory());
134
+ if (versions.length > 0) {
135
+ // Return the latest version (simple string comparison)
136
+ return versions.sort().reverse()[0];
137
+ }
138
+ }
139
+ return 'latest';
140
+ }
141
+ // Initialize Kadi configuration and export API URLs
142
+ const kadijson = getKadiJSON() || {};
143
+ export const KADI_API_URL = kadijson.api;
144
+ export const SEARCH_API_URL = kadijson.api
145
+ ? `${kadijson.api}/search`
146
+ : undefined;
147
+ export const GET_API_URL = kadijson.api ? `${kadijson.api}/get` : undefined;
148
+ // Export default for backward compatibility
149
+ export default {
150
+ getAbilityJSON,
151
+ getAbilityJSONPath,
152
+ getAbilitiesDir,
153
+ getProjectJSON,
154
+ getProjectJSONPath,
155
+ getKadiCoreJSON,
156
+ getKadiCoreJSONPath,
157
+ getKadiJSON,
158
+ getKadiJSONPath,
159
+ getKadiExecPath,
160
+ getKadiInstallPath,
161
+ getAbilityVersionFromArray,
162
+ KADI_API_URL,
163
+ SEARCH_API_URL,
164
+ GET_API_URL
165
+ };
166
+ //# sourceMappingURL=agentUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentUtils.js","sourceRoot":"","sources":["../../src/utils/agentUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { ExecOptions, ChildProcess } from 'node:child_process';
2
+ import { Readable } from 'node:stream';
3
+ export interface CommandResult {
4
+ stdout: string;
5
+ stderr: string;
6
+ code: number;
7
+ }
8
+ export interface StreamingCommand {
9
+ stdout: Readable | null;
10
+ stderr: Readable | null;
11
+ kill: () => boolean;
12
+ promise: Promise<CommandResult>;
13
+ process: ChildProcess;
14
+ }
15
+ /**
16
+ * Execute a command and return the complete output
17
+ * Use this for commands with bounded output
18
+ * @param name - The name of the ability or context
19
+ * @param version - The version of the ability
20
+ * @param command - The command to execute
21
+ */
22
+ export declare function runExecCommand(name: string, version: string, command: string): Promise<CommandResult>;
23
+ /**
24
+ * Spawn a command for streaming output
25
+ * Use this for long-running commands or large outputs
26
+ * @param name - The name of the ability or context
27
+ * @param version - The version of the ability
28
+ * @param command - The command to execute
29
+ */
30
+ export declare function runSpawnCommand(name: string, version: string, command: string): Promise<StreamingCommand>;
31
+ /**
32
+ * Generic command execution with options
33
+ * @param command - The command to execute
34
+ * @param options - Execution options
35
+ */
36
+ export declare function runCommand(command: string, options?: ExecOptions): Promise<CommandResult>;
37
+ /**
38
+ * Run command with timeout
39
+ */
40
+ export declare function runCommandWithTimeout(command: string, timeoutMs: number, options?: ExecOptions): Promise<CommandResult>;
41
+ /**
42
+ * Check if a command exists in PATH
43
+ */
44
+ export declare function commandExists(command: string): Promise<boolean>;
45
+ //# sourceMappingURL=commandUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commandUtils.d.ts","sourceRoot":"","sources":["../../src/utils/commandUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EAEX,YAAY,EACb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAOvC,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,OAAO,EAAE,YAAY,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,CAAC,CAqBxB;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC,CAgD3B;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,aAAa,CAAC,CAoBxB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,aAAa,CAAC,CAkBxB;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAUrE"}
@@ -0,0 +1,145 @@
1
+ import { exec, spawn } from 'node:child_process';
2
+ import { promisify } from 'node:util';
3
+ import path from 'node:path';
4
+ import { rootDir } from './pathUtils.js';
5
+ const execAsync = promisify(exec);
6
+ /**
7
+ * Execute a command and return the complete output
8
+ * Use this for commands with bounded output
9
+ * @param name - The name of the ability or context
10
+ * @param version - The version of the ability
11
+ * @param command - The command to execute
12
+ */
13
+ export async function runExecCommand(name, version, command) {
14
+ const abilityPath = path.join(rootDir, 'abilities', name, version);
15
+ return new Promise((resolve, reject) => {
16
+ exec(command, { cwd: abilityPath }, (error, stdout, stderr) => {
17
+ if (error) {
18
+ // Even on error, we want to return the output
19
+ resolve({
20
+ stdout: stdout?.toString() || '',
21
+ stderr: stderr?.toString() || error.message,
22
+ code: error.code || 1
23
+ });
24
+ }
25
+ else {
26
+ resolve({
27
+ stdout: stdout?.toString() || '',
28
+ stderr: stderr?.toString() || '',
29
+ code: 0
30
+ });
31
+ }
32
+ });
33
+ });
34
+ }
35
+ /**
36
+ * Spawn a command for streaming output
37
+ * Use this for long-running commands or large outputs
38
+ * @param name - The name of the ability or context
39
+ * @param version - The version of the ability
40
+ * @param command - The command to execute
41
+ */
42
+ export async function runSpawnCommand(name, version, command) {
43
+ const abilityPath = path.join(rootDir, 'abilities', name, version);
44
+ return new Promise((resolve, reject) => {
45
+ const [cmd, ...args] = command.split(' ');
46
+ const child = spawn(cmd, args, {
47
+ cwd: abilityPath,
48
+ shell: true
49
+ });
50
+ // Create promise for final result
51
+ const promise = new Promise((resolveResult) => {
52
+ let stdout = '';
53
+ let stderr = '';
54
+ child.stdout?.on('data', (chunk) => {
55
+ stdout += chunk.toString();
56
+ });
57
+ child.stderr?.on('data', (chunk) => {
58
+ stderr += chunk.toString();
59
+ });
60
+ child.on('error', (error) => {
61
+ resolveResult({
62
+ stdout,
63
+ stderr: stderr || error.message,
64
+ code: 1
65
+ });
66
+ });
67
+ child.on('exit', (code) => {
68
+ resolveResult({
69
+ stdout,
70
+ stderr,
71
+ code: code || 0
72
+ });
73
+ });
74
+ });
75
+ resolve({
76
+ stdout: child.stdout,
77
+ stderr: child.stderr,
78
+ kill: () => child.kill(),
79
+ promise,
80
+ process: child
81
+ });
82
+ });
83
+ }
84
+ /**
85
+ * Generic command execution with options
86
+ * @param command - The command to execute
87
+ * @param options - Execution options
88
+ */
89
+ export async function runCommand(command, options = {}) {
90
+ try {
91
+ const { stdout, stderr } = await execAsync(command, {
92
+ encoding: 'utf8',
93
+ ...options
94
+ });
95
+ return {
96
+ stdout: stdout.toString(),
97
+ stderr: stderr.toString(),
98
+ code: 0
99
+ };
100
+ }
101
+ catch (error) {
102
+ // Exec error includes stdout/stderr even on failure
103
+ return {
104
+ stdout: error.stdout?.toString() || '',
105
+ stderr: error.stderr?.toString() || error.message,
106
+ code: error.code || 1
107
+ };
108
+ }
109
+ }
110
+ /**
111
+ * Run command with timeout
112
+ */
113
+ export async function runCommandWithTimeout(command, timeoutMs, options = {}) {
114
+ const controller = new AbortController();
115
+ const timeout = setTimeout(() => controller.abort(), timeoutMs);
116
+ try {
117
+ const result = await runCommand(command, {
118
+ ...options,
119
+ signal: controller.signal
120
+ });
121
+ clearTimeout(timeout);
122
+ return result;
123
+ }
124
+ catch (error) {
125
+ clearTimeout(timeout);
126
+ if (error.code === 'ABORT_ERR') {
127
+ throw new Error(`Command timed out after ${timeoutMs}ms`);
128
+ }
129
+ throw error;
130
+ }
131
+ }
132
+ /**
133
+ * Check if a command exists in PATH
134
+ */
135
+ export async function commandExists(command) {
136
+ const checkCommand = process.platform === 'win32' ? `where ${command}` : `which ${command}`;
137
+ try {
138
+ const result = await runCommand(checkCommand);
139
+ return result.code === 0;
140
+ }
141
+ catch {
142
+ return false;
143
+ }
144
+ }
145
+ //# sourceMappingURL=commandUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commandUtils.js","sourceRoot":"","sources":["../../src/utils/commandUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ export interface BrokerConfig {
2
+ [key: string]: string;
3
+ }
4
+ export interface AbilityInfo {
5
+ name: string;
6
+ version: string;
7
+ [key: string]: any;
8
+ }
9
+ export declare const KADI_BROKERS: BrokerConfig;
10
+ export declare const KADI_BROKER_URL: string | undefined;
11
+ /**
12
+ * Get broker URL by name
13
+ */
14
+ export declare function getBrokerUrl(brokerName: string): string | undefined;
15
+ /**
16
+ * Get all broker names
17
+ */
18
+ export declare function getBrokerNames(): string[];
19
+ /**
20
+ * Get the default broker name
21
+ */
22
+ export declare function getDefaultBrokerName(): string | undefined;
23
+ /**
24
+ * Set the active broker
25
+ * @throws {Error} If broker name is not found
26
+ */
27
+ export declare function setActiveBroker(brokerName: string): void;
28
+ /**
29
+ * Get the active broker name
30
+ */
31
+ export declare function getActiveBrokerName(): string | undefined;
32
+ /**
33
+ * Get the active broker URL
34
+ */
35
+ export declare function getActiveBrokerUrl(): string | undefined;
36
+ /**
37
+ * Find ability version by name
38
+ * @param abilities - Array of ability configurations
39
+ * @param name - Name of the ability to find
40
+ * @returns The ability configuration or undefined
41
+ */
42
+ export declare function findAbilityVersionByName(abilities: AbilityInfo[], name: string): AbilityInfo | undefined;
43
+ declare const _default: {
44
+ KADI_BROKERS: BrokerConfig;
45
+ KADI_BROKER_URL: string | undefined;
46
+ getBrokerUrl: typeof getBrokerUrl;
47
+ getBrokerNames: typeof getBrokerNames;
48
+ getDefaultBrokerName: typeof getDefaultBrokerName;
49
+ setActiveBroker: typeof setActiveBroker;
50
+ getActiveBrokerName: typeof getActiveBrokerName;
51
+ getActiveBrokerUrl: typeof getActiveBrokerUrl;
52
+ findAbilityVersionByName: typeof findAbilityVersionByName;
53
+ };
54
+ export default _default;
55
+ //# sourceMappingURL=configUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configUtils.d.ts","sourceRoot":"","sources":["../../src/utils/configUtils.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAoBD,eAAO,MAAM,YAAY,cAAU,CAAC;AAgBpC,eAAO,MAAM,eAAe,oBAEf,CAAC;AAKd;;GAEG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEnE;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAEzC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,SAAS,CAEzD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAKxD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAExD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,SAAS,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,WAAW,EAAE,EACxB,IAAI,EAAE,MAAM,GACX,WAAW,GAAG,SAAS,CAEzB;;;;;;;;;;;;AAGD,wBAUE"}
@@ -0,0 +1,100 @@
1
+ import { getKadiJSON } from './agentUtils.js';
2
+ // Initialize brokers configuration
3
+ const kadijson = getKadiJSON();
4
+ const brokers = {};
5
+ // Extract broker URLs from config - handle both object and array formats
6
+ const brokersConfig = kadijson?.brokers;
7
+ if (brokersConfig) {
8
+ if (Array.isArray(brokersConfig)) {
9
+ // Handle array format: [{name: 'local', url: 'ws://...'}]
10
+ for (const broker of brokersConfig) {
11
+ brokers[broker.name] = broker.url;
12
+ }
13
+ }
14
+ else if (typeof brokersConfig === 'object') {
15
+ // Handle object format: {local: 'ws://127.0.0.1:8080', remote: 'ws://...'}
16
+ Object.assign(brokers, brokersConfig);
17
+ }
18
+ }
19
+ export const KADI_BROKERS = brokers;
20
+ // Determine default broker
21
+ let defaultBrokerName;
22
+ if (kadijson?.brokers) {
23
+ if (Array.isArray(kadijson.brokers)) {
24
+ // Array format
25
+ defaultBrokerName =
26
+ kadijson.brokers.find((b) => b.default)?.name ||
27
+ kadijson.brokers[0]?.name;
28
+ }
29
+ else {
30
+ // Object format - use first key as default
31
+ defaultBrokerName = Object.keys(kadijson.brokers)[0];
32
+ }
33
+ }
34
+ export const KADI_BROKER_URL = defaultBrokerName
35
+ ? brokers[defaultBrokerName]
36
+ : undefined; // Backward compatibility
37
+ // Active broker state
38
+ let activeBrokerName = defaultBrokerName;
39
+ /**
40
+ * Get broker URL by name
41
+ */
42
+ export function getBrokerUrl(brokerName) {
43
+ return brokers[brokerName];
44
+ }
45
+ /**
46
+ * Get all broker names
47
+ */
48
+ export function getBrokerNames() {
49
+ return Object.keys(brokers);
50
+ }
51
+ /**
52
+ * Get the default broker name
53
+ */
54
+ export function getDefaultBrokerName() {
55
+ return defaultBrokerName;
56
+ }
57
+ /**
58
+ * Set the active broker
59
+ * @throws {Error} If broker name is not found
60
+ */
61
+ export function setActiveBroker(brokerName) {
62
+ if (!brokers[brokerName]) {
63
+ throw new Error(`Broker '${brokerName}' not found in configuration`);
64
+ }
65
+ activeBrokerName = brokerName;
66
+ }
67
+ /**
68
+ * Get the active broker name
69
+ */
70
+ export function getActiveBrokerName() {
71
+ return activeBrokerName;
72
+ }
73
+ /**
74
+ * Get the active broker URL
75
+ */
76
+ export function getActiveBrokerUrl() {
77
+ return activeBrokerName ? brokers[activeBrokerName] : undefined;
78
+ }
79
+ /**
80
+ * Find ability version by name
81
+ * @param abilities - Array of ability configurations
82
+ * @param name - Name of the ability to find
83
+ * @returns The ability configuration or undefined
84
+ */
85
+ export function findAbilityVersionByName(abilities, name) {
86
+ return abilities.find((ability) => ability.name === name);
87
+ }
88
+ // Export default for backward compatibility
89
+ export default {
90
+ KADI_BROKERS,
91
+ KADI_BROKER_URL,
92
+ getBrokerUrl,
93
+ getBrokerNames,
94
+ getDefaultBrokerName,
95
+ setActiveBroker,
96
+ getActiveBrokerName,
97
+ getActiveBrokerUrl,
98
+ findAbilityVersionByName
99
+ };
100
+ //# sourceMappingURL=configUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configUtils.js","sourceRoot":"","sources":["../../src/utils/configUtils.ts"],"names":[],"mappings":"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"}