@swirls/looms 0.0.2 → 0.2.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/CHANGELOG.md +24 -2
- package/dist/actor/cell.d.ts +9 -4
- package/dist/actor/cell.js +7 -11
- package/dist/actor/host.d.ts +7 -3
- package/dist/actor/host.js +57 -33
- package/dist/actor/index.d.ts +1 -1
- package/dist/actor/index.js +1 -1
- package/dist/actor/routing.d.ts +12 -1
- package/dist/actor/routing.js +57 -51
- package/dist/agent/agent-session.d.ts +5 -0
- package/dist/agent/agent-session.js +270 -0
- package/dist/agent/debugger/agent-chat.d.ts +2 -0
- package/dist/agent/debugger/agent-chat.js +176 -0
- package/dist/agent/debugger/index.d.ts +5 -0
- package/dist/agent/debugger/index.js +19 -0
- package/dist/agent/debugger/summarize.d.ts +2 -0
- package/dist/agent/debugger/summarize.js +51 -0
- package/dist/agent/debugger/token-usage.d.ts +3 -0
- package/dist/agent/debugger/token-usage.js +11 -0
- package/dist/agent/definitions-store.d.ts +2 -3
- package/dist/agent/definitions-store.js +2 -4
- package/dist/agent/definitions.d.ts +47 -29
- package/dist/agent/definitions.js +39 -12
- package/dist/agent/effects.d.ts +359 -2
- package/dist/agent/effects.js +60 -34
- package/dist/agent/events.d.ts +175 -19
- package/dist/agent/events.js +45 -10
- package/dist/agent/index.d.ts +1 -0
- package/dist/agent/index.js +1 -0
- package/dist/agent/llm.d.ts +11 -2
- package/dist/agent/llm.js +13 -3
- package/dist/agent/module.d.ts +812 -78
- package/dist/agent/module.js +16 -4
- package/dist/agent/scope.d.ts +174 -18
- package/dist/agent/signals.d.ts +26 -1
- package/dist/agent/signals.js +79 -0
- package/dist/agent/threads.d.ts +3 -33
- package/dist/agent/threads.js +20 -25
- package/dist/agent/tool-schema.d.ts +1 -17
- package/dist/agent/tool-schema.js +3 -43
- package/dist/agent/types.d.ts +49 -4
- package/dist/agent/types.js +5 -5
- package/dist/ai-vercel/index.d.ts +1 -0
- package/dist/ai-vercel/index.js +1 -0
- package/dist/ai-vercel/messages.js +22 -7
- package/dist/ai-vercel/vercel-evaluator.d.ts +36 -0
- package/dist/ai-vercel/vercel-evaluator.js +73 -0
- package/dist/ai-vercel/vercel-llm.js +64 -44
- package/dist/approval/debugger/approvals-view.d.ts +3 -0
- package/dist/approval/debugger/approvals-view.js +16 -0
- package/dist/approval/debugger/index.d.ts +4 -0
- package/dist/approval/debugger/index.js +11 -0
- package/dist/approval/debugger/summarize.d.ts +2 -0
- package/dist/approval/debugger/summarize.js +17 -0
- package/dist/approval/effects.d.ts +89 -0
- package/dist/approval/module.d.ts +179 -29
- package/dist/approval/projections.d.ts +0 -14
- package/dist/approval/projections.js +20 -3
- package/dist/approval/signals.d.ts +2 -0
- package/dist/approval/signals.js +18 -2
- package/dist/cli/cli.js +2 -0
- package/dist/cli/commands.js +12 -16
- package/dist/client/client.d.ts +1213 -18
- package/dist/client/client.js +120 -120
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client/sse.d.ts +13 -0
- package/dist/client/sse.js +38 -44
- package/dist/cloudflare/alarm-scheduler.d.ts +12 -2
- package/dist/cloudflare/alarm-scheduler.js +34 -7
- package/dist/cloudflare/durable-object.d.ts +10 -2
- package/dist/cloudflare/durable-object.js +59 -28
- package/dist/cloudflare/event-store.d.ts +7 -2
- package/dist/cloudflare/event-store.js +8 -7
- package/dist/cloudflare/index.d.ts +2 -2
- package/dist/cloudflare/index.js +2 -2
- package/dist/cloudflare/router.d.ts +1 -1
- package/dist/cloudflare/router.js +15 -16
- package/dist/core/catalog.d.ts +3 -3
- package/dist/core/catalog.js +2 -5
- package/dist/core/coalesce.js +5 -3
- package/dist/core/compose.d.ts +2 -1
- package/dist/core/compose.js +19 -2
- package/dist/core/debugger-host.d.ts +16 -0
- package/dist/core/debugger-host.js +1 -0
- package/dist/core/definition-store.d.ts +11 -0
- package/dist/core/definition-store.js +6 -0
- package/dist/core/effects.d.ts +127 -15
- package/dist/core/effects.js +89 -17
- package/dist/core/envelope.d.ts +27 -7
- package/dist/core/envelope.js +20 -6
- package/dist/core/event-codec.d.ts +4 -2
- package/dist/core/event-codec.js +10 -5
- package/dist/core/event-index.js +1 -3
- package/dist/core/fold.d.ts +3 -0
- package/dist/core/fold.js +171 -24
- package/dist/core/ids.d.ts +5 -0
- package/dist/core/ids.js +35 -2
- package/dist/core/index.d.ts +7 -1
- package/dist/core/index.js +6 -1
- package/dist/core/kind.d.ts +22 -0
- package/dist/core/kind.js +17 -0
- package/dist/core/limits.d.ts +34 -0
- package/dist/core/limits.js +46 -0
- package/dist/core/match.d.ts +1 -0
- package/dist/core/match.js +10 -1
- package/dist/core/module-scope.d.ts +22 -20
- package/dist/core/module-scope.js +38 -28
- package/dist/core/module.d.ts +18 -5
- package/dist/core/module.js +4 -0
- package/dist/core/projection.d.ts +13 -13
- package/dist/core/projection.js +9 -5
- package/dist/core/protocol.d.ts +68 -11
- package/dist/core/protocol.js +82 -11
- package/dist/core/published.d.ts +43 -0
- package/dist/core/published.js +44 -0
- package/dist/core/replay.d.ts +312 -3
- package/dist/core/replay.js +11 -1
- package/dist/core/schema.d.ts +11 -20
- package/dist/core/schema.js +63 -80
- package/dist/core/serialize.js +2 -4
- package/dist/core/snapshot-store.d.ts +6 -1
- package/dist/core/snapshot-store.js +15 -2
- package/dist/core/snapshots.d.ts +5 -1
- package/dist/core/snapshots.js +10 -15
- package/dist/core/sqlite-store.js +95 -11
- package/dist/core/state.d.ts +142 -4
- package/dist/core/state.js +78 -0
- package/dist/core/store.d.ts +38 -3
- package/dist/core/store.js +77 -22
- package/dist/core/thread.d.ts +10 -9
- package/dist/core/types.d.ts +5 -8
- package/dist/core/types.js +28 -24
- package/dist/core/validate-event.js +14 -4
- package/dist/core/worker-callback.d.ts +17 -0
- package/dist/core/worker-callback.js +1 -0
- package/dist/debugger/app/assets/index-B3Ah8WAE.css +2 -0
- package/dist/debugger/app/assets/index-Qb371t_O.js +22 -0
- package/dist/debugger/app/assets/rolldown-runtime-CbXtAM7H.js +1 -0
- package/dist/debugger/app/assets/routes-CjtEHgPQ.js +47 -0
- package/dist/debugger/app/index.html +14 -0
- package/dist/debugger/components/composer.d.ts +17 -0
- package/dist/debugger/components/composer.js +25 -0
- package/dist/debugger/components/debugger-split.d.ts +2 -1
- package/dist/debugger/components/debugger-split.js +2 -2
- package/dist/debugger/components/event-inspector.d.ts +2 -1
- package/dist/debugger/components/event-inspector.js +25 -16
- package/dist/debugger/components/event-stream.d.ts +2 -1
- package/dist/debugger/components/event-stream.js +14 -74
- package/dist/debugger/components/follow-list.d.ts +19 -0
- package/dist/debugger/components/follow-list.js +96 -0
- package/dist/debugger/components/json-tree.d.ts +11 -0
- package/dist/debugger/components/json-tree.js +120 -0
- package/dist/debugger/components/json-view.js +2 -2
- package/dist/debugger/components/run-tree.js +53 -20
- package/dist/debugger/components/status-dot.d.ts +4 -0
- package/dist/debugger/components/status-dot.js +6 -2
- package/dist/debugger/context.d.ts +14 -0
- package/dist/debugger/context.js +17 -0
- package/dist/debugger/contracts.d.ts +7 -4
- package/dist/debugger/events/builtin-families.d.ts +3 -0
- package/dist/debugger/events/builtin-families.js +9 -0
- package/dist/debugger/events/catalog.d.ts +3 -4
- package/dist/debugger/events/catalog.js +27 -17
- package/dist/debugger/events/protocol-summarize.d.ts +1 -2
- package/dist/debugger/events/protocol-summarize.js +42 -24
- package/dist/debugger/index.d.ts +20 -6
- package/dist/debugger/index.js +19 -5
- package/dist/debugger/lib/cn.d.ts +1 -0
- package/dist/debugger/lib/cn.js +3 -0
- package/dist/debugger/lib/event-meta.d.ts +2 -3
- package/dist/debugger/lib/event-meta.js +6 -12
- package/dist/debugger/lib/json.d.ts +25 -0
- package/dist/debugger/lib/json.js +87 -0
- package/dist/debugger/lib/payload.d.ts +7 -0
- package/dist/debugger/lib/payload.js +11 -0
- package/dist/debugger/lib/time.d.ts +3 -0
- package/dist/debugger/lib/time.js +24 -0
- package/dist/debugger/plugin.d.ts +36 -0
- package/dist/debugger/plugin.js +14 -0
- package/dist/debugger/server/index.d.ts +14 -0
- package/dist/debugger/server/index.js +114 -0
- package/dist/debugger/shell/debugger-shell.d.ts +15 -0
- package/dist/debugger/shell/debugger-shell.js +43 -0
- package/dist/debugger/shell/definition-key.d.ts +3 -0
- package/dist/debugger/shell/definition-key.js +4 -0
- package/dist/debugger/shell/events-pane.d.ts +12 -0
- package/dist/debugger/shell/events-pane.js +25 -0
- package/dist/debugger/shell/projections-panel.d.ts +4 -0
- package/dist/debugger/shell/projections-panel.js +59 -0
- package/dist/debugger/shell/run-controls.d.ts +4 -0
- package/dist/debugger/shell/run-controls.js +72 -0
- package/dist/debugger/shell/run-search.d.ts +6 -0
- package/dist/debugger/shell/run-search.js +102 -0
- package/dist/debugger/shell/run-type-menu.d.ts +6 -0
- package/dist/debugger/shell/run-type-menu.js +11 -0
- package/dist/debugger/shell/schema-form.d.ts +31 -0
- package/dist/debugger/shell/schema-form.js +117 -0
- package/dist/debugger/shell/start-form.d.ts +3 -0
- package/dist/debugger/shell/start-form.js +75 -0
- package/dist/debugger/shell/use-start-run.d.ts +14 -0
- package/dist/debugger/shell/use-start-run.js +32 -0
- package/dist/debugger/shell/workspace.d.ts +6 -0
- package/dist/debugger/shell/workspace.js +15 -0
- package/dist/debugger/styles.css +111 -27
- package/dist/debugger/ui/button.d.ts +24 -0
- package/dist/debugger/ui/button.js +24 -0
- package/dist/debugger/ui/command.d.ts +9 -0
- package/dist/debugger/ui/command.js +24 -0
- package/dist/debugger/ui/dropdown-menu.d.ts +13 -0
- package/dist/debugger/ui/dropdown-menu.js +37 -0
- package/dist/debugger/ui/panel.d.ts +14 -0
- package/dist/debugger/ui/panel.js +16 -0
- package/dist/debugger/ui/popover.d.ts +7 -0
- package/dist/debugger/ui/popover.js +17 -0
- package/dist/debugger/ui/resizable.d.ts +7 -0
- package/dist/debugger/ui/resizable.js +14 -0
- package/dist/debugger/ui/scroll-area.d.ts +2 -1
- package/dist/debugger/ui/scroll-area.js +5 -3
- package/dist/debugger/ui/select.d.ts +10 -0
- package/dist/debugger/ui/select.js +21 -0
- package/dist/debugger/ui/tabs.js +2 -2
- package/dist/debugger/ui/textarea.d.ts +3 -0
- package/dist/debugger/ui/textarea.js +7 -0
- package/dist/evaluator/definitions-store.d.ts +11 -0
- package/dist/evaluator/definitions-store.js +8 -0
- package/dist/evaluator/definitions.d.ts +18 -0
- package/dist/evaluator/definitions.js +4 -0
- package/dist/evaluator/effects.d.ts +226 -0
- package/dist/evaluator/effects.js +132 -0
- package/dist/evaluator/evaluator.d.ts +24 -0
- package/dist/evaluator/evaluator.js +67 -0
- package/dist/evaluator/events.d.ts +59 -0
- package/dist/evaluator/events.js +21 -0
- package/dist/evaluator/index.d.ts +11 -0
- package/dist/evaluator/index.js +11 -0
- package/dist/evaluator/module.d.ts +606 -0
- package/dist/evaluator/module.js +25 -0
- package/dist/evaluator/projections.d.ts +50 -0
- package/dist/evaluator/projections.js +20 -0
- package/dist/evaluator/scope.d.ts +59 -0
- package/dist/evaluator/scope.js +7 -0
- package/dist/evaluator/signals.d.ts +3 -0
- package/dist/evaluator/signals.js +17 -0
- package/dist/evaluator/threads.d.ts +62 -0
- package/dist/evaluator/threads.js +117 -0
- package/dist/evaluator/types.d.ts +125 -0
- package/dist/evaluator/types.js +51 -0
- package/dist/projectors/delivery.d.ts +83 -0
- package/dist/projectors/delivery.js +182 -0
- package/dist/projectors/index-model.d.ts +1 -1
- package/dist/projectors/index-model.js +4 -6
- package/dist/projectors/index.d.ts +2 -0
- package/dist/projectors/index.js +2 -0
- package/dist/projectors/memory.d.ts +1 -1
- package/dist/projectors/memory.js +10 -8
- package/dist/projectors/postgres.js +44 -58
- package/dist/projectors/projector.d.ts +17 -0
- package/dist/projectors/projector.js +26 -1
- package/dist/projectors/sqlite-delivery.d.ts +4 -0
- package/dist/projectors/sqlite-delivery.js +147 -0
- package/dist/projectors/sqlite.js +23 -23
- package/dist/projectors/with-projectors.d.ts +7 -2
- package/dist/projectors/with-projectors.js +27 -28
- package/dist/react/notify.js +11 -8
- package/dist/react/react.d.ts +2 -3
- package/dist/react/react.js +14 -30
- package/dist/react/sse.d.ts +1 -1
- package/dist/react/sse.js +1 -1
- package/dist/react/store.d.ts +3 -3
- package/dist/react/store.js +109 -119
- package/dist/runtime/cancellation.d.ts +16 -0
- package/dist/runtime/cancellation.js +129 -0
- package/dist/runtime/deadline-transition-planner.d.ts +31 -0
- package/dist/runtime/deadline-transition-planner.js +139 -0
- package/dist/runtime/dispatch-effect.d.ts +3 -2
- package/dist/runtime/dispatch-effect.js +7 -13
- package/dist/runtime/errors.d.ts +51 -0
- package/dist/runtime/errors.js +39 -0
- package/dist/runtime/{runtime-helpers.d.ts → helpers.d.ts} +24 -4
- package/dist/runtime/{runtime-helpers.js → helpers.js} +56 -19
- package/dist/runtime/index.d.ts +3 -3
- package/dist/runtime/index.js +3 -3
- package/dist/runtime/ingress.d.ts +15 -0
- package/dist/runtime/ingress.js +42 -0
- package/dist/runtime/local-effect-executor.d.ts +21 -0
- package/dist/runtime/local-effect-executor.js +137 -0
- package/dist/runtime/looms.d.ts +30 -4
- package/dist/runtime/looms.js +57 -37
- package/dist/runtime/observer.d.ts +45 -0
- package/dist/runtime/observer.js +11 -0
- package/dist/runtime/repository.d.ts +55 -0
- package/dist/runtime/repository.js +293 -0
- package/dist/runtime/retry-policy.d.ts +16 -0
- package/dist/runtime/retry-policy.js +29 -0
- package/dist/runtime/run-execution-context.d.ts +30 -0
- package/dist/runtime/run-execution-context.js +56 -0
- package/dist/runtime/run-start.d.ts +4 -0
- package/dist/runtime/run-start.js +44 -0
- package/dist/runtime/runtime.d.ts +6 -87
- package/dist/runtime/runtime.js +248 -470
- package/dist/runtime/server/auth.d.ts +41 -0
- package/dist/runtime/server/auth.js +45 -0
- package/dist/runtime/server/debugger-host.d.ts +11 -0
- package/dist/runtime/server/debugger-host.js +32 -0
- package/dist/runtime/server/fetch-handler.d.ts +18 -0
- package/dist/runtime/server/fetch-handler.js +62 -0
- package/dist/runtime/server/http.d.ts +38 -0
- package/dist/runtime/server/http.js +66 -0
- package/dist/runtime/server/route-table.d.ts +55 -0
- package/dist/runtime/server/route-table.js +74 -0
- package/dist/runtime/server/routes/definitions.d.ts +3 -0
- package/dist/runtime/server/routes/definitions.js +20 -0
- package/dist/runtime/server/routes/effects.d.ts +3 -0
- package/dist/runtime/server/routes/effects.js +59 -0
- package/dist/runtime/server/routes/operations.d.ts +3 -0
- package/dist/runtime/server/routes/operations.js +14 -0
- package/dist/runtime/server/routes/runs.d.ts +3 -0
- package/dist/runtime/server/routes/runs.js +199 -0
- package/dist/runtime/server.d.ts +4 -8
- package/dist/runtime/server.js +6 -211
- package/dist/runtime/sse.d.ts +2 -1
- package/dist/runtime/sse.js +24 -17
- package/dist/runtime/types.d.ts +117 -0
- package/dist/runtime/types.js +1 -0
- package/dist/runtime/wake-engine.d.ts +20 -0
- package/dist/runtime/wake-engine.js +311 -0
- package/dist/runtime/wake-scheduler.d.ts +3 -4
- package/dist/runtime/wake-scheduler.js +25 -31
- package/dist/runtime/worker-callbacks.d.ts +16 -0
- package/dist/runtime/worker-callbacks.js +167 -0
- package/dist/runtime/worker-effect-dispatch.d.ts +36 -0
- package/dist/runtime/worker-effect-dispatch.js +126 -0
- package/dist/s2/config.d.ts +1 -1
- package/dist/s2/config.js +1 -1
- package/dist/s2/lite.js +70 -82
- package/dist/s2/pagination.d.ts +15 -0
- package/dist/s2/pagination.js +36 -0
- package/dist/s2/projector.js +6 -5
- package/dist/s2/snapshot-store.js +188 -161
- package/dist/s2/store.d.ts +3 -21
- package/dist/s2/store.js +71 -165
- package/dist/testing/index.d.ts +15 -0
- package/dist/testing/index.js +53 -16
- package/dist/workflow/debugger/index.d.ts +4 -0
- package/dist/workflow/debugger/index.js +11 -0
- package/dist/workflow/debugger/nodes-view.d.ts +3 -0
- package/dist/workflow/debugger/nodes-view.js +13 -0
- package/dist/workflow/debugger/summarize.d.ts +2 -0
- package/dist/workflow/debugger/summarize.js +30 -0
- package/dist/workflow/definitions-store.d.ts +2 -3
- package/dist/workflow/definitions-store.js +2 -2
- package/dist/workflow/definitions.d.ts +78 -22
- package/dist/workflow/definitions.js +80 -14
- package/dist/workflow/effects.d.ts +453 -107
- package/dist/workflow/effects.js +214 -115
- package/dist/workflow/events.d.ts +149 -5
- package/dist/workflow/events.js +27 -5
- package/dist/workflow/graph.d.ts +56 -0
- package/dist/workflow/graph.js +207 -0
- package/dist/workflow/index.d.ts +1 -0
- package/dist/workflow/index.js +1 -0
- package/dist/workflow/module.d.ts +1047 -266
- package/dist/workflow/projections.d.ts +14 -12
- package/dist/workflow/projections.js +30 -8
- package/dist/workflow/scope.d.ts +146 -4
- package/dist/workflow/threads.d.ts +383 -155
- package/dist/workflow/threads.js +308 -110
- package/package.json +26 -2
- package/dist/debugger/events/domain-summarize.d.ts +0 -3
- package/dist/debugger/events/domain-summarize.js +0 -107
- package/dist/debugger/events/family.d.ts +0 -8
- package/dist/debugger/events/family.js +0 -44
- package/dist/runtime/events-api.d.ts +0 -4
- package/dist/runtime/events-api.js +0 -84
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { StandardSchemaV1 } from '@standard-schema/spec';
|
|
2
2
|
import type { Schema } from 'effect';
|
|
3
|
-
import
|
|
3
|
+
import { type JsonValue, type RuntimeEffect, type SchemaInput } from '@swirls/looms/core';
|
|
4
4
|
import type { StopWhen } from './stop-when';
|
|
5
5
|
import type { Message, ToolCall } from './types';
|
|
6
6
|
export interface ToolContext {
|
|
@@ -12,8 +12,7 @@ export interface FunctionTool<TName extends string = string, TInput = JsonValue,
|
|
|
12
12
|
readonly kind: 'function';
|
|
13
13
|
readonly name: TName;
|
|
14
14
|
readonly description: string;
|
|
15
|
-
readonly input?: StandardSchemaV1<any, TInput> | Schema.
|
|
16
|
-
readonly inputSchema?: JsonValue;
|
|
15
|
+
readonly input?: StandardSchemaV1<any, TInput> | Schema.ConstraintDecoder<TInput>;
|
|
17
16
|
handler(input: TInput, ctx: ToolContext): Promise<TOutput> | TOutput;
|
|
18
17
|
}
|
|
19
18
|
export interface ThreadTool {
|
|
@@ -21,12 +20,13 @@ export interface ThreadTool {
|
|
|
21
20
|
readonly name: string;
|
|
22
21
|
readonly description: string;
|
|
23
22
|
readonly input?: SchemaInput;
|
|
24
|
-
readonly inputSchema?: JsonValue;
|
|
25
23
|
readonly childKind: string;
|
|
26
24
|
readonly childName: string;
|
|
25
|
+
readonly childVersion: string;
|
|
27
26
|
readonly child: {
|
|
28
27
|
kind: string;
|
|
29
28
|
name: string;
|
|
29
|
+
version?: string;
|
|
30
30
|
};
|
|
31
31
|
mapInput?(input: JsonValue): JsonValue;
|
|
32
32
|
}
|
|
@@ -35,7 +35,6 @@ export interface EffectsTool {
|
|
|
35
35
|
readonly name: string;
|
|
36
36
|
readonly description: string;
|
|
37
37
|
readonly input?: SchemaInput;
|
|
38
|
-
readonly inputSchema?: JsonValue;
|
|
39
38
|
effects(input: JsonValue): RuntimeEffect[];
|
|
40
39
|
waitOn?: {
|
|
41
40
|
type: string | readonly string[];
|
|
@@ -46,6 +45,7 @@ export type ToolLike = FunctionTool | ThreadTool | EffectsTool;
|
|
|
46
45
|
export type AgentToolEntry = ToolLike | {
|
|
47
46
|
kind: string;
|
|
48
47
|
name: string;
|
|
48
|
+
version?: string;
|
|
49
49
|
instructions?: string;
|
|
50
50
|
description?: string;
|
|
51
51
|
input?: SchemaInput;
|
|
@@ -57,6 +57,7 @@ export interface AgentTurnContext<TInput = JsonValue> {
|
|
|
57
57
|
readonly input: TInput;
|
|
58
58
|
readonly tools: ToolLike[];
|
|
59
59
|
readonly instructions: string;
|
|
60
|
+
readonly signal?: AbortSignal;
|
|
60
61
|
}
|
|
61
62
|
export interface AgentTurnResult<TOutput extends JsonValue = JsonValue> {
|
|
62
63
|
message: Message;
|
|
@@ -71,9 +72,11 @@ export interface AgentTurnResult<TOutput extends JsonValue = JsonValue> {
|
|
|
71
72
|
export interface AgentDefinition<TName extends string = string, TInput = JsonValue, TOutput extends JsonValue = JsonValue> {
|
|
72
73
|
readonly kind: 'agent';
|
|
73
74
|
readonly name: TName;
|
|
75
|
+
readonly version: string;
|
|
76
|
+
readonly description?: string;
|
|
74
77
|
readonly model?: string;
|
|
75
78
|
readonly instructions: string;
|
|
76
|
-
readonly input?: StandardSchemaV1<any, TInput> | Schema.
|
|
79
|
+
readonly input?: StandardSchemaV1<any, TInput> | Schema.ConstraintDecoder<TInput>;
|
|
77
80
|
readonly tools?: ToolLike[];
|
|
78
81
|
readonly maxTurns?: number;
|
|
79
82
|
readonly conversational?: boolean;
|
|
@@ -81,33 +84,37 @@ export interface AgentDefinition<TName extends string = string, TInput = JsonVal
|
|
|
81
84
|
runTurn?(ctx: AgentTurnContext<TInput>): Promise<AgentTurnResult<TOutput>> | AgentTurnResult<TOutput>;
|
|
82
85
|
}
|
|
83
86
|
export type AnyAgentDefinition = AgentDefinition;
|
|
87
|
+
export interface AgentSessionDefinition<TName extends string = string> {
|
|
88
|
+
readonly kind: 'agent-session';
|
|
89
|
+
readonly name: TName;
|
|
90
|
+
readonly version: string;
|
|
91
|
+
readonly description?: string;
|
|
92
|
+
/** The agent definition is pinned when the session definition is created. */
|
|
93
|
+
readonly agent: Pick<AgentDefinition, 'kind' | 'name' | 'version'>;
|
|
94
|
+
/** Max idle milliseconds before parking. Zero waits indefinitely. */
|
|
95
|
+
readonly idleTimeoutMs: number;
|
|
96
|
+
}
|
|
97
|
+
export declare function defineAgentSession<TName extends string>(def: {
|
|
98
|
+
readonly name: TName;
|
|
99
|
+
readonly description?: string;
|
|
100
|
+
readonly agent: Pick<AgentDefinition, 'kind' | 'name' | 'version'>;
|
|
101
|
+
readonly version?: string;
|
|
102
|
+
readonly idleTimeoutMs?: number;
|
|
103
|
+
}): AgentSessionDefinition<TName>;
|
|
84
104
|
export declare function normalizeTools(tools?: ReadonlyArray<AgentToolEntry>): ToolLike[];
|
|
85
|
-
export declare function defineTool<TName extends string,
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
inputSchema?: JsonValue;
|
|
90
|
-
handler: (input: TInput, ctx: ToolContext) => Promise<TOutput> | TOutput;
|
|
91
|
-
}): FunctionTool<TName, TInput, TOutput>;
|
|
92
|
-
export declare function defineAgent<TName extends string, TSchema = undefined, TInput = InferDefinedSchema<TSchema>, TOutput extends JsonValue = JsonValue>(def: {
|
|
93
|
-
name: TName;
|
|
94
|
-
model?: string;
|
|
95
|
-
instructions: string;
|
|
96
|
-
input?: TSchema;
|
|
97
|
-
tools?: AgentToolEntry[];
|
|
98
|
-
maxTurns?: number;
|
|
99
|
-
conversational?: boolean;
|
|
100
|
-
stopWhen?: StopWhen;
|
|
101
|
-
runTurn?: (ctx: AgentTurnContext<TInput>) => Promise<AgentTurnResult<TOutput>> | AgentTurnResult<TOutput>;
|
|
105
|
+
export declare function defineTool<TName extends string, TInput = JsonValue, TOutput extends JsonValue = JsonValue>(def: Omit<FunctionTool<TName, TInput, TOutput>, 'kind'>): FunctionTool<TName, TInput, TOutput>;
|
|
106
|
+
export declare function defineAgent<TName extends string, TInput = JsonValue, TOutput extends JsonValue = JsonValue>(def: Omit<AgentDefinition<TName, TInput, TOutput>, 'kind' | 'version' | 'tools'> & {
|
|
107
|
+
readonly version?: string;
|
|
108
|
+
readonly tools?: AgentToolEntry[];
|
|
102
109
|
}): AgentDefinition<TName, TInput, TOutput>;
|
|
103
110
|
export declare function asThreadTool(def: {
|
|
104
111
|
name?: string;
|
|
105
112
|
description?: string;
|
|
106
113
|
input?: SchemaInput;
|
|
107
|
-
inputSchema?: JsonValue;
|
|
108
114
|
child: {
|
|
109
115
|
kind: string;
|
|
110
116
|
name: string;
|
|
117
|
+
version?: string;
|
|
111
118
|
};
|
|
112
119
|
mapInput?: (input: JsonValue) => JsonValue;
|
|
113
120
|
}): ThreadTool;
|
|
@@ -115,27 +122,38 @@ export declare function asAgentTool(def: {
|
|
|
115
122
|
name?: string;
|
|
116
123
|
description?: string;
|
|
117
124
|
input?: SchemaInput;
|
|
118
|
-
inputSchema?: JsonValue;
|
|
119
125
|
agent: {
|
|
120
126
|
kind: 'agent';
|
|
121
127
|
name: string;
|
|
128
|
+
version?: string;
|
|
122
129
|
instructions?: string;
|
|
123
130
|
input?: SchemaInput;
|
|
124
|
-
inputSchema?: JsonValue;
|
|
125
131
|
};
|
|
126
132
|
mapInput?: (input: JsonValue) => JsonValue;
|
|
127
133
|
}): ThreadTool;
|
|
134
|
+
type EvaluatorToolTarget = {
|
|
135
|
+
kind: 'evaluator';
|
|
136
|
+
name: string;
|
|
137
|
+
description?: string;
|
|
138
|
+
input?: SchemaInput;
|
|
139
|
+
};
|
|
140
|
+
export declare function asEvaluatorTool(def: {
|
|
141
|
+
name?: string;
|
|
142
|
+
description?: string;
|
|
143
|
+
input?: SchemaInput;
|
|
144
|
+
evaluator: EvaluatorToolTarget;
|
|
145
|
+
mapInput?: (input: JsonValue) => JsonValue;
|
|
146
|
+
}): ThreadTool;
|
|
128
147
|
export declare function asWorkflowTool(def: {
|
|
129
148
|
name?: string;
|
|
130
149
|
description?: string;
|
|
131
150
|
input?: SchemaInput;
|
|
132
|
-
inputSchema?: JsonValue;
|
|
133
151
|
workflow: {
|
|
134
152
|
kind: 'workflow';
|
|
135
153
|
name: string;
|
|
154
|
+
version?: string;
|
|
136
155
|
description?: string;
|
|
137
156
|
input?: SchemaInput;
|
|
138
|
-
inputSchema?: JsonValue;
|
|
139
157
|
};
|
|
140
158
|
mapInput?: (input: JsonValue) => JsonValue;
|
|
141
159
|
}): ThreadTool;
|
|
@@ -143,10 +161,10 @@ export declare function asEffectsTool(def: {
|
|
|
143
161
|
name: string;
|
|
144
162
|
description: string;
|
|
145
163
|
input?: SchemaInput;
|
|
146
|
-
inputSchema?: JsonValue;
|
|
147
164
|
effects: (input: JsonValue) => RuntimeEffect[];
|
|
148
165
|
waitOn?: {
|
|
149
166
|
type: string | readonly string[];
|
|
150
167
|
match?: JsonValue;
|
|
151
168
|
};
|
|
152
169
|
}): EffectsTool;
|
|
170
|
+
export {};
|
|
@@ -1,7 +1,30 @@
|
|
|
1
|
+
import { DEFAULT_DEFINITION_VERSION, } from '@swirls/looms/core';
|
|
2
|
+
export function defineAgentSession(def) {
|
|
3
|
+
const definition = {
|
|
4
|
+
kind: 'agent-session',
|
|
5
|
+
name: def.name,
|
|
6
|
+
version: def.version ?? DEFAULT_DEFINITION_VERSION,
|
|
7
|
+
agent: {
|
|
8
|
+
kind: 'agent',
|
|
9
|
+
name: def.agent.name,
|
|
10
|
+
version: def.agent.version,
|
|
11
|
+
},
|
|
12
|
+
idleTimeoutMs: Math.max(0, def.idleTimeoutMs ?? 0),
|
|
13
|
+
};
|
|
14
|
+
if (def.description === undefined) {
|
|
15
|
+
return definition;
|
|
16
|
+
}
|
|
17
|
+
return { ...definition, description: def.description };
|
|
18
|
+
}
|
|
1
19
|
export function normalizeTools(tools = []) {
|
|
2
20
|
return tools.map((entry) => {
|
|
3
|
-
if (entry.kind === 'function'
|
|
4
|
-
|
|
21
|
+
if (entry.kind === 'function' && 'handler' in entry) {
|
|
22
|
+
return entry;
|
|
23
|
+
}
|
|
24
|
+
if (entry.kind === 'thread' && 'child' in entry) {
|
|
25
|
+
return entry;
|
|
26
|
+
}
|
|
27
|
+
if (entry.kind === 'effects' && 'effects' in entry) {
|
|
5
28
|
return entry;
|
|
6
29
|
}
|
|
7
30
|
return asThreadTool({
|
|
@@ -16,15 +39,13 @@ export function normalizeTools(tools = []) {
|
|
|
16
39
|
});
|
|
17
40
|
}
|
|
18
41
|
export function defineTool(def) {
|
|
19
|
-
|
|
20
|
-
return { kind: 'function', ...def, input: def.input };
|
|
42
|
+
return { kind: 'function', ...def };
|
|
21
43
|
}
|
|
22
44
|
export function defineAgent(def) {
|
|
23
|
-
// SAFETY: factory fields match AgentDefinition.
|
|
24
45
|
return {
|
|
25
46
|
kind: 'agent',
|
|
26
47
|
...def,
|
|
27
|
-
|
|
48
|
+
version: def.version ?? DEFAULT_DEFINITION_VERSION,
|
|
28
49
|
tools: def.tools ? normalizeTools(def.tools) : undefined,
|
|
29
50
|
};
|
|
30
51
|
}
|
|
@@ -34,9 +55,9 @@ export function asThreadTool(def) {
|
|
|
34
55
|
name: def.name ?? def.child.name,
|
|
35
56
|
description: def.description ?? def.child.name,
|
|
36
57
|
input: def.input,
|
|
37
|
-
inputSchema: def.inputSchema,
|
|
38
58
|
childKind: def.child.kind,
|
|
39
59
|
childName: def.child.name,
|
|
60
|
+
childVersion: def.child.version ?? DEFAULT_DEFINITION_VERSION,
|
|
40
61
|
child: def.child,
|
|
41
62
|
mapInput: def.mapInput,
|
|
42
63
|
};
|
|
@@ -46,8 +67,16 @@ export function asAgentTool(def) {
|
|
|
46
67
|
name: def.name,
|
|
47
68
|
description: def.description ?? def.agent.instructions,
|
|
48
69
|
input: def.input ?? def.agent.input,
|
|
49
|
-
|
|
50
|
-
|
|
70
|
+
child: { kind: 'agent', name: def.agent.name, version: def.agent.version },
|
|
71
|
+
mapInput: def.mapInput,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
export function asEvaluatorTool(def) {
|
|
75
|
+
return asThreadTool({
|
|
76
|
+
name: def.name,
|
|
77
|
+
description: def.description ?? def.evaluator.description,
|
|
78
|
+
input: def.input ?? def.evaluator.input,
|
|
79
|
+
child: { kind: 'evaluator', name: def.evaluator.name },
|
|
51
80
|
mapInput: def.mapInput,
|
|
52
81
|
});
|
|
53
82
|
}
|
|
@@ -56,8 +85,7 @@ export function asWorkflowTool(def) {
|
|
|
56
85
|
name: def.name,
|
|
57
86
|
description: def.description ?? def.workflow.description,
|
|
58
87
|
input: def.input ?? def.workflow.input,
|
|
59
|
-
|
|
60
|
-
child: { kind: 'workflow', name: def.workflow.name },
|
|
88
|
+
child: { kind: 'workflow', name: def.workflow.name, version: def.workflow.version },
|
|
61
89
|
mapInput: def.mapInput,
|
|
62
90
|
});
|
|
63
91
|
}
|
|
@@ -67,7 +95,6 @@ export function asEffectsTool(def) {
|
|
|
67
95
|
name: def.name,
|
|
68
96
|
description: def.description,
|
|
69
97
|
input: def.input,
|
|
70
|
-
inputSchema: def.inputSchema,
|
|
71
98
|
effects: def.effects,
|
|
72
99
|
waitOn: def.waitOn,
|
|
73
100
|
};
|