zilmate 1.4.0 → 1.6.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 (200) hide show
  1. package/.env.example +2 -0
  2. package/dist/agents/coding.agent.d.ts +352 -0
  3. package/dist/agents/coding.agent.d.ts.map +1 -0
  4. package/dist/agents/coding.agent.js +34 -0
  5. package/dist/agents/coding.agent.js.map +1 -0
  6. package/dist/agents/goal-manager.agent.d.ts +125 -0
  7. package/dist/agents/goal-manager.agent.d.ts.map +1 -0
  8. package/dist/agents/goal-manager.agent.js +32 -0
  9. package/dist/agents/goal-manager.agent.js.map +1 -0
  10. package/dist/agents/manager.d.ts +261 -0
  11. package/dist/agents/manager.d.ts.map +1 -1
  12. package/dist/agents/manager.js +90 -19
  13. package/dist/agents/manager.js.map +1 -1
  14. package/dist/agents/security.agent.js +1 -1
  15. package/dist/agents/security.agent.js.map +1 -1
  16. package/dist/cli/ask.d.ts +5 -0
  17. package/dist/cli/ask.d.ts.map +1 -0
  18. package/dist/cli/ask.js +33 -0
  19. package/dist/cli/ask.js.map +1 -0
  20. package/dist/cli/doctor.d.ts.map +1 -1
  21. package/dist/cli/doctor.js +61 -1
  22. package/dist/cli/doctor.js.map +1 -1
  23. package/dist/cli/format.d.ts +1 -0
  24. package/dist/cli/format.d.ts.map +1 -1
  25. package/dist/cli/format.js +40 -1
  26. package/dist/cli/format.js.map +1 -1
  27. package/dist/cli/interactive.d.ts.map +1 -1
  28. package/dist/cli/interactive.js +4 -2
  29. package/dist/cli/interactive.js.map +1 -1
  30. package/dist/cli/jobs.d.ts +4 -0
  31. package/dist/cli/jobs.d.ts.map +1 -1
  32. package/dist/cli/jobs.js +26 -0
  33. package/dist/cli/jobs.js.map +1 -1
  34. package/dist/cli/prompt.d.ts +9 -0
  35. package/dist/cli/prompt.d.ts.map +1 -0
  36. package/dist/cli/prompt.js +116 -0
  37. package/dist/cli/prompt.js.map +1 -0
  38. package/dist/cli/setup.d.ts.map +1 -1
  39. package/dist/cli/setup.js +95 -20
  40. package/dist/cli/setup.js.map +1 -1
  41. package/dist/cli/spinner.d.ts +6 -0
  42. package/dist/cli/spinner.d.ts.map +1 -0
  43. package/dist/cli/spinner.js +39 -0
  44. package/dist/cli/spinner.js.map +1 -0
  45. package/dist/cli/tunnel.d.ts +12 -0
  46. package/dist/cli/tunnel.d.ts.map +1 -0
  47. package/dist/cli/tunnel.js +64 -0
  48. package/dist/cli/tunnel.js.map +1 -0
  49. package/dist/cli/voice.d.ts.map +1 -1
  50. package/dist/cli/voice.js +13 -4
  51. package/dist/cli/voice.js.map +1 -1
  52. package/dist/config/env.d.ts +1 -0
  53. package/dist/config/env.d.ts.map +1 -1
  54. package/dist/config/env.js +3 -2
  55. package/dist/config/env.js.map +1 -1
  56. package/dist/config/models.d.ts +1 -0
  57. package/dist/config/models.d.ts.map +1 -1
  58. package/dist/config/models.js +1 -0
  59. package/dist/config/models.js.map +1 -1
  60. package/dist/documents/pdf.d.ts +11 -0
  61. package/dist/documents/pdf.d.ts.map +1 -0
  62. package/dist/documents/pdf.js +64 -0
  63. package/dist/documents/pdf.js.map +1 -0
  64. package/dist/documents/slides.d.ts +13 -0
  65. package/dist/documents/slides.d.ts.map +1 -0
  66. package/dist/documents/slides.js +82 -0
  67. package/dist/documents/slides.js.map +1 -0
  68. package/dist/index.js +72 -3
  69. package/dist/index.js.map +1 -1
  70. package/dist/jobs/anomaly.d.ts +10 -0
  71. package/dist/jobs/anomaly.d.ts.map +1 -0
  72. package/dist/jobs/anomaly.js +52 -0
  73. package/dist/jobs/anomaly.js.map +1 -0
  74. package/dist/jobs/runner.d.ts.map +1 -1
  75. package/dist/jobs/runner.js +6 -0
  76. package/dist/jobs/runner.js.map +1 -1
  77. package/dist/jobs/webhook-server.d.ts +7 -0
  78. package/dist/jobs/webhook-server.d.ts.map +1 -0
  79. package/dist/jobs/webhook-server.js +56 -0
  80. package/dist/jobs/webhook-server.js.map +1 -0
  81. package/dist/memory/heal.d.ts +19 -0
  82. package/dist/memory/heal.d.ts.map +1 -0
  83. package/dist/memory/heal.js +253 -0
  84. package/dist/memory/heal.js.map +1 -0
  85. package/dist/memory/knowledge-graph.d.ts +32 -0
  86. package/dist/memory/knowledge-graph.d.ts.map +1 -0
  87. package/dist/memory/knowledge-graph.js +103 -0
  88. package/dist/memory/knowledge-graph.js.map +1 -0
  89. package/dist/memory/local-store.d.ts +1 -0
  90. package/dist/memory/local-store.d.ts.map +1 -1
  91. package/dist/memory/local-store.js +41 -8
  92. package/dist/memory/local-store.js.map +1 -1
  93. package/dist/memory/notebook.d.ts +29 -0
  94. package/dist/memory/notebook.d.ts.map +1 -0
  95. package/dist/memory/notebook.js +64 -0
  96. package/dist/memory/notebook.js.map +1 -0
  97. package/dist/memory/scratchpad.d.ts.map +1 -1
  98. package/dist/memory/scratchpad.js +30 -4
  99. package/dist/memory/scratchpad.js.map +1 -1
  100. package/dist/runtime/ask.d.ts +15 -0
  101. package/dist/runtime/ask.d.ts.map +1 -0
  102. package/dist/runtime/ask.js +23 -0
  103. package/dist/runtime/ask.js.map +1 -0
  104. package/dist/runtime/progress.d.ts +2 -1
  105. package/dist/runtime/progress.d.ts.map +1 -1
  106. package/dist/runtime/progress.js.map +1 -1
  107. package/dist/runtime/voice-confirm.d.ts +8 -0
  108. package/dist/runtime/voice-confirm.d.ts.map +1 -0
  109. package/dist/runtime/voice-confirm.js +67 -0
  110. package/dist/runtime/voice-confirm.js.map +1 -0
  111. package/dist/safety/trust-log.d.ts +23 -0
  112. package/dist/safety/trust-log.d.ts.map +1 -0
  113. package/dist/safety/trust-log.js +57 -0
  114. package/dist/safety/trust-log.js.map +1 -0
  115. package/dist/skills/loader.d.ts.map +1 -1
  116. package/dist/skills/loader.js +3 -0
  117. package/dist/skills/loader.js.map +1 -1
  118. package/dist/skills/registry.d.ts +22 -0
  119. package/dist/skills/registry.d.ts.map +1 -0
  120. package/dist/skills/registry.js +120 -0
  121. package/dist/skills/registry.js.map +1 -0
  122. package/dist/tools/ask.tool.d.ts +23 -0
  123. package/dist/tools/ask.tool.d.ts.map +1 -0
  124. package/dist/tools/ask.tool.js +47 -0
  125. package/dist/tools/ask.tool.js.map +1 -0
  126. package/dist/tools/computer-use.tool.d.ts.map +1 -1
  127. package/dist/tools/computer-use.tool.js +2 -1
  128. package/dist/tools/computer-use.tool.js.map +1 -1
  129. package/dist/tools/desktop.tool.d.ts.map +1 -1
  130. package/dist/tools/desktop.tool.js +3 -2
  131. package/dist/tools/desktop.tool.js.map +1 -1
  132. package/dist/tools/documents.tool.d.ts +31 -0
  133. package/dist/tools/documents.tool.d.ts.map +1 -0
  134. package/dist/tools/documents.tool.js +62 -0
  135. package/dist/tools/documents.tool.js.map +1 -0
  136. package/dist/tools/git.tool.d.ts +77 -0
  137. package/dist/tools/git.tool.d.ts.map +1 -0
  138. package/dist/tools/git.tool.js +189 -0
  139. package/dist/tools/git.tool.js.map +1 -0
  140. package/dist/tools/heal.tool.d.ts +13 -0
  141. package/dist/tools/heal.tool.d.ts.map +1 -0
  142. package/dist/tools/heal.tool.js +34 -0
  143. package/dist/tools/heal.tool.js.map +1 -0
  144. package/dist/tools/image-generate.tool.d.ts.map +1 -1
  145. package/dist/tools/image-generate.tool.js +2 -1
  146. package/dist/tools/image-generate.tool.js.map +1 -1
  147. package/dist/tools/knowledge.tool.d.ts +24 -0
  148. package/dist/tools/knowledge.tool.d.ts.map +1 -0
  149. package/dist/tools/knowledge.tool.js +52 -0
  150. package/dist/tools/knowledge.tool.js.map +1 -0
  151. package/dist/tools/notebook.tool.d.ts +32 -0
  152. package/dist/tools/notebook.tool.d.ts.map +1 -0
  153. package/dist/tools/notebook.tool.js +50 -0
  154. package/dist/tools/notebook.tool.js.map +1 -0
  155. package/dist/tools/notify.tool.d.ts +26 -0
  156. package/dist/tools/notify.tool.d.ts.map +1 -0
  157. package/dist/tools/notify.tool.js +65 -0
  158. package/dist/tools/notify.tool.js.map +1 -0
  159. package/dist/tools/osint.tool.d.ts.map +1 -1
  160. package/dist/tools/osint.tool.js +6 -3
  161. package/dist/tools/osint.tool.js.map +1 -1
  162. package/dist/tools/pentest.tool.d.ts.map +1 -1
  163. package/dist/tools/pentest.tool.js +5 -2
  164. package/dist/tools/pentest.tool.js.map +1 -1
  165. package/dist/tools/setup-assistant.tool.d.ts +49 -0
  166. package/dist/tools/setup-assistant.tool.d.ts.map +1 -0
  167. package/dist/tools/setup-assistant.tool.js +139 -0
  168. package/dist/tools/setup-assistant.tool.js.map +1 -0
  169. package/dist/tools/skills.tool.d.ts +21 -0
  170. package/dist/tools/skills.tool.d.ts.map +1 -1
  171. package/dist/tools/skills.tool.js +43 -10
  172. package/dist/tools/skills.tool.js.map +1 -1
  173. package/dist/tools/trust.tool.d.ts +16 -0
  174. package/dist/tools/trust.tool.d.ts.map +1 -0
  175. package/dist/tools/trust.tool.js +34 -0
  176. package/dist/tools/trust.tool.js.map +1 -0
  177. package/dist/tools/update.tool.d.ts +25 -0
  178. package/dist/tools/update.tool.d.ts.map +1 -0
  179. package/dist/tools/update.tool.js +64 -0
  180. package/dist/tools/update.tool.js.map +1 -0
  181. package/dist/tools/workspace.tool.d.ts +24 -0
  182. package/dist/tools/workspace.tool.d.ts.map +1 -0
  183. package/dist/tools/workspace.tool.js +64 -0
  184. package/dist/tools/workspace.tool.js.map +1 -0
  185. package/dist/voice/cascade.d.ts.map +1 -1
  186. package/dist/voice/cascade.js +4 -0
  187. package/dist/voice/cascade.js.map +1 -1
  188. package/dist/workspace/init.d.ts +3 -0
  189. package/dist/workspace/init.d.ts.map +1 -0
  190. package/dist/workspace/init.js +75 -0
  191. package/dist/workspace/init.js.map +1 -0
  192. package/dist/workspace/output-paths.d.ts +3 -0
  193. package/dist/workspace/output-paths.d.ts.map +1 -0
  194. package/dist/workspace/output-paths.js +18 -0
  195. package/dist/workspace/output-paths.js.map +1 -0
  196. package/dist/workspace/paths.d.ts +26 -0
  197. package/dist/workspace/paths.d.ts.map +1 -0
  198. package/dist/workspace/paths.js +48 -0
  199. package/dist/workspace/paths.js.map +1 -0
  200. package/package.json +5 -1
