tuplet 2.7.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 (319) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +136 -0
  3. package/dist/agent.d.ts +46 -0
  4. package/dist/agent.d.ts.map +1 -0
  5. package/dist/agent.js +393 -0
  6. package/dist/agent.js.map +1 -0
  7. package/dist/built-in-agents/explore.d.ts +9 -0
  8. package/dist/built-in-agents/explore.d.ts.map +1 -0
  9. package/dist/built-in-agents/explore.js +40 -0
  10. package/dist/built-in-agents/explore.js.map +1 -0
  11. package/dist/built-in-agents/index.d.ts +15 -0
  12. package/dist/built-in-agents/index.d.ts.map +1 -0
  13. package/dist/built-in-agents/index.js +19 -0
  14. package/dist/built-in-agents/index.js.map +1 -0
  15. package/dist/built-in-agents/plan.d.ts +10 -0
  16. package/dist/built-in-agents/plan.d.ts.map +1 -0
  17. package/dist/built-in-agents/plan.js +62 -0
  18. package/dist/built-in-agents/plan.js.map +1 -0
  19. package/dist/built-in-agents/worker.d.ts +9 -0
  20. package/dist/built-in-agents/worker.d.ts.map +1 -0
  21. package/dist/built-in-agents/worker.js +53 -0
  22. package/dist/built-in-agents/worker.js.map +1 -0
  23. package/dist/constants.d.ts +7 -0
  24. package/dist/constants.d.ts.map +1 -0
  25. package/dist/constants.js +18 -0
  26. package/dist/constants.js.map +1 -0
  27. package/dist/context-manager.d.ts +65 -0
  28. package/dist/context-manager.d.ts.map +1 -0
  29. package/dist/context-manager.js +272 -0
  30. package/dist/context-manager.js.map +1 -0
  31. package/dist/context-manager.test.d.ts +2 -0
  32. package/dist/context-manager.test.d.ts.map +1 -0
  33. package/dist/context-manager.test.js +394 -0
  34. package/dist/context-manager.test.js.map +1 -0
  35. package/dist/executor.d.ts +29 -0
  36. package/dist/executor.d.ts.map +1 -0
  37. package/dist/executor.js +399 -0
  38. package/dist/executor.js.map +1 -0
  39. package/dist/index.d.ts +24 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +40 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/prompt/index.d.ts +9 -0
  44. package/dist/prompt/index.d.ts.map +1 -0
  45. package/dist/prompt/index.js +10 -0
  46. package/dist/prompt/index.js.map +1 -0
  47. package/dist/prompt/main-agent-builder.d.ts +81 -0
  48. package/dist/prompt/main-agent-builder.d.ts.map +1 -0
  49. package/dist/prompt/main-agent-builder.js +287 -0
  50. package/dist/prompt/main-agent-builder.js.map +1 -0
  51. package/dist/prompt/sub-agent-builder.d.ts +133 -0
  52. package/dist/prompt/sub-agent-builder.d.ts.map +1 -0
  53. package/dist/prompt/sub-agent-builder.js +337 -0
  54. package/dist/prompt/sub-agent-builder.js.map +1 -0
  55. package/dist/prompt/templates.d.ts +87 -0
  56. package/dist/prompt/templates.d.ts.map +1 -0
  57. package/dist/prompt/templates.js +343 -0
  58. package/dist/prompt/templates.js.map +1 -0
  59. package/dist/prompt/types.d.ts +159 -0
  60. package/dist/prompt/types.d.ts.map +1 -0
  61. package/dist/prompt/types.js +5 -0
  62. package/dist/prompt/types.js.map +1 -0
  63. package/dist/prompt.d.ts +32 -0
  64. package/dist/prompt.d.ts.map +1 -0
  65. package/dist/prompt.js +86 -0
  66. package/dist/prompt.js.map +1 -0
  67. package/dist/providers/dataset/base.d.ts +74 -0
  68. package/dist/providers/dataset/base.d.ts.map +1 -0
  69. package/dist/providers/dataset/base.js +7 -0
  70. package/dist/providers/dataset/base.js.map +1 -0
  71. package/dist/providers/dataset/index.d.ts +8 -0
  72. package/dist/providers/dataset/index.d.ts.map +1 -0
  73. package/dist/providers/dataset/index.js +8 -0
  74. package/dist/providers/dataset/index.js.map +1 -0
  75. package/dist/providers/dataset/recorder.d.ts +46 -0
  76. package/dist/providers/dataset/recorder.d.ts.map +1 -0
  77. package/dist/providers/dataset/recorder.js +105 -0
  78. package/dist/providers/dataset/recorder.js.map +1 -0
  79. package/dist/providers/dataset/replayer.d.ts +46 -0
  80. package/dist/providers/dataset/replayer.d.ts.map +1 -0
  81. package/dist/providers/dataset/replayer.js +163 -0
  82. package/dist/providers/dataset/replayer.js.map +1 -0
  83. package/dist/providers/dataset/tester.d.ts +89 -0
  84. package/dist/providers/dataset/tester.d.ts.map +1 -0
  85. package/dist/providers/dataset/tester.js +143 -0
  86. package/dist/providers/dataset/tester.js.map +1 -0
  87. package/dist/providers/env/memory.d.ts +14 -0
  88. package/dist/providers/env/memory.d.ts.map +1 -0
  89. package/dist/providers/env/memory.js +19 -0
  90. package/dist/providers/env/memory.js.map +1 -0
  91. package/dist/providers/index.d.ts +12 -0
  92. package/dist/providers/index.d.ts.map +1 -0
  93. package/dist/providers/index.js +10 -0
  94. package/dist/providers/index.js.map +1 -0
  95. package/dist/providers/llm/base.d.ts +7 -0
  96. package/dist/providers/llm/base.d.ts.map +1 -0
  97. package/dist/providers/llm/base.js +7 -0
  98. package/dist/providers/llm/base.js.map +1 -0
  99. package/dist/providers/llm/claude.d.ts +32 -0
  100. package/dist/providers/llm/claude.d.ts.map +1 -0
  101. package/dist/providers/llm/claude.js +171 -0
  102. package/dist/providers/llm/claude.js.map +1 -0
  103. package/dist/providers/llm/openai.d.ts +26 -0
  104. package/dist/providers/llm/openai.d.ts.map +1 -0
  105. package/dist/providers/llm/openai.js +174 -0
  106. package/dist/providers/llm/openai.js.map +1 -0
  107. package/dist/providers/llm/openrouter.d.ts +43 -0
  108. package/dist/providers/llm/openrouter.d.ts.map +1 -0
  109. package/dist/providers/llm/openrouter.js +288 -0
  110. package/dist/providers/llm/openrouter.js.map +1 -0
  111. package/dist/providers/logger/base.d.ts +7 -0
  112. package/dist/providers/logger/base.d.ts.map +1 -0
  113. package/dist/providers/logger/base.js +7 -0
  114. package/dist/providers/logger/base.js.map +1 -0
  115. package/dist/providers/logger/console.d.ts +29 -0
  116. package/dist/providers/logger/console.d.ts.map +1 -0
  117. package/dist/providers/logger/console.js +70 -0
  118. package/dist/providers/logger/console.js.map +1 -0
  119. package/dist/providers/repository/base.d.ts +7 -0
  120. package/dist/providers/repository/base.d.ts.map +1 -0
  121. package/dist/providers/repository/base.js +7 -0
  122. package/dist/providers/repository/base.js.map +1 -0
  123. package/dist/providers/repository/memory.d.ts +21 -0
  124. package/dist/providers/repository/memory.d.ts.map +1 -0
  125. package/dist/providers/repository/memory.js +50 -0
  126. package/dist/providers/repository/memory.js.map +1 -0
  127. package/dist/providers/workspace/file.d.ts +26 -0
  128. package/dist/providers/workspace/file.d.ts.map +1 -0
  129. package/dist/providers/workspace/file.js +151 -0
  130. package/dist/providers/workspace/file.js.map +1 -0
  131. package/dist/providers/workspace/index.d.ts +7 -0
  132. package/dist/providers/workspace/index.d.ts.map +1 -0
  133. package/dist/providers/workspace/index.js +6 -0
  134. package/dist/providers/workspace/index.js.map +1 -0
  135. package/dist/providers/workspace/memory.d.ts +26 -0
  136. package/dist/providers/workspace/memory.d.ts.map +1 -0
  137. package/dist/providers/workspace/memory.js +136 -0
  138. package/dist/providers/workspace/memory.js.map +1 -0
  139. package/dist/providers/workspace/types.d.ts +27 -0
  140. package/dist/providers/workspace/types.d.ts.map +1 -0
  141. package/dist/providers/workspace/types.js +8 -0
  142. package/dist/providers/workspace/types.js.map +1 -0
  143. package/dist/providers/workspace/workspace-provider.test.d.ts +2 -0
  144. package/dist/providers/workspace/workspace-provider.test.d.ts.map +1 -0
  145. package/dist/providers/workspace/workspace-provider.test.js +250 -0
  146. package/dist/providers/workspace/workspace-provider.test.js.map +1 -0
  147. package/dist/shell/commands/browse.d.ts +6 -0
  148. package/dist/shell/commands/browse.d.ts.map +1 -0
  149. package/dist/shell/commands/browse.js +158 -0
  150. package/dist/shell/commands/browse.js.map +1 -0
  151. package/dist/shell/commands/cat.d.ts +6 -0
  152. package/dist/shell/commands/cat.d.ts.map +1 -0
  153. package/dist/shell/commands/cat.js +104 -0
  154. package/dist/shell/commands/cat.js.map +1 -0
  155. package/dist/shell/commands/curl.d.ts +6 -0
  156. package/dist/shell/commands/curl.d.ts.map +1 -0
  157. package/dist/shell/commands/curl.js +190 -0
  158. package/dist/shell/commands/curl.js.map +1 -0
  159. package/dist/shell/commands/date.d.ts +6 -0
  160. package/dist/shell/commands/date.d.ts.map +1 -0
  161. package/dist/shell/commands/date.js +151 -0
  162. package/dist/shell/commands/date.js.map +1 -0
  163. package/dist/shell/commands/echo.d.ts +6 -0
  164. package/dist/shell/commands/echo.d.ts.map +1 -0
  165. package/dist/shell/commands/echo.js +48 -0
  166. package/dist/shell/commands/echo.js.map +1 -0
  167. package/dist/shell/commands/env.d.ts +8 -0
  168. package/dist/shell/commands/env.d.ts.map +1 -0
  169. package/dist/shell/commands/env.js +41 -0
  170. package/dist/shell/commands/env.js.map +1 -0
  171. package/dist/shell/commands/file.d.ts +6 -0
  172. package/dist/shell/commands/file.d.ts.map +1 -0
  173. package/dist/shell/commands/file.js +213 -0
  174. package/dist/shell/commands/file.js.map +1 -0
  175. package/dist/shell/commands/find.d.ts +6 -0
  176. package/dist/shell/commands/find.d.ts.map +1 -0
  177. package/dist/shell/commands/find.js +100 -0
  178. package/dist/shell/commands/find.js.map +1 -0
  179. package/dist/shell/commands/grep.d.ts +6 -0
  180. package/dist/shell/commands/grep.d.ts.map +1 -0
  181. package/dist/shell/commands/grep.js +229 -0
  182. package/dist/shell/commands/grep.js.map +1 -0
  183. package/dist/shell/commands/head.d.ts +6 -0
  184. package/dist/shell/commands/head.d.ts.map +1 -0
  185. package/dist/shell/commands/head.js +88 -0
  186. package/dist/shell/commands/head.js.map +1 -0
  187. package/dist/shell/commands/index.d.ts +25 -0
  188. package/dist/shell/commands/index.d.ts.map +1 -0
  189. package/dist/shell/commands/index.js +43 -0
  190. package/dist/shell/commands/index.js.map +1 -0
  191. package/dist/shell/commands/jq.d.ts +8 -0
  192. package/dist/shell/commands/jq.d.ts.map +1 -0
  193. package/dist/shell/commands/jq.js +233 -0
  194. package/dist/shell/commands/jq.js.map +1 -0
  195. package/dist/shell/commands/ls.d.ts +6 -0
  196. package/dist/shell/commands/ls.d.ts.map +1 -0
  197. package/dist/shell/commands/ls.js +88 -0
  198. package/dist/shell/commands/ls.js.map +1 -0
  199. package/dist/shell/commands/mkdir.d.ts +6 -0
  200. package/dist/shell/commands/mkdir.d.ts.map +1 -0
  201. package/dist/shell/commands/mkdir.js +43 -0
  202. package/dist/shell/commands/mkdir.js.map +1 -0
  203. package/dist/shell/commands/rm.d.ts +6 -0
  204. package/dist/shell/commands/rm.d.ts.map +1 -0
  205. package/dist/shell/commands/rm.js +64 -0
  206. package/dist/shell/commands/rm.js.map +1 -0
  207. package/dist/shell/commands/sed.d.ts +6 -0
  208. package/dist/shell/commands/sed.d.ts.map +1 -0
  209. package/dist/shell/commands/sed.js +414 -0
  210. package/dist/shell/commands/sed.js.map +1 -0
  211. package/dist/shell/commands/sort.d.ts +6 -0
  212. package/dist/shell/commands/sort.d.ts.map +1 -0
  213. package/dist/shell/commands/sort.js +109 -0
  214. package/dist/shell/commands/sort.js.map +1 -0
  215. package/dist/shell/commands/tail.d.ts +6 -0
  216. package/dist/shell/commands/tail.d.ts.map +1 -0
  217. package/dist/shell/commands/tail.js +68 -0
  218. package/dist/shell/commands/tail.js.map +1 -0
  219. package/dist/shell/commands/wc.d.ts +6 -0
  220. package/dist/shell/commands/wc.d.ts.map +1 -0
  221. package/dist/shell/commands/wc.js +86 -0
  222. package/dist/shell/commands/wc.js.map +1 -0
  223. package/dist/shell/index.d.ts +10 -0
  224. package/dist/shell/index.d.ts.map +1 -0
  225. package/dist/shell/index.js +10 -0
  226. package/dist/shell/index.js.map +1 -0
  227. package/dist/shell/limits.d.ts +5 -0
  228. package/dist/shell/limits.d.ts.map +1 -0
  229. package/dist/shell/limits.js +5 -0
  230. package/dist/shell/limits.js.map +1 -0
  231. package/dist/shell/parser.d.ts +8 -0
  232. package/dist/shell/parser.d.ts.map +1 -0
  233. package/dist/shell/parser.js +307 -0
  234. package/dist/shell/parser.js.map +1 -0
  235. package/dist/shell/path-validation.d.ts +35 -0
  236. package/dist/shell/path-validation.d.ts.map +1 -0
  237. package/dist/shell/path-validation.js +81 -0
  238. package/dist/shell/path-validation.js.map +1 -0
  239. package/dist/shell/shell.d.ts +66 -0
  240. package/dist/shell/shell.d.ts.map +1 -0
  241. package/dist/shell/shell.js +301 -0
  242. package/dist/shell/shell.js.map +1 -0
  243. package/dist/shell/shell.test.d.ts +2 -0
  244. package/dist/shell/shell.test.d.ts.map +1 -0
  245. package/dist/shell/shell.test.js +1088 -0
  246. package/dist/shell/shell.test.js.map +1 -0
  247. package/dist/shell/types.d.ts +82 -0
  248. package/dist/shell/types.d.ts.map +1 -0
  249. package/dist/shell/types.js +5 -0
  250. package/dist/shell/types.js.map +1 -0
  251. package/dist/summarizer.d.ts +28 -0
  252. package/dist/summarizer.d.ts.map +1 -0
  253. package/dist/summarizer.js +136 -0
  254. package/dist/summarizer.js.map +1 -0
  255. package/dist/summarizer.test.d.ts +2 -0
  256. package/dist/summarizer.test.d.ts.map +1 -0
  257. package/dist/summarizer.test.js +192 -0
  258. package/dist/summarizer.test.js.map +1 -0
  259. package/dist/tools/ask-user.d.ts +11 -0
  260. package/dist/tools/ask-user.d.ts.map +1 -0
  261. package/dist/tools/ask-user.js +35 -0
  262. package/dist/tools/ask-user.js.map +1 -0
  263. package/dist/tools/index.d.ts +11 -0
  264. package/dist/tools/index.d.ts.map +1 -0
  265. package/dist/tools/index.js +18 -0
  266. package/dist/tools/index.js.map +1 -0
  267. package/dist/tools/output.d.ts +15 -0
  268. package/dist/tools/output.d.ts.map +1 -0
  269. package/dist/tools/output.js +40 -0
  270. package/dist/tools/output.js.map +1 -0
  271. package/dist/tools/shell.d.ts +13 -0
  272. package/dist/tools/shell.d.ts.map +1 -0
  273. package/dist/tools/shell.js +166 -0
  274. package/dist/tools/shell.js.map +1 -0
  275. package/dist/tools/sub-agent.d.ts +25 -0
  276. package/dist/tools/sub-agent.d.ts.map +1 -0
  277. package/dist/tools/sub-agent.js +312 -0
  278. package/dist/tools/sub-agent.js.map +1 -0
  279. package/dist/tools/tasks.d.ts +170 -0
  280. package/dist/tools/tasks.d.ts.map +1 -0
  281. package/dist/tools/tasks.js +947 -0
  282. package/dist/tools/tasks.js.map +1 -0
  283. package/dist/trace/builder.d.ts +54 -0
  284. package/dist/trace/builder.d.ts.map +1 -0
  285. package/dist/trace/builder.js +229 -0
  286. package/dist/trace/builder.js.map +1 -0
  287. package/dist/trace/console.d.ts +45 -0
  288. package/dist/trace/console.d.ts.map +1 -0
  289. package/dist/trace/console.js +143 -0
  290. package/dist/trace/console.js.map +1 -0
  291. package/dist/trace/index.d.ts +11 -0
  292. package/dist/trace/index.d.ts.map +1 -0
  293. package/dist/trace/index.js +11 -0
  294. package/dist/trace/index.js.map +1 -0
  295. package/dist/trace/openrouter-pricing.d.ts +9 -0
  296. package/dist/trace/openrouter-pricing.d.ts.map +1 -0
  297. package/dist/trace/openrouter-pricing.js +321 -0
  298. package/dist/trace/openrouter-pricing.js.map +1 -0
  299. package/dist/trace/pricing.d.ts +13 -0
  300. package/dist/trace/pricing.d.ts.map +1 -0
  301. package/dist/trace/pricing.js +41 -0
  302. package/dist/trace/pricing.js.map +1 -0
  303. package/dist/trace/types.d.ts +142 -0
  304. package/dist/trace/types.d.ts.map +1 -0
  305. package/dist/trace/types.js +16 -0
  306. package/dist/trace/types.js.map +1 -0
  307. package/dist/trace.d.ts +5 -0
  308. package/dist/trace.d.ts.map +1 -0
  309. package/dist/trace.js +5 -0
  310. package/dist/trace.js.map +1 -0
  311. package/dist/types.d.ts +382 -0
  312. package/dist/types.d.ts.map +1 -0
  313. package/dist/types.js +5 -0
  314. package/dist/types.js.map +1 -0
  315. package/dist/workspace.d.ts +287 -0
  316. package/dist/workspace.d.ts.map +1 -0
  317. package/dist/workspace.js +560 -0
  318. package/dist/workspace.js.map +1 -0
  319. package/package.json +47 -0
