@sena-ai/core 1.5.1 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,79 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { createTurnEngine } from '../engine.js';
3
+ function createMockRuntime(response = 'mock response') {
4
+ return {
5
+ name: 'mock',
6
+ async *createStream(_options) {
7
+ yield { type: 'session.init', sessionId: `sess-${Math.random().toString(36).slice(2, 8)}` };
8
+ yield { type: 'result', text: response };
9
+ },
10
+ };
11
+ }
12
+ describe('Engine + Worker fork integration', () => {
13
+ it('blocking followUp (no fork) produces a TurnFollowUp with fork=false', async () => {
14
+ const hooks = {
15
+ onTurnEnd: [async () => ({ followUp: 'continue in same session' })],
16
+ };
17
+ const engine = createTurnEngine({
18
+ name: 'test', cwd: '/tmp',
19
+ runtime: createMockRuntime('first'), hooks, tools: [],
20
+ });
21
+ const trace = await engine.processTurn({ input: 'start' });
22
+ expect(trace.followUps).toBeDefined();
23
+ expect(trace.followUps).toHaveLength(1);
24
+ expect(trace.followUps[0]).toEqual({
25
+ prompt: 'continue in same session',
26
+ fork: false,
27
+ detached: false,
28
+ });
29
+ });
30
+ it('fork followUp produces a TurnFollowUp with fork=true', async () => {
31
+ const hooks = {
32
+ onTurnEnd: [async () => ({ fork: true, followUp: 'fork task' })],
33
+ };
34
+ const engine = createTurnEngine({
35
+ name: 'test', cwd: '/tmp',
36
+ runtime: createMockRuntime('original'), hooks, tools: [],
37
+ });
38
+ const trace = await engine.processTurn({ input: 'go' });
39
+ expect(trace.followUps).toHaveLength(1);
40
+ expect(trace.followUps[0]).toEqual({
41
+ prompt: 'fork task',
42
+ fork: true,
43
+ detached: false,
44
+ });
45
+ });
46
+ it('fork+detached followUp produces correct TurnFollowUp', async () => {
47
+ const hooks = {
48
+ onTurnEnd: [async () => ({ fork: true, detached: true, followUp: 'silent task' })],
49
+ };
50
+ const engine = createTurnEngine({
51
+ name: 'test', cwd: '/tmp',
52
+ runtime: createMockRuntime('original'), hooks, tools: [],
53
+ });
54
+ const trace = await engine.processTurn({ input: 'go' });
55
+ expect(trace.followUps).toHaveLength(1);
56
+ expect(trace.followUps[0]).toEqual({
57
+ prompt: 'silent task',
58
+ fork: true,
59
+ detached: true,
60
+ });
61
+ });
62
+ it('forked turn (metadata.forkedFrom set) downgrades fork to blocking', async () => {
63
+ const hooks = {
64
+ onTurnEnd: [async () => ({ fork: true, followUp: 'try nested fork' })],
65
+ };
66
+ const engine = createTurnEngine({
67
+ name: 'test', cwd: '/tmp',
68
+ runtime: createMockRuntime('forked response'), hooks, tools: [],
69
+ });
70
+ const trace = await engine.processTurn({
71
+ input: 'from fork',
72
+ metadata: { forkedFrom: 'parent-turn-123' },
73
+ });
74
+ expect(trace.followUps).toHaveLength(1);
75
+ expect(trace.followUps[0].fork).toBe(false);
76
+ expect(trace.followUps[0].detached).toBe(false);
77
+ });
78
+ });
79
+ //# sourceMappingURL=worker-fork.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-fork.test.js","sourceRoot":"","sources":["../../src/__tests__/worker-fork.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,QAAQ,EACR,WAAW,EAEX,SAAS,EAGT,YAAY,EACZ,oBAAoB,EACrB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,YAAY,EAA4B,MAAM,oBAAoB,CAAA;AAGhF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,KAAK,EAAE,QAAQ,EAAE,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,cAAc,CAAA;IACnD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAA;IACpC,QAAQ,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAA;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAA;IACvC,0EAA0E;IAC1E,eAAe,CAAC,EAAE,oBAAoB,CAAA;IACtC,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CACzB,CAAA;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB;2BAGnB,kBAAkB,KAAG,OAAO,CAAC,SAAS,CAAC;EAgJ5E"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,QAAQ,EACR,WAAW,EAEX,SAAS,EAGT,YAAY,EACZ,oBAAoB,EACrB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,YAAY,EAA4C,MAAM,oBAAoB,CAAA;AAGhG,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,KAAK,EAAE,QAAQ,EAAE,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,cAAc,CAAA;IACnD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAA;IACpC,QAAQ,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAA;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAA;IACvC,0EAA0E;IAC1E,eAAe,CAAC,EAAE,oBAAoB,CAAA;IACtC,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CACzB,CAAA;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB;2BAGnB,kBAAkB,KAAG,OAAO,CAAC,SAAS,CAAC;EAqL5E"}
package/dist/engine.js CHANGED
@@ -48,9 +48,37 @@ export function createTurnEngine(config) {
48
48
  }
