zeitlich 0.2.14 → 0.2.15

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 (37) hide show
  1. package/README.md +12 -12
  2. package/dist/adapters/thread/google-genai/index.cjs +22 -0
  3. package/dist/adapters/thread/google-genai/index.cjs.map +1 -1
  4. package/dist/adapters/thread/google-genai/index.d.cts +2 -2
  5. package/dist/adapters/thread/google-genai/index.d.ts +2 -2
  6. package/dist/adapters/thread/google-genai/index.js +22 -0
  7. package/dist/adapters/thread/google-genai/index.js.map +1 -1
  8. package/dist/adapters/thread/langchain/index.cjs +22 -0
  9. package/dist/adapters/thread/langchain/index.cjs.map +1 -1
  10. package/dist/adapters/thread/langchain/index.d.cts +2 -2
  11. package/dist/adapters/thread/langchain/index.d.ts +2 -2
  12. package/dist/adapters/thread/langchain/index.js +22 -0
  13. package/dist/adapters/thread/langchain/index.js.map +1 -1
  14. package/dist/index.cjs +36 -8
  15. package/dist/index.cjs.map +1 -1
  16. package/dist/index.d.cts +3 -3
  17. package/dist/index.d.ts +3 -3
  18. package/dist/index.js +36 -8
  19. package/dist/index.js.map +1 -1
  20. package/dist/{types-B9ljZewB.d.cts → types-35POpVfa.d.cts} +6 -0
  21. package/dist/{types-B9ljZewB.d.ts → types-35POpVfa.d.ts} +6 -0
  22. package/dist/{types-B4C9txdq.d.ts → types-BWvIYK28.d.ts} +2 -0
  23. package/dist/{types-GpMU4b0w.d.cts → types-Dje1TdH6.d.cts} +2 -0
  24. package/dist/workflow.cjs +21 -8
  25. package/dist/workflow.cjs.map +1 -1
  26. package/dist/workflow.d.cts +2 -2
  27. package/dist/workflow.d.ts +2 -2
  28. package/dist/workflow.js +21 -8
  29. package/dist/workflow.js.map +1 -1
  30. package/package.json +7 -3
  31. package/src/adapters/thread/google-genai/activities.ts +11 -0
  32. package/src/adapters/thread/langchain/activities.ts +11 -0
  33. package/src/lib/session/session.ts +7 -2
  34. package/src/lib/session/types.ts +2 -0
  35. package/src/lib/subagent/register.ts +22 -7
  36. package/src/lib/thread/manager.ts +20 -1
  37. package/src/lib/thread/types.ts +6 -0
package/dist/index.d.cts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { BashArgs, FileEditArgs, GlobArgs, FileReadArgs, FileWriteArgs } from './workflow.cjs';
2
2
  export { AskUserQuestionArgs, GrepArgs, ReadSkillArgs, SubagentArgs, TaskCreateArgs, TaskGetArgs, TaskListArgs, TaskUpdateArgs, applyVirtualTreeMutations, askUserQuestionTool, bashTool, createAgentStateManager, createAskUserQuestionHandler, createBashToolDescription, createReadSkillHandler, createReadSkillTool, createSession, createTaskCreateHandler, createTaskGetHandler, createTaskListHandler, createTaskUpdateHandler, createToolRouter, defineSubagent, defineTool, editTool, formatVirtualFileTree, getShortId, globTool, grepTool, hasNoOtherToolCalls, parseSkillFile, proxyDefaultThreadOps, proxySandboxOps, readFileTool, taskCreateTool, taskGetTool, taskListTool, taskUpdateTool, writeFileTool } from './workflow.cjs';
