zilmate 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/.env.example +14 -0
  2. package/README.md +326 -0
  3. package/agent-docs.md +264 -0
  4. package/dist/agents/chat.agent.d.ts +30 -0
  5. package/dist/agents/chat.agent.d.ts.map +1 -0
  6. package/dist/agents/chat.agent.js +16 -0
  7. package/dist/agents/chat.agent.js.map +1 -0
  8. package/dist/agents/docs-research.agent.d.ts +127 -0
  9. package/dist/agents/docs-research.agent.d.ts.map +1 -0
  10. package/dist/agents/docs-research.agent.js +29 -0
  11. package/dist/agents/docs-research.agent.js.map +1 -0
  12. package/dist/agents/image.agent.d.ts +9 -0
  13. package/dist/agents/image.agent.d.ts.map +1 -0
  14. package/dist/agents/image.agent.js +12 -0
  15. package/dist/agents/image.agent.js.map +1 -0
  16. package/dist/agents/manager.d.ts +140 -0
  17. package/dist/agents/manager.d.ts.map +1 -0
  18. package/dist/agents/manager.js +150 -0
  19. package/dist/agents/manager.js.map +1 -0
  20. package/dist/agents/post.agent.d.ts +7 -0
  21. package/dist/agents/post.agent.d.ts.map +1 -0
  22. package/dist/agents/post.agent.js +12 -0
  23. package/dist/agents/post.agent.js.map +1 -0
  24. package/dist/agents/quick-help.agent.d.ts +30 -0
  25. package/dist/agents/quick-help.agent.d.ts.map +1 -0
  26. package/dist/agents/quick-help.agent.js +16 -0
  27. package/dist/agents/quick-help.agent.js.map +1 -0
  28. package/dist/cli/confirm.d.ts +5 -0
  29. package/dist/cli/confirm.d.ts.map +1 -0
  30. package/dist/cli/confirm.js +35 -0
  31. package/dist/cli/confirm.js.map +1 -0
  32. package/dist/cli/doctor.d.ts +53 -0
  33. package/dist/cli/doctor.d.ts.map +1 -0
  34. package/dist/cli/doctor.js +141 -0
  35. package/dist/cli/doctor.js.map +1 -0
  36. package/dist/cli/format.d.ts +12 -0
  37. package/dist/cli/format.d.ts.map +1 -0
  38. package/dist/cli/format.js +167 -0
  39. package/dist/cli/format.js.map +1 -0
  40. package/dist/cli/interactive.d.ts +2 -0
  41. package/dist/cli/interactive.d.ts.map +1 -0
  42. package/dist/cli/interactive.js +80 -0
  43. package/dist/cli/interactive.js.map +1 -0
  44. package/dist/cli/setup.d.ts +14 -0
  45. package/dist/cli/setup.d.ts.map +1 -0
  46. package/dist/cli/setup.js +145 -0
  47. package/dist/cli/setup.js.map +1 -0
  48. package/dist/cli/triggers.d.ts +43 -0
  49. package/dist/cli/triggers.d.ts.map +1 -0
  50. package/dist/cli/triggers.js +221 -0
  51. package/dist/cli/triggers.js.map +1 -0
  52. package/dist/config/env.d.ts +26 -0
  53. package/dist/config/env.d.ts.map +1 -0
  54. package/dist/config/env.js +59 -0
  55. package/dist/config/env.js.map +1 -0
  56. package/dist/config/models.d.ts +22 -0
  57. package/dist/config/models.d.ts.map +1 -0
  58. package/dist/config/models.js +38 -0
  59. package/dist/config/models.js.map +1 -0
  60. package/dist/index.d.ts +3 -0
  61. package/dist/index.d.ts.map +1 -0
  62. package/dist/index.js +452 -0
  63. package/dist/index.js.map +1 -0
  64. package/dist/memory/composio-session.d.ts +9 -0
  65. package/dist/memory/composio-session.d.ts.map +1 -0
  66. package/dist/memory/composio-session.js +33 -0
  67. package/dist/memory/composio-session.js.map +1 -0
  68. package/dist/memory/history.d.ts +11 -0
  69. package/dist/memory/history.d.ts.map +1 -0
  70. package/dist/memory/history.js +33 -0
  71. package/dist/memory/history.js.map +1 -0
  72. package/dist/memory/local-store.d.ts +4 -0
  73. package/dist/memory/local-store.d.ts.map +1 -0
  74. package/dist/memory/local-store.js +24 -0
  75. package/dist/memory/local-store.js.map +1 -0
  76. package/dist/memory/long-term.d.ts +13 -0
  77. package/dist/memory/long-term.d.ts.map +1 -0
  78. package/dist/memory/long-term.js +67 -0
  79. package/dist/memory/long-term.js.map +1 -0
  80. package/dist/memory/redis.d.ts +4 -0
  81. package/dist/memory/redis.d.ts.map +1 -0
  82. package/dist/memory/redis.js +18 -0
  83. package/dist/memory/redis.js.map +1 -0
  84. package/dist/memory/scratchpad.d.ts +3 -0
  85. package/dist/memory/scratchpad.d.ts.map +1 -0
  86. package/dist/memory/scratchpad.js +22 -0
  87. package/dist/memory/scratchpad.js.map +1 -0
  88. package/dist/runtime/confirm.d.ts +13 -0
  89. package/dist/runtime/confirm.d.ts.map +1 -0
  90. package/dist/runtime/confirm.js +17 -0
  91. package/dist/runtime/confirm.js.map +1 -0
  92. package/dist/runtime/progress.d.ts +8 -0
  93. package/dist/runtime/progress.d.ts.map +1 -0
  94. package/dist/runtime/progress.js +15 -0
  95. package/dist/runtime/progress.js.map +1 -0
  96. package/dist/safety/approvals.d.ts +6 -0
  97. package/dist/safety/approvals.d.ts.map +1 -0
  98. package/dist/safety/approvals.js +8 -0
  99. package/dist/safety/approvals.js.map +1 -0
  100. package/dist/safety/limits.d.ts +8 -0
  101. package/dist/safety/limits.d.ts.map +1 -0
  102. package/dist/safety/limits.js +10 -0
  103. package/dist/safety/limits.js.map +1 -0
  104. package/dist/safety/redaction.d.ts +2 -0
  105. package/dist/safety/redaction.d.ts.map +1 -0
  106. package/dist/safety/redaction.js +9 -0
  107. package/dist/safety/redaction.js.map +1 -0
  108. package/dist/server.d.ts +54 -0
  109. package/dist/server.d.ts.map +1 -0
  110. package/dist/server.js +69 -0
  111. package/dist/server.js.map +1 -0
  112. package/dist/tools/app-knowledge.tool.d.ts +4 -0
  113. package/dist/tools/app-knowledge.tool.d.ts.map +1 -0
  114. package/dist/tools/app-knowledge.tool.js +30 -0
  115. package/dist/tools/app-knowledge.tool.js.map +1 -0
  116. package/dist/tools/composio.tool.d.ts +15 -0
  117. package/dist/tools/composio.tool.d.ts.map +1 -0
  118. package/dist/tools/composio.tool.js +272 -0
  119. package/dist/tools/composio.tool.js.map +1 -0
  120. package/dist/tools/docs-fetch.tool.d.ts +6 -0
  121. package/dist/tools/docs-fetch.tool.d.ts.map +1 -0
  122. package/dist/tools/docs-fetch.tool.js +62 -0
  123. package/dist/tools/docs-fetch.tool.js.map +1 -0
  124. package/dist/tools/docs-search.tool.d.ts +4 -0
  125. package/dist/tools/docs-search.tool.d.ts.map +1 -0
  126. package/dist/tools/docs-search.tool.js +14 -0
  127. package/dist/tools/docs-search.tool.js.map +1 -0
  128. package/dist/tools/image-generate.tool.d.ts +22 -0
  129. package/dist/tools/image-generate.tool.d.ts.map +1 -0
  130. package/dist/tools/image-generate.tool.js +113 -0
  131. package/dist/tools/image-generate.tool.js.map +1 -0
  132. package/dist/tools/memory.tool.d.ts +18 -0
  133. package/dist/tools/memory.tool.d.ts.map +1 -0
  134. package/dist/tools/memory.tool.js +53 -0
  135. package/dist/tools/memory.tool.js.map +1 -0
  136. package/dist/tools/post-generate.tool.d.ts +5 -0
  137. package/dist/tools/post-generate.tool.d.ts.map +1 -0
  138. package/dist/tools/post-generate.tool.js +19 -0
  139. package/dist/tools/post-generate.tool.js.map +1 -0
  140. package/dist/tools/scratchpad.tool.d.ts +7 -0
  141. package/dist/tools/scratchpad.tool.d.ts.map +1 -0
  142. package/dist/tools/scratchpad.tool.js +29 -0
  143. package/dist/tools/scratchpad.tool.js.map +1 -0
  144. package/dist/tools/triggers.tool.d.ts +72 -0
  145. package/dist/tools/triggers.tool.d.ts.map +1 -0
  146. package/dist/tools/triggers.tool.js +108 -0
  147. package/dist/tools/triggers.tool.js.map +1 -0
  148. package/dist/tools/web-search.tool.d.ts +94 -0
  149. package/dist/tools/web-search.tool.d.ts.map +1 -0
  150. package/dist/tools/web-search.tool.js +214 -0
  151. package/dist/tools/web-search.tool.js.map +1 -0
  152. package/dist/tools/zilo-docs.tool.d.ts +26 -0
  153. package/dist/tools/zilo-docs.tool.d.ts.map +1 -0
  154. package/dist/tools/zilo-docs.tool.js +150 -0
  155. package/dist/tools/zilo-docs.tool.js.map +1 -0
  156. package/install.ps1 +62 -0
  157. package/package.json +88 -0
  158. package/src/doc/README.md +49 -0
  159. package/src/doc/admin-tools-and-sms-campaigns.md +99 -0
  160. package/src/doc/escalation-checklist.md +97 -0
  161. package/src/doc/payments-and-payouts.md +82 -0
  162. package/src/doc/shift-lifecycle-and-disputes.md +95 -0
  163. package/src/doc/support-macros.md +40 -0
  164. package/src/doc/venue-support-playbook.md +145 -0
  165. package/src/doc/verification-and-trust.md +88 -0
  166. package/src/doc/worker-support-playbook.md +160 -0