49
49
  allFragments.push({ source: 'connector-meta', role: 'append', content: contextContent });
50
50
  }
51
- // === onTurnStart hooks (RuntimeHooks) ===
52
- // Note: onTurnStart hooks in RuntimeHooks are forwarded to the runtime
53
- // and handled there. No engine-level execution is needed.
51
+ // === onTurnStart hooks ===
52
+ for (const callback of hooks?.onTurnStart ?? []) {
53
+ try {
54
+ const turnStartInput = {
55
+ hookEventName: 'turnStart',
56
+ prompt: options.input,
57
+ turnContext: context,
58
+ };
59
+ const decision = await callback(turnStartInput);
60
+ if (decision.decision === 'block') {
61
+ console.log(`[engine] turn ${turnId.slice(0, 8)} blocked by onTurnStart hook: ${decision.reason}`);
62
+ return {
63
+ turnId,
64
+ timestamp,
65
+ agentName: name,
66
+ trigger,
67
+ input: options.input,
68
+ hooks: hookTraces,
69
+ assembledContext: '',
70
+ result: null,
71
+ error: `Blocked by onTurnStart hook: ${decision.reason}`,
72
+ };
73
+ }
74
+ if ('fragments' in decision && decision.fragments) {
75
+ allFragments.push(...decision.fragments);
76
+ }
77
+ }
78
+ catch (hookErr) {
79
+ console.error(`[engine] onTurnStart hook threw:`, hookErr);
80
+ }
81
+ }
54
82
  // === Assemble context ===
55
83
  const assembledContext = assembleContext(allFragments);
56
84
  // === Run runtime ===
@@ -74,7 +102,7 @@ export function createTurnEngine(config) {
74
102
  onEvent: options.onEvent,
75
103
  pendingMessages: options.pendingMessages,
76
104
  disabledTools,
77
- hooks,
105
+ hooks: hooks ? { ...hooks, onTurnStart: undefined } : undefined,
78
106
  });
