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.
- package/LICENSE +21 -0
- package/README.md +136 -0
- package/dist/agent.d.ts +46 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +393 -0
- package/dist/agent.js.map +1 -0
- package/dist/built-in-agents/explore.d.ts +9 -0
- package/dist/built-in-agents/explore.d.ts.map +1 -0
- package/dist/built-in-agents/explore.js +40 -0
- package/dist/built-in-agents/explore.js.map +1 -0
- package/dist/built-in-agents/index.d.ts +15 -0
- package/dist/built-in-agents/index.d.ts.map +1 -0
- package/dist/built-in-agents/index.js +19 -0
- package/dist/built-in-agents/index.js.map +1 -0
- package/dist/built-in-agents/plan.d.ts +10 -0
- package/dist/built-in-agents/plan.d.ts.map +1 -0
- package/dist/built-in-agents/plan.js +62 -0
- package/dist/built-in-agents/plan.js.map +1 -0
- package/dist/built-in-agents/worker.d.ts +9 -0
- package/dist/built-in-agents/worker.d.ts.map +1 -0
- package/dist/built-in-agents/worker.js +53 -0
- package/dist/built-in-agents/worker.js.map +1 -0
- package/dist/constants.d.ts +7 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +18 -0
- package/dist/constants.js.map +1 -0
- package/dist/context-manager.d.ts +65 -0
- package/dist/context-manager.d.ts.map +1 -0
- package/dist/context-manager.js +272 -0
- package/dist/context-manager.js.map +1 -0
- package/dist/context-manager.test.d.ts +2 -0
- package/dist/context-manager.test.d.ts.map +1 -0
- package/dist/context-manager.test.js +394 -0
- package/dist/context-manager.test.js.map +1 -0
- package/dist/executor.d.ts +29 -0
- package/dist/executor.d.ts.map +1 -0
- package/dist/executor.js +399 -0
- package/dist/executor.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/prompt/index.d.ts +9 -0
- package/dist/prompt/index.d.ts.map +1 -0
- package/dist/prompt/index.js +10 -0
- package/dist/prompt/index.js.map +1 -0
- package/dist/prompt/main-agent-builder.d.ts +81 -0
- package/dist/prompt/main-agent-builder.d.ts.map +1 -0
- package/dist/prompt/main-agent-builder.js +287 -0
- package/dist/prompt/main-agent-builder.js.map +1 -0
- package/dist/prompt/sub-agent-builder.d.ts +133 -0
- package/dist/prompt/sub-agent-builder.d.ts.map +1 -0
- package/dist/prompt/sub-agent-builder.js +337 -0
- package/dist/prompt/sub-agent-builder.js.map +1 -0
- package/dist/prompt/templates.d.ts +87 -0
- package/dist/prompt/templates.d.ts.map +1 -0
- package/dist/prompt/templates.js +343 -0
- package/dist/prompt/templates.js.map +1 -0
- package/dist/prompt/types.d.ts +159 -0
- package/dist/prompt/types.d.ts.map +1 -0
- package/dist/prompt/types.js +5 -0
- package/dist/prompt/types.js.map +1 -0
- package/dist/prompt.d.ts +32 -0
- package/dist/prompt.d.ts.map +1 -0
- package/dist/prompt.js +86 -0
- package/dist/prompt.js.map +1 -0
- package/dist/providers/dataset/base.d.ts +74 -0
- package/dist/providers/dataset/base.d.ts.map +1 -0
- package/dist/providers/dataset/base.js +7 -0
- package/dist/providers/dataset/base.js.map +1 -0
- package/dist/providers/dataset/index.d.ts +8 -0
- package/dist/providers/dataset/index.d.ts.map +1 -0
- package/dist/providers/dataset/index.js +8 -0
- package/dist/providers/dataset/index.js.map +1 -0
- package/dist/providers/dataset/recorder.d.ts +46 -0
- package/dist/providers/dataset/recorder.d.ts.map +1 -0
- package/dist/providers/dataset/recorder.js +105 -0
- package/dist/providers/dataset/recorder.js.map +1 -0
- package/dist/providers/dataset/replayer.d.ts +46 -0
- package/dist/providers/dataset/replayer.d.ts.map +1 -0
- package/dist/providers/dataset/replayer.js +163 -0
- package/dist/providers/dataset/replayer.js.map +1 -0
- package/dist/providers/dataset/tester.d.ts +89 -0
- package/dist/providers/dataset/tester.d.ts.map +1 -0
- package/dist/providers/dataset/tester.js +143 -0
- package/dist/providers/dataset/tester.js.map +1 -0
- package/dist/providers/env/memory.d.ts +14 -0
- package/dist/providers/env/memory.d.ts.map +1 -0
- package/dist/providers/env/memory.js +19 -0
- package/dist/providers/env/memory.js.map +1 -0
- package/dist/providers/index.d.ts +12 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +10 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/llm/base.d.ts +7 -0
- package/dist/providers/llm/base.d.ts.map +1 -0
- package/dist/providers/llm/base.js +7 -0
- package/dist/providers/llm/base.js.map +1 -0
- package/dist/providers/llm/claude.d.ts +32 -0
- package/dist/providers/llm/claude.d.ts.map +1 -0
- package/dist/providers/llm/claude.js +171 -0
- package/dist/providers/llm/claude.js.map +1 -0
- package/dist/providers/llm/openai.d.ts +26 -0
- package/dist/providers/llm/openai.d.ts.map +1 -0
- package/dist/providers/llm/openai.js +174 -0
- package/dist/providers/llm/openai.js.map +1 -0
- package/dist/providers/llm/openrouter.d.ts +43 -0
- package/dist/providers/llm/openrouter.d.ts.map +1 -0
- package/dist/providers/llm/openrouter.js +288 -0
- package/dist/providers/llm/openrouter.js.map +1 -0
- package/dist/providers/logger/base.d.ts +7 -0
- package/dist/providers/logger/base.d.ts.map +1 -0
- package/dist/providers/logger/base.js +7 -0
- package/dist/providers/logger/base.js.map +1 -0
- package/dist/providers/logger/console.d.ts +29 -0
- package/dist/providers/logger/console.d.ts.map +1 -0
- package/dist/providers/logger/console.js +70 -0
- package/dist/providers/logger/console.js.map +1 -0
- package/dist/providers/repository/base.d.ts +7 -0
- package/dist/providers/repository/base.d.ts.map +1 -0
- package/dist/providers/repository/base.js +7 -0
- package/dist/providers/repository/base.js.map +1 -0
- package/dist/providers/repository/memory.d.ts +21 -0
- package/dist/providers/repository/memory.d.ts.map +1 -0
- package/dist/providers/repository/memory.js +50 -0
- package/dist/providers/repository/memory.js.map +1 -0
- package/dist/providers/workspace/file.d.ts +26 -0
- package/dist/providers/workspace/file.d.ts.map +1 -0
- package/dist/providers/workspace/file.js +151 -0
- package/dist/providers/workspace/file.js.map +1 -0
- package/dist/providers/workspace/index.d.ts +7 -0
- package/dist/providers/workspace/index.d.ts.map +1 -0
- package/dist/providers/workspace/index.js +6 -0
- package/dist/providers/workspace/index.js.map +1 -0
- package/dist/providers/workspace/memory.d.ts +26 -0
- package/dist/providers/workspace/memory.d.ts.map +1 -0
- package/dist/providers/workspace/memory.js +136 -0
- package/dist/providers/workspace/memory.js.map +1 -0
- package/dist/providers/workspace/types.d.ts +27 -0
- package/dist/providers/workspace/types.d.ts.map +1 -0
- package/dist/providers/workspace/types.js +8 -0
- package/dist/providers/workspace/types.js.map +1 -0
- package/dist/providers/workspace/workspace-provider.test.d.ts +2 -0
- package/dist/providers/workspace/workspace-provider.test.d.ts.map +1 -0
- package/dist/providers/workspace/workspace-provider.test.js +250 -0
- package/dist/providers/workspace/workspace-provider.test.js.map +1 -0
- package/dist/shell/commands/browse.d.ts +6 -0
- package/dist/shell/commands/browse.d.ts.map +1 -0
- package/dist/shell/commands/browse.js +158 -0
- package/dist/shell/commands/browse.js.map +1 -0
- package/dist/shell/commands/cat.d.ts +6 -0
- package/dist/shell/commands/cat.d.ts.map +1 -0
- package/dist/shell/commands/cat.js +104 -0
- package/dist/shell/commands/cat.js.map +1 -0
- package/dist/shell/commands/curl.d.ts +6 -0
- package/dist/shell/commands/curl.d.ts.map +1 -0
- package/dist/shell/commands/curl.js +190 -0
- package/dist/shell/commands/curl.js.map +1 -0
- package/dist/shell/commands/date.d.ts +6 -0
- package/dist/shell/commands/date.d.ts.map +1 -0
- package/dist/shell/commands/date.js +151 -0
- package/dist/shell/commands/date.js.map +1 -0
- package/dist/shell/commands/echo.d.ts +6 -0
- package/dist/shell/commands/echo.d.ts.map +1 -0
- package/dist/shell/commands/echo.js +48 -0
- package/dist/shell/commands/echo.js.map +1 -0
- package/dist/shell/commands/env.d.ts +8 -0
- package/dist/shell/commands/env.d.ts.map +1 -0
- package/dist/shell/commands/env.js +41 -0
- package/dist/shell/commands/env.js.map +1 -0
- package/dist/shell/commands/file.d.ts +6 -0
- package/dist/shell/commands/file.d.ts.map +1 -0
- package/dist/shell/commands/file.js +213 -0
- package/dist/shell/commands/file.js.map +1 -0
- package/dist/shell/commands/find.d.ts +6 -0
- package/dist/shell/commands/find.d.ts.map +1 -0
- package/dist/shell/commands/find.js +100 -0
- package/dist/shell/commands/find.js.map +1 -0
- package/dist/shell/commands/grep.d.ts +6 -0
- package/dist/shell/commands/grep.d.ts.map +1 -0
- package/dist/shell/commands/grep.js +229 -0
- package/dist/shell/commands/grep.js.map +1 -0
- package/dist/shell/commands/head.d.ts +6 -0
- package/dist/shell/commands/head.d.ts.map +1 -0
- package/dist/shell/commands/head.js +88 -0
- package/dist/shell/commands/head.js.map +1 -0
- package/dist/shell/commands/index.d.ts +25 -0
- package/dist/shell/commands/index.d.ts.map +1 -0
- package/dist/shell/commands/index.js +43 -0
- package/dist/shell/commands/index.js.map +1 -0
- package/dist/shell/commands/jq.d.ts +8 -0
- package/dist/shell/commands/jq.d.ts.map +1 -0
- package/dist/shell/commands/jq.js +233 -0
- package/dist/shell/commands/jq.js.map +1 -0
- package/dist/shell/commands/ls.d.ts +6 -0
- package/dist/shell/commands/ls.d.ts.map +1 -0
- package/dist/shell/commands/ls.js +88 -0
- package/dist/shell/commands/ls.js.map +1 -0
- package/dist/shell/commands/mkdir.d.ts +6 -0
- package/dist/shell/commands/mkdir.d.ts.map +1 -0
- package/dist/shell/commands/mkdir.js +43 -0
- package/dist/shell/commands/mkdir.js.map +1 -0
- package/dist/shell/commands/rm.d.ts +6 -0
- package/dist/shell/commands/rm.d.ts.map +1 -0
- package/dist/shell/commands/rm.js +64 -0
- package/dist/shell/commands/rm.js.map +1 -0
- package/dist/shell/commands/sed.d.ts +6 -0
- package/dist/shell/commands/sed.d.ts.map +1 -0
- package/dist/shell/commands/sed.js +414 -0
- package/dist/shell/commands/sed.js.map +1 -0
- package/dist/shell/commands/sort.d.ts +6 -0
- package/dist/shell/commands/sort.d.ts.map +1 -0
- package/dist/shell/commands/sort.js +109 -0
- package/dist/shell/commands/sort.js.map +1 -0
- package/dist/shell/commands/tail.d.ts +6 -0
- package/dist/shell/commands/tail.d.ts.map +1 -0
- package/dist/shell/commands/tail.js +68 -0
- package/dist/shell/commands/tail.js.map +1 -0
- package/dist/shell/commands/wc.d.ts +6 -0
- package/dist/shell/commands/wc.d.ts.map +1 -0
- package/dist/shell/commands/wc.js +86 -0
- package/dist/shell/commands/wc.js.map +1 -0
- package/dist/shell/index.d.ts +10 -0
- package/dist/shell/index.d.ts.map +1 -0
- package/dist/shell/index.js +10 -0
- package/dist/shell/index.js.map +1 -0
- package/dist/shell/limits.d.ts +5 -0
- package/dist/shell/limits.d.ts.map +1 -0
- package/dist/shell/limits.js +5 -0
- package/dist/shell/limits.js.map +1 -0
- package/dist/shell/parser.d.ts +8 -0
- package/dist/shell/parser.d.ts.map +1 -0
- package/dist/shell/parser.js +307 -0
- package/dist/shell/parser.js.map +1 -0
- package/dist/shell/path-validation.d.ts +35 -0
- package/dist/shell/path-validation.d.ts.map +1 -0
- package/dist/shell/path-validation.js +81 -0
- package/dist/shell/path-validation.js.map +1 -0
- package/dist/shell/shell.d.ts +66 -0
- package/dist/shell/shell.d.ts.map +1 -0
- package/dist/shell/shell.js +301 -0
- package/dist/shell/shell.js.map +1 -0
- package/dist/shell/shell.test.d.ts +2 -0
- package/dist/shell/shell.test.d.ts.map +1 -0
- package/dist/shell/shell.test.js +1088 -0
- package/dist/shell/shell.test.js.map +1 -0
- package/dist/shell/types.d.ts +82 -0
- package/dist/shell/types.d.ts.map +1 -0
- package/dist/shell/types.js +5 -0
- package/dist/shell/types.js.map +1 -0
- package/dist/summarizer.d.ts +28 -0
- package/dist/summarizer.d.ts.map +1 -0
- package/dist/summarizer.js +136 -0
- package/dist/summarizer.js.map +1 -0
- package/dist/summarizer.test.d.ts +2 -0
- package/dist/summarizer.test.d.ts.map +1 -0
- package/dist/summarizer.test.js +192 -0
- package/dist/summarizer.test.js.map +1 -0
- package/dist/tools/ask-user.d.ts +11 -0
- package/dist/tools/ask-user.d.ts.map +1 -0
- package/dist/tools/ask-user.js +35 -0
- package/dist/tools/ask-user.js.map +1 -0
- package/dist/tools/index.d.ts +11 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +18 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/output.d.ts +15 -0
- package/dist/tools/output.d.ts.map +1 -0
- package/dist/tools/output.js +40 -0
- package/dist/tools/output.js.map +1 -0
- package/dist/tools/shell.d.ts +13 -0
- package/dist/tools/shell.d.ts.map +1 -0
- package/dist/tools/shell.js +166 -0
- package/dist/tools/shell.js.map +1 -0
- package/dist/tools/sub-agent.d.ts +25 -0
- package/dist/tools/sub-agent.d.ts.map +1 -0
- package/dist/tools/sub-agent.js +312 -0
- package/dist/tools/sub-agent.js.map +1 -0
- package/dist/tools/tasks.d.ts +170 -0
- package/dist/tools/tasks.d.ts.map +1 -0
- package/dist/tools/tasks.js +947 -0
- package/dist/tools/tasks.js.map +1 -0
- package/dist/trace/builder.d.ts +54 -0
- package/dist/trace/builder.d.ts.map +1 -0
- package/dist/trace/builder.js +229 -0
- package/dist/trace/builder.js.map +1 -0
- package/dist/trace/console.d.ts +45 -0
- package/dist/trace/console.d.ts.map +1 -0
- package/dist/trace/console.js +143 -0
- package/dist/trace/console.js.map +1 -0
- package/dist/trace/index.d.ts +11 -0
- package/dist/trace/index.d.ts.map +1 -0
- package/dist/trace/index.js +11 -0
- package/dist/trace/index.js.map +1 -0
- package/dist/trace/openrouter-pricing.d.ts +9 -0
- package/dist/trace/openrouter-pricing.d.ts.map +1 -0
- package/dist/trace/openrouter-pricing.js +321 -0
- package/dist/trace/openrouter-pricing.js.map +1 -0
- package/dist/trace/pricing.d.ts +13 -0
- package/dist/trace/pricing.d.ts.map +1 -0
- package/dist/trace/pricing.js +41 -0
- package/dist/trace/pricing.js.map +1 -0
- package/dist/trace/types.d.ts +142 -0
- package/dist/trace/types.d.ts.map +1 -0
- package/dist/trace/types.js +16 -0
- package/dist/trace/types.js.map +1 -0
- package/dist/trace.d.ts +5 -0
- package/dist/trace.d.ts.map +1 -0
- package/dist/trace.js +5 -0
- package/dist/trace.js.map +1 -0
- package/dist/types.d.ts +382 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/workspace.d.ts +287 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +560 -0
- package/dist/workspace.js.map +1 -0
- 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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"}
|