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
@@ -0,0 +1,67 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { readJson, writeJson } from './local-store.js';
3
+ import { getRedis } from './redis.js';
4
+ const memoryKey = 'zilo-manager:memory:v1';
5
+ const memoryFile = 'memory.json';
6
+ function normalize(input) {
7
+ return input.toLowerCase().replace(/[^a-z0-9]+/g, ' ').trim();
8
+ }
9
+ function scoreMemory(memory, terms) {
10
+ const body = normalize(`${memory.text} ${memory.tags.join(' ')}`);
11
+ return terms.reduce((score, term) => score + (body.includes(term) ? 1 : 0), 0);
12
+ }
13
+ export async function listMemories() {
14
+ const redis = getRedis();
15
+ if (redis)
16
+ return (await redis.get(memoryKey)) ?? [];
17
+ return readJson(memoryFile, []);
18
+ }
19
+ async function saveMemories(memories) {
20
+ const sorted = memories.sort((a, b) => a.createdAt.localeCompare(b.createdAt));
21
+ const redis = getRedis();
22
+ if (redis) {
23
+ await redis.set(memoryKey, sorted);
24
+ return;
25
+ }
26
+ await writeJson(memoryFile, sorted);
27
+ }
28
+ export async function remember(text, tags = []) {
29
+ const trimmed = text.trim();
30
+ if (!trimmed)
31
+ throw new Error('Memory text cannot be blank.');
32
+ const now = new Date().toISOString();
33
+ const memory = {
34
+ id: randomUUID().slice(0, 8),
35
+ text: trimmed,
36
+ tags: tags.map((tag) => tag.trim()).filter(Boolean),
37
+ createdAt: now,
38
+ updatedAt: now,
39
+ };
40
+ const memories = await listMemories();
41
+ await saveMemories([...memories, memory]);
42
+ return memory;
43
+ }
44
+ export async function recall(query = '', limit = 8) {
45
+ const memories = await listMemories();
46
+ const terms = normalize(query).split(' ').filter((term) => term.length > 2);
47
+ if (terms.length === 0)
48
+ return memories.slice(-limit).reverse();
49
+ return memories
50
+ .map((memory) => ({ memory, score: scoreMemory(memory, terms) }))
51
+ .filter((item) => item.score > 0)
52
+ .sort((a, b) => b.score - a.score || b.memory.updatedAt.localeCompare(a.memory.updatedAt))
53
+ .slice(0, limit)
54
+ .map((item) => item.memory);
55
+ }
56
+ export async function forget(id) {
57
+ const memories = await listMemories();
58
+ const remaining = memories.filter((memory) => memory.id !== id);
59
+ if (remaining.length === memories.length)
60
+ return false;
61
+ await saveMemories(remaining);
62
+ return true;
63
+ }
64
+ export async function clearMemories() {
65
+ await saveMemories([]);
66
+ }
67
+ //# sourceMappingURL=long-term.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"long-term.js","sourceRoot":"","sources":["../../src/memory/long-term.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Redis } from '@upstash/redis';
2
+ export declare function getRedis(): Redis | null;
3
+ export declare function memoryBackendName(): "redis" | "local-file";
4
+ //# sourceMappingURL=redis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../src/memory/redis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAKvC,wBAAgB,QAAQ,iBAQvB;AAED,wBAAgB,iBAAiB,2BAEhC"}
@@ -0,0 +1,18 @@
1
+ import { Redis } from '@upstash/redis';
2
+ import { env, hasRedis } from '../config/env.js';
3
+ let client;
4
+ export function getRedis() {
5
+ if (!hasRedis())
6
+ return null;
7
+ if (client !== undefined)
8
+ return client;
9
+ client = new Redis({
10
+ url: env.upstashRedisRestUrl,
11
+ token: env.upstashRedisRestToken,
12
+ });
13
+ return client;
14
+ }
15
+ export function memoryBackendName() {
16
+ return hasRedis() ? 'redis' : 'local-file';
17
+ }
18
+ //# sourceMappingURL=redis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../src/memory/redis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,IAAI,MAAgC,CAAC;AAErC,MAAM,UAAU,QAAQ;IACtB,IAAI,CAAC,QAAQ,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,MAAM,GAAG,IAAI,KAAK,CAAC;QACjB,GAAG,EAAE,GAAG,CAAC,mBAAoB;QAC7B,KAAK,EAAE,GAAG,CAAC,qBAAsB;KAClC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function readScratchpad(runId: string): Promise<string>;
2
+ export declare function appendScratchpad(runId: string, text: string): Promise<string>;
3
+ //# sourceMappingURL=scratchpad.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scratchpad.d.ts","sourceRoot":"","sources":["../../src/memory/scratchpad.ts"],"names":[],"mappings":"AAKA,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,mBAKjD;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mBAUjE"}
@@ -0,0 +1,22 @@
1
+ import { appendText, readJson } from './local-store.js';
2
+ import { getRedis } from './redis.js';
3
+ const scratchTtlSeconds = 60 * 60 * 24;
4
+ export async function readScratchpad(runId) {
5
+ const redis = getRedis();
6
+ if (redis)
7
+ return (await redis.get(`zilo-manager:scratch:${runId}`)) || '(empty)';
8
+ const note = await readJson(`scratch-${runId}.json`, { text: '' });
9
+ return note.text || '(empty)';
10
+ }
11
+ export async function appendScratchpad(runId, text) {
12
+ const redis = getRedis();
13
+ if (redis) {
14
+ const key = `zilo-manager:scratch:${runId}`;
15
+ await redis.append(key, `\n${text}`);
16
+ await redis.expire(key, scratchTtlSeconds);
17
+ return 'Appended.';
18
+ }
19
+ await appendText(`scratch-${runId}.json`, text);
20
+ return 'Appended.';
21
+ }
22
+ //# sourceMappingURL=scratchpad.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scratchpad.js","sourceRoot":"","sources":["../../src/memory/scratchpad.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,iBAAiB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAa;IAChD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,IAAI,KAAK;QAAE,OAAO,CAAC,MAAM,KAAK,CAAC,GAAG,CAAS,wBAAwB,KAAK,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC;IAC1F,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAmB,WAAW,KAAK,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACrF,OAAO,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAa,EAAE,IAAY;IAChE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,GAAG,GAAG,wBAAwB,KAAK,EAAE,CAAC;QAC5C,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QACrC,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;QAC3C,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,MAAM,UAAU,CAAC,WAAW,KAAK,OAAO,EAAE,IAAI,CAAC,CAAC;IAChD,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -0,0 +1,13 @@
1
+ export type ConfirmationRequest = {
2
+ toolkitSlug: string;
3
+ toolSlug: string;
4
+ summary: string;
5
+ action?: string;
6
+ access?: 'Read-only' | 'Write';
7
+ targetTools?: string[];
8
+ details?: string[];
9
+ };
10
+ export type ConfirmationHandler = (request: ConfirmationRequest) => Promise<boolean>;
11
+ export declare function withConfirmationHandler<T>(handler: ConfirmationHandler | undefined, run: () => Promise<T>): Promise<T>;
12
+ export declare function requestConfirmation(request: ConfirmationRequest): Promise<boolean>;
13
+ //# sourceMappingURL=confirm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirm.d.ts","sourceRoot":"","sources":["../../src/runtime/confirm.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAIrF,wBAAsB,uBAAuB,CAAC,CAAC,EAAE,OAAO,EAAE,mBAAmB,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,cAQ/G;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,oBAGrE"}
@@ -0,0 +1,17 @@
1
+ let currentHandler;
2
+ export async function withConfirmationHandler(handler, run) {
3
+ const previous = currentHandler;
4
+ currentHandler = handler;
5
+ try {
6
+ return await run();
7
+ }
8
+ finally {
9
+ currentHandler = previous;
10
+ }
11
+ }
12
+ export async function requestConfirmation(request) {
13
+ if (!currentHandler)
14
+ return false;
15
+ return currentHandler(request);
16
+ }
17
+ //# sourceMappingURL=confirm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirm.js","sourceRoot":"","sources":["../../src/runtime/confirm.ts"],"names":[],"mappings":"AAYA,IAAI,cAA+C,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAI,OAAwC,EAAE,GAAqB;IAC9G,MAAM,QAAQ,GAAG,cAAc,CAAC;IAChC,cAAc,GAAG,OAAO,CAAC;IACzB,IAAI,CAAC;QACH,OAAO,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;YAAS,CAAC;QACT,cAAc,GAAG,QAAQ,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAA4B;IACpE,IAAI,CAAC,cAAc;QAAE,OAAO,KAAK,CAAC;IAClC,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export type ProgressEvent = {
2
+ type: 'thinking' | 'step' | 'tool:start' | 'tool:end' | 'tool:error' | 'search:start' | 'search:end' | 'fetch:start' | 'fetch:end' | 'done';
3
+ label: string;
4
+ detail?: string;
5
+ };
6
+ export declare function emitProgress(event: ProgressEvent): void;
7
+ export declare function withProgressListener<T>(progress: ((event: ProgressEvent) => void) | undefined, run: () => Promise<T>): Promise<T>;
8
+ //# sourceMappingURL=progress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/runtime/progress.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,cAAc,GAAG,YAAY,GAAG,aAAa,GAAG,WAAW,GAAG,MAAM,CAAC;IAC5I,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAIF,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,QAEhD;AAED,wBAAsB,oBAAoB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,cAQ1H"}
@@ -0,0 +1,15 @@
1
+ let listener;
2
+ export function emitProgress(event) {
3
+ listener?.(event);
4
+ }
5
+ export async function withProgressListener(progress, run) {
6
+ const previous = listener;
7
+ listener = progress;
8
+ try {
9
+ return await run();
10
+ }
11
+ finally {
12
+ listener = previous;
13
+ }
14
+ }
15
+ //# sourceMappingURL=progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/runtime/progress.ts"],"names":[],"mappings":"AAMA,IAAI,QAAsD,CAAC;AAE3D,MAAM,UAAU,YAAY,CAAC,KAAoB;IAC/C,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAI,QAAsD,EAAE,GAAqB;IACzH,MAAM,QAAQ,GAAG,QAAQ,CAAC;IAC1B,QAAQ,GAAG,QAAQ,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;YAAS,CAAC;QACT,QAAQ,GAAG,QAAQ,CAAC;IACtB,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ export type ApprovalDecision = 'allowed' | 'blocked';
2
+ export declare function checkReadOnlyIntent(prompt: string): {
3
+ decision: ApprovalDecision;
4
+ reason?: string;
5
+ };
6
+ //# sourceMappingURL=approvals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approvals.d.ts","sourceRoot":"","sources":["../../src/safety/approvals.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,CAAC;AAIrD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,gBAAgB,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAKnG"}
@@ -0,0 +1,8 @@
1
+ const blockedIntentPattern = /\b(delete|drop|wipe|reset|transfer money|send payout|revoke)\b/i;
2
+ export function checkReadOnlyIntent(prompt) {
3
+ if (blockedIntentPattern.test(prompt)) {
4
+ return { decision: 'blocked', reason: 'This CLI scaffold is read-only for app operations. It can guide, draft, research, and generate assets only.' };
5
+ }
6
+ return { decision: 'allowed' };
7
+ }
8
+ //# sourceMappingURL=approvals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../src/safety/approvals.ts"],"names":[],"mappings":"AAEA,MAAM,oBAAoB,GAAG,iEAAiE,CAAC;AAE/F,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,6GAA6G,EAAE,CAAC;IACxJ,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare const limits: {
2
+ managerSteps: number;
3
+ subagentSteps: number;
4
+ researchResults: number;
5
+ docsCacheTtlMs: number;
6
+ };
7
+ export declare function clampText(input: string, max?: number): string;
8
+ //# sourceMappingURL=limits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../../src/safety/limits.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;CAKlB,CAAC;AAEF,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAO,UAElD"}
@@ -0,0 +1,10 @@
1
+ export const limits = {
2
+ managerSteps: 8,
3
+ subagentSteps: 5,
4
+ researchResults: 5,
5
+ docsCacheTtlMs: 1000 * 60 * 60 * 24,
6
+ };
7
+ export function clampText(input, max = 6000) {
8
+ return input.length <= max ? input : `${input.slice(0, max)}\n...[trimmed]`;
9
+ }
10
+ //# sourceMappingURL=limits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limits.js","sourceRoot":"","sources":["../../src/safety/limits.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,CAAC;IAChB,eAAe,EAAE,CAAC;IAClB,cAAc,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;CACpC,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,KAAa,EAAE,GAAG,GAAG,IAAI;IACjD,OAAO,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC;AAC9E,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function redactSensitiveText(input: string): string;
2
+ //# sourceMappingURL=redaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../../src/safety/redaction.ts"],"names":[],"mappings":"AAGA,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,UAKhD"}
@@ -0,0 +1,9 @@
1
+ const emailPattern = /[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}/gi;
2
+ const ghPhonePattern = /(?:\+233|0)\d{9}/g;
3
+ export function redactSensitiveText(input) {
4
+ return input
5
+ .replace(emailPattern, '[email]')
6
+ .replace(ghPhonePattern, '[phone]')
7
+ .replace(/\b\d{12,16}\b/g, '[long-number]');
8
+ }
9
+ //# sourceMappingURL=redaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redaction.js","sourceRoot":"","sources":["../../src/safety/redaction.ts"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAAG,yCAAyC,CAAC;AAC/D,MAAM,cAAc,GAAG,mBAAmB,CAAC;AAE3C,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,OAAO,KAAK;SACT,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC;SAChC,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC;SAClC,OAAO,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { type ImageGenerationOptions, type ImageGenerationResult } from './tools/image-generate.tool.js';
2
+ import { clearMemories, forget, listMemories, type LongTermMemory } from './memory/long-term.js';
3
+ import type { ConfirmationHandler, ConfirmationRequest } from './runtime/confirm.js';
4
+ import type { ProgressEvent } from './runtime/progress.js';
5
+ export type { ConfirmationHandler, ConfirmationRequest, ProgressEvent };
6
+ export type { ImageGenerationOptions, ImageGenerationResult, LongTermMemory };
7
+ export type ZilMateOptions = {
8
+ sessionId?: string;
9
+ onProgress?: (event: ProgressEvent) => void;
10
+ confirm?: ConfirmationHandler;
11
+ };
12
+ export type ZilMateTextInput = {
13
+ message: string;
14
+ };
15
+ export type ZilMatePromptInput = {
16
+ prompt: string;
17
+ };
18
+ export type ZilMateQuestionInput = {
19
+ question: string;
20
+ };
21
+ export type ZilMateResearchInput = {
22
+ query: string;
23
+ };
24
+ export type ZilMateMemoryInput = {
25
+ text: string;
26
+ tags?: string[];
27
+ };
28
+ export type ZilMateRecallInput = {
29
+ query?: string;
30
+ limit?: number;
31
+ };
32
+ export type ZilMateTextResult = {
33
+ text: string;
34
+ };
35
+ export declare function createZilMate(options?: ZilMateOptions): {
36
+ chat: (input: ZilMateTextInput) => Promise<ZilMateTextResult>;
37
+ manager: (input: ZilMateTextInput | ZilMatePromptInput) => Promise<ZilMateTextResult>;
38
+ help: (input: ZilMateQuestionInput | ZilMateTextInput) => Promise<ZilMateTextResult>;
39
+ guide: (input: ZilMateTextInput) => Promise<ZilMateTextResult>;
40
+ post: (input: ZilMatePromptInput) => Promise<ZilMateTextResult>;
41
+ research: (input: ZilMateResearchInput | ZilMateTextInput) => Promise<ZilMateTextResult>;
42
+ image: (input: ZilMatePromptInput & ImageGenerationOptions) => Promise<ImageGenerationResult>;
43
+ remember: (input: ZilMateMemoryInput) => Promise<LongTermMemory>;
44
+ recall: (input?: ZilMateRecallInput) => Promise<LongTermMemory[]>;
45
+ listMemories: typeof listMemories;
46
+ forget: typeof forget;
47
+ clearMemories: typeof clearMemories;
48
+ };
49
+ export declare function chat(input: ZilMateTextInput, options?: ZilMateOptions): Promise<ZilMateTextResult>;
50
+ export declare function help(input: ZilMateQuestionInput | ZilMateTextInput, options?: ZilMateOptions): Promise<ZilMateTextResult>;
51
+ export declare function post(input: ZilMatePromptInput, options?: ZilMateOptions): Promise<ZilMateTextResult>;
52
+ export declare function research(input: ZilMateResearchInput | ZilMateTextInput, options?: ZilMateOptions): Promise<ZilMateTextResult>;
53
+ export declare function image(input: ZilMatePromptInput & ImageGenerationOptions): Promise<ImageGenerationResult>;
54
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAMA,OAAO,EAAsB,KAAK,sBAAsB,EAAE,KAAK,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC7H,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAoB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACnH,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,aAAa,EAAE,CAAC;AACxE,YAAY,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,cAAc,EAAE,CAAC;AAE9E,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC5C,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAyBF,wBAAgB,aAAa,CAAC,OAAO,GAAE,cAAmB;kBAIlC,gBAAgB,KAAG,OAAO,CAAC,iBAAiB,CAAC;qBAI1C,gBAAgB,GAAG,kBAAkB,KAAG,OAAO,CAAC,iBAAiB,CAAC;kBAIrE,oBAAoB,GAAG,gBAAgB,KAAG,OAAO,CAAC,iBAAiB,CAAC;mBAInE,gBAAgB,KAAG,OAAO,CAAC,iBAAiB,CAAC;kBAI9C,kBAAkB,KAAG,OAAO,CAAC,iBAAiB,CAAC;sBAI3C,oBAAoB,GAAG,gBAAgB,KAAG,OAAO,CAAC,iBAAiB,CAAC;mBAIvE,kBAAkB,GAAG,sBAAsB,KAAG,OAAO,CAAC,qBAAqB,CAAC;sBAKzE,kBAAkB,KAAG,OAAO,CAAC,cAAc,CAAC;qBAI9C,kBAAkB,KAAQ,OAAO,CAAC,cAAc,EAAE,CAAC;;;;EAQ5E;AAED,wBAAsB,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,GAAE,cAAmB,8BAE/E;AAED,wBAAsB,IAAI,CAAC,KAAK,EAAE,oBAAoB,GAAG,gBAAgB,EAAE,OAAO,GAAE,cAAmB,8BAEtG;AAED,wBAAsB,IAAI,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,GAAE,cAAmB,8BAEjF;AAED,wBAAsB,QAAQ,CAAC,KAAK,EAAE,oBAAoB,GAAG,gBAAgB,EAAE,OAAO,GAAE,cAAmB,8BAE1G;AAED,wBAAsB,KAAK,CAAC,KAAK,EAAE,kBAAkB,GAAG,sBAAsB,kCAE7E"}
package/dist/server.js ADDED
@@ -0,0 +1,69 @@
1
+ import { requireGatewayAuth } from './config/env.js';
2
+ import { createChatAgent } from './agents/chat.agent.js';
3
+ import { createDocsResearchAgent } from './agents/docs-research.agent.js';
4
+ import { createPostAgent } from './agents/post.agent.js';
5
+ import { createQuickHelpAgent } from './agents/quick-help.agent.js';
6
+ import { runManager } from './agents/manager.js';
7
+ import { generateImageAsset } from './tools/image-generate.tool.js';
8
+ import { clearMemories, forget, listMemories, recall, remember } from './memory/long-term.js';
9
+ async function runTextAgent(agentFactory, prompt) {
10
+ requireGatewayAuth();
11
+ const result = await agentFactory().generate({ prompt });
12
+ return { text: result.text };
13
+ }
14
+ function managerOptions(sessionId, options) {
15
+ return {
16
+ sessionId,
17
+ ...(options.onProgress ? { progress: options.onProgress } : {}),
18
+ ...(options.confirm ? { confirm: options.confirm } : {}),
19
+ };
20
+ }
21
+ function getPrompt(input) {
22
+ if ('message' in input)
23
+ return input.message;
24
+ if ('prompt' in input)
25
+ return input.prompt;
26
+ if ('question' in input)
27
+ return input.question;
28
+ return input.query;
29
+ }
30
+ export function createZilMate(options = {}) {
31
+ const sessionId = options.sessionId || 'default';
32
+ return {
33
+ chat: async (input) => ({
34
+ text: await runManager(input.message, managerOptions(sessionId, options)),
35
+ }),
36
+ manager: async (input) => ({
37
+ text: await runManager(getPrompt(input), managerOptions(sessionId, options)),
38
+ }),
39
+ help: async (input) => (runTextAgent(createQuickHelpAgent, getPrompt(input))),
40
+ guide: async (input) => (runTextAgent(createChatAgent, input.message)),
41
+ post: async (input) => (runTextAgent(createPostAgent, input.prompt)),
42
+ research: async (input) => (runTextAgent(createDocsResearchAgent, getPrompt(input))),
43
+ image: async (input) => {
44
+ const { prompt, provider, size, outputDir } = input;
45
+ return generateImageAsset(prompt, { provider, size, outputDir });
46
+ },
47
+ remember: async (input) => (remember(input.text, input.tags ?? [])),
48
+ recall: async (input = {}) => (recall(input.query ?? '', input.limit ?? 8)),
49
+ listMemories,
50
+ forget,
51
+ clearMemories,
52
+ };
53
+ }
54
+ export async function chat(input, options = {}) {
55
+ return createZilMate(options).chat(input);
56
+ }
57
+ export async function help(input, options = {}) {
58
+ return createZilMate(options).help(input);
59
+ }
60
+ export async function post(input, options = {}) {
61
+ return createZilMate(options).post(input);
62
+ }
63
+ export async function research(input, options = {}) {
64
+ return createZilMate(options).research(input);
65
+ }
66
+ export async function image(input) {
67
+ return createZilMate().image(input);
68
+ }
69
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const appKnowledgeTool: import("ai").Tool<{
2
+ key: "agent-docs" | "readme";
3
+ }, string>;
4
+ //# sourceMappingURL=app-knowledge.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-knowledge.tool.d.ts","sourceRoot":"","sources":["../../src/tools/app-knowledge.tool.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,gBAAgB;;UAe3B,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { tool } from 'ai';
5
+ import { z } from 'zod';
6
+ import { clampText } from '../safety/limits.js';
7
+ import { emitProgress } from '../runtime/progress.js';
8
+ const projectRoot = path.resolve(fileURLToPath(new URL('../..', import.meta.url)));
9
+ const safeFiles = new Map([
10
+ ['agent-docs', path.join(projectRoot, 'agent-docs.md')],
11
+ ['readme', path.join(projectRoot, 'README.md')],
12
+ ]);
13
+ export const appKnowledgeTool = tool({
14
+ description: 'Read local ZilMate reference notes by key.',
15
+ inputSchema: z.object({ key: z.enum(['agent-docs', 'readme']) }),
16
+ execute: async ({ key }) => {
17
+ emitProgress({ type: 'fetch:start', label: 'Reading local knowledge', detail: key });
18
+ const file = safeFiles.get(key);
19
+ try {
20
+ const content = clampText(await readFile(file, 'utf8'), 10000);
21
+ emitProgress({ type: 'fetch:end', label: 'Local knowledge loaded', detail: key });
22
+ return content;
23
+ }
24
+ catch {
25
+ emitProgress({ type: 'fetch:end', label: 'Local knowledge missing', detail: key });
26
+ return `No local knowledge file found for ${key}.`;
27
+ }
28
+ },
29
+ });
30
+ //# sourceMappingURL=app-knowledge.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-knowledge.tool.js","sourceRoot":"","sources":["../../src/tools/app-knowledge.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEnF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;IACxB,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IACvD,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;CAChD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;IACnC,WAAW,EAAE,4CAA4C;IACzD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;IAChE,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QACzB,YAAY,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,yBAAyB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACrF,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;YAC/D,YAAY,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,wBAAwB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAClF,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,MAAM,CAAC;YACP,YAAY,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,yBAAyB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACnF,OAAO,qCAAqC,GAAG,GAAG,CAAC;QACrD,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ export declare function createComposioTools(chatSessionId?: string): Promise<import("ai").ToolSet>;
2
+ export declare function getComposioStatus(chatSessionId?: string): Promise<{
3
+ configured: boolean;
4
+ userId: string | null;
5
+ sessionId: string | null;
6
+ reusedSession: boolean;
7
+ toolkits: Array<{
8
+ slug: string;
9
+ name: string;
10
+ isNoAuth: boolean;
11
+ connected: boolean;
12
+ status?: string;
13
+ }>;
14
+ }>;
15
+ //# sourceMappingURL=composio.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composio.tool.d.ts","sourceRoot":"","sources":["../../src/tools/composio.tool.ts"],"names":[],"mappings":"AAkPA,wBAAsB,mBAAmB,CAAC,aAAa,SAAY,iCAQlE;AAED,wBAAsB,iBAAiB,CAAC,aAAa,SAAY;;;eAK1C,MAAM,GAAG,IAAI;;cAEhB,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;GAuBhH"}