3
- import { S as SkillProvider, b as SkillMetadata, c as Skill } from './types-GpMU4b0w.cjs';
4
- export { A as AgentResponse, d as AgentState, e as AgentStateManager, H as Hooks, J as JsonPrimitive, f as JsonSerializable, g as JsonValue, M as ModelInvoker, a as ModelInvokerConfig, P as PostHumanMessageAppendHook, h as PostHumanMessageAppendHookContext, i as PreHumanMessageAppendHook, j as PreHumanMessageAppendHookContext, R as RunAgentActivity, k as SessionConfig, l as SessionEndHook, m as SessionEndHookContext, n as SessionStartHook, o as SessionStartHookContext, p as SubagentConfig, q as SubagentHandlerResponse, r as SubagentHooks, s as SubagentInput, t as SubagentWorkflow, T as ThreadOps, Z as ZeitlichSession } from './types-GpMU4b0w.cjs';
5
- import { T as ThreadManagerConfig, B as BaseThreadManager } from './types-B9ljZewB.cjs';
3
+ import { S as SkillProvider, b as SkillMetadata, c as Skill } from './types-Dje1TdH6.cjs';
4
+ export { A as AgentResponse, d as AgentState, e as AgentStateManager, H as Hooks, J as JsonPrimitive, f as JsonSerializable, g as JsonValue, M as ModelInvoker, a as ModelInvokerConfig, P as PostHumanMessageAppendHook, h as PostHumanMessageAppendHookContext, i as PreHumanMessageAppendHook, j as PreHumanMessageAppendHookContext, R as RunAgentActivity, k as SessionConfig, l as SessionEndHook, m as SessionEndHookContext, n as SessionStartHook, o as SessionStartHookContext, p as SubagentConfig, q as SubagentHandlerResponse, r as SubagentHooks, s as SubagentInput, t as SubagentWorkflow, T as ThreadOps, Z as ZeitlichSession } from './types-Dje1TdH6.cjs';
5
+ import { T as ThreadManagerConfig, B as BaseThreadManager } from './types-35POpVfa.cjs';
6
6
  import { R as RouterContext, j as ToolResultConfig, A as ActivityToolHandler, c as ToolHandlerResponse, B as BaseAgentState, g as RunAgentConfig } from './types-BMXzv7TN.cjs';
7
7
  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-BMXzv7TN.cjs';
8
8
  import { S as Sandbox, a as SandboxFileSystem, d as SandboxCreateOptions, b as SandboxProvider, f as SandboxSnapshot, g as SandboxOps, E as ExecResult } from './types-CDubRtad.cjs';
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { BashArgs, FileEditArgs, GlobArgs, FileReadArgs, FileWriteArgs } from './workflow.js';
2
2
  export { AskUserQuestionArgs, GrepArgs, ReadSkillArgs, SubagentArgs, TaskCreateArgs, TaskGetArgs, TaskListArgs, TaskUpdateArgs, applyVirtualTreeMutations, askUserQuestionTool, bashTool, createAgentStateManager, createAskUserQuestionHandler, createBashToolDescription, createReadSkillHandler, createReadSkillTool, createSession, createTaskCreateHandler, createTaskGetHandler, createTaskListHandler, createTaskUpdateHandler, createToolRouter, defineSubagent, defineTool, editTool, formatVirtualFileTree, getShortId, globTool, grepTool, hasNoOtherToolCalls, parseSkillFile, proxyDefaultThreadOps, proxySandboxOps, readFileTool, taskCreateTool, taskGetTool, taskListTool, taskUpdateTool, writeFileTool } from './workflow.js';
3
- import { S as SkillProvider, b as SkillMetadata, c as Skill } from './types-B4C9txdq.js';
4
- export { A as AgentResponse, d as AgentState, e as AgentStateManager, H as Hooks, J as JsonPrimitive, f as JsonSerializable, g as JsonValue, M as ModelInvoker, a as ModelInvokerConfig, P as PostHumanMessageAppendHook, h as PostHumanMessageAppendHookContext, i as PreHumanMessageAppendHook, j as PreHumanMessageAppendHookContext, R as RunAgentActivity, k as SessionConfig, l as SessionEndHook, m as SessionEndHookContext, n as SessionStartHook, o as SessionStartHookContext, p as SubagentConfig, q as SubagentHandlerResponse, r as SubagentHooks, s as SubagentInput, t as SubagentWorkflow, T as ThreadOps, Z as ZeitlichSession } from './types-B4C9txdq.js';
5
- import { T as ThreadManagerConfig, B as BaseThreadManager } from './types-B9ljZewB.js';
3
+ import { S as SkillProvider, b as SkillMetadata, c as Skill } from './types-BWvIYK28.js';
4
+ export { A as AgentResponse, d as AgentState, e as AgentStateManager, H as Hooks, J as JsonPrimitive, f as JsonSerializable, g as JsonValue, M as ModelInvoker, a as ModelInvokerConfig, P as PostHumanMessageAppendHook, h as PostHumanMessageAppendHookContext, i as PreHumanMessageAppendHook, j as PreHumanMessageAppendHookContext, R as RunAgentActivity, k as SessionConfig, l as SessionEndHook, m as SessionEndHookContext, n as SessionStartHook, o as SessionStartHookContext, p as SubagentConfig, q as SubagentHandlerResponse, r as SubagentHooks, s as SubagentInput, t as SubagentWorkflow, T as ThreadOps, Z as ZeitlichSession } from './types-BWvIYK28.js';
5
+ import { T as ThreadManagerConfig, B as BaseThreadManager } from './types-35POpVfa.js';
6
6
  import { R as RouterContext, j as ToolResultConfig, A as ActivityToolHandler, c as ToolHandlerResponse, B as BaseAgentState, g as RunAgentConfig } from './types-BMXzv7TN.js';
