zeitlich 0.2.22 → 0.2.24

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 (129) hide show
  1. package/README.md +278 -59
  2. package/dist/adapters/sandbox/bedrock/index.cjs +427 -0
  3. package/dist/adapters/sandbox/bedrock/index.cjs.map +1 -0
  4. package/dist/adapters/sandbox/bedrock/index.d.cts +23 -0
  5. package/dist/adapters/sandbox/bedrock/index.d.ts +23 -0
  6. package/dist/adapters/sandbox/bedrock/index.js +424 -0
  7. package/dist/adapters/sandbox/bedrock/index.js.map +1 -0
  8. package/dist/adapters/sandbox/bedrock/workflow.cjs +33 -0
  9. package/dist/adapters/sandbox/bedrock/workflow.cjs.map +1 -0
  10. package/dist/adapters/sandbox/bedrock/workflow.d.cts +29 -0
  11. package/dist/adapters/sandbox/bedrock/workflow.d.ts +29 -0
  12. package/dist/adapters/sandbox/bedrock/workflow.js +31 -0
  13. package/dist/adapters/sandbox/bedrock/workflow.js.map +1 -0
  14. package/dist/adapters/sandbox/daytona/index.cjs +4 -1
  15. package/dist/adapters/sandbox/daytona/index.cjs.map +1 -1
  16. package/dist/adapters/sandbox/daytona/index.d.cts +2 -1
  17. package/dist/adapters/sandbox/daytona/index.d.ts +2 -1
  18. package/dist/adapters/sandbox/daytona/index.js +4 -1
  19. package/dist/adapters/sandbox/daytona/index.js.map +1 -1
  20. package/dist/adapters/sandbox/daytona/workflow.cjs +1 -0
  21. package/dist/adapters/sandbox/daytona/workflow.cjs.map +1 -1
  22. package/dist/adapters/sandbox/daytona/workflow.d.cts +1 -1
  23. package/dist/adapters/sandbox/daytona/workflow.d.ts +1 -1
  24. package/dist/adapters/sandbox/daytona/workflow.js +1 -0
  25. package/dist/adapters/sandbox/daytona/workflow.js.map +1 -1
  26. package/dist/adapters/sandbox/inmemory/index.cjs +16 -2
  27. package/dist/adapters/sandbox/inmemory/index.cjs.map +1 -1
  28. package/dist/adapters/sandbox/inmemory/index.d.cts +3 -2
  29. package/dist/adapters/sandbox/inmemory/index.d.ts +3 -2
  30. package/dist/adapters/sandbox/inmemory/index.js +16 -2
  31. package/dist/adapters/sandbox/inmemory/index.js.map +1 -1
  32. package/dist/adapters/sandbox/inmemory/workflow.cjs +1 -0
  33. package/dist/adapters/sandbox/inmemory/workflow.cjs.map +1 -1
  34. package/dist/adapters/sandbox/inmemory/workflow.d.cts +1 -1
  35. package/dist/adapters/sandbox/inmemory/workflow.d.ts +1 -1
  36. package/dist/adapters/sandbox/inmemory/workflow.js +1 -0
  37. package/dist/adapters/sandbox/inmemory/workflow.js.map +1 -1
  38. package/dist/adapters/sandbox/virtual/index.cjs +45 -11
  39. package/dist/adapters/sandbox/virtual/index.cjs.map +1 -1
  40. package/dist/adapters/sandbox/virtual/index.d.cts +6 -5
  41. package/dist/adapters/sandbox/virtual/index.d.ts +6 -5
  42. package/dist/adapters/sandbox/virtual/index.js +45 -11
  43. package/dist/adapters/sandbox/virtual/index.js.map +1 -1
  44. package/dist/adapters/sandbox/virtual/workflow.cjs +1 -0
  45. package/dist/adapters/sandbox/virtual/workflow.cjs.map +1 -1
  46. package/dist/adapters/sandbox/virtual/workflow.d.cts +3 -3
  47. package/dist/adapters/sandbox/virtual/workflow.d.ts +3 -3
  48. package/dist/adapters/sandbox/virtual/workflow.js +1 -0
  49. package/dist/adapters/sandbox/virtual/workflow.js.map +1 -1
  50. package/dist/adapters/thread/google-genai/index.d.cts +3 -3
  51. package/dist/adapters/thread/google-genai/index.d.ts +3 -3
  52. package/dist/adapters/thread/google-genai/workflow.d.cts +3 -3
  53. package/dist/adapters/thread/google-genai/workflow.d.ts +3 -3
  54. package/dist/adapters/thread/langchain/index.d.cts +3 -3
  55. package/dist/adapters/thread/langchain/index.d.ts +3 -3
  56. package/dist/adapters/thread/langchain/workflow.d.cts +3 -3
  57. package/dist/adapters/thread/langchain/workflow.d.ts +3 -3
  58. package/dist/index.cjs +443 -71
  59. package/dist/index.cjs.map +1 -1
  60. package/dist/index.d.cts +64 -10
  61. package/dist/index.d.ts +64 -10
  62. package/dist/index.js +442 -71
  63. package/dist/index.js.map +1 -1
  64. package/dist/{queries-Bw6WEPMw.d.cts → queries-BYGBImeC.d.cts} +1 -1
  65. package/dist/{queries-C27raDaB.d.ts → queries-DwBe2CAA.d.ts} +1 -1
  66. package/dist/{types-C5bkx6kQ.d.ts → types-7PeMi1bD.d.cts} +167 -36
  67. package/dist/{types-BJ8itUAl.d.cts → types-Bf8KV0Ci.d.cts} +6 -6
  68. package/dist/{types-HBosetv3.d.cts → types-ChAMwU3q.d.cts} +2 -0
  69. package/dist/{types-HBosetv3.d.ts → types-ChAMwU3q.d.ts} +2 -0
  70. package/dist/{types-YbL7JpEA.d.cts → types-D_igp10o.d.cts} +11 -0
  71. package/dist/{types-YbL7JpEA.d.ts → types-D_igp10o.d.ts} +11 -0
  72. package/dist/types-DhTCEMhr.d.cts +64 -0
  73. package/dist/{types-ENYCKFBk.d.ts → types-LVKmCNds.d.ts} +6 -6
  74. package/dist/types-d9NznUqd.d.ts +64 -0
  75. package/dist/{types-ClsHhtwL.d.cts → types-hmferhc2.d.ts} +167 -36
  76. package/dist/workflow.cjs +308 -63
  77. package/dist/workflow.cjs.map +1 -1
  78. package/dist/workflow.d.cts +54 -32
  79. package/dist/workflow.d.ts +54 -32
  80. package/dist/workflow.js +306 -61
  81. package/dist/workflow.js.map +1 -1
  82. package/package.json +27 -2
  83. package/src/adapters/sandbox/bedrock/filesystem.ts +313 -0
  84. package/src/adapters/sandbox/bedrock/index.ts +259 -0
  85. package/src/adapters/sandbox/bedrock/proxy.ts +56 -0
  86. package/src/adapters/sandbox/bedrock/types.ts +24 -0
  87. package/src/adapters/sandbox/daytona/filesystem.ts +1 -1
  88. package/src/adapters/sandbox/daytona/index.ts +4 -0
  89. package/src/adapters/sandbox/daytona/proxy.ts +4 -3
  90. package/src/adapters/sandbox/e2b/index.ts +5 -0
  91. package/src/adapters/sandbox/inmemory/index.ts +24 -4
  92. package/src/adapters/sandbox/inmemory/proxy.ts +2 -2
  93. package/src/adapters/sandbox/virtual/filesystem.ts +44 -18
  94. package/src/adapters/sandbox/virtual/provider.ts +13 -0
  95. package/src/adapters/sandbox/virtual/proxy.ts +1 -0
  96. package/src/adapters/sandbox/virtual/types.ts +9 -4
  97. package/src/adapters/sandbox/virtual/virtual-sandbox.test.ts +26 -0
  98. package/src/index.ts +2 -1
  99. package/src/lib/lifecycle.ts +57 -0
  100. package/src/lib/sandbox/manager.ts +13 -1
  101. package/src/lib/sandbox/node-fs.ts +115 -0
  102. package/src/lib/sandbox/types.ts +13 -4
  103. package/src/lib/session/index.ts +1 -0
  104. package/src/lib/session/session-edge-cases.integration.test.ts +447 -33
  105. package/src/lib/session/session.integration.test.ts +149 -32
  106. package/src/lib/session/session.ts +138 -33
  107. package/src/lib/session/types.ts +56 -17
  108. package/src/lib/skills/fs-provider.ts +65 -4
  109. package/src/lib/skills/handler.ts +43 -1
  110. package/src/lib/skills/index.ts +0 -1
  111. package/src/lib/skills/register.ts +17 -1
  112. package/src/lib/skills/skills.integration.test.ts +308 -24
  113. package/src/lib/skills/types.ts +6 -0
  114. package/src/lib/subagent/define.ts +5 -4
  115. package/src/lib/subagent/handler.ts +143 -14
  116. package/src/lib/subagent/index.ts +3 -0
  117. package/src/lib/subagent/register.ts +10 -3
  118. package/src/lib/subagent/signals.ts +8 -0
  119. package/src/lib/subagent/subagent.integration.test.ts +853 -150
  120. package/src/lib/subagent/tool.ts +2 -2
  121. package/src/lib/subagent/types.ts +77 -19
  122. package/src/lib/subagent/workflow.ts +83 -12
  123. package/src/lib/tool-router/router.integration.test.ts +137 -4
  124. package/src/lib/tool-router/router.ts +19 -6
  125. package/src/lib/tool-router/types.ts +11 -0
  126. package/src/lib/workflow.test.ts +89 -21
  127. package/src/lib/workflow.ts +33 -18
  128. package/src/workflow.ts +6 -1
  129. package/tsup.config.ts +3 -0