@@ -1,33 +1,66 @@
1
1
  import { tool } from 'ai';
2
2
  import { z } from 'zod';
3
3
  import { discoverSkills, readSkill, searchSkills, skillPathsHint } from '../skills/loader.js';
4
+ import { installRegistrySkill, saveSkillSearchLog, searchSkillsRegistry } from '../skills/registry.js';
4
5
  import { emitProgress } from '../runtime/progress.js';
5
6
  export const skillTools = {
6
7
  listSkills: tool({
7
- description: 'List available agent skills (SKILL.md files). Use before specialized tasks to see if a skill already documents the workflow.',
8
+ description: 'List installed/local agent skills (SKILL.md). Includes workspace/skills and .agents/skills paths.',
8
9
  inputSchema: z.object({}),
9
10
  execute: async () => {
10
- emitProgress({ type: 'fetch:start', label: 'Discovering skills' });
11
+ emitProgress({ type: 'fetch:start', label: 'Discovering local skills' });
11
12
  const skills = await discoverSkills();
12
- emitProgress({ type: 'fetch:end', label: 'Skills discovered', detail: `${skills.length} skill(s)` });
13
- return { skills, searchPaths: skillPathsHint() };
13
+ emitProgress({ type: 'fetch:end', label: 'Local skills discovered', detail: `${skills.length} skill(s)` });
14
+ return { skills, searchPaths: skillPathsHint(), registry: 'https://skills.sh/' };
14
15
  },
15
16
  }),
16
17
  searchSkills: tool({
17
- description: 'Search skills by keyword in name or description. Use when the user asks how to do something that might have a skill.',
18
+ description: 'Search local SKILL.md files by keyword.',
18
19
  inputSchema: z.object({
19
20
  query: z.string().min(2),
20
21
  limit: z.number().int().min(1).max(20).optional(),
21
22
  }),
22
23
  execute: async ({ query, limit }) => {
23
- emitProgress({ type: 'search:start', label: 'Searching skills', detail: query });
24
+ emitProgress({ type: 'search:start', label: 'Searching local skills', detail: query });
24
25
  const skills = await searchSkills(query, limit ?? 5);
25
- emitProgress({ type: 'search:end', label: 'Skill search complete', detail: `${skills.length} match(es)` });
26
- return { query, skills };
26
+ emitProgress({ type: 'search:end', label: 'Local skill search complete', detail: `${skills.length} match(es)` });
27
+ return { query, skills, scope: 'local' };
28
+ },
29
+ }),
30
+ searchSkillsRegistry: tool({
31
+ description: 'Search the open skills ecosystem (skills.sh / npx skills find) for installable skills — like find-skills workflow.',
32
+ inputSchema: z.object({
33
+ query: z.string().min(2),
34
+ limit: z.number().int().min(1).max(15).optional(),
35
+ }),
36
+ execute: async ({ query, limit }) => {
37
+ emitProgress({ type: 'search:start', label: 'Searching skills.sh registry', detail: query });
38
+ const results = await searchSkillsRegistry(query, limit ?? 8);
39
+ await saveSkillSearchLog(query, results);
40
+ emitProgress({ type: 'search:end', label: 'Registry search complete', detail: `${results.length} result(s)` });
41
+ return {
42
+ query,
43
+ results,
44
+ installHint: 'Use installRegistrySkill with packageRef, e.g. owner/repo@skill-name',
45
+ browse: 'https://skills.sh/',
46
+ };
47
+ },
48
+ }),
49
+ installRegistrySkill: tool({
50
+ description: 'Install a skill from skills.sh via npx skills add into the ZilMate workspace skills folder.',
51
+ inputSchema: z.object({
52
+ packageRef: z.string().min(3).describe('e.g. vercel-labs/agent-skills@vercel-react-best-practices'),
53
+ global: z.boolean().optional(),
54
+ }),
55
+ execute: async ({ packageRef, global }) => {
56
+ emitProgress({ type: 'step', label: 'Installing skill', detail: packageRef });
57
+ const result = await installRegistrySkill(packageRef, global ?? true);
58
+ emitProgress({ type: 'step', label: 'Skill installed', detail: result.installPath });
59
+ return result;
27
60
  },
28
61
  }),
29
62
  readSkill: tool({
30
- description: 'Load one skill by id/name and return its full instructions. Follow the skill when it matches the user task.',
63
+ description: 'Load one local skill by id/name and return its full instructions. Follow the skill when it matches the user task.',
31
64
  inputSchema: z.object({
32
65
  skillId: z.string().min(1),
33
66
  }),
@@ -35,7 +68,7 @@ export const skillTools = {
35
68
  emitProgress({ type: 'fetch:start', label: 'Reading skill', detail: skillId });
36
69
  const skill = await readSkill(skillId);
37
70
  if (!skill)
38
- throw new Error(`Skill not found: ${skillId}. Run listSkills first.`);
71
+ throw new Error(`Skill not found: ${skillId}. Try searchSkillsRegistry or listSkills first.`);
39
72
  emitProgress({ type: 'fetch:end', label: 'Skill loaded', detail: skill.name });
40
73
  return skill;
41
74
  },
@@ -1 +1 @@
1
- {"version":3,"file":"skills.tool.js","sourceRoot":"","sources":["../../src/tools/skills.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,UAAU,EAAE,IAAI,CAAC;QACf,WAAW,EAAE,8HAA8H;QAC3I,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,YAAY,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC;YACnE,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;YACtC,YAAY,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,WAAW,EAAE,CAAC,CAAC;YACrG,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE,CAAC;QACnD,CAAC;KACF,CAAC;IAEF,YAAY,EAAE,IAAI,CAAC;QACjB,WAAW,EAAE,sHAAsH;QACnI,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;SAClD,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;YAClC,YAAY,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YACjF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;YACrD,YAAY,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC;YAC3G,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC3B,CAAC;KACF,CAAC;IAEF,SAAS,EAAE,IAAI,CAAC;QACd,WAAW,EAAE,6GAA6G;QAC1H,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;SAC3B,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YAC7B,YAAY,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YAC/E,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;YACvC,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,yBAAyB,CAAC,CAAC;YAClF,YAAY,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/E,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"skills.tool.js","sourceRoot":"","sources":["../../src/tools/skills.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export declare const trustTools: {
2
+ logTrustAction: import("ai").Tool<{
3
+ action: string;
4
+ category?: "other" | "destructive" | "outbound" | "os-control" | undefined;
5
+ reversible?: boolean | undefined;
6
+ undoHint?: string | undefined;
7
+ }, import("../safety/trust-log.js").TrustAction>;
8
+ listActiveTrustActions: import("ai").Tool<Record<string, never>, {
9
+ undoWindowMs: number;
10
+ actions: import("../safety/trust-log.js").TrustAction[];
11
+ }>;
12
+ markTrustActionUndone: import("ai").Tool<{
13
+ id: string;
14
+ }, null>;
15
+ };
16
+ //# sourceMappingURL=trust.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust.tool.d.ts","sourceRoot":"","sources":["../../src/tools/trust.tool.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;CA+BtB,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { tool } from 'ai';
2
+ import { z } from 'zod';
3
+ import { listActiveTrustActions, logTrustAction, markTrustActionUndone, trustUndoWindowMs, } from '../safety/trust-log.js';
4
+ export const trustTools = {
5
+ logTrustAction: tool({
6
+ description: 'Record a destructive or outbound action for undo-window tracking and user transparency.',
7
+ inputSchema: z.object({
8
+ action: z.string().min(3),
9
+ category: z.enum(['destructive', 'outbound', 'os-control', 'other']).optional(),
10
+ reversible: z.boolean().optional(),
11
+ undoHint: z.string().optional(),
12
+ }),
13
+ execute: async (input) => logTrustAction({
14
+ action: input.action,
15
+ ...(input.category ? { category: input.category } : {}),
16
+ ...(input.reversible !== undefined ? { reversible: input.reversible } : {}),
17
+ ...(input.undoHint ? { undoHint: input.undoHint } : {}),
18
+ }),
19
+ }),
20
+ listActiveTrustActions: tool({
21
+ description: 'List trust-layer actions still inside the undo window.',
22
+ inputSchema: z.object({}),
23
+ execute: async () => ({
24
+ undoWindowMs: trustUndoWindowMs(),
25
+ actions: await listActiveTrustActions(),
26
+ }),
27
+ }),
28
+ markTrustActionUndone: tool({
29
+ description: 'Mark a trust action as undone within the undo window.',
30
+ inputSchema: z.object({ id: z.string().min(3) }),
31
+ execute: async ({ id }) => markTrustActionUndone(id),
32
+ }),
33
+ };
34
+ //# sourceMappingURL=trust.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust.tool.js","sourceRoot":"","sources":["../../src/tools/trust.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,cAAc,EAAE,IAAI,CAAC;QACnB,WAAW,EAAE,yFAAyF;QACtG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC/E,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAChC,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC;YACvC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC;KACH,CAAC;IAEF,sBAAsB,EAAE,IAAI,CAAC;QAC3B,WAAW,EAAE,wDAAwD;QACrE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;YACpB,YAAY,EAAE,iBAAiB,EAAE;YACjC,OAAO,EAAE,MAAM,sBAAsB,EAAE;SACxC,CAAC;KACH,CAAC;IAEF,qBAAqB,EAAE,IAAI,CAAC;QAC1B,WAAW,EAAE,uDAAuD;QACpE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;KACrD,CAAC;CACH,CAAC"}
@@ -0,0 +1,25 @@
1
+ export declare const updateTools: {
2
+ checkForUpdate: import("ai").Tool<Record<string, never>, {
3
+ current: string;
4
+ latest: string;
5
+ updateAvailable: boolean;
6
+ command: string;
7
+ error?: never;
8
+ } | {
9
+ current: string;
10
+ latest: null;
11
+ updateAvailable: boolean;
12
+ error: string;
13
+ command: string;
14
+ }>;
15
+ selfUpdate: import("ai").Tool<{
16
+ confirmed: boolean;
17
+ tag?: string | undefined;
18
+ dryRun?: boolean | undefined;
19
+ }, {
20
+ ok: boolean;
21
+ dryRun: boolean;
22
+ tag: string;
23
+ }>;
24
+ };
25
+ //# sourceMappingURL=update.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.tool.d.ts","sourceRoot":"","sources":["../../src/tools/update.tool.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;CA6CvB,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { tool } from 'ai';
2
+ import { z } from 'zod';
3
+ import { compareVersions, latestNpmVersion, runSelfUpdate } from '../cli/update.js';
4
+ import { readFile } from 'node:fs/promises';
5
+ import path from 'node:path';
6
+ import { fileURLToPath } from 'node:url';
7
+ import { emitProgress } from '../runtime/progress.js';
8
+ async function currentPackageVersion() {
9
+ try {
10
+ const pkg = path.join(path.dirname(fileURLToPath(import.meta.url)), '..', '..', 'package.json');
11
+ const raw = await readFile(pkg, 'utf8');
12
+ return JSON.parse(raw).version || 'unknown';
13
+ }
14
+ catch {
15
+ return 'unknown';
16
+ }
17
+ }
18
+ export const updateTools = {
19
+ checkForUpdate: tool({
20
+ description: 'Check npm for a newer ZilMate version without installing.',
21
+ inputSchema: z.object({}),
22
+ execute: async () => {
23
+ const current = await currentPackageVersion();
24
+ try {
25
+ const latest = await latestNpmVersion();
26
+ return {
27
+ current,
28
+ latest,
29
+ updateAvailable: compareVersions(current, latest) < 0,
30
+ command: 'zilmate update',
31
+ };
32
+ }
33
+ catch (error) {
34
+ return {
35
+ current,
36
+ latest: null,
37
+ updateAvailable: false,
38
+ error: error instanceof Error ? error.message : String(error),
39
+ command: 'npm install -g zilmate@latest',
40
+ };
41
+ }
42
+ },
43
+ }),
44
+ selfUpdate: tool({
45
+ description: 'Update ZilMate CLI from npm (global install). Ask user confirmation before running.',
46
+ inputSchema: z.object({
47
+ tag: z.string().optional(),
48
+ dryRun: z.boolean().optional(),
49
+ confirmed: z.boolean().describe('User explicitly confirmed the update'),
50
+ }),
51
+ execute: async ({ tag, dryRun, confirmed }) => {
52
+ if (!dryRun && !confirmed) {
53
+ throw new Error('Self-update requires confirmed=true after the user agrees.');
54
+ }
55
+ emitProgress({ type: 'step', label: dryRun ? 'Update dry run' : 'Updating ZilMate' });
56
+ await runSelfUpdate({
57
+ ...(tag ? { tag } : {}),
58
+ dryRun: Boolean(dryRun),
59
+ });
60
+ return { ok: true, dryRun: Boolean(dryRun), tag: tag || 'latest' };
61
+ },
62
+ }),
63
+ };
64
+ //# sourceMappingURL=update.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.tool.js","sourceRoot":"","sources":["../../src/tools/update.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ export declare const workspaceTools: {
2
+ getWorkspaceInfo: import("ai").Tool<Record<string, never>, {
3
+ root: string;
4
+ paths: import("../workspace/paths.js").WorkspaceLayout;
5
+ skillCount: number;
6
+ exists: boolean;
7
+ }>;
8
+ initWorkspace: import("ai").Tool<Record<string, never>, {
9
+ ok: boolean;
10
+ root: string;
11
+ }>;
12
+ installSkill: import("ai").Tool<{
13
+ name: string;
14
+ description: string;
15
+ body: string;
16
+ sourcePath?: string | undefined;
17
+ }, {
18
+ path: string;
19
+ skillDir: string;
20
+ hint: string;
21
+ }>;
22
+ };
23
+ export declare function workspaceRootForAgent(): string;
24
+ //# sourceMappingURL=workspace.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.tool.d.ts","sourceRoot":"","sources":["../../src/tools/workspace.tool.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;CAqD1B,CAAC;AAEF,wBAAgB,qBAAqB,WAEpC"}
@@ -0,0 +1,64 @@
1
+ import { tool } from 'ai';
2
+ import { z } from 'zod';
3
+ import { existsSync } from 'node:fs';
4
+ import { mkdir, writeFile } from 'node:fs/promises';
5
+ import path from 'node:path';
6
+ import { initWorkspace } from '../workspace/init.js';
7
+ import { workspaceLayout, resolveWorkspaceRoot } from '../workspace/paths.js';
8
+ import { discoverSkills } from '../skills/loader.js';
9
+ import { emitProgress } from '../runtime/progress.js';
10
+ export const workspaceTools = {
11
+ getWorkspaceInfo: tool({
12
+ description: 'Show ZilMate workspace paths (notebook, skills, outputs, logs). Use before saving files or installing skills.',
13
+ inputSchema: z.object({}),
14
+ execute: async () => {
15
+ const layout = workspaceLayout();
16
+ const skills = await discoverSkills();
17
+ return {
18
+ root: layout.root,
19
+ paths: layout,
20
+ skillCount: skills.length,
21
+ exists: existsSync(layout.root),
22
+ };
23
+ },
24
+ }),
25
+ initWorkspace: tool({
26
+ description: 'Create or repair the ZilMate workspace folder structure (notebook, skills, outputs, logs).',
27
+ inputSchema: z.object({}),
28
+ execute: async () => {
29
+ emitProgress({ type: 'step', label: 'Initializing ZilMate workspace' });
30
+ const layout = await initWorkspace();
31
+ return { ok: true, root: layout.root };
32
+ },
33
+ }),
34
+ installSkill: tool({
35
+ description: 'Install a skill into the workspace skills folder so ZilMate can read it later. Provide SKILL.md content or a source path on disk.',
36
+ inputSchema: z.object({
37
+ name: z.string().min(2).describe('Skill folder name, e.g. my-workflow'),
38
+ description: z.string().min(3),
39
+ body: z.string().min(10).describe('Markdown instructions after frontmatter'),
40
+ sourcePath: z.string().optional().describe('Optional existing SKILL.md path to copy'),
41
+ }),
42
+ execute: async ({ name, description, body, sourcePath }) => {
43
+ await initWorkspace();
44
+ const layout = workspaceLayout();
45
+ const skillDir = path.join(layout.skills, name.replace(/[^\w.-]+/g, '-'));
46
+ await mkdir(skillDir, { recursive: true });
47
+ const target = path.join(skillDir, 'SKILL.md');
48
+ if (sourcePath && existsSync(sourcePath)) {
49
+ const { copyFile } = await import('node:fs/promises');
50
+ await copyFile(sourcePath, target);
51
+ }
52
+ else {
53
+ const content = `---\nname: ${name}\ndescription: ${description}\n---\n\n${body.trim()}\n`;
54
+ await writeFile(target, content, 'utf8');
55
+ }
56
+ emitProgress({ type: 'step', label: 'Skill installed', detail: target });
57
+ return { path: target, skillDir, hint: 'Run listSkills or searchSkills to verify discovery.' };
58
+ },
59
+ }),
60
+ };
61
+ export function workspaceRootForAgent() {
62
+ return resolveWorkspaceRoot();
63
+ }
64
+ //# sourceMappingURL=workspace.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.tool.js","sourceRoot":"","sources":["../../src/tools/workspace.tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cascade.d.ts","sourceRoot":"","sources":["../../src/voice/cascade.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA2CpD,MAAM,MAAM,2BAA2B,GAAG;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,aAAa,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;IAC1C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC7C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACtC,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;CAC5E,CAAC;AAsLF,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,IAAI,CAAC,2BAA2B,EAAE,SAAS,GAAG,SAAS,CAAM;;GAa3H;AAwFD,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,2BAA2B;;GAyEnF"}
1
+ {"version":3,"file":"cascade.d.ts","sourceRoot":"","sources":["../../src/voice/cascade.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA2CpD,MAAM,MAAM,2BAA2B,GAAG;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,aAAa,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;IAC1C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC7C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACtC,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;CAC5E,CAAC;AAsLF,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,IAAI,CAAC,2BAA2B,EAAE,SAAS,GAAG,SAAS,CAAM;;GAa3H;AAwFD,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,2BAA2B;;GA8EnF"}
@@ -1,6 +1,7 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import { requireDeepgram } from '../config/env.js';
3
3
  import { getVoiceConfig } from './deepgram.js';
4
+ import { deliverVoiceUtterance, isWaitingForVoiceApproval } from '../runtime/voice-confirm.js';
4
5
  const dynamicImport = new Function('specifier', 'return import(specifier)');
5
6
  function now() {
6
7
  return new Date().toISOString();
@@ -320,6 +321,9 @@ export async function startCascadedVoiceSession(options) {
320
321
  const finalText = pendingTranscript;
321
322
  pendingTranscript = '';
322
323
  emit(options, { type: 'transcript', role: 'user', text: finalText, final: true, timestamp: now() });
324
+ if (isWaitingForVoiceApproval() && deliverVoiceUtterance(finalText)) {
325
+ return;
326
+ }
323
327
  answering = answering.then(async () => {
324
328
  const reply = await options.onUserTranscript(finalText);
325
329
  if (!reply || typeof reply !== 'string')
@@ -1 +1 @@
1
- {"version":3,"file":"cascade.js","sourceRoot":"","sources":["../../src/voice/cascade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cascade.js","sourceRoot":"","sources":["../../src/voice/cascade.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function initWorkspace(root?: string): Promise<import("./paths.js").WorkspaceLayout>;
2
+ export declare function readWorkspaceReadme(): Promise<string>;
3
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/workspace/init.ts"],"names":[],"mappings":"AAYA,wBAAsB,aAAa,CAAC,IAAI,SAAyB,iDA6DhE;AAED,wBAAsB,mBAAmB,oBAOxC"}
@@ -0,0 +1,75 @@
1
+ import { mkdir, writeFile, readFile } from 'node:fs/promises';
2
+ import { existsSync } from 'node:fs';
3
+ import { workspaceLayout, resolveWorkspaceRoot } from './paths.js';
4
+ const NOTEBOOK_TEMPLATE = `# ZilMate Notebook
5
+
6
+ Private working notes for ZilMate. The agent appends learnings, decisions, and follow-ups here.
7
+
8
+ ## Today
9
+
10
+ `;
11
+ export async function initWorkspace(root = resolveWorkspaceRoot()) {
12
+ const layout = workspaceLayout(root);
13
+ const dirs = [
14
+ layout.root,
15
+ layout.skills,
16
+ layout.outputs,
17
+ layout.osint,
18
+ layout.pentest,
19
+ layout.images,
20
+ layout.logs,
21
+ layout.projects,
22
+ layout.attachments,
23
+ layout.backups,
24
+ layout.config,
25
+ layout.scratch,
26
+ layout.data,
27
+ ];
28
+ for (const dir of dirs) {
29
+ await mkdir(dir, { recursive: true });
30
+ }
31
+ if (!existsSync(layout.notebook)) {
32
+ await writeFile(layout.notebook, NOTEBOOK_TEMPLATE, 'utf8');
33
+ }
34
+ if (!existsSync(layout.memoryJson)) {
35
+ await writeFile(layout.memoryJson, '[]\n', 'utf8');
36
+ }
37
+ if (!existsSync(layout.notesJson)) {
38
+ await writeFile(layout.notesJson, JSON.stringify({ entries: [] }, null, 2), 'utf8');
39
+ }
40
+ if (!existsSync(layout.knowledgeGraph)) {
41
+ await writeFile(layout.knowledgeGraph, JSON.stringify({
42
+ ownerName: '',
43
+ nodes: [],
44
+ updatedAt: new Date().toISOString(),
45
+ }, null, 2), 'utf8');
46
+ }
47
+ const readme = `# ZilMate Workspace
48
+
49
+ This folder is your local ZilMate home: outputs, skills, notebook, memory, and logs.
50
+
51
+ - \`notebook.md\` — agent working notes
52
+ - \`memory.json\` — durable memory mirror (Redis optional)
53
+ - \`knowledge-graph.json\` — people, projects, relationships
54
+ - \`skills/\` — install skills here (\`skills/my-skill/SKILL.md\`)
55
+ - \`outputs/\` — OSINT, pentest, images
56
+ - \`logs/\` — heal and trust action logs
57
+
58
+ Set \`ZILMATE_WORKSPACE\` to use a different path.
59
+ `;
60
+ const readmePath = `${layout.root}/README.md`;
61
+ if (!existsSync(readmePath)) {
62
+ await writeFile(readmePath, readme, 'utf8');
63
+ }
64
+ return layout;
65
+ }
66
+ export async function readWorkspaceReadme() {
67
+ const layout = workspaceLayout();
68
+ try {
69
+ return await readFile(`${layout.root}/README.md`, 'utf8');
70
+ }
71
+ catch {
72
+ return '';
73
+ }
74
+ }
75
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/workspace/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEnE,MAAM,iBAAiB,GAAG;;;;;;CAMzB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAI,GAAG,oBAAoB,EAAE;IAC/D,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG;QACX,MAAM,CAAC,IAAI;QACX,MAAM,CAAC,MAAM;QACb,MAAM,CAAC,OAAO;QACd,MAAM,CAAC,KAAK;QACZ,MAAM,CAAC,OAAO;QACd,MAAM,CAAC,MAAM;QACb,MAAM,CAAC,IAAI;QACX,MAAM,CAAC,QAAQ;QACf,MAAM,CAAC,WAAW;QAClB,MAAM,CAAC,OAAO;QACd,MAAM,CAAC,MAAM;QACb,MAAM,CAAC,OAAO;QACd,MAAM,CAAC,IAAI;KACZ,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,MAAM,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QACnC,MAAM,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,MAAM,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACtF,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;QACvC,MAAM,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC;YACpD,SAAS,EAAE,EAAE;YACb,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,MAAM,GAAG;;;;;;;;;;;;CAYhB,CAAC;IACA,MAAM,UAAU,GAAG,GAAG,MAAM,CAAC,IAAI,YAAY,CAAC;IAC9C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,GAAG,MAAM,CAAC,IAAI,YAAY,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function getOutputDir(kind: 'osint' | 'pentest' | 'images' | 'screenshots' | 'camera' | 'computer-use'): string;
2
+ export declare function getWorkspaceRoot(): string;
3
+ //# sourceMappingURL=output-paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-paths.d.ts","sourceRoot":"","sources":["../../src/workspace/output-paths.ts"],"names":[],"mappings":"AAGA,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,cAAc,UAW5G;AAED,wBAAgB,gBAAgB,WAE/B"}
@@ -0,0 +1,18 @@
1
+ import { workspaceLayout } from './paths.js';
2
+ import path from 'node:path';
3
+ export function getOutputDir(kind) {
4
+ const layout = workspaceLayout();
5
+ const map = {
6
+ osint: layout.osint,
7
+ pentest: layout.pentest,
8
+ images: layout.images,
9
+ screenshots: path.join(layout.outputs, 'screenshots'),
10
+ camera: path.join(layout.outputs, 'camera'),
11
+ 'computer-use': path.join(layout.outputs, 'computer-use'),
12
+ };
13
+ return map[kind];
14
+ }
15
+ export function getWorkspaceRoot() {
16
+ return workspaceLayout().root;
17
+ }
18
+ //# sourceMappingURL=output-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-paths.js","sourceRoot":"","sources":["../../src/workspace/output-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,UAAU,YAAY,CAAC,IAAgF;IAC3G,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,GAAG,GAAG;QACV,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC;QACrD,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC3C,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC;KACjD,CAAC;IACX,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,eAAe,EAAE,CAAC,IAAI,CAAC;AAChC,CAAC"}
@@ -0,0 +1,26 @@
1
+ export type WorkspaceLayout = {
2
+ root: string;
3
+ notebook: string;
4
+ memoryJson: string;
5
+ notesJson: string;
6
+ knowledgeGraph: string;
7
+ healLog: string;
8
+ trustLog: string;
9
+ skills: string;
10
+ outputs: string;
11
+ osint: string;
12
+ pentest: string;
13
+ images: string;
14
+ logs: string;
15
+ projects: string;
16
+ attachments: string;
17
+ backups: string;
18
+ config: string;
19
+ scratch: string;
20
+ data: string;
21
+ };
22
+ export declare function defaultWorkspaceCandidates(): string[];
23
+ export declare function resolveWorkspaceRoot(): string;
24
+ export declare function workspaceLayout(root?: string): WorkspaceLayout;
25
+ export declare function legacyDataRoot(): string;
26
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/workspace/paths.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,wBAAgB,0BAA0B,aAKzC;AAED,wBAAgB,oBAAoB,WAUnC;AAED,wBAAgB,eAAe,CAAC,IAAI,SAAyB,GAAG,eAAe,CAsB9E;AAED,wBAAgB,cAAc,WAE7B"}