7
7
  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-BMXzv7TN.js';
8
8
  import { S as Sandbox, a as SandboxFileSystem, d as SandboxCreateOptions, b as SandboxProvider, f as SandboxSnapshot, g as SandboxOps, E as ExecResult } from './types-CDubRtad.js';
package/dist/index.js CHANGED
@@ -380,16 +380,25 @@ function createSubagentHandler(subagents) {
380
380
 
381
381
  // src/lib/subagent/register.ts
382
382
  function buildSubagentRegistration(subagents) {
383
- const enabled = subagents.filter((s) => s.enabled ?? true);
384
- if (enabled.length === 0) return null;
383
+ if (subagents.length === 0) return null;
384
+ const getEnabled = () => subagents.filter((s) => s.enabled ?? true);
385
385
  const subagentHooksMap = /* @__PURE__ */ new Map();
386
- for (const s of enabled) {
386
+ for (const s of subagents) {
387
387
  if (s.hooks) subagentHooksMap.set(s.agentName, s.hooks);
388
388
  }
389
389
  const resolveSubagentName = (args) => args.subagent;
390
390
  return {
391
- ...createSubagentTool(enabled),
392
- handler: createSubagentHandler(enabled),
391
+ name: SUBAGENT_TOOL_NAME,
392
+ get enabled() {
393
+ return getEnabled().length > 0;
394
+ },
395
+ get description() {
396
+ return createSubagentTool(getEnabled()).description;
397
+ },
398
+ get schema() {
399
+ return createSubagentTool(getEnabled()).schema;
400
+ },
401
+ handler: createSubagentHandler(subagents),
393
402
  ...subagentHooksMap.size > 0 && {
394
403
  hooks: {
395
404
  onPreToolUse: async (ctx) => {
@@ -480,12 +489,14 @@ var createSession = async ({
480
489
  sandbox: sandboxOps,
481
490
  sandboxId: inheritedSandboxId
482
491
  }) => {
483
- const threadId = providedThreadId ?? getShortId();
492
+ const sourceThreadId = continueThread ? providedThreadId : void 0;
493
+ const threadId = continueThread && providedThreadId ? getShortId() : providedThreadId ?? getShortId();
484
494
  const {
485
495
  appendToolResult,
486
496
  appendHumanMessage,
487
497
  initializeThread,
488
- appendSystemMessage
498
+ appendSystemMessage,
499
+ forkThread
489
500
  } = threadOps ?? proxyDefaultThreadOps();
490
501
  const plugins = [];
491
502
  if (subagents) {
@@ -557,7 +568,9 @@ var createSession = async ({
557
568
  });
558
569
  }
559
570
  const systemPrompt = stateManager.getSystemPrompt();
560
- if (!continueThread) {
571
+ if (continueThread && sourceThreadId) {
572
+ await forkThread(sourceThreadId, threadId);
573
+ } else {
561
574
  if (appendSystemPrompt) {
562
575
  if (!systemPrompt || systemPrompt.trim() === "") {
563
576
  throw ApplicationFailure.create({
@@ -744,6 +757,21 @@ function createThreadManager(config) {
744
757
  await redis.expire(redisKey, THREAD_TTL_SECONDS);
745
758
  }
746
759
  },
760
+ async fork(newThreadId) {
761
+ await assertThreadExists();
762
+ const data = await redis.lrange(redisKey, 0, -1);
763
+ const forked = createThreadManager({
764
+ ...config,
765
+ threadId: newThreadId
766
+ });
767
+ await forked.initialize();
768
+ if (data.length > 0) {
769
+ const newKey = getThreadKey(newThreadId, key);
770
+ await redis.rpush(newKey, ...data);
771
+ await redis.expire(newKey, THREAD_TTL_SECONDS);
772
+ }
773
+ return forked;
774
+ },
747
775
  async delete() {
748
776
  await redis.del(redisKey, metaKey);
749
777
  }