package/dist/index.d.cts CHANGED
@@ -1,14 +1,14 @@
1
1
  import { BashArgs, FileEditArgs, GlobArgs, FileReadArgs, FileWriteArgs } from './workflow.cjs';
2
2
  export { AskUserQuestionArgs, GrepArgs, ReadSkillArgs, SubagentArgs, TaskCreateArgs, TaskGetArgs, TaskListArgs, TaskUpdateArgs, WorkflowConfig, WorkflowInput, WorkflowSessionInput, applyVirtualTreeMutations, askUserQuestionTool, bashTool, createAgentStateManager, createAskUserQuestionHandler, createBashToolDescription, createReadSkillHandler, createReadSkillTool, createSession, createTaskCreateHandler, createTaskGetHandler, createTaskListHandler, createTaskUpdateHandler, createToolRouter, defineSubagent, defineSubagentWorkflow, defineTool, defineWorkflow, editTool, formatVirtualFileTree, getShortId, globTool, grepTool, hasNoOtherToolCalls, parseSkillFile, readFileTool, taskCreateTool, taskGetTool, taskListTool, taskUpdateTool, writeFileTool } from './workflow.cjs';
3
- import { b as SkillProvider, c as SkillMetadata, d as Skill } from './types-ClsHhtwL.cjs';
4
- export { A as AgentResponse, e as AgentState, f as AgentStateManager, H as Hooks, J as JsonPrimitive, g as JsonSerializable, h as JsonValue, M as ModelInvoker, a as ModelInvokerConfig, i as PostHumanMessageAppendHook, j as PostHumanMessageAppendHookContext, k as PreHumanMessageAppendHook, l as PreHumanMessageAppendHookContext, P as PrefixedThreadOps, R as RunAgentActivity, S as ScopedPrefix, m as SessionConfig, n as SessionEndHook, o as SessionEndHookContext, p as SessionStartHook, q as SessionStartHookContext, r as SubagentConfig, s as SubagentDefinition, t as SubagentHandlerResponse, u as SubagentHooks, v as SubagentSessionInput, w as SubagentWorkflow, x as SubagentWorkflowInput, T as ThreadOps, Z as ZeitlichSession } from './types-ClsHhtwL.cjs';
5
- import { R as RouterContext, j as ToolResultConfig, A as ActivityToolHandler, c as ToolHandlerResponse, B as BaseAgentState, g as RunAgentConfig } from './types-YbL7JpEA.cjs';
6
- export { l as AgentConfig, m as AgentFile, h as AgentStatus, n as AppendToolResultFn, C as ContentPart, I as InferToolResults, M as MessageContent, o as ParsedToolCall, p as ParsedToolCallUnion, q as PostToolUseFailureHook, r as PostToolUseFailureHookContext, d as PostToolUseFailureHookResult, s as PostToolUseHook, t as PostToolUseHookContext, u as PreToolUseHook, v as PreToolUseHookContext, P as PreToolUseHookResult, w as ProcessToolCallsContext, e as RawToolCall, x as SerializableToolDefinition, S as SessionExitReason, y as TaskStatus, f as TokenUsage, z as ToolArgs, D as ToolCallResult, k as ToolCallResultUnion, i as ToolDefinition, E as ToolHandler, F as ToolHooks, a as ToolMap, T as ToolMessageContent, G as ToolNames, H as ToolResult, J as ToolRouter, b as ToolRouterHooks, K as ToolWithHandler, W as WorkflowTask, L as isTerminalStatus } from './types-YbL7JpEA.cjs';
7
- import { S as Sandbox, a as SandboxFileSystem, d as SandboxCreateOptions, b as SandboxProvider, f as SandboxSnapshot, P as PrefixedSandboxOps, E as ExecResult } from './types-HBosetv3.cjs';
8
- export { h as ExecOptions, c as SandboxCapabilities, e as SandboxCreateResult, D as SandboxDirentEntry, F as SandboxFileStat, i as SandboxNotFoundError, j as SandboxNotSupportedError, g as SandboxOps } from './types-HBosetv3.cjs';
3
+ import { b as SkillProvider, c as SkillMetadata, d as Skill } from './types-7PeMi1bD.cjs';
4
+ export { A as AgentResponse, e as AgentState, f as AgentStateManager, H as Hooks, J as JsonPrimitive, g as JsonSerializable, h as JsonValue, M as ModelInvoker, a as ModelInvokerConfig, i as PostHumanMessageAppendHook, j as PostHumanMessageAppendHookContext, k as PreHumanMessageAppendHook, l as PreHumanMessageAppendHookContext, P as PrefixedThreadOps, R as RunAgentActivity, m as SandboxInit, n as SandboxShutdown, S as ScopedPrefix, o as SessionConfig, p as SessionEndHook, q as SessionEndHookContext, r as SessionResult, s as SessionStartHook, t as SessionStartHookContext, u as SubagentConfig, v as SubagentDefinition, w as SubagentFnResult, x as SubagentHandlerResponse, y as SubagentHooks, z as SubagentSandboxConfig, B as SubagentSandboxShutdown, C as SubagentSessionInput, D as SubagentWorkflow, E as SubagentWorkflowInput, F as ThreadInit, T as ThreadOps, Z as ZeitlichSession } from './types-7PeMi1bD.cjs';
5
+ import { R as RouterContext, j as ToolResultConfig, A as ActivityToolHandler, c as ToolHandlerResponse, B as BaseAgentState, g as RunAgentConfig } from './types-D_igp10o.cjs';
6
+ export { l as AgentConfig, m as AgentFile, h as AgentStatus, n as AppendToolResultFn, C as ContentPart, I as InferToolResults, M as MessageContent, o as ParsedToolCall, p as ParsedToolCallUnion, q as PostToolUseFailureHook, r as PostToolUseFailureHookContext, d as PostToolUseFailureHookResult, s as PostToolUseHook, t as PostToolUseHookContext, u as PreToolUseHook, v as PreToolUseHookContext, P as PreToolUseHookResult, w as ProcessToolCallsContext, e as RawToolCall, x as SerializableToolDefinition, S as SessionExitReason, y as TaskStatus, f as TokenUsage, z as ToolArgs, D as ToolCallResult, k as ToolCallResultUnion, i as ToolDefinition, E as ToolHandler, F as ToolHooks, a as ToolMap, T as ToolMessageContent, G as ToolNames, H as ToolResult, J as ToolRouter, b as ToolRouterHooks, K as ToolWithHandler, W as WorkflowTask, L as isTerminalStatus } from './types-D_igp10o.cjs';
7
+ import { S as Sandbox, a as SandboxFileSystem, d as SandboxCreateOptions, b as SandboxProvider, f as SandboxSnapshot, P as PrefixedSandboxOps, F as FileStat, D as DirentEntry, E as ExecResult } from './types-ChAMwU3q.cjs';
8
+ export { h as ExecOptions, c as SandboxCapabilities, e as SandboxCreateResult, i as SandboxNotFoundError, j as SandboxNotSupportedError, g as SandboxOps } from './types-ChAMwU3q.cjs';
9
9
  import { WorkflowClient } from '@temporalio/client';