package/dist/index.js ADDED
@@ -0,0 +1,452 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander';
3
+ import { generateText } from 'ai';
4
+ import { requireGatewayAuth } from './config/env.js';
5
+ import { getModelAvailability, models } from './config/models.js';
6
+ import { runManager } from './agents/manager.js';
7
+ import { createQuickHelpAgent } from './agents/quick-help.agent.js';
8
+ import { createChatAgent } from './agents/chat.agent.js';
9
+ import { createPostAgent } from './agents/post.agent.js';
10
+ import { createDocsResearchAgent } from './agents/docs-research.agent.js';
11
+ import { generateImageAsset, isImageSize } from './tools/image-generate.tool.js';
12
+ import { startInteractiveChat } from './cli/interactive.js';
13
+ import { runSetup } from './cli/setup.js';
14
+ import { memoryBackendName } from './memory/redis.js';
15
+ import { printError, printJson, printMarkdown, printProgress } from './cli/format.js';
16
+ import { createTerminalConfirmation } from './cli/confirm.js';
17
+ import { getComposioStatus } from './tools/composio.tool.js';
18
+ import { getResolvedConfigSummary, runDoctor } from './cli/doctor.js';
19
+ import { clearMemories, forget, listMemories, recall, remember } from './memory/long-term.js';
20
+ import { createTrigger, listenToTriggers, listTriggers, listTriggerTypes, showTriggerType } from './cli/triggers.js';
21
+ async function printResult(value) {
22
+ if (typeof value === 'string') {
23
+ printMarkdown(value);
24
+ }
25
+ else {
26
+ printJson(value);
27
+ }
28
+ }
29
+ async function runAgentText(agentFactory, prompt) {
30
+ requireGatewayAuth();
31
+ const result = await agentFactory().generate({ prompt });
32
+ await printResult(result.text);
33
+ }
34
+ function printDoctorChecks(checks) {
35
+ for (const check of checks) {
36
+ const label = check.status.toUpperCase().padEnd(4);
37
+ console.log(`${label} ${check.name}: ${check.detail}`);
38
+ }
39
+ }
40
+ function friendlyError(error) {
41
+ const message = error instanceof Error ? error.message : String(error);
42
+ if (/AI_GATEWAY_API_KEY|VERCEL_OIDC_TOKEN|TAVILY_API_KEY|COMPOSIO_API_KEY|ZILMATE_USER_ID/.test(message))
43
+ return message;
44
+ return `ZilMate failed: ${message}`;
45
+ }
46
+ const program = new Command();
47
+ program
48
+ .name('zilmate')
49
+ .description('ZilMate CLI agent for ZiloShift workflows')
50
+ .version('1.0.0');
51
+ program
52
+ .command('setup')
53
+ .option('-p, --path <file>', 'environment file to create or update', '.env')
54
+ .option('-f, --force', 'skip the first overwrite confirmation when the env file exists')
55
+ .option('-y, --yes', 'noninteractive mode; write defaults plus provided keys')
56
+ .option('--ai-gateway-key <key>', 'AI Gateway API key')
57
+ .option('--composio-key <key>', 'optional Composio API key for external app tools')
58
+ .option('--zilmate-user-id <id>', 'stable local user id for Composio sessions')
59
+ .option('--tavily-key <key>', 'optional Tavily API key for web research')
60
+ .option('--redis-url <url>', 'optional Upstash Redis REST URL')
61
+ .option('--redis-token <token>', 'optional Upstash Redis REST token')
62
+ .description('Create or update a local .env file for ZilMate')
63
+ .action(async (options) => {
64
+ try {
65
+ await runSetup({
66
+ path: options.path,
67
+ force: Boolean(options.force),
68
+ yes: Boolean(options.yes),
69
+ ...(options.aiGatewayKey !== undefined ? { aiGatewayKey: options.aiGatewayKey } : {}),
70
+ ...(options.composioKey !== undefined ? { composioKey: options.composioKey } : {}),
71
+ ...(options.zilmateUserId !== undefined ? { zilmateUserId: options.zilmateUserId } : {}),
72
+ ...(options.tavilyKey !== undefined ? { tavilyKey: options.tavilyKey } : {}),
73
+ ...(options.redisUrl !== undefined ? { redisUrl: options.redisUrl } : {}),
74
+ ...(options.redisToken !== undefined ? { redisToken: options.redisToken } : {}),
75
+ });
76
+ }
77
+ catch (error) {
78
+ printError(friendlyError(error));
79
+ process.exitCode = 1;
80
+ }
81
+ });
82
+ program
83
+ .command('doctor')
84
+ .option('--live', 'also run live Gateway and Composio checks')
85
+ .option('-s, --session <id>', 'Composio/ZilMate session id for live checks', 'default')
86
+ .option('--json', 'print JSON output')
87
+ .description('Check local ZilMate config, keys, memory, Node, and optional live integrations')
88
+ .action(async (options) => {
89
+ try {
90
+ const checks = await runDoctor({ live: Boolean(options.live), sessionId: options.session });
91
+ if (options.json) {
92
+ printJson(checks);
93
+ }
94
+ else {
95
+ printDoctorChecks(checks);
96
+ }
97
+ }
98
+ catch (error) {
99
+ printError(friendlyError(error));
100
+ process.exitCode = 1;
101
+ }
102
+ });
103
+ const envCommand = program
104
+ .command('env')
105
+ .description('Inspect ZilMate environment setup');
106
+ envCommand
107
+ .command('check')
108
+ .option('--live', 'also run live Gateway and Composio checks')
109
+ .option('-s, --session <id>', 'Composio/ZilMate session id for live checks', 'default')
110
+ .option('--json', 'print JSON output')
111
+ .description('Alias for zilmate doctor focused on environment readiness')
112
+ .action(async (options) => {
113
+ try {
114
+ const checks = await runDoctor({ live: Boolean(options.live), sessionId: options.session });
115
+ if (options.json) {
116
+ printJson(checks);
117
+ }
118
+ else {
119
+ printDoctorChecks(checks);
120
+ }
121
+ }
122
+ catch (error) {
123
+ printError(friendlyError(error));
124
+ process.exitCode = 1;
125
+ }
126
+ });
127
+ program
128
+ .command('config')
129
+ .description('Show sanitized ZilMate configuration without secrets')
130
+ .action(async () => {
131
+ try {
132
+ printJson(await getResolvedConfigSummary());
133
+ }
134
+ catch (error) {
135
+ printError(friendlyError(error));
136
+ process.exitCode = 1;
137
+ }
138
+ });
139
+ program
140
+ .command('remember')
141
+ .argument('<note...>', 'memory text to save')
142
+ .option('-t, --tag <tag...>', 'optional memory tags')
143
+ .description('Save a durable long-term ZilMate memory')
144
+ .action(async (note, options) => {
145
+ try {
146
+ const memory = await remember(note.join(' '), options.tag ?? []);
147
+ printJson(memory);
148
+ }
149
+ catch (error) {
150
+ printError(friendlyError(error));
151
+ process.exitCode = 1;
152
+ }
153
+ });
154
+ program
155
+ .command('recall')
156
+ .argument('[query...]', 'memory query; omitted means recent memories')
157
+ .option('-l, --limit <number>', 'maximum memories to return', '8')
158
+ .description('Recall durable long-term ZilMate memories')
159
+ .action(async (query, options) => {
160
+ try {
161
+ const limit = Number.parseInt(options.limit, 10);
162
+ printJson(await recall((query ?? []).join(' '), Number.isFinite(limit) ? limit : 8));
163
+ }
164
+ catch (error) {
165
+ printError(friendlyError(error));
166
+ process.exitCode = 1;
167
+ }
168
+ });
169
+ program
170
+ .command('forget')
171
+ .argument('[id]', 'memory id to forget')
172
+ .option('--all', 'forget all memories')
173
+ .description('Forget one durable memory by id')
174
+ .action(async (id, options) => {
175
+ try {
176
+ if (options.all) {
177
+ await clearMemories();
178
+ printJson({ cleared: true });
179
+ return;
180
+ }
181
+ if (!id)
182
+ throw new Error('Pass a memory id, or use --all to clear every memory.');
183
+ printJson({ id, deleted: await forget(id) });
184
+ }
185
+ catch (error) {
186
+ printError(friendlyError(error));
187
+ process.exitCode = 1;
188
+ }
189
+ });
190
+ const memoryCommand = program
191
+ .command('memory')
192
+ .description('Manage durable long-term ZilMate memory');
193
+ memoryCommand
194
+ .command('list')
195
+ .description('List all durable long-term memories')
196
+ .action(async () => {
197
+ try {
198
+ printJson(await listMemories());
199
+ }
200
+ catch (error) {
201
+ printError(friendlyError(error));
202
+ process.exitCode = 1;
203
+ }
204
+ });
205
+ const apps = program
206
+ .command('apps')
207
+ .description('Manage external app tooling through Composio');
208
+ apps
209
+ .command('status')
210
+ .option('-s, --session <id>', 'ZilMate chat session id', 'default')
211
+ .description('Show Composio setup, user id, session, and toolkit connection status')
212
+ .action(async (options) => {
213
+ try {
214
+ const status = await getComposioStatus(options.session);
215
+ printJson(status);
216
+ if (!status.configured) {
217
+ console.log('Composio is not configured. Run `zilmate setup` and add `COMPOSIO_API_KEY` to enable GitHub/Gmail/Slack/Stripe/Supabase-style external app tools.');
218
+ }
219
+ }
220
+ catch (error) {
221
+ printError(friendlyError(error));
222
+ process.exitCode = 1;
223
+ }
224
+ });
225
+ const triggers = program
226
+ .command('triggers')
227
+ .description('Listen to and manage Composio trigger events');
228
+ triggers
229
+ .command('types')
230
+ .argument('[toolkit]', 'optional toolkit slug, e.g. github or gmail')
231
+ .option('-l, --limit <number>', 'maximum trigger types to show', '25')
232
+ .option('--json', 'print JSON output')
233
+ .description('List available Composio trigger types')
234
+ .action(async (toolkit, options) => {
235
+ try {
236
+ await listTriggerTypes(toolkit, options);
237
+ }
238
+ catch (error) {
239
+ printError(friendlyError(error));
240
+ process.exitCode = 1;
241
+ }
242
+ });
243
+ triggers
244
+ .command('info')
245
+ .argument('<trigger>', 'trigger type slug, e.g. GITHUB_COMMIT_EVENT')
246
+ .option('--json', 'print JSON output')
247
+ .description('Show one Composio trigger type schema')
248
+ .action(async (trigger, options) => {
249
+ try {
250
+ await showTriggerType(trigger, options);
251
+ }
252
+ catch (error) {
253
+ printError(friendlyError(error));
254
+ process.exitCode = 1;
255
+ }
256
+ });
257
+ triggers
258
+ .command('list')
259
+ .option('-l, --limit <number>', 'maximum trigger instances to show', '25')
260
+ .option('--show-disabled', 'include disabled trigger instances')
261
+ .option('--json', 'print JSON output')
262
+ .description('List active Composio trigger instances')
263
+ .action(async (options) => {
264
+ try {
265
+ await listTriggers(options);
266
+ }
267
+ catch (error) {
268
+ printError(friendlyError(error));
269
+ process.exitCode = 1;
270
+ }
271
+ });
272
+ triggers
273
+ .command('create')
274
+ .argument('<trigger>', 'trigger type slug, e.g. GITHUB_COMMIT_EVENT')
275
+ .option('--connected-account <id>', 'specific connected account id to use')
276
+ .option('--config <json>', 'trigger config as a JSON object')
277
+ .option('--dry-run', 'print the create payload without creating a trigger')
278
+ .allowUnknownOption(true)
279
+ .allowExcessArguments(true)
280
+ .description('Create a Composio trigger instance; unknown --flags become trigger config')
281
+ .action(async (trigger, options, command) => {
282
+ try {
283
+ const unknownArgs = command.args.filter((arg) => arg !== trigger);
284
+ await createTrigger(trigger, options, unknownArgs);
285
+ }
286
+ catch (error) {
287
+ printError(friendlyError(error));
288
+ process.exitCode = 1;
289
+ }
290
+ });
291
+ triggers
292
+ .command('listen')
293
+ .option('--trigger <id>', 'filter by trigger instance id')
294
+ .option('--trigger-slug <slug...>', 'filter by trigger type slug')
295
+ .option('--toolkit <slug...>', 'filter by toolkit slug')
296
+ .option('--connected-account <id>', 'filter by connected account id')
297
+ .option('--trigger-data <value>', 'filter by trigger data')
298
+ .option('--user-id <id>', 'filter by Composio user id')
299
+ .option('--json', 'print full event JSON')
300
+ .option('--once', 'exit after the first matching event')
301
+ .description('Stream Composio trigger events into the terminal')
302
+ .action(async (options) => {
303
+ try {
304
+ await listenToTriggers(options);
305
+ }
306
+ catch (error) {
307
+ printError(friendlyError(error));
308
+ process.exitCode = 1;
309
+ }
310
+ });
311
+ program
312
+ .command('models')
313
+ .description('Show configured Gateway models and availability warnings')
314
+ .action(async () => {
315
+ try {
316
+ requireGatewayAuth();
317
+ const availability = await getModelAvailability();
318
+ printJson({
319
+ selected: availability.selected,
320
+ memory: memoryBackendName(),
321
+ availableCount: availability.availableIds.length,
322
+ missing: availability.missing,
323
+ warnings: availability.warnings,
324
+ });
325
+ }
326
+ catch (error) {
327
+ printError(friendlyError(error));
328
+ process.exitCode = 1;
329
+ }
330
+ });
331
+ program
332
+ .command('talk')
333
+ .option('-s, --session <id>', 'persistent chat session id', 'default')
334
+ .description('Start an interactive chat with the main manager agent')
335
+ .action(async (options) => {
336
+ try {
337
+ await startInteractiveChat(options.session);
338
+ }
339
+ catch (error) {
340
+ printError(friendlyError(error));
341
+ process.exitCode = 1;
342
+ }
343
+ });
344
+ program
345
+ .command('chat')
346
+ .argument('<message...>', 'message to discuss')
347
+ .description('One-shot natural dialogue about ZiloShift')
348
+ .action(async (message) => {
349
+ try {
350
+ await runAgentText(createChatAgent, message.join(' '));
351
+ }
352
+ catch (error) {
353
+ printError(friendlyError(error));
354
+ process.exitCode = 1;
355
+ }
356
+ });
357
+ program
358
+ .command('help')
359
+ .argument('<question...>', 'quick-help question')
360
+ .description('Fast troubleshooting and app guidance')
361
+ .action(async (question) => {
362
+ try {
363
+ await runAgentText(createQuickHelpAgent, question.join(' '));
364
+ }
365
+ catch (error) {
366
+ printError(friendlyError(error));
367
+ process.exitCode = 1;
368
+ }
369
+ });
370
+ program
371
+ .command('post')
372
+ .argument('<prompt...>', 'post generation prompt')
373
+ .description('Generate WhatsApp/status/social copy')
374
+ .action(async (prompt) => {
375
+ try {
376
+ await runAgentText(createPostAgent, prompt.join(' '));
377
+ }
378
+ catch (error) {
379
+ printError(friendlyError(error));
380
+ process.exitCode = 1;
381
+ }
382
+ });
383
+ program
384
+ .command('research')
385
+ .argument('<query...>', 'research query')
386
+ .description('Search docs/web and return sourced research')
387
+ .action(async (query) => {
388
+ try {
389
+ await runAgentText(createDocsResearchAgent, query.join(' '));
390
+ }
391
+ catch (error) {
392
+ printError(friendlyError(error));
393
+ process.exitCode = 1;
394
+ }
395
+ });
396
+ program
397
+ .command('image')
398
+ .argument('<prompt...>', 'image prompt')
399
+ .option('-m, --model <model>', 'image model: openai|chatgpt|gemini', 'openai')
400
+ .option('--size <size>', 'image size for OpenAI, e.g. 1024x1024')
401
+ .description('Generate an image and save it under outputs/images')
402
+ .action(async (prompt, options) => {
403
+ try {
404
+ const result = await generateImageAsset(prompt.join(' '), {
405
+ provider: options.model,
406
+ ...(isImageSize(options.size) ? { size: options.size } : {}),
407
+ });
408
+ await printResult(result);
409
+ }
410
+ catch (error) {
411
+ printError(friendlyError(error));
412
+ process.exitCode = 1;
413
+ }
414
+ });
415
+ program
416
+ .command('manager')
417
+ .argument('<prompt...>', 'manager orchestration prompt')
418
+ .option('-s, --session <id>', 'persistent manager session id for Composio tools', 'default')
419
+ .description('Route a one-shot task through the manager agent')
420
+ .action(async (prompt, options) => {
421
+ try {
422
+ requireGatewayAuth();
423
+ await printResult(await runManager(prompt.join(' '), {
424
+ progress: printProgress,
425
+ sessionId: options.session,
426
+ confirm: createTerminalConfirmation(),
427
+ }));
428
+ }
429
+ catch (error) {
430
+ printError(friendlyError(error));
431
+ process.exitCode = 1;
432
+ }
433
+ });
434
+ program
435
+ .command('ping')
436
+ .description('Make a tiny Gateway text call to verify auth')
437
+ .action(async () => {
438
+ try {
439
+ requireGatewayAuth();
440
+ const result = await generateText({ model: models.help, prompt: 'Reply with exactly: ZilMate online' });
441
+ await printResult(result.text);
442
+ }
443
+ catch (error) {
444
+ printError(friendlyError(error));
445
+ process.exitCode = 1;
446
+ }
447
+ });
448
+ program.parseAsync(process.argv).catch((error) => {
449
+ printError(friendlyError(error));
450
+ process.exitCode = 1;
451
+ });
452
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,SAAS,EAAoB,MAAM,iBAAiB,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIrH,KAAK,UAAU,WAAW,CAAC,KAAuB;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,aAAa,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,SAAS,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,YAA8B,EAAE,MAAc;IACxE,kBAAkB,EAAE,CAAC;IACrB,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACzD,MAAM,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAqB;IAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,IAAI,sFAAsF,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IACzH,OAAO,mBAAmB,OAAO,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,2CAA2C,CAAC;KACxD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,mBAAmB,EAAE,sCAAsC,EAAE,MAAM,CAAC;KAC3E,MAAM,CAAC,aAAa,EAAE,gEAAgE,CAAC;KACvF,MAAM,CAAC,WAAW,EAAE,wDAAwD,CAAC;KAC7E,MAAM,CAAC,wBAAwB,EAAE,oBAAoB,CAAC;KACtD,MAAM,CAAC,sBAAsB,EAAE,kDAAkD,CAAC;KAClF,MAAM,CAAC,wBAAwB,EAAE,4CAA4C,CAAC;KAC9E,MAAM,CAAC,oBAAoB,EAAE,0CAA0C,CAAC;KACxE,MAAM,CAAC,mBAAmB,EAAE,iCAAiC,CAAC;KAC9D,MAAM,CAAC,uBAAuB,EAAE,mCAAmC,CAAC;KACpE,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,KAAK,EAAE,OAA0L,EAAE,EAAE;IAC3M,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC;YACb,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;YAC7B,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;YACzB,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrF,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxF,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,MAAM,CAAC,QAAQ,EAAE,2CAA2C,CAAC;KAC7D,MAAM,CAAC,oBAAoB,EAAE,6CAA6C,EAAE,SAAS,CAAC;KACtF,MAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC;KACrC,WAAW,CAAC,gFAAgF,CAAC;KAC7F,MAAM,CAAC,KAAK,EAAE,OAA4D,EAAE,EAAE;IAC7E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5F,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,SAAS,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,UAAU,GAAG,OAAO;KACvB,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,mCAAmC,CAAC,CAAC;AAEpD,UAAU;KACP,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,QAAQ,EAAE,2CAA2C,CAAC;KAC7D,MAAM,CAAC,oBAAoB,EAAE,6CAA6C,EAAE,SAAS,CAAC;KACtF,MAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC;KACrC,WAAW,CAAC,2DAA2D,CAAC;KACxE,MAAM,CAAC,KAAK,EAAE,OAA4D,EAAE,EAAE;IAC7E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5F,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,SAAS,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,sDAAsD,CAAC;KACnE,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,SAAS,CAAC,MAAM,wBAAwB,EAAE,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;KAC5C,MAAM,CAAC,oBAAoB,EAAE,sBAAsB,CAAC;KACpD,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,KAAK,EAAE,IAAc,EAAE,OAA2B,EAAE,EAAE;IAC5D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QACjE,SAAS,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,QAAQ,CAAC,YAAY,EAAE,6CAA6C,CAAC;KACrE,MAAM,CAAC,sBAAsB,EAAE,4BAA4B,EAAE,GAAG,CAAC;KACjE,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,KAAK,EAAE,KAA2B,EAAE,OAA0B,EAAE,EAAE;IACxE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjD,SAAS,CAAC,MAAM,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;KACvC,MAAM,CAAC,OAAO,EAAE,qBAAqB,CAAC;KACtC,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,KAAK,EAAE,EAAsB,EAAE,OAA0B,EAAE,EAAE;IACnE,IAAI,CAAC;QACH,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,MAAM,aAAa,EAAE,CAAC;YACtB,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAClF,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,aAAa,GAAG,OAAO;KAC1B,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,yCAAyC,CAAC,CAAC;AAE1D,aAAa;KACV,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,SAAS,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,IAAI,GAAG,OAAO;KACjB,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,8CAA8C,CAAC,CAAC;AAE/D,IAAI;KACD,OAAO,CAAC,QAAQ,CAAC;KACjB,MAAM,CAAC,oBAAoB,EAAE,yBAAyB,EAAE,SAAS,CAAC;KAClE,WAAW,CAAC,sEAAsE,CAAC;KACnF,MAAM,CAAC,KAAK,EAAE,OAA4B,EAAE,EAAE;IAC7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxD,SAAS,CAAC,MAAM,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,mJAAmJ,CAAC,CAAC;QACnK,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,QAAQ,GAAG,OAAO;KACrB,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,8CAA8C,CAAC,CAAC;AAE/D,QAAQ;KACL,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,WAAW,EAAE,6CAA6C,CAAC;KACpE,MAAM,CAAC,sBAAsB,EAAE,+BAA+B,EAAE,IAAI,CAAC;KACrE,MAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC;KACrC,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,OAA2C,EAAE,EAAE;IACzF,IAAI,CAAC;QACH,MAAM,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,QAAQ;KACL,OAAO,CAAC,MAAM,CAAC;KACf,QAAQ,CAAC,WAAW,EAAE,6CAA6C,CAAC;KACpE,MAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC;KACrC,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAA2B,EAAE,EAAE;IAC7D,IAAI,CAAC;QACH,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,QAAQ;KACL,OAAO,CAAC,MAAM,CAAC;KACf,MAAM,CAAC,sBAAsB,EAAE,mCAAmC,EAAE,IAAI,CAAC;KACzE,MAAM,CAAC,iBAAiB,EAAE,oCAAoC,CAAC;KAC/D,MAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC;KACrC,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,KAAK,EAAE,OAAmE,EAAE,EAAE;IACpF,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,QAAQ;KACL,OAAO,CAAC,QAAQ,CAAC;KACjB,QAAQ,CAAC,WAAW,EAAE,6CAA6C,CAAC;KACpE,MAAM,CAAC,0BAA0B,EAAE,sCAAsC,CAAC;KAC1E,MAAM,CAAC,iBAAiB,EAAE,iCAAiC,CAAC;KAC5D,MAAM,CAAC,WAAW,EAAE,qDAAqD,CAAC;KAC1E,kBAAkB,CAAC,IAAI,CAAC;KACxB,oBAAoB,CAAC,IAAI,CAAC;KAC1B,WAAW,CAAC,2EAA2E,CAAC;KACxF,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAAyE,EAAE,OAAgB,EAAE,EAAE;IAC7H,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC;QAClE,MAAM,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,QAAQ;KACL,OAAO,CAAC,QAAQ,CAAC;KACjB,MAAM,CAAC,gBAAgB,EAAE,+BAA+B,CAAC;KACzD,MAAM,CAAC,0BAA0B,EAAE,6BAA6B,CAAC;KACjE,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC;KACvD,MAAM,CAAC,0BAA0B,EAAE,gCAAgC,CAAC;KACpE,MAAM,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;KAC1D,MAAM,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;KACtD,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;KACzC,MAAM,CAAC,QAAQ,EAAE,qCAAqC,CAAC;KACvD,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,KAAK,EAAE,OAA2K,EAAE,EAAE;IAC5L,IAAI,CAAC;QACH,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,0DAA0D,CAAC;KACvE,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,kBAAkB,EAAE,CAAC;QACrB,MAAM,YAAY,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAClD,SAAS,CAAC;YACR,QAAQ,EAAE,YAAY,CAAC,QAAQ;YAC/B,MAAM,EAAE,iBAAiB,EAAE;YAC3B,cAAc,EAAE,YAAY,CAAC,YAAY,CAAC,MAAM;YAChD,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,QAAQ,EAAE,YAAY,CAAC,QAAQ;SAChC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,MAAM,CAAC,oBAAoB,EAAE,4BAA4B,EAAE,SAAS,CAAC;KACrE,WAAW,CAAC,uDAAuD,CAAC;KACpE,MAAM,CAAC,KAAK,EAAE,OAA4B,EAAE,EAAE;IAC7C,IAAI,CAAC;QACH,MAAM,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;KAC9C,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,KAAK,EAAE,OAAiB,EAAE,EAAE;IAClC,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC;KAChD,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,KAAK,EAAE,QAAkB,EAAE,EAAE;IACnC,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,oBAAoB,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,QAAQ,CAAC,aAAa,EAAE,wBAAwB,CAAC;KACjD,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,KAAK,EAAE,MAAgB,EAAE,EAAE;IACjC,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC;KACxC,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,KAAK,EAAE,KAAe,EAAE,EAAE;IAChC,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,uBAAuB,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;KACvC,MAAM,CAAC,qBAAqB,EAAE,oCAAoC,EAAE,QAAQ,CAAC;KAC7E,MAAM,CAAC,eAAe,EAAE,uCAAuC,CAAC;KAChE,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,KAAK,EAAE,MAAgB,EAAE,OAAyC,EAAE,EAAE;IAC5E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACxD,QAAQ,EAAE,OAAO,CAAC,KAA+D;YACjF,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7D,CAAC,CAAC;QACH,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,QAAQ,CAAC,aAAa,EAAE,8BAA8B,CAAC;KACvD,MAAM,CAAC,oBAAoB,EAAE,kDAAkD,EAAE,SAAS,CAAC;KAC3F,WAAW,CAAC,iDAAiD,CAAC;KAC9D,MAAM,CAAC,KAAK,EAAE,MAAgB,EAAE,OAA4B,EAAE,EAAE;IAC/D,IAAI,CAAC;QACH,kBAAkB,EAAE,CAAC;QACrB,MAAM,WAAW,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACnD,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE,OAAO,CAAC,OAAO;YAC1B,OAAO,EAAE,0BAA0B,EAAE;SACtC,CAAC,CAAC,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,8CAA8C,CAAC;KAC3D,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,kBAAkB,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,oCAAoC,EAAE,CAAC,CAAC;QACxG,MAAM,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC/C,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ export type ComposioSessionRecord = {
2
+ chatSessionId: string;
3
+ sessionId: string;
4
+ createdAt: string;
5
+ updatedAt: string;
6
+ };
7
+ export declare function loadComposioSession(chatSessionId: string): Promise<ComposioSessionRecord | null>;
8
+ export declare function saveComposioSession(chatSessionId: string, sessionId: string): Promise<ComposioSessionRecord>;
9
+ //# sourceMappingURL=composio-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composio-session.d.ts","sourceRoot":"","sources":["../../src/memory/composio-session.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAUF,wBAAsB,mBAAmB,CAAC,aAAa,EAAE,MAAM,yCAI9D;AAED,wBAAsB,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kCAkBjF"}
@@ -0,0 +1,33 @@
1
+ import { readJson, writeJson } from './local-store.js';
2
+ import { getRedis } from './redis.js';
3
+ const composioSessionTtlSeconds = 60 * 60 * 24 * 30;
4
+ function key(sessionId) {
5
+ return `zilo-manager:composio-session:${sessionId}`;
6
+ }
7
+ function file(sessionId) {
8
+ return `composio-session-${encodeURIComponent(sessionId)}.json`;
9
+ }
10
+ export async function loadComposioSession(chatSessionId) {
11
+ const redis = getRedis();
12
+ if (redis)
13
+ return redis.get(key(chatSessionId));
14
+ return readJson(file(chatSessionId), null);
15
+ }
16
+ export async function saveComposioSession(chatSessionId, sessionId) {
17
+ const existing = await loadComposioSession(chatSessionId);
18
+ const now = new Date().toISOString();
19
+ const record = {
20
+ chatSessionId,
21
+ sessionId,
22
+ createdAt: existing?.createdAt ?? now,
23
+ updatedAt: now,
24
+ };
25
+ const redis = getRedis();
26
+ if (redis) {
27
+ await redis.set(key(chatSessionId), record, { ex: composioSessionTtlSeconds });
28
+ return record;
29
+ }
30
+ await writeJson(file(chatSessionId), record);
31
+ return record;
32
+ }
33
+ //# sourceMappingURL=composio-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composio-session.js","sourceRoot":"","sources":["../../src/memory/composio-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,yBAAyB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AASpD,SAAS,GAAG,CAAC,SAAiB;IAC5B,OAAO,iCAAiC,SAAS,EAAE,CAAC;AACtD,CAAC;AAED,SAAS,IAAI,CAAC,SAAiB;IAC7B,OAAO,oBAAoB,kBAAkB,CAAC,SAAS,CAAC,OAAO,CAAC;AAClE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,aAAqB;IAC7D,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC,GAAG,CAAwB,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IACvE,OAAO,QAAQ,CAA+B,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,aAAqB,EAAE,SAAiB;IAChF,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAC1D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,MAAM,GAA0B;QACpC,aAAa;QACb,SAAS;QACT,SAAS,EAAE,QAAQ,EAAE,SAAS,IAAI,GAAG;QACrC,SAAS,EAAE,GAAG;KACf,CAAC;IAEF,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,yBAAyB,EAAE,CAAC,CAAC;QAC/E,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { UIMessage } from 'ai';
2
+ export type ChatTurn = {
3
+ role: 'user' | 'assistant';
4
+ content: string;
5
+ createdAt: string;
6
+ };
7
+ export declare function loadHistory(sessionId: string): Promise<UIMessage<unknown, import("ai").UIDataTypes, import("ai").UITools>[]>;
8
+ export declare function saveHistory(sessionId: string, messages: UIMessage[]): Promise<void>;
9
+ export declare function loadTurns(sessionId: string): Promise<ChatTurn[]>;
10
+ export declare function saveTurns(sessionId: string, turns: ChatTurn[]): Promise<void>;
11
+ //# sourceMappingURL=history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/memory/history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAMpC,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,iFAIlD;AAED,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAOzE;AAED,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,uBAIhD;AAED,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,iBAQnE"}
@@ -0,0 +1,33 @@
1
+ import { readJson, writeJson } from './local-store.js';
2
+ import { getRedis } from './redis.js';
3
+ const historyTtlSeconds = 60 * 60 * 24 * 30;
4
+ export async function loadHistory(sessionId) {
5
+ const redis = getRedis();
6
+ if (redis)
7
+ return (await redis.get(`zilo-manager:ui-history:${sessionId}`)) ?? [];
8
+ return readJson(`history-${sessionId}.json`, []);
9
+ }
10
+ export async function saveHistory(sessionId, messages) {
11
+ const redis = getRedis();
12
+ if (redis) {
13
+ await redis.set(`zilo-manager:ui-history:${sessionId}`, messages, { ex: historyTtlSeconds });
14
+ return;
15
+ }
16
+ await writeJson(`history-${sessionId}.json`, messages);
17
+ }
18
+ export async function loadTurns(sessionId) {
19
+ const redis = getRedis();
20
+ if (redis)
21
+ return (await redis.get(`zilo-manager:turns:${sessionId}`)) ?? [];
22
+ return readJson(`turns-${sessionId}.json`, []);
23
+ }
24
+ export async function saveTurns(sessionId, turns) {
25
+ const redis = getRedis();
26
+ const trimmed = turns.slice(-20);
27
+ if (redis) {
28
+ await redis.set(`zilo-manager:turns:${sessionId}`, trimmed, { ex: historyTtlSeconds });
29
+ return;
30
+ }
31
+ await writeJson(`turns-${sessionId}.json`, trimmed);
32
+ }
33
+ //# sourceMappingURL=history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/memory/history.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,iBAAiB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAQ5C,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,SAAiB;IACjD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,IAAI,KAAK;QAAE,OAAO,CAAC,MAAM,KAAK,CAAC,GAAG,CAAc,2BAA2B,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/F,OAAO,QAAQ,CAAc,WAAW,SAAS,OAAO,EAAE,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,SAAiB,EAAE,QAAqB;IACxE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,KAAK,CAAC,GAAG,CAAC,2BAA2B,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC7F,OAAO;IACT,CAAC;IACD,MAAM,SAAS,CAAC,WAAW,SAAS,OAAO,EAAE,QAAQ,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,SAAiB;IAC/C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,IAAI,KAAK;QAAE,OAAO,CAAC,MAAM,KAAK,CAAC,GAAG,CAAa,sBAAsB,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACzF,OAAO,QAAQ,CAAa,SAAS,SAAS,OAAO,EAAE,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,SAAiB,EAAE,KAAiB;IAClE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACjC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,KAAK,CAAC,GAAG,CAAC,sBAAsB,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACvF,OAAO;IACT,CAAC;IACD,MAAM,SAAS,CAAC,SAAS,SAAS,OAAO,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function readJson<T>(file: string, fallback: T): Promise<T>;
2
+ export declare function writeJson(file: string, value: unknown): Promise<void>;
3
+ export declare function appendText(file: string, value: string): Promise<void>;
4
+ //# sourceMappingURL=local-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-store.d.ts","sourceRoot":"","sources":["../../src/memory/local-store.ts"],"names":[],"mappings":"AASA,wBAAsB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAOvE;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,iBAG3D;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,iBAG3D"}
@@ -0,0 +1,24 @@
1
+ import { mkdir, readFile, writeFile } from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ const root = path.resolve('.zilo-manager');
4
+ async function ensureRoot() {
5
+ await mkdir(root, { recursive: true });
6
+ }
7
+ export async function readJson(file, fallback) {
8
+ try {
9
+ const raw = await readFile(path.join(root, file), 'utf8');
10
+ return JSON.parse(raw);
11
+ }
12
+ catch {
13
+ return fallback;
14
+ }
15
+ }
16
+ export async function writeJson(file, value) {
17
+ await ensureRoot();
18
+ await writeFile(path.join(root, file), JSON.stringify(value, null, 2), 'utf8');
19
+ }
20
+ export async function appendText(file, value) {
21
+ const current = await readJson(file, { text: '' });
22
+ await writeJson(file, { text: `${current.text}\n${value}`.trim() });
23
+ }
24
+ //# sourceMappingURL=local-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-store.js","sourceRoot":"","sources":["../../src/memory/local-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AAE3C,KAAK,UAAU,UAAU;IACvB,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAI,IAAY,EAAE,QAAW;IACzD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,KAAc;IAC1D,MAAM,UAAU,EAAE,CAAC;IACnB,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,KAAa;IAC1D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAmB,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACrE,MAAM,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACtE,CAAC"}
@@ -0,0 +1,13 @@
1
+ export type LongTermMemory = {
2
+ id: string;
3
+ text: string;
4
+ tags: string[];
5
+ createdAt: string;
6
+ updatedAt: string;
7
+ };
8
+ export declare function listMemories(): Promise<LongTermMemory[]>;
9
+ export declare function remember(text: string, tags?: string[]): Promise<LongTermMemory>;
10
+ export declare function recall(query?: string, limit?: number): Promise<LongTermMemory[]>;
11
+ export declare function forget(id: string): Promise<boolean>;
12
+ export declare function clearMemories(): Promise<void>;
13
+ //# sourceMappingURL=long-term.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"long-term.d.ts","sourceRoot":"","sources":["../../src/memory/long-term.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAWF,wBAAsB,YAAY,8BAIjC;AAYD,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,2BAgB/D;AAED,wBAAsB,MAAM,CAAC,KAAK,SAAK,EAAE,KAAK,SAAI,6BAWjD;AAED,wBAAsB,MAAM,CAAC,EAAE,EAAE,MAAM,oBAMtC;AAED,wBAAsB,aAAa,kBAElC"}