@fabric-harness/temporal 0.1.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 +202 -0
- package/README.md +45 -0
- package/dist/activities.d.ts +92 -0
- package/dist/activities.d.ts.map +1 -0
- package/dist/activities.js +41 -0
- package/dist/activities.js.map +1 -0
- package/dist/client.d.ts +26 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +153 -0
- package/dist/client.js.map +1 -0
- package/dist/connection.d.ts +14 -0
- package/dist/connection.d.ts.map +1 -0
- package/dist/connection.js +73 -0
- package/dist/connection.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/inline-runtime.d.ts +13 -0
- package/dist/inline-runtime.d.ts.map +1 -0
- package/dist/inline-runtime.js +25 -0
- package/dist/inline-runtime.js.map +1 -0
- package/dist/local-activities.d.ts +14 -0
- package/dist/local-activities.d.ts.map +1 -0
- package/dist/local-activities.js +387 -0
- package/dist/local-activities.js.map +1 -0
- package/dist/mock-runtime.d.ts +33 -0
- package/dist/mock-runtime.d.ts.map +1 -0
- package/dist/mock-runtime.js +120 -0
- package/dist/mock-runtime.js.map +1 -0
- package/dist/types.d.ts +183 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +12 -0
- package/dist/types.js.map +1 -0
- package/dist/worker.d.ts +11 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +39 -0
- package/dist/worker.js.map +1 -0
- package/dist/workflow.d.ts +57 -0
- package/dist/workflow.d.ts.map +1 -0
- package/dist/workflow.js +276 -0
- package/dist/workflow.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { CheckpointResult, ShellResult } from '@fabric-harness/sdk';
|
|
2
|
+
import type { ApprovalSignal, PendingApprovalState, SessionRuntime, SessionRuntimeCheckpointCreateInput, SessionRuntimeCheckpointRestoreInput, SessionRuntimePromptInput, SessionRuntimeShellInput, SessionRuntimeTaskInput, TemporalSignalClient, TemporalWorkflowQueryState } from './types.js';
|
|
3
|
+
export interface MockTemporalRuntimeOptions {
|
|
4
|
+
sessionId?: string;
|
|
5
|
+
delegate?: SessionRuntime;
|
|
6
|
+
latencyMs?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare class MockTemporalRuntime implements SessionRuntime, TemporalSignalClient {
|
|
9
|
+
private readonly sessionId;
|
|
10
|
+
private readonly delegate;
|
|
11
|
+
private readonly latencyMs;
|
|
12
|
+
private readonly pendingApprovals;
|
|
13
|
+
private readonly approvalWaiters;
|
|
14
|
+
private status;
|
|
15
|
+
constructor(options?: MockTemporalRuntimeOptions);
|
|
16
|
+
prompt<TResult = string>(input: SessionRuntimePromptInput<TResult>): Promise<TResult>;
|
|
17
|
+
task<TResult = string>(input: SessionRuntimeTaskInput<TResult>): Promise<TResult>;
|
|
18
|
+
checkpointCreate(input: SessionRuntimeCheckpointCreateInput): Promise<CheckpointResult>;
|
|
19
|
+
checkpointRestore(input: SessionRuntimeCheckpointRestoreInput): Promise<CheckpointResult>;
|
|
20
|
+
shell(input: SessionRuntimeShellInput): Promise<ShellResult>;
|
|
21
|
+
createApproval(state: Omit<PendingApprovalState, 'sessionId' | 'requestedAt'> & {
|
|
22
|
+
sessionId?: string;
|
|
23
|
+
requestedAt?: string;
|
|
24
|
+
}): PendingApprovalState;
|
|
25
|
+
waitForApproval(approvalId: string, timeoutMs?: number): Promise<ApprovalSignal | undefined>;
|
|
26
|
+
signalApproval(_sessionId: string, signal: ApprovalSignal): Promise<void>;
|
|
27
|
+
signalWorkflowApproval(_workflowId: string, signal: ApprovalSignal): Promise<void>;
|
|
28
|
+
describeSession(sessionId: string): Promise<TemporalWorkflowQueryState | undefined>;
|
|
29
|
+
private removeWaiter;
|
|
30
|
+
private delay;
|
|
31
|
+
}
|
|
32
|
+
export declare function createMockTemporalRuntime(options?: MockTemporalRuntimeOptions): MockTemporalRuntime;
|
|
33
|
+
//# sourceMappingURL=mock-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-runtime.d.ts","sourceRoot":"","sources":["../src/mock-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,mCAAmC,EACnC,oCAAoC,EACpC,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,0BAA0B;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAOD,qBAAa,mBAAoB,YAAW,cAAc,EAAE,oBAAoB;IAC9E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA2C;IAC5E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuC;IACvE,OAAO,CAAC,MAAM,CAAkD;gBAEpD,OAAO,GAAE,0BAA+B;IAM9C,MAAM,CAAC,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,yBAAyB,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBrF,IAAI,CAAC,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,uBAAuB,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAIjF,gBAAgB,CAAC,KAAK,EAAE,mCAAmC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAMvF,iBAAiB,CAAC,KAAK,EAAE,oCAAoC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAMzF,KAAK,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,WAAW,CAAC;IAMlE,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,WAAW,GAAG,aAAa,CAAC,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,oBAAoB;IAWnJ,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAiBtF,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzE,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlF,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC;IASzF,OAAO,CAAC,YAAY;YAON,KAAK;CAIpB;AAED,wBAAgB,yBAAyB,CAAC,OAAO,GAAE,0BAA+B,GAAG,mBAAmB,CAEvG"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
export class MockTemporalRuntime {
|
|
2
|
+
sessionId;
|
|
3
|
+
delegate;
|
|
4
|
+
latencyMs;
|
|
5
|
+
pendingApprovals = new Map();
|
|
6
|
+
approvalWaiters = new Map();
|
|
7
|
+
status = 'queued';
|
|
8
|
+
constructor(options = {}) {
|
|
9
|
+
this.sessionId = options.sessionId ?? 'mock-temporal-session';
|
|
10
|
+
this.delegate = options.delegate;
|
|
11
|
+
this.latencyMs = options.latencyMs ?? 0;
|
|
12
|
+
}
|
|
13
|
+
async prompt(input) {
|
|
14
|
+
await this.delay();
|
|
15
|
+
this.status = 'running';
|
|
16
|
+
try {
|
|
17
|
+
if (!this.delegate) {
|
|
18
|
+
this.status = 'completed';
|
|
19
|
+
return `MockTemporalRuntime response: ${input.text}`;
|
|
20
|
+
}
|
|
21
|
+
const result = await this.delegate.prompt(input);
|
|
22
|
+
this.status = 'completed';
|
|
23
|
+
return result;
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
this.status = 'failed';
|
|
27
|
+
throw error;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
async task(input) {
|
|
31
|
+
return this.prompt(input);
|
|
32
|
+
}
|
|
33
|
+
async checkpointCreate(input) {
|
|
34
|
+
await this.delay();
|
|
35
|
+
if (!this.delegate)
|
|
36
|
+
return { label: typeof input.options === 'string' ? input.options : input.options.label, entryId: 'mock-checkpoint-entry' };
|
|
37
|
+
return this.delegate.checkpointCreate(input);
|
|
38
|
+
}
|
|
39
|
+
async checkpointRestore(input) {
|
|
40
|
+
await this.delay();
|
|
41
|
+
if (!this.delegate)
|
|
42
|
+
return { label: typeof input.options === 'string' ? input.options : input.options.label, entryId: 'mock-restore-entry' };
|
|
43
|
+
return this.delegate.checkpointRestore(input);
|
|
44
|
+
}
|
|
45
|
+
async shell(input) {
|
|
46
|
+
await this.delay();
|
|
47
|
+
if (!this.delegate)
|
|
48
|
+
return { command: input.command, exitCode: 0, stdout: '', stderr: '' };
|
|
49
|
+
return this.delegate.shell(input);
|
|
50
|
+
}
|
|
51
|
+
createApproval(state) {
|
|
52
|
+
const approval = {
|
|
53
|
+
...state,
|
|
54
|
+
sessionId: state.sessionId ?? this.sessionId,
|
|
55
|
+
requestedAt: state.requestedAt ?? new Date().toISOString(),
|
|
56
|
+
};
|
|
57
|
+
this.pendingApprovals.set(approval.approvalId, approval);
|
|
58
|
+
this.status = 'waiting_for_approval';
|
|
59
|
+
return approval;
|
|
60
|
+
}
|
|
61
|
+
waitForApproval(approvalId, timeoutMs) {
|
|
62
|
+
const existing = this.pendingApprovals.get(approvalId)?.response;
|
|
63
|
+
if (existing)
|
|
64
|
+
return Promise.resolve(existing);
|
|
65
|
+
return new Promise((resolve) => {
|
|
66
|
+
const waiter = { resolve };
|
|
67
|
+
if (timeoutMs !== undefined) {
|
|
68
|
+
waiter.timeout = setTimeout(() => {
|
|
69
|
+
this.removeWaiter(approvalId, waiter);
|
|
70
|
+
resolve(undefined);
|
|
71
|
+
}, timeoutMs);
|
|
72
|
+
}
|
|
73
|
+
const waiters = this.approvalWaiters.get(approvalId) ?? [];
|
|
74
|
+
waiters.push(waiter);
|
|
75
|
+
this.approvalWaiters.set(approvalId, waiters);
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
async signalApproval(_sessionId, signal) {
|
|
79
|
+
const approval = this.pendingApprovals.get(signal.approvalId);
|
|
80
|
+
if (approval)
|
|
81
|
+
this.pendingApprovals.set(signal.approvalId, { ...approval, response: signal });
|
|
82
|
+
const waiters = this.approvalWaiters.get(signal.approvalId) ?? [];
|
|
83
|
+
this.approvalWaiters.delete(signal.approvalId);
|
|
84
|
+
for (const waiter of waiters) {
|
|
85
|
+
if (waiter.timeout)
|
|
86
|
+
clearTimeout(waiter.timeout);
|
|
87
|
+
waiter.resolve(signal);
|
|
88
|
+
}
|
|
89
|
+
this.status = 'running';
|
|
90
|
+
}
|
|
91
|
+
async signalWorkflowApproval(_workflowId, signal) {
|
|
92
|
+
await this.signalApproval(this.sessionId, signal);
|
|
93
|
+
}
|
|
94
|
+
async describeSession(sessionId) {
|
|
95
|
+
if (sessionId !== this.sessionId)
|
|
96
|
+
return undefined;
|
|
97
|
+
return {
|
|
98
|
+
sessionId: this.sessionId,
|
|
99
|
+
status: this.status,
|
|
100
|
+
pendingApprovals: [...this.pendingApprovals.values()].filter((approval) => !approval.response),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
removeWaiter(approvalId, waiter) {
|
|
104
|
+
const waiters = this.approvalWaiters.get(approvalId) ?? [];
|
|
105
|
+
const next = waiters.filter((candidate) => candidate !== waiter);
|
|
106
|
+
if (next.length === 0)
|
|
107
|
+
this.approvalWaiters.delete(approvalId);
|
|
108
|
+
else
|
|
109
|
+
this.approvalWaiters.set(approvalId, next);
|
|
110
|
+
}
|
|
111
|
+
async delay() {
|
|
112
|
+
if (this.latencyMs <= 0)
|
|
113
|
+
return;
|
|
114
|
+
await new Promise((resolve) => setTimeout(resolve, this.latencyMs));
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
export function createMockTemporalRuntime(options = {}) {
|
|
118
|
+
return new MockTemporalRuntime(options);
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=mock-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-runtime.js","sourceRoot":"","sources":["../src/mock-runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import type { ApprovalDecision, CheckpointCreateOptions, CheckpointRestoreOptions, CheckpointResult, FabricEvent, JsonObject, ModelMessage, ModelUsage, PromptOptions, SandboxBackend, ShellOptions, ShellResult, ToolCall, ToolCallResult } from '@fabric-harness/sdk';
|
|
2
|
+
export type TemporalRunStatus = 'queued' | 'running' | 'waiting_for_approval' | 'completed' | 'failed' | 'cancelled';
|
|
3
|
+
export interface SnapshotRef {
|
|
4
|
+
id: string;
|
|
5
|
+
backend: string;
|
|
6
|
+
path?: string;
|
|
7
|
+
uri?: string;
|
|
8
|
+
metadata?: JsonObject;
|
|
9
|
+
}
|
|
10
|
+
export interface ActivityIdempotency {
|
|
11
|
+
/** Stable operation ID generated by workflow and reused across activity retries. */
|
|
12
|
+
idempotencyKey: string;
|
|
13
|
+
/** Optional entry ID when the operation should append exactly once to SessionStore. */
|
|
14
|
+
entryId?: string;
|
|
15
|
+
/** Optional tool-call ID when the operation maps to a model tool call. */
|
|
16
|
+
toolCallId?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface ActivityTimeoutPolicy {
|
|
19
|
+
scheduleToCloseMs: number;
|
|
20
|
+
startToCloseMs: number;
|
|
21
|
+
heartbeatMs?: number;
|
|
22
|
+
}
|
|
23
|
+
export interface TemporalActivityTimeouts {
|
|
24
|
+
appendSessionEntry: ActivityTimeoutPolicy;
|
|
25
|
+
appendSessionEvent: ActivityTimeoutPolicy;
|
|
26
|
+
loadSession: ActivityTimeoutPolicy;
|
|
27
|
+
buildContext: ActivityTimeoutPolicy;
|
|
28
|
+
modelGenerate: ActivityTimeoutPolicy;
|
|
29
|
+
executeTool: ActivityTimeoutPolicy;
|
|
30
|
+
checkpoint: ActivityTimeoutPolicy;
|
|
31
|
+
compactSession: ActivityTimeoutPolicy;
|
|
32
|
+
resolveSecret: ActivityTimeoutPolicy;
|
|
33
|
+
}
|
|
34
|
+
export declare const DEFAULT_TEMPORAL_ACTIVITY_TIMEOUTS: TemporalActivityTimeouts;
|
|
35
|
+
export interface ApprovalSignal {
|
|
36
|
+
approvalId: string;
|
|
37
|
+
decision: ApprovalDecision;
|
|
38
|
+
reason?: string;
|
|
39
|
+
actor?: string;
|
|
40
|
+
metadata?: JsonObject;
|
|
41
|
+
}
|
|
42
|
+
export interface PendingApprovalState {
|
|
43
|
+
approvalId: string;
|
|
44
|
+
sessionId: string;
|
|
45
|
+
subject: string;
|
|
46
|
+
requestedAt: string;
|
|
47
|
+
timeoutAt?: string;
|
|
48
|
+
response?: ApprovalSignal;
|
|
49
|
+
}
|
|
50
|
+
export interface TemporalSessionWorkflowInput {
|
|
51
|
+
sessionId: string;
|
|
52
|
+
agentId?: string;
|
|
53
|
+
workspaceRoot?: string;
|
|
54
|
+
sandboxBackend?: SandboxBackend;
|
|
55
|
+
metadata?: JsonObject;
|
|
56
|
+
}
|
|
57
|
+
export interface PromptWorkflowInput {
|
|
58
|
+
sessionId: string;
|
|
59
|
+
promptId: string;
|
|
60
|
+
text: string;
|
|
61
|
+
options?: Omit<PromptOptions, 'onEvent' | 'onApproval' | 'signal'>;
|
|
62
|
+
idempotency?: ActivityIdempotency;
|
|
63
|
+
}
|
|
64
|
+
export interface TaskWorkflowInput extends PromptWorkflowInput {
|
|
65
|
+
taskId: string;
|
|
66
|
+
}
|
|
67
|
+
export interface PromptWorkflowResult {
|
|
68
|
+
sessionId: string;
|
|
69
|
+
promptId: string;
|
|
70
|
+
status: Extract<TemporalRunStatus, 'completed' | 'failed' | 'cancelled'>;
|
|
71
|
+
result?: unknown;
|
|
72
|
+
error?: string;
|
|
73
|
+
usage?: ModelUsage;
|
|
74
|
+
}
|
|
75
|
+
export interface SessionRuntimePromptInput<TResult = unknown> {
|
|
76
|
+
text: string;
|
|
77
|
+
options?: PromptOptions<TResult>;
|
|
78
|
+
}
|
|
79
|
+
export interface SessionRuntimeTaskInput<TResult = unknown> extends SessionRuntimePromptInput<TResult> {
|
|
80
|
+
taskId?: string;
|
|
81
|
+
}
|
|
82
|
+
export interface SessionRuntimeCheckpointCreateInput {
|
|
83
|
+
options: CheckpointCreateOptions | string;
|
|
84
|
+
}
|
|
85
|
+
export interface SessionRuntimeCheckpointRestoreInput {
|
|
86
|
+
options: CheckpointRestoreOptions | string;
|
|
87
|
+
}
|
|
88
|
+
export interface SessionRuntimeShellInput {
|
|
89
|
+
command: string;
|
|
90
|
+
options?: ShellOptions;
|
|
91
|
+
}
|
|
92
|
+
export interface SessionRuntime {
|
|
93
|
+
prompt<TResult = string>(input: SessionRuntimePromptInput<TResult>): Promise<TResult>;
|
|
94
|
+
task<TResult = string>(input: SessionRuntimeTaskInput<TResult>): Promise<TResult>;
|
|
95
|
+
checkpointCreate(input: SessionRuntimeCheckpointCreateInput): Promise<CheckpointResult>;
|
|
96
|
+
checkpointRestore(input: SessionRuntimeCheckpointRestoreInput): Promise<CheckpointResult>;
|
|
97
|
+
shell(input: SessionRuntimeShellInput): Promise<ShellResult>;
|
|
98
|
+
}
|
|
99
|
+
export interface ModelGenerateActivityInput {
|
|
100
|
+
sessionId: string;
|
|
101
|
+
promptId: string;
|
|
102
|
+
messages: ModelMessage[];
|
|
103
|
+
model?: string;
|
|
104
|
+
idempotency: ActivityIdempotency;
|
|
105
|
+
}
|
|
106
|
+
export interface ModelGenerateActivityResult {
|
|
107
|
+
message?: ModelMessage;
|
|
108
|
+
toolCalls?: ToolCall[];
|
|
109
|
+
usage?: ModelUsage;
|
|
110
|
+
}
|
|
111
|
+
export interface ToolApprovalRequest {
|
|
112
|
+
approvalId: string;
|
|
113
|
+
reason: string;
|
|
114
|
+
subject: string;
|
|
115
|
+
kind: 'tool' | 'command';
|
|
116
|
+
risk?: 'low' | 'medium' | 'high';
|
|
117
|
+
matchedPattern?: string;
|
|
118
|
+
envKeys?: string[];
|
|
119
|
+
affectedPaths?: string[];
|
|
120
|
+
tool?: string;
|
|
121
|
+
command?: string;
|
|
122
|
+
input?: JsonObject[string];
|
|
123
|
+
timeoutMs?: number;
|
|
124
|
+
}
|
|
125
|
+
export interface ExecuteToolActivityInput {
|
|
126
|
+
sessionId: string;
|
|
127
|
+
promptId: string;
|
|
128
|
+
call: ToolCall;
|
|
129
|
+
approval?: ApprovalSignal;
|
|
130
|
+
idempotency: ActivityIdempotency;
|
|
131
|
+
}
|
|
132
|
+
export interface ExecuteToolActivityResult {
|
|
133
|
+
result: ToolCallResult;
|
|
134
|
+
approvalRequest?: ToolApprovalRequest;
|
|
135
|
+
}
|
|
136
|
+
export interface TemporalWorkflowQueryState {
|
|
137
|
+
sessionId: string;
|
|
138
|
+
status: TemporalRunStatus;
|
|
139
|
+
pendingApprovals: PendingApprovalState[];
|
|
140
|
+
lastEvent?: FabricEvent;
|
|
141
|
+
}
|
|
142
|
+
export type TemporalIntegrationMode = 'mock' | 'temporal';
|
|
143
|
+
export type TemporalPromptWorkflowMode = 'coarse' | 'hybrid';
|
|
144
|
+
export interface TemporalTlsConfig {
|
|
145
|
+
enabled?: boolean;
|
|
146
|
+
serverNameOverride?: string;
|
|
147
|
+
serverRootCACertificate?: string;
|
|
148
|
+
serverRootCACertificatePath?: string;
|
|
149
|
+
clientCert?: string;
|
|
150
|
+
clientKey?: string;
|
|
151
|
+
clientCertPath?: string;
|
|
152
|
+
clientKeyPath?: string;
|
|
153
|
+
}
|
|
154
|
+
export interface TemporalConnectionConfig {
|
|
155
|
+
address?: string;
|
|
156
|
+
namespace?: string;
|
|
157
|
+
taskQueue?: string;
|
|
158
|
+
workflowIdPrefix?: string;
|
|
159
|
+
promptWorkflowMode?: TemporalPromptWorkflowMode;
|
|
160
|
+
apiKey?: string;
|
|
161
|
+
apiKeyEnv?: string;
|
|
162
|
+
tls?: TemporalTlsConfig;
|
|
163
|
+
}
|
|
164
|
+
export interface TemporalRuntimeOptions extends TemporalConnectionConfig {
|
|
165
|
+
mode?: TemporalIntegrationMode;
|
|
166
|
+
activityTimeouts?: Partial<TemporalActivityTimeouts>;
|
|
167
|
+
}
|
|
168
|
+
export interface TemporalWorkerOptions extends TemporalRuntimeOptions {
|
|
169
|
+
address?: string;
|
|
170
|
+
workflowsPath?: string;
|
|
171
|
+
activities?: unknown;
|
|
172
|
+
/** Start worker.run() immediately. Defaults to true. */
|
|
173
|
+
autoRun?: boolean;
|
|
174
|
+
}
|
|
175
|
+
export interface TemporalClientOptions extends TemporalRuntimeOptions {
|
|
176
|
+
address?: string;
|
|
177
|
+
}
|
|
178
|
+
export interface TemporalSignalClient {
|
|
179
|
+
signalApproval(sessionId: string, signal: ApprovalSignal): Promise<void>;
|
|
180
|
+
signalWorkflowApproval(workflowId: string, signal: ApprovalSignal): Promise<void>;
|
|
181
|
+
describeSession(sessionId: string): Promise<TemporalWorkflowQueryState | undefined>;
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export const DEFAULT_TEMPORAL_ACTIVITY_TIMEOUTS = {
|
|
2
|
+
appendSessionEntry: { scheduleToCloseMs: 10_000, startToCloseMs: 5_000 },
|
|
3
|
+
appendSessionEvent: { scheduleToCloseMs: 10_000, startToCloseMs: 5_000 },
|
|
4
|
+
loadSession: { scheduleToCloseMs: 10_000, startToCloseMs: 5_000 },
|
|
5
|
+
buildContext: { scheduleToCloseMs: 30_000, startToCloseMs: 15_000 },
|
|
6
|
+
modelGenerate: { scheduleToCloseMs: 10 * 60_000, startToCloseMs: 5 * 60_000, heartbeatMs: 30_000 },
|
|
7
|
+
executeTool: { scheduleToCloseMs: 10 * 60_000, startToCloseMs: 5 * 60_000, heartbeatMs: 15_000 },
|
|
8
|
+
checkpoint: { scheduleToCloseMs: 10 * 60_000, startToCloseMs: 5 * 60_000, heartbeatMs: 15_000 },
|
|
9
|
+
compactSession: { scheduleToCloseMs: 5 * 60_000, startToCloseMs: 2 * 60_000, heartbeatMs: 15_000 },
|
|
10
|
+
resolveSecret: { scheduleToCloseMs: 10_000, startToCloseMs: 5_000 },
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAuDA,MAAM,CAAC,MAAM,kCAAkC,GAA6B;IAC1E,kBAAkB,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE;IACxE,kBAAkB,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE;IACxE,WAAW,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE;IACjE,YAAY,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE;IACnE,aAAa,EAAE,EAAE,iBAAiB,EAAE,EAAE,GAAG,MAAM,EAAE,cAAc,EAAE,CAAC,GAAG,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;IAClG,WAAW,EAAE,EAAE,iBAAiB,EAAE,EAAE,GAAG,MAAM,EAAE,cAAc,EAAE,CAAC,GAAG,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;IAChG,UAAU,EAAE,EAAE,iBAAiB,EAAE,EAAE,GAAG,MAAM,EAAE,cAAc,EAAE,CAAC,GAAG,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;IAC/F,cAAc,EAAE,EAAE,iBAAiB,EAAE,CAAC,GAAG,MAAM,EAAE,cAAc,EAAE,CAAC,GAAG,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;IAClG,aAAa,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE;CACpE,CAAC"}
|
package/dist/worker.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Worker } from '@temporalio/worker';
|
|
2
|
+
import type { TemporalWorkerOptions } from './types.js';
|
|
3
|
+
export interface TemporalWorkerHandle {
|
|
4
|
+
readonly mode: 'mock' | 'temporal';
|
|
5
|
+
readonly taskQueue?: string;
|
|
6
|
+
readonly worker?: Worker;
|
|
7
|
+
readonly runPromise?: Promise<void>;
|
|
8
|
+
close(): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
export declare function startTemporalWorker(options?: TemporalWorkerOptions): Promise<TemporalWorkerHandle>;
|
|
11
|
+
//# sourceMappingURL=worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAsB,MAAM,oBAAoB,CAAC;AAElF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,wBAAsB,mBAAmB,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAoC5G"}
|
package/dist/worker.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { NativeConnection, Worker } from '@temporalio/worker';
|
|
2
|
+
import { createTemporalWorkerConnectionOptions, resolveTemporalConnectionConfig } from './connection.js';
|
|
3
|
+
export async function startTemporalWorker(options = {}) {
|
|
4
|
+
if (options.mode === 'mock') {
|
|
5
|
+
return {
|
|
6
|
+
mode: 'mock',
|
|
7
|
+
...(options.taskQueue ? { taskQueue: options.taskQueue } : {}),
|
|
8
|
+
async close() {
|
|
9
|
+
// no-op
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
const resolved = resolveTemporalConnectionConfig(options);
|
|
14
|
+
const connection = await NativeConnection.connect(createTemporalWorkerConnectionOptions(resolved));
|
|
15
|
+
const taskQueue = resolved.taskQueue;
|
|
16
|
+
const workflowsPath = options.workflowsPath ?? new URL('./workflow.js', import.meta.url).pathname;
|
|
17
|
+
const workerOptions = {
|
|
18
|
+
connection,
|
|
19
|
+
namespace: resolved.namespace,
|
|
20
|
+
taskQueue,
|
|
21
|
+
workflowsPath,
|
|
22
|
+
};
|
|
23
|
+
if (options.activities)
|
|
24
|
+
workerOptions.activities = options.activities;
|
|
25
|
+
const worker = await Worker.create(workerOptions);
|
|
26
|
+
const runPromise = options.autoRun === false ? undefined : worker.run();
|
|
27
|
+
return {
|
|
28
|
+
mode: 'temporal',
|
|
29
|
+
taskQueue,
|
|
30
|
+
worker,
|
|
31
|
+
...(runPromise ? { runPromise } : {}),
|
|
32
|
+
async close() {
|
|
33
|
+
worker.shutdown();
|
|
34
|
+
await runPromise?.catch(() => undefined);
|
|
35
|
+
connection.close();
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAsB,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,qCAAqC,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AAWzG,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,UAAiC,EAAE;IAC3E,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,KAAK,CAAC,KAAK;gBACT,QAAQ;YACV,CAAC;SACF,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,+BAA+B,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,qCAAqC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnG,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IACrC,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;IAClG,MAAM,aAAa,GAAkB;QACnC,UAAU;QACV,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,SAAS;QACT,aAAa;KACd,CAAC;IACF,IAAI,OAAO,CAAC,UAAU;QAAE,aAAa,CAAC,UAAU,GAAG,OAAO,CAAC,UAAoB,CAAC;IAChF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;IAExE,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,SAAS;QACT,MAAM;QACN,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,KAAK,CAAC,KAAK;YACT,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,UAAU,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACzC,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { ApprovalSignal, PromptWorkflowInput, PromptWorkflowResult, TaskWorkflowInput, SessionRuntimeCheckpointCreateInput, SessionRuntimeCheckpointRestoreInput, SessionRuntimeShellInput, TemporalSessionWorkflowInput, TemporalWorkflowQueryState } from './types.js';
|
|
2
|
+
export declare const APPROVAL_SIGNAL = "approval";
|
|
3
|
+
export declare const SESSION_STATE_QUERY = "sessionState";
|
|
4
|
+
export declare const PROMPT_WORKFLOW_NAME = "promptWorkflow";
|
|
5
|
+
export declare const HYBRID_PROMPT_WORKFLOW_NAME = "hybridPromptWorkflow";
|
|
6
|
+
export declare const CHECKPOINT_CREATE_WORKFLOW_NAME = "checkpointCreateWorkflow";
|
|
7
|
+
export declare const CHECKPOINT_RESTORE_WORKFLOW_NAME = "checkpointRestoreWorkflow";
|
|
8
|
+
export declare const SHELL_WORKFLOW_NAME = "shellWorkflow";
|
|
9
|
+
export declare const TASK_WORKFLOW_NAME = "taskWorkflow";
|
|
10
|
+
export declare const approvalSignal: import("@temporalio/workflow").SignalDefinition<[ApprovalSignal], string>;
|
|
11
|
+
export declare const sessionStateQuery: import("@temporalio/workflow").QueryDefinition<TemporalWorkflowQueryState, [], string>;
|
|
12
|
+
export interface SessionWorkflowDefinition {
|
|
13
|
+
input: TemporalSessionWorkflowInput;
|
|
14
|
+
prompt(input: PromptWorkflowInput): Promise<PromptWorkflowResult>;
|
|
15
|
+
signalApproval(signal: ApprovalSignal): void;
|
|
16
|
+
queryState(): TemporalWorkflowQueryState;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Long-lived session coordination workflow.
|
|
20
|
+
*
|
|
21
|
+
* This first production Temporal integration supports approval signaling and
|
|
22
|
+
* state queries. Prompt/shell/checkpoint operations are workflows below.
|
|
23
|
+
*/
|
|
24
|
+
export declare function sessionWorkflow(input: TemporalSessionWorkflowInput): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Coarse one-shot prompt workflow. Useful as a compatibility path while the
|
|
27
|
+
* hybrid loop is still gaining lower-level activity implementations.
|
|
28
|
+
*/
|
|
29
|
+
export declare function promptWorkflow(input: PromptWorkflowInput): Promise<PromptWorkflowResult>;
|
|
30
|
+
/**
|
|
31
|
+
* Hybrid durable prompt workflow.
|
|
32
|
+
*
|
|
33
|
+
* The workflow owns deterministic turn orchestration while activities perform
|
|
34
|
+
* nondeterministic effects: context construction, model calls, tool execution,
|
|
35
|
+
* approval policy checks, and durable entry/event appends.
|
|
36
|
+
*/
|
|
37
|
+
export declare function hybridPromptWorkflow(input: PromptWorkflowInput): Promise<PromptWorkflowResult>;
|
|
38
|
+
export declare function taskWorkflow(input: TaskWorkflowInput): Promise<PromptWorkflowResult>;
|
|
39
|
+
export declare function checkpointCreateWorkflow(input: SessionRuntimeCheckpointCreateInput & {
|
|
40
|
+
sessionId: string;
|
|
41
|
+
idempotency: {
|
|
42
|
+
idempotencyKey: string;
|
|
43
|
+
};
|
|
44
|
+
}): Promise<import("@fabric-harness/sdk").CheckpointResult>;
|
|
45
|
+
export declare function checkpointRestoreWorkflow(input: SessionRuntimeCheckpointRestoreInput & {
|
|
46
|
+
sessionId: string;
|
|
47
|
+
idempotency: {
|
|
48
|
+
idempotencyKey: string;
|
|
49
|
+
};
|
|
50
|
+
}): Promise<import("@fabric-harness/sdk").CheckpointResult>;
|
|
51
|
+
export declare function shellWorkflow(input: SessionRuntimeShellInput & {
|
|
52
|
+
sessionId: string;
|
|
53
|
+
idempotency: {
|
|
54
|
+
idempotencyKey: string;
|
|
55
|
+
};
|
|
56
|
+
}): Promise<import("@fabric-harness/sdk").ShellResult>;
|
|
57
|
+
//# sourceMappingURL=workflow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,cAAc,EAId,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,mCAAmC,EACnC,oCAAoC,EACpC,wBAAwB,EACxB,4BAA4B,EAC5B,0BAA0B,EAE3B,MAAM,YAAY,CAAC;AAGpB,eAAO,MAAM,eAAe,aAAa,CAAC;AAC1C,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAClD,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AACrD,eAAO,MAAM,2BAA2B,yBAAyB,CAAC;AAClE,eAAO,MAAM,+BAA+B,6BAA6B,CAAC;AAC1E,eAAO,MAAM,gCAAgC,8BAA8B,CAAC;AAC5E,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AAEjD,eAAO,MAAM,cAAc,2EAAkD,CAAC;AAC9E,eAAO,MAAM,iBAAiB,wFAA+D,CAAC;AAc9F,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,4BAA4B,CAAC;IACpC,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAClE,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC7C,UAAU,IAAI,0BAA0B,CAAC;CAC1C;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,4BAA4B,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBxF;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAE9F;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAkEpG;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAa1F;AAED,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,mCAAmC,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,2DAEzJ;AAED,wBAAsB,yBAAyB,CAAC,KAAK,EAAE,oCAAoC,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,2DAE3J;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,wBAAwB,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,sDAEnI"}
|