10
- export { f as filesWithMimeType, h as hasDirectory, a as hasFileWithMimeType } from './queries-Bw6WEPMw.cjs';
11
- export { F as FileEntry, a as FileEntryMetadata, b as FileResolver, T as TreeMutation, e as VirtualFileTree, g as VirtualSandboxState } from './types-BJ8itUAl.cjs';
10
+ export { f as filesWithMimeType, h as hasDirectory, a as hasFileWithMimeType } from './queries-BYGBImeC.cjs';
11
+ export { F as FileEntry, a as FileEntryMetadata, b as FileResolver, T as TreeMutation, e as VirtualFileTree, g as VirtualSandboxState } from './types-Bf8KV0Ci.cjs';
12
12
  import { T as ThreadManagerConfig, B as BaseThreadManager } from './types-35POpVfa.cjs';
13
13
  import 'zod';
14
14
  import '@temporalio/common';
@@ -158,7 +158,11 @@ declare function withParentWorkflowState<TArgs, TResult, S extends BaseAgentStat
158
158
  * ├── code-review/
159
159
  * │ └── SKILL.md
160
160
  * ├── pdf-processing/
161
- * │ └── SKILL.md
161
+ * │ ├── SKILL.md
162
+ * │ ├── references/
163
+ * │ │ └── spec-summary.md
164
+ * │ └── scripts/
165
+ * │ └── extract.py
162
166
  * ```
163
167
  *
164
168
  * Uses the sandbox filesystem abstraction — works with any backend
@@ -175,6 +179,12 @@ declare class FileSystemSkillProvider implements SkillProvider {
175
179
  * Returns `Skill[]` ready to pass into a workflow.
176
180
  */
177
181
  loadAll(): Promise<Skill[]>;
182
+ /**
183
+ * Recursively discovers all non-SKILL.md files inside the skill directory
184
+ * and returns their paths relative to the skill root.
185
+ */
186
+ private discoverResources;
187
+ private readResourceContents;
178
188
  private discoverSkillDirs;
179
189
  }
180
190
 
@@ -211,6 +221,7 @@ declare class SandboxManager<TOptions extends SandboxCreateOptions = SandboxCrea
211
221
  }>;
212
222
  getSandbox(id: string): Promise<TSandbox>;
213
223
  destroy(id: string): Promise<void>;
224
+ pause(id: string, ttlSeconds?: number): Promise<void>;
214
225
  snapshot(id: string): Promise<SandboxSnapshot>;
215
226
  restore(snapshot: SandboxSnapshot): Promise<string>;
216
227
  fork(sandboxId: string): Promise<string>;
@@ -237,6 +248,49 @@ declare class SandboxManager<TOptions extends SandboxCreateOptions = SandboxCrea
237
248
  createActivities<S extends string>(scope: S): PrefixedSandboxOps<`${TId}${Capitalize<S>}`, TOptions>;
238
249
  }
239
250
 
251
+ /**
252
+ * Thin adapter from Node.js `fs` to {@link SandboxFileSystem}.
253
+ *
254
+ * All paths are resolved relative to {@link workspaceBase} using
255
+ * `node:path.resolve` (OS-native). Useful for loading skills from the
256
+ * worker's local disk inside a Temporal activity.
257
+ *
258
+ * @example
259
+ * ```typescript
260
+ * import { NodeFsSandboxFileSystem, FileSystemSkillProvider } from 'zeitlich';
261
+ *
262
+ * const fs = new NodeFsSandboxFileSystem('/path/to/skills-root');
263
+ * const provider = new FileSystemSkillProvider(fs, '/');
264
+ * const skills = await provider.loadAll();
265
+ * ```
266
+ */
267
+ declare class NodeFsSandboxFileSystem implements SandboxFileSystem {
268
+ readonly workspaceBase: string;
269
+ constructor(workspaceBase: string);
270
+ private abs;
271
+ readFile(path: string): Promise<string>;
272
+ readFileBuffer(path: string): Promise<Uint8Array>;
273
+ writeFile(path: string, content: string | Uint8Array): Promise<void>;
274
+ appendFile(path: string, content: string | Uint8Array): Promise<void>;
275
+ exists(path: string): Promise<boolean>;
276
+ stat(path: string): Promise<FileStat>;
277
+ mkdir(path: string, options?: {
278
+ recursive?: boolean;
279
+ }): Promise<void>;
280
+ readdir(path: string): Promise<string[]>;
281
+ readdirWithFileTypes(path: string): Promise<DirentEntry[]>;
282
+ rm(path: string, options?: {
283
+ recursive?: boolean;
284
+ force?: boolean;
285
+ }): Promise<void>;
286
+ cp(src: string, dest: string, options?: {
287
+ recursive?: boolean;
288
+ }): Promise<void>;
289
+ mv(src: string, dest: string): Promise<void>;
290
+ readlink(path: string): Promise<string>;
291
+ resolvePath(base: string, path: string): string;
292
+ }
293
+
240
294
  /**
241
295
  * Bash tool handler — executes shell commands inside a {@link Sandbox}.
242
296
  *
@@ -327,4 +381,4 @@ declare const toTree: (fs: SandboxFileSystem, opts?: {
327
381
  sort?: boolean;
328
382
  }) => Promise<string>;
329
383
 
330
- export { ActivityToolHandler, type AgentStateContext, BaseAgentState, BaseThreadManager, BashArgs, ExecResult, FileEditArgs, FileReadArgs, FileSystemSkillProvider, FileWriteArgs, GlobArgs, PrefixedSandboxOps, RouterContext, RunAgentConfig, Sandbox, type SandboxContext, SandboxCreateOptions, SandboxFileSystem, SandboxManager, SandboxProvider, SandboxSnapshot, Skill, SkillMetadata, SkillProvider, ThreadManagerConfig, ToolHandlerResponse, ToolResultConfig, bashHandler, createRunAgentActivity, createThreadManager, editHandler, globHandler, queryParentWorkflowState, readFileHandler, toTree, withAutoAppend, withParentWorkflowState, withSandbox, writeFileHandler };
384
+ export { ActivityToolHandler, type AgentStateContext, BaseAgentState, BaseThreadManager, BashArgs, ExecResult, FileEditArgs, FileReadArgs, FileSystemSkillProvider, FileWriteArgs, GlobArgs, NodeFsSandboxFileSystem, PrefixedSandboxOps, RouterContext, RunAgentConfig, Sandbox, type SandboxContext, SandboxCreateOptions, DirentEntry as SandboxDirentEntry, FileStat as SandboxFileStat, SandboxFileSystem, SandboxManager, SandboxProvider, SandboxSnapshot, Skill, SkillMetadata, SkillProvider, ThreadManagerConfig, ToolHandlerResponse, ToolResultConfig, bashHandler, createRunAgentActivity, createThreadManager, editHandler, globHandler, queryParentWorkflowState, readFileHandler, toTree, withAutoAppend, withParentWorkflowState, withSandbox, writeFileHandler };
package/dist/index.d.ts CHANGED
@@ -1,14 +1,14 @@
1
1
  import { BashArgs, FileEditArgs, GlobArgs, FileReadArgs, FileWriteArgs } from './workflow.js';
2
2
  export { AskUserQuestionArgs, GrepArgs, ReadSkillArgs, SubagentArgs, TaskCreateArgs, TaskGetArgs, TaskListArgs, TaskUpdateArgs, WorkflowConfig, WorkflowInput, WorkflowSessionInput, applyVirtualTreeMutations, askUserQuestionTool, bashTool, createAgentStateManager, createAskUserQuestionHandler, createBashToolDescription, createReadSkillHandler, createReadSkillTool, createSession, createTaskCreateHandler, createTaskGetHandler, createTaskListHandler, createTaskUpdateHandler, createToolRouter, defineSubagent, defineSubagentWorkflow, defineTool, defineWorkflow, editTool, formatVirtualFileTree, getShortId, globTool, grepTool, hasNoOtherToolCalls, parseSkillFile, readFileTool, taskCreateTool, taskGetTool, taskListTool, taskUpdateTool, writeFileTool } from './workflow.js';
3
- import { b as SkillProvider, c as SkillMetadata, d as Skill } from './types-C5bkx6kQ.js';
4
- export { A as AgentResponse, e as AgentState, f as AgentStateManager, H as Hooks, J as JsonPrimitive, g as JsonSerializable, h as JsonValue, M as ModelInvoker, a as ModelInvokerConfig, i as PostHumanMessageAppendHook, j as PostHumanMessageAppendHookContext, k as PreHumanMessageAppendHook, l as PreHumanMessageAppendHookContext, P as PrefixedThreadOps, R as RunAgentActivity, S as ScopedPrefix, m as SessionConfig, n as SessionEndHook, o as SessionEndHookContext, p as SessionStartHook, q as SessionStartHookContext, r as SubagentConfig, s as SubagentDefinition, t as SubagentHandlerResponse, u as SubagentHooks, v as SubagentSessionInput, w as SubagentWorkflow, x as SubagentWorkflowInput, T as ThreadOps, Z as ZeitlichSession } from './types-C5bkx6kQ.js';
5
- import { R as RouterContext, j as ToolResultConfig, A as ActivityToolHandler, c as ToolHandlerResponse, B as BaseAgentState, g as RunAgentConfig } from './types-YbL7JpEA.js';
6
- export { l as AgentConfig, m as AgentFile, h as AgentStatus, n as AppendToolResultFn, C as ContentPart, I as InferToolResults, M as MessageContent, o as ParsedToolCall, p as ParsedToolCallUnion, q as PostToolUseFailureHook, r as PostToolUseFailureHookContext, d as PostToolUseFailureHookResult, s as PostToolUseHook, t as PostToolUseHookContext, u as PreToolUseHook, v as PreToolUseHookContext, P as PreToolUseHookResult, w as ProcessToolCallsContext, e as RawToolCall, x as SerializableToolDefinition, S as SessionExitReason, y as TaskStatus, f as TokenUsage, z as ToolArgs, D as ToolCallResult, k as ToolCallResultUnion, i as ToolDefinition, E as ToolHandler, F as ToolHooks, a as ToolMap, T as ToolMessageContent, G as ToolNames, H as ToolResult, J as ToolRouter, b as ToolRouterHooks, K as ToolWithHandler, W as WorkflowTask, L as isTerminalStatus } from './types-YbL7JpEA.js';
7
- import { S as Sandbox, a as SandboxFileSystem, d as SandboxCreateOptions, b as SandboxProvider, f as SandboxSnapshot, P as PrefixedSandboxOps, E as ExecResult } from './types-HBosetv3.js';
8
- export { h as ExecOptions, c as SandboxCapabilities, e as SandboxCreateResult, D as SandboxDirentEntry, F as SandboxFileStat, i as SandboxNotFoundError, j as SandboxNotSupportedError, g as SandboxOps } from './types-HBosetv3.js';
3
+ import { b as SkillProvider, c as SkillMetadata, d as Skill } from './types-hmferhc2.js';
4
+ export { A as AgentResponse, e as AgentState, f as AgentStateManager, H as Hooks, J as JsonPrimitive, g as JsonSerializable, h as JsonValue, M as ModelInvoker, a as ModelInvokerConfig, i as PostHumanMessageAppendHook, j as PostHumanMessageAppendHookContext, k as PreHumanMessageAppendHook, l as PreHumanMessageAppendHookContext, P as PrefixedThreadOps, R as RunAgentActivity, m as SandboxInit, n as SandboxShutdown, S as ScopedPrefix, o as SessionConfig, p as SessionEndHook, q as SessionEndHookContext, r as SessionResult, s as SessionStartHook, t as SessionStartHookContext, u as SubagentConfig, v as SubagentDefinition, w as SubagentFnResult, x as SubagentHandlerResponse, y as SubagentHooks, z as SubagentSandboxConfig, B as SubagentSandboxShutdown, C as SubagentSessionInput, D as SubagentWorkflow, E as SubagentWorkflowInput, F as ThreadInit, T as ThreadOps, Z as ZeitlichSession } from './types-hmferhc2.js';
5
+ import { R as RouterContext, j as ToolResultConfig, A as ActivityToolHandler, c as ToolHandlerResponse, B as BaseAgentState, g as RunAgentConfig } from './types-D_igp10o.js';
6
+ export { l as AgentConfig, m as AgentFile, h as AgentStatus, n as AppendToolResultFn, C as ContentPart, I as InferToolResults, M as MessageContent, o as ParsedToolCall, p as ParsedToolCallUnion, q as PostToolUseFailureHook, r as PostToolUseFailureHookContext, d as PostToolUseFailureHookResult, s as PostToolUseHook, t as PostToolUseHookContext, u as PreToolUseHook, v as PreToolUseHookContext, P as PreToolUseHookResult, w as ProcessToolCallsContext, e as RawToolCall, x as SerializableToolDefinition, S as SessionExitReason, y as TaskStatus, f as TokenUsage, z as ToolArgs, D as ToolCallResult, k as ToolCallResultUnion, i as ToolDefinition, E as ToolHandler, F as ToolHooks, a as ToolMap, T as ToolMessageContent, G as ToolNames, H as ToolResult, J as ToolRouter, b as ToolRouterHooks, K as ToolWithHandler, W as WorkflowTask, L as isTerminalStatus } from './types-D_igp10o.js';
7
+ import { S as Sandbox, a as SandboxFileSystem, d as SandboxCreateOptions, b as SandboxProvider, f as SandboxSnapshot, P as PrefixedSandboxOps, F as FileStat, D as DirentEntry, E as ExecResult } from './types-ChAMwU3q.js';
8
+ export { h as ExecOptions, c as SandboxCapabilities, e as SandboxCreateResult, i as SandboxNotFoundError, j as SandboxNotSupportedError, g as SandboxOps } from './types-ChAMwU3q.js';
9
9
  import { WorkflowClient } from '@temporalio/client';
10
- export { f as filesWithMimeType, h as hasDirectory, a as hasFileWithMimeType } from './queries-C27raDaB.js';
11
- export { F as FileEntry, a as FileEntryMetadata, b as FileResolver, T as TreeMutation, e as VirtualFileTree, g as VirtualSandboxState } from './types-ENYCKFBk.js';
10
+ export { f as filesWithMimeType, h as hasDirectory, a as hasFileWithMimeType } from './queries-DwBe2CAA.js';
11
+ export { F as FileEntry, a as FileEntryMetadata, b as FileResolver, T as TreeMutation, e as VirtualFileTree, g as VirtualSandboxState } from './types-LVKmCNds.js';
12
12
  import { T as ThreadManagerConfig, B as BaseThreadManager } from './types-35POpVfa.js';
13
13
  import 'zod';
14
14
  import '@temporalio/common';
@@ -158,7 +158,11 @@ declare function withParentWorkflowState<TArgs, TResult, S extends BaseAgentStat
158
158
  * ├── code-review/
159
159
  * │ └── SKILL.md
160
160
  * ├── pdf-processing/
161
- * │ └── SKILL.md
161
+ * │ ├── SKILL.md
162
+ * │ ├── references/
163
+ * │ │ └── spec-summary.md
164
+ * │ └── scripts/
165
+ * │ └── extract.py
162
166
  * ```