@@ -0,0 +1,287 @@
1
+ /**
2
+ * Workspace - A virtual filesystem for agent communication
3
+ *
4
+ * Wraps a WorkspaceProvider. AI agents interact with workspace
5
+ * using bash-like commands (cat, echo, ls, grep, etc.) through the shell.
6
+ *
7
+ * All paths are relative — absolute paths (starting with /) are not allowed.
8
+ *
9
+ * Usage:
10
+ * ```typescript
11
+ * const workspace = new Workspace({
12
+ * paths: {
13
+ * 'user/preferences.json': { value: { theme: 'dark' } }
14
+ * }
15
+ * })
16
+ *
17
+ * // Get the shell for AI to use
18
+ * const shell = workspace.getShell()
19
+ *
20
+ * // AI uses bash commands:
21
+ * // cat user/preferences.json
22
+ * // echo '{"theme": "light"}' > user/preferences.json
23
+ * // ls
24
+ * // grep "theme" user/preferences.json
25
+ *
26
+ * // Read results after run
27
+ * const prefs = await workspace.read('user/preferences.json')
28
+ * ```
29
+ */
30
+ import type { JSONSchema, EnvironmentProvider } from './types.js';
31
+ import { Shell } from './shell/shell.js';
32
+ import type { ShellConfig } from './shell/types.js';
33
+ import type { WorkspaceProvider } from './providers/workspace/types.js';
34
+ export interface WorkspaceEntry {
35
+ value: unknown;
36
+ createdAt: number;
37
+ updatedAt: number;
38
+ /** Optional metadata about who wrote this entry */
39
+ writtenBy?: string;
40
+ }
41
+ export interface WorkspaceListItem {
42
+ path: string;
43
+ updatedAt: number;
44
+ writtenBy?: string;
45
+ /** Preview of value (for objects: type, for primitives: value) */
46
+ preview: string;
47
+ }
48
+ /** Custom validator function */
49
+ export type ValidatorFn = (value: unknown) => ValidationError[] | null;
50
+ /** Zod-like schema interface (duck typing to avoid hard dependency) */
51
+ export interface ZodLike {
52
+ safeParse(value: unknown): {
53
+ success: true;
54
+ data: unknown;
55
+ } | {
56
+ success: false;
57
+ error: {
58
+ errors: Array<{
59
+ path: (string | number)[];
60
+ message: string;
61
+ }>;
62
+ };
63
+ };
64
+ }
65
+ /**
66
+ * Path configuration with optional validator and initial value
67
+ */
68
+ export interface PathConfig {
69
+ /** Validator for this path (null = format validation only from extension) */
70
+ validator?: JSONSchema | ValidatorFn | ZodLike | null;
71
+ /** Initial value to populate */
72
+ value?: unknown;
73
+ /** Description shown to AI */
74
+ description?: string;
75
+ }
76
+ export interface WorkspaceConfig {
77
+ /**
78
+ * Strict mode: only allow writing to defined paths.
79
+ * - true: writes to undefined paths will fail
80
+ * - false (default): any path can be written to
81
+ */
82
+ strict?: boolean;
83
+ /**
84
+ * Path definitions with validators and optional initial values.
85
+ *
86
+ * Format extensions (basic validation from extension):
87
+ * - 'path/name.json' → validates valid JSON object/array
88
+ * - 'path/name.md' → validates string (markdown)
89
+ * - 'path/name.txt' → validates string
90
+ * - 'path/name.num' → validates number
91
+ * - 'path/name.bool' → validates boolean
92
+ *
93
+ * Values can be:
94
+ * - null → just format validation from extension
95
+ * - JSONSchema → schema validation
96
+ * - ValidatorFn → custom function
97
+ * - ZodLike → zod schema
98
+ * - PathConfig → { validator, value, description }
99
+ *
100
+ * @example
101
+ * ```typescript
102
+ * const workspace = new Workspace({
103
+ * strict: true,
104
+ * paths: {
105
+ * // Format validation only
106
+ * "notes.md": null,
107
+ *
108
+ * // With initial value
109
+ * "user.json": {
110
+ * validator: { type: 'object', properties: { name: { type: 'string' } } },
111
+ * value: { name: "Guest" }
112
+ * },
113
+ *
114
+ * // Just initial value, format validation from extension
115
+ * "today/meals.json": { value: [] }
116
+ * }
117
+ * })
118
+ * ```
119
+ */
120
+ paths?: Record<string, JSONSchema | ValidatorFn | ZodLike | PathConfig | null>;
121
+ }
122
+ export interface ValidationError {
123
+ path: string;
124
+ message: string;
125
+ expected?: string;
126
+ received?: string;
127
+ }
128
+ export interface WriteResult {
129
+ success: boolean;
130
+ errors?: ValidationError[];
131
+ }
132
+ /** Supported format extensions */
133
+ type FormatExt = 'json' | 'md' | 'txt' | 'num' | 'bool';
134
+ type SchemaExt = 'schema' | 'zod' | 'validate';
135
+ type ValidatorType = FormatExt | SchemaExt;
136
+ export interface WorkspaceConfigExt extends WorkspaceConfig {
137
+ /** Shell configuration for HTTP requests */
138
+ shell?: ShellConfig;
139
+ /** Async persistence provider */
140
+ provider?: WorkspaceProvider;
141
+ }
142
+ /**
143
+ * Workspace provides a virtual filesystem for agent communication.
144
+ * Uses WorkspaceProvider directly and provides Shell access for AI to use bash commands.
145
+ */
146
+ export declare class Workspace {
147
+ private provider;
148
+ private shell;
149
+ private validators;
150
+ private definedPaths;
151
+ private strict;
152
+ private initialized;
153
+ private unsubscribe;
154
+ /** Extension to type mapping */
155
+ private static readonly EXT_MAP;
156
+ constructor(config?: WorkspaceConfigExt);
157
+ /**
158
+ * Get the shell instance for AI to execute bash commands.
159
+ * AI uses: cat, echo, ls, grep, find, curl, jq, etc.
160
+ */
161
+ getShell(): Shell;
162
+ /**
163
+ * Set environment provider for secure variable resolution in the shell.
164
+ * Variables are resolved at execution time — values never appear in conversation history.
165
+ */
166
+ setEnvProvider(provider: EnvironmentProvider): void;
167
+ /**
168
+ * Get the underlying WorkspaceProvider
169
+ */
170
+ getProvider(): WorkspaceProvider;
171
+ /**
172
+ * Initialize the workspace.
173
+ * Sets up real-time subscriptions if the provider supports them.
174
+ * No-op when no provider subscription is available.
175
+ */
176
+ init(): Promise<void>;
177
+ /**
178
+ * Dispose the workspace provider.
179
+ * Unsubscribes, flushes pending writes, and disposes the provider.
180
+ */
181
+ dispose(): Promise<void>;
182
+ /**
183
+ * Check if strict mode is enabled
184
+ */
185
+ isStrict(): boolean;
186
+ /**
187
+ * Check if a path is defined (registered)
188
+ */
189
+ isDefined(path: string): boolean;
190
+ /**
191
+ * Get all defined paths
192
+ */
193
+ getDefinedPaths(): string[];
194
+ /**
195
+ * Register a path with optional validator and initial value
196
+ */
197
+ registerPath(path: string, config: JSONSchema | ValidatorFn | ZodLike | PathConfig | null): void;
198
+ /**
199
+ * Set validator for a path
200
+ */
201
+ private setValidator;
202
+ /** Parse path and extension */
203
+ private parsePathExt;
204
+ /** Check if extension is a format type */
205
+ private isFormatExt;
206
+ /** Check if value looks like a Zod schema */
207
+ private isZodLike;
208
+ /**
209
+ * Write a value to the workspace at the given path
210
+ *
211
+ * @param path - Path (e.g., 'meals.today', 'user/preferences')
212
+ * @param value - Any JSON-serializable value
213
+ * @param _writtenBy - Optional identifier of who wrote this (unused, kept for API compatibility)
214
+ * @returns WriteResult with success status and any validation errors
215
+ */
216
+ write(path: string, value: unknown, _writtenBy?: string): WriteResult;
217
+ /**
218
+ * Get validator info for a path
219
+ */
220
+ getValidator(path: string): {
221
+ type: ValidatorType;
222
+ schema?: JSONSchema;
223
+ description?: string;
224
+ } | undefined;
225
+ /**
226
+ * Get schema for a path (if JSON schema validator)
227
+ */
228
+ getSchema(path: string): JSONSchema | undefined;
229
+ /**
230
+ * Get validator description for a path
231
+ */
232
+ getValidatorDescription(path: string): string | undefined;
233
+ /**
234
+ * Get all paths with validators
235
+ */
236
+ getValidatorPaths(): string[];
237
+ /**
238
+ * Validate a value against a JSON schema
239
+ */
240
+ private validateSchema;
241
+ /**
242
+ * Validate a single property
243
+ */
244
+ private validateProperty;
245
+ /**
246
+ * Validate a value using Zod schema
247
+ */
248
+ private validateZod;
249
+ /**
250
+ * Validate a value against a format extension
251
+ */
252
+ private validateFormat;
253
+ /**
254
+ * Read a value from the workspace
255
+ *
256
+ * @param path - Path to read from (with or without / prefix)
257
+ * @returns The value, or undefined if not found
258
+ */
259
+ read<T = unknown>(path: string): Promise<T | undefined>;
260
+ /**
261
+ * Check if a path exists in the workspace
262
+ */
263
+ has(path: string): Promise<boolean>;
264
+ /**
265
+ * Delete a path from the workspace
266
+ */
267
+ delete(path: string): Promise<boolean>;
268
+ /**
269
+ * List all paths, optionally filtered by prefix
270
+ */
271
+ list(prefix?: string): Promise<WorkspaceListItem[]>;
272
+ /**
273
+ * Get all paths (just the keys, no metadata)
274
+ */
275
+ keys(prefix?: string): Promise<string[]>;
276
+ /**
277
+ * Clear all data from the workspace
278
+ */
279
+ clear(): Promise<void>;
280
+ /**
281
+ * Get number of entries
282
+ */
283
+ getSize(): Promise<number>;
284
+ private getPreview;
285
+ }
286
+ export {};
287
+ //# sourceMappingURL=workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}