79
107
  result = {
80
108
  text: runtimeResult.text,
@@ -93,9 +121,9 @@ export function createTurnEngine(config) {
93
121
  error: err instanceof Error ? err : new Error(String(err)),
94
122
  turnContext: context,
95
123
  };
96
- for (const matcher of hooks?.onError ?? []) {
124
+ for (const callback of hooks?.onError ?? []) {
97
125
  try {
98
- await matcher.callback(errorInput);
126
+ await callback(errorInput);
99
127
  }
100
128
  catch (hookErr) {
101
129
  console.error(`[engine] hooks.onError threw:`, hookErr);
@@ -110,9 +138,19 @@ export function createTurnEngine(config) {
110
138
  result,
111
139
  turnContext: context,
112
140
  };
113
- for (const matcher of hooks?.onTurnEnd ?? []) {
141
+ const isForkedTurn = context.metadata.forkedFrom != null;
142
+ for (const callback of hooks?.onTurnEnd ?? []) {
114
143
  try {
115
- await matcher.callback(turnEndInput);
144
+ const hookResult = await callback(turnEndInput);
145
+ if (hookResult && typeof hookResult === 'object' && hookResult.followUp) {
146
+ // Ignore fork from forked turns (1-level depth limit)
147
+ const fork = isForkedTurn ? false : (hookResult.fork ?? false);
148
+ followUps.push({
149
+ prompt: hookResult.followUp,
150
+ fork,
151
+ detached: fork ? (hookResult.detached ?? false) : false,
152
+ });
153
+ }
116
154
  }
117
155
  catch (hookErr) {
118
156
  console.error(`[engine] hooks.onTurnEnd threw:`, hookErr);
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  export * from './types.js';
2
- export { adaptLegacyHooks } from './runtime-hooks.js';
3
- export type { PreToolUseInput, PostToolUseInput, TurnStartInput, TurnEndInput, StopInput, SessionStartInput, ErrorInput, HookInput, PreToolUseDecision, PostToolUseResult, TurnStartDecision, TurnEndResult, StopDecision, SessionStartResult, ErrorResult, PreToolUseCallback, PostToolUseCallback, TurnStartCallback, TurnEndCallback, StopCallback, SessionStartCallback, ErrorCallback, ToolHookMatcher, SimpleHookMatcher, RuntimeHooks, } from './runtime-hooks.js';
2
+ export type { PreToolUseInput, PostToolUseInput, TurnStartInput, TurnEndInput, StopInput, SessionStartInput, ErrorInput, HookInput, PreToolUseDecision, PostToolUseResult, TurnStartDecision, TurnEndResult, StopDecision, SessionStartResult, ErrorResult, PreToolUseCallback, PostToolUseCallback, TurnStartCallback, TurnEndCallback, StopCallback, SessionStartCallback, ErrorCallback, ToolHookMatcher, RuntimeHooks, } from './runtime-hooks.js';
4
3
  export { env, validateEnv } from './env.js';
5
4
  export { defineConfig } from './config.js';
6
5
  export type { ResolvedSenaConfig } from './config.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,YAAY,GACb,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAC3F,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACxD,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,YAAY,GACb,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAC3F,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACxD,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA"}
package/dist/index.js CHANGED
@@ -1,5 +1,4 @@
1
1
  export * from './types.js';
2
- export { adaptLegacyHooks } from './runtime-hooks.js';
3
2
  export { env, validateEnv } from './env.js';
4
3
  export { defineConfig } from './config.js';
5
4
  export { createTurnEngine } from './engine.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AA4BrD,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAE3F,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AA2B1B,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAE3F,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { TurnContext, TurnResult, TurnStartHook, TurnEndHook, ErrorHook } from './types.js';
1
+ import type { TurnContext, TurnResult, ContextFragment } from './types.js';
2
2
  export type PreToolUseInput = {
3
3
  hookEventName: 'preToolUse';
4
4
  toolName: string;
@@ -57,19 +57,19 @@ export type TurnStartDecision = {
57
57
  decision: 'allow';
58
58
  } | {
59
59
  decision: 'allow';
60
- additionalContext: string;
60
+ fragments: ContextFragment[];
61
61
  } | {
62
62
  decision: 'block';
63
63
  reason: string;
64
- } | {
65
- decision: 'modifiedPrompt';
66
- prompt: string;
67
- } | {
68
- decision: 'modifiedPrompt';
69
- prompt: string;
70
- additionalContext: string;
71
64
  };
72
- export type TurnEndResult = void;
65
+ export type TurnEndResult = void | {
66
+ /** Execute a follow-up prompt after this turn */
67
+ followUp?: string;
68
+ /** Fork into a new session (inherits current session context via resume). Requires followUp. */
69
+ fork?: boolean;
70
+ /** Suppress connector output for the forked turn. Only effective when fork is true. */
71
+ detached?: boolean;
72
+ };
73
73
  export type StopDecision = void | {
74
74
  continueWith: string;
75
75
  };
@@ -89,27 +89,13 @@ export type ToolHookMatcher<T> = {
89
89
  toolName?: RegExp;
90
90
  callback: T;
91
91
  };
92
- export type SimpleHookMatcher<T> = {
93
- callback: T;
94
- };
95
92
  export type RuntimeHooks = {
96
93
  onPreToolUse?: ToolHookMatcher<PreToolUseCallback>[];
97
94
  onPostToolUse?: ToolHookMatcher<PostToolUseCallback>[];
98
- onTurnStart?: SimpleHookMatcher<TurnStartCallback>[];
99
- onTurnEnd?: SimpleHookMatcher<TurnEndCallback>[];
100
- onStop?: SimpleHookMatcher<StopCallback>[];
101
- onSessionStart?: SimpleHookMatcher<SessionStartCallback>[];
102
- onError?: SimpleHookMatcher<ErrorCallback>[];
95
+ onTurnStart?: TurnStartCallback[];
96
+ onTurnEnd?: TurnEndCallback[];
97
+ onStop?: StopCallback[];
98
+ onSessionStart?: SessionStartCallback[];
99
+ onError?: ErrorCallback[];
103
100
  };
104
- /**
105
- * Converts legacy TurnStartHook / TurnEndHook / ErrorHook arrays
106
- * into the new RuntimeHooks format, merging with any existing RuntimeHooks.
107
- *
108
- * @deprecated Legacy hooks will be removed in a future version.
109
- */
110
- export declare function adaptLegacyHooks(legacy: {
111
- onTurnStart?: TurnStartHook[];
112
- onTurnEnd?: TurnEndHook[];
113
- onError?: ErrorHook[];
114
- }, existing?: RuntimeHooks): RuntimeHooks;
115
101
  //# sourceMappingURL=runtime-hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-hooks.d.ts","sourceRoot":"","sources":["../src/runtime-hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-hooks.d.ts","sourceRoot":"","sources":["../src/runtime-hooks.ts"],"names":[],"mappings":"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"}
@@ -1,48 +1,2 @@
1
- // ─── Legacy Adapter ─────────────────────────────────────────────────
2
- function fragmentsToContext(fragments) {
3
- return fragments.map((f) => f.content).join('\n');
4
- }
5
- /**
6
- * Converts legacy TurnStartHook / TurnEndHook / ErrorHook arrays
7
- * into the new RuntimeHooks format, merging with any existing RuntimeHooks.
8
- *
9
- * @deprecated Legacy hooks will be removed in a future version.
10
- */
11
- export function adaptLegacyHooks(legacy, existing) {
12
- const hooks = {
13
- ...existing,
14
- };
15
- if (legacy.onTurnStart?.length) {
16
- console.warn('[sena] onTurnStart hooks are deprecated. Use hooks.onTurnStart instead.');
17
- const adapted = legacy.onTurnStart.map((h) => ({
18
- callback: async (input) => {
19
- const fragments = await h.execute(input.turnContext);
20
- if (fragments.length === 0) {
21
- return { decision: 'allow' };
22
- }
23
- return { decision: 'allow', additionalContext: fragmentsToContext(fragments) };
24
- },
25
- }));
26
- hooks.onTurnStart = [...adapted, ...(existing?.onTurnStart ?? [])];
27
- }
28
- if (legacy.onTurnEnd?.length) {
29
- console.warn('[sena] onTurnEnd hooks are deprecated. Use hooks.onTurnEnd instead.');
30
- const adapted = legacy.onTurnEnd.map((h) => ({
31
- callback: async (input) => {
32
- await h.execute(input.turnContext, input.result);
33
- },
34
- }));
35
- hooks.onTurnEnd = [...adapted, ...(existing?.onTurnEnd ?? [])];
36
- }
37
- if (legacy.onError?.length) {
38
- console.warn('[sena] onError hooks are deprecated. Use hooks.onError instead.');
39
- const adapted = legacy.onError.map((h) => ({
40
- callback: async (input) => {
41
- await h.execute(input.turnContext, input.error);
42
- },
43
- }));
44
- hooks.onError = [...adapted, ...(existing?.onError ?? [])];
45
- }
46
- return hooks;
47
- }
1
+ export {};
48
2
  //# sourceMappingURL=runtime-hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-hooks.js","sourceRoot":"","sources":["../src/runtime-hooks.ts"],"names":[],"mappings":"AAsHA,uEAAuE;AAEvE,SAAS,kBAAkB,CAAC,SAA4B;IACtD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACnD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAIC,EACD,QAAuB;IAEvB,MAAM,KAAK,GAAiB;QAC1B,GAAG,QAAQ;KACZ,CAAA;IAED,IAAI,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAA;QACvF,MAAM,OAAO,GAA2C,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrF,QAAQ,EAAE,KAAK,EAAE,KAAqB,EAA8B,EAAE;gBACpE,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;gBACpD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC3B,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;gBAC9B,CAAC;gBACD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAA;YAChF,CAAC;SACF,CAAC,CAAC,CAAA;QACH,KAAK,CAAC,WAAW,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC,CAAA;IACpE,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAA;QACnF,MAAM,OAAO,GAAyC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjF,QAAQ,EAAE,KAAK,EAAE,KAAmB,EAA0B,EAAE;gBAC9D,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;YAClD,CAAC;SACF,CAAC,CAAC,CAAA;QACH,KAAK,CAAC,SAAS,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,CAAA;IAChE,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAA;QAC/E,MAAM,OAAO,GAAuC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7E,QAAQ,EAAE,KAAK,EAAE,KAAiB,EAAwB,EAAE;gBAC1D,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;YACjD,CAAC;SACF,CAAC,CAAC,CAAA;QACH,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAA;IAC5D,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"runtime-hooks.js","sourceRoot":"","sources":["../src/runtime-hooks.ts"],"names":[],"mappings":""}
package/dist/types.d.ts CHANGED
@@ -3,22 +3,6 @@ export type ContextFragment = {
3
3
  role: 'system' | 'prepend' | 'append';
4
4
  content: string;
5
5
  };
6
- export type TurnStartHook = {
7
- name: string;
8
- execute(context: TurnContext): Promise<ContextFragment[]>;
9
- };
10
- export type TurnEndHook = {
11
- name: string;
12
- /**
13
- * Called after a successful turn. Return a string to trigger a follow-up turn
14
- * with that string as the prompt. Return void to do nothing.
15
- */
16
- execute(context: TurnContext, result: TurnResult): Promise<string | void>;
17
- };
18
- export type ErrorHook = {
19
- name: string;
20
- execute(context: TurnContext, error: Error): Promise<void>;
21
- };
22
6
  export type FileAttachment = {
23
7
  id: string;
24
8
  name: string;
@@ -63,6 +47,11 @@ export type HookTrace = {
63
47
  durationMs: number;
64
48
  fragments: ContextFragment[];
65
49
  };
50
+ export type TurnFollowUp = {
51
+ prompt: string;
52
+ fork: boolean;
53
+ detached: boolean;
54
+ };
66
55
  export type TurnTrace = {
67
56
  turnId: string;
68
57
  timestamp: string;
@@ -74,7 +63,7 @@ export type TurnTrace = {
74
63
  result: TurnResult | null;
75
64
  error: string | null;
76
65
  /** Follow-up prompts from onTurnEnd hooks. Worker will process these as continuation turns. */
77
- followUps?: string[];
66
+ followUps?: TurnFollowUp[];
78
67
  };
79
68
  export type UserMessage = {
80
69
  text: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,KAAK,EAAyD,YAAY,EAAc,MAAM,YAAY,CAAA;AAKjH;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAQ9C;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA0B3F;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,kBAAkB,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED,uDAAuD;AACvD,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAwBrE;AAYD;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa;iBAiSzB,OAAO,CAAC,IAAI,CAAC;gBA0Ed,OAAO,CAAC,IAAI,CAAC;;;;;EA4DrC"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,KAAK,EAAyD,YAAY,EAAc,MAAM,YAAY,CAAA;AAKjH;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAQ9C;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA0B3F;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,kBAAkB,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED,uDAAuD;AACvD,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAwBrE;AAYD;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa;iBAoYzB,OAAO,CAAC,IAAI,CAAC;gBA0Ed,OAAO,CAAC,IAAI,CAAC;;;;;EAkErC"}
package/dist/worker.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { createServer } from 'node:http';
2
+ import { randomUUID } from 'node:crypto';
2
3
  import { readFileSync, writeFileSync, mkdirSync } from 'node:fs';
3
4
  import { resolve, dirname } from 'node:path';
4
5
  import { createTurnEngine } from './engine.js';
@@ -220,10 +221,17 @@ export function createWorker(options) {
220
221
  console.error(`[worker] turn error in ${event.conversationId}, will process remaining pending messages (${pendingEvents.length} left):`, err);
221
222
  lastError = err;
222
223
  }
223
- // onTurnEnd hooks may request follow-up turns — enqueue them
224
- for (const text of followUps) {
225
- pendingEvents.push({ ...event, text });
226
- console.log(`[worker] enqueued follow-up from onTurnEnd hook`);
224
+ // Process followUps from onTurnEnd hooks
225
+ for (const followUp of followUps) {
226
+ if (!followUp.fork) {
227
+ // Blocking followUp: enqueue as pending event (same session)
228
+ pendingEvents.push({ ...event, text: followUp.prompt });
229
+ console.log(`[worker] enqueued blocking follow-up from onTurnEnd hook`);
230
+ }
231
+ else {
232
+ // Fork followUp: spawn in background (fire-and-forget)
233
+ spawnForkedTurn(event, followUp);
234
+ }
227
235
  }
228
236
  if (pendingEvents.length === 0)
229
237
  break;
@@ -339,6 +347,92 @@ export function createWorker(options) {
339
347
  await output.dispose();
340
348
  }
341
349
  }
350
+ /** Active fork promises — tracked for graceful shutdown */
351
+ const activeForks = new Set();
352
+ /**
353
+ * Spawns a forked turn in the background (fire-and-forget).
354
+ * The forked turn inherits the original session via sessionId resume.
355
+ */
356
+ function spawnForkedTurn(originalEvent, followUp) {
357
+ const forkId = randomUUID().slice(0, 8);
358
+ const forkConversationId = `fork-${originalEvent.conversationId}-${forkId}`;
359
+ console.log(`[worker] spawning forked turn ${forkId} (detached:${followUp.detached}) for ${originalEvent.conversationId}`);
360
+ const forkPromise = (async () => {
361
+ try {
362
+ // Look up original session to resume from
363
+ const originalSessionId = await sessionStore.get(originalEvent.conversationId);
364
+ // Create output: NullOutput for detached, or real connector output
365
+ const connector = connectorMap.get(originalEvent.connector);
366
+ const output = followUp.detached || !connector
367
+ ? { showProgress: async () => { }, sendResult: async () => { }, sendError: async () => { }, dispose: async () => { } }
368
+ : connector.createOutput({
369
+ conversationId: originalEvent.conversationId,
370
+ connector: originalEvent.connector,
371
+ metadata: originalEvent.raw,
372
+ });
373
+ try {
374
+ const trace = await engine.processTurn({
375
+ input: followUp.prompt,
376
+ trigger: 'connector',
377
+ sessionId: originalSessionId,
378
+ connector: {
379
+ name: originalEvent.connector,
380
+ conversationId: originalEvent.conversationId,
381
+ userId: originalEvent.userId,
382
+ userName: originalEvent.userName,
383
+ raw: originalEvent.raw,
384
+ },
385
+ metadata: { forkedFrom: originalEvent.conversationId },
386
+ });
387
+ // Save forked session under its own key (don't pollute original)
388
+ if (trace.result?.sessionId) {
389
+ await sessionStore.set(forkConversationId, trace.result.sessionId);
390
+ }
391
+ // Send result if not detached
392
+ if (trace.result) {
393
+ await output.sendResult(trace.result.text);
394
+ }
395
+ else if (trace.error && !followUp.detached) {
396
+ await output.sendError(trace.error);
397
+ }
398
+ // Process blocking followUps from the forked turn (fork is downgraded by engine)
399
+ for (const childFollowUp of trace.followUps ?? []) {
400
+ if (!childFollowUp.fork) {
401
+ // Execute blocking followUp in the forked context
402
+ const childTrace = await engine.processTurn({
403
+ input: childFollowUp.prompt,
404
+ trigger: 'connector',
405
+ sessionId: trace.result?.sessionId ?? originalSessionId,
406
+ connector: {
407
+ name: originalEvent.connector,
408
+ conversationId: originalEvent.conversationId,
409
+ userId: originalEvent.userId,
410
+ userName: originalEvent.userName,
411
+ raw: originalEvent.raw,
412
+ },
413
+ metadata: { forkedFrom: originalEvent.conversationId },
414
+ });
415
+ if (childTrace.result?.sessionId) {
416
+ await sessionStore.set(forkConversationId, childTrace.result.sessionId);
417
+ }
418
+ if (childTrace.result && !followUp.detached) {
419
+ await output.sendResult(childTrace.result.text);
420
+ }
421
+ }
422
+ // fork followUps from forked turns are already downgraded by engine, but ignore any that slip through
423
+ }
424
+ }
425
+ finally {
426
+ await output.dispose();
427
+ }
428
+ }
429
+ catch (err) {
430
+ console.error(`[worker] forked turn ${forkId} error:`, err);
431
+ }
432
+ })();
433
+ activeForks.add(forkPromise);
434
+ forkPromise.finally(() => activeForks.delete(forkPromise));
435
+ }
342
436
  // Simple HTTP server adapter
343
437
  const routes = [];
344
438
  const httpServer = {
@@ -439,11 +533,15 @@ export function createWorker(options) {
439
533
  if (activeConversations.size > 0) {
440
534
  console.log(`[worker] draining: waiting for ${activeConversations.size} active turn(s) to finish`);
441
535
  await Promise.allSettled([...activeConversations.values()].map(s => s.activeTurnPromise));
442
- console.log('[worker] all active turns finished, exiting');
536
+ console.log('[worker] all active turns finished');
443
537
  }
444
- else {
445
- console.log('[worker] no active turns, exiting immediately');
538
+ // Wait for any forked turns still running
539
+ if (activeForks.size > 0) {
540
+ console.log(`[worker] draining: waiting for ${activeForks.size} forked turn(s) to finish`);
541
+ await Promise.allSettled([...activeForks]);
542
+ console.log('[worker] all forked turns finished');
446
543
  }
544
+ console.log('[worker] exiting');
447
545
  process.exit(0);
448
546
  }
449
547
  // Safety-net timeout — only for truly stuck processes (e.g. hung API call).