163
167
  *
164
168
  * Uses the sandbox filesystem abstraction — works with any backend
@@ -175,6 +179,12 @@ declare class FileSystemSkillProvider implements SkillProvider {
175
179
  * Returns `Skill[]` ready to pass into a workflow.
176
180
  */
177
181
  loadAll(): Promise<Skill[]>;
182
+ /**
183
+ * Recursively discovers all non-SKILL.md files inside the skill directory
184
+ * and returns their paths relative to the skill root.
185
+ */
186
+ private discoverResources;
187
+ private readResourceContents;
178
188
  private discoverSkillDirs;
179
189
  }
180
190
 
@@ -211,6 +221,7 @@ declare class SandboxManager<TOptions extends SandboxCreateOptions = SandboxCrea
211
221
  }>;
212
222
  getSandbox(id: string): Promise<TSandbox>;
213
223
  destroy(id: string): Promise<void>;
224
+ pause(id: string, ttlSeconds?: number): Promise<void>;
214
225
  snapshot(id: string): Promise<SandboxSnapshot>;
215
226
  restore(snapshot: SandboxSnapshot): Promise<string>;
216
227
  fork(sandboxId: string): Promise<string>;
@@ -237,6 +248,49 @@ declare class SandboxManager<TOptions extends SandboxCreateOptions = SandboxCrea
237
248
  createActivities<S extends string>(scope: S): PrefixedSandboxOps<`${TId}${Capitalize<S>}`, TOptions>;
238
249
  }
239
250
 
251
+ /**
252
+ * Thin adapter from Node.js `fs` to {@link SandboxFileSystem}.
253
+ *
254
+ * All paths are resolved relative to {@link workspaceBase} using
255
+ * `node:path.resolve` (OS-native). Useful for loading skills from the
256
+ * worker's local disk inside a Temporal activity.
257
+ *
258
+ * @example
259
+ * ```typescript
260
+ * import { NodeFsSandboxFileSystem, FileSystemSkillProvider } from 'zeitlich';
261
+ *
262
+ * const fs = new NodeFsSandboxFileSystem('/path/to/skills-root');
263
+ * const provider = new FileSystemSkillProvider(fs, '/');
264
+ * const skills = await provider.loadAll();
265
+ * ```
266
+ */
267
+ declare class NodeFsSandboxFileSystem implements SandboxFileSystem {
268
+ readonly workspaceBase: string;
269
+ constructor(workspaceBase: string);
270
+ private abs;
271
+ readFile(path: string): Promise<string>;
272
+ readFileBuffer(path: string): Promise<Uint8Array>;
273
+ writeFile(path: string, content: string | Uint8Array): Promise<void>;
274
+ appendFile(path: string, content: string | Uint8Array): Promise<void>;
275
+ exists(path: string): Promise<boolean>;
276
+ stat(path: string): Promise<FileStat>;
277
+ mkdir(path: string, options?: {
278
+ recursive?: boolean;
279
+ }): Promise<void>;
280
+ readdir(path: string): Promise<string[]>;
281
+ readdirWithFileTypes(path: string): Promise<DirentEntry[]>;
282
+ rm(path: string, options?: {
283
+ recursive?: boolean;
284
+ force?: boolean;
285
+ }): Promise<void>;
286
+ cp(src: string, dest: string, options?: {
287
+ recursive?: boolean;
288
+ }): Promise<void>;
289
+ mv(src: string, dest: string): Promise<void>;
290
+ readlink(path: string): Promise<string>;
291
+ resolvePath(base: string, path: string): string;
292
+ }
293
+
240
294
  /**
241
295
  * Bash tool handler — executes shell commands inside a {@link Sandbox}.
242
296
  *
@@ -327,4 +381,4 @@ declare const toTree: (fs: SandboxFileSystem, opts?: {
327
381
  sort?: boolean;
328
382
  }) => Promise<string>;
329
383
 
330
- export { ActivityToolHandler, type AgentStateContext, BaseAgentState, BaseThreadManager, BashArgs, ExecResult, FileEditArgs, FileReadArgs, FileSystemSkillProvider, FileWriteArgs, GlobArgs, PrefixedSandboxOps, RouterContext, RunAgentConfig, Sandbox, type SandboxContext, SandboxCreateOptions, SandboxFileSystem, SandboxManager, SandboxProvider, SandboxSnapshot, Skill, SkillMetadata, SkillProvider, ThreadManagerConfig, ToolHandlerResponse, ToolResultConfig, bashHandler, createRunAgentActivity, createThreadManager, editHandler, globHandler, queryParentWorkflowState, readFileHandler, toTree, withAutoAppend, withParentWorkflowState, withSandbox, writeFileHandler };
384
+ export { ActivityToolHandler, type AgentStateContext, BaseAgentState, BaseThreadManager, BashArgs, ExecResult, FileEditArgs, FileReadArgs, FileSystemSkillProvider, FileWriteArgs, GlobArgs, NodeFsSandboxFileSystem, PrefixedSandboxOps, RouterContext, RunAgentConfig, Sandbox, type SandboxContext, SandboxCreateOptions, DirentEntry as SandboxDirentEntry, FileStat as SandboxFileStat, SandboxFileSystem, SandboxManager, SandboxProvider, SandboxSnapshot, Skill, SkillMetadata, SkillProvider, ThreadManagerConfig, ToolHandlerResponse, ToolResultConfig, bashHandler, createRunAgentActivity, createThreadManager, editHandler, globHandler, queryParentWorkflowState, readFileHandler, toTree, withAutoAppend, withParentWorkflowState, withSandbox, writeFileHandler };