@tessar/core 0.1.0-alpha.0 → 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.
Files changed (147) hide show
  1. package/README.md +168 -31
  2. package/dist/agent.d.ts +37 -87
  3. package/dist/agent.js +101 -1116
  4. package/dist/agent.js.map +1 -1
  5. package/dist/controller.d.ts +13 -4
  6. package/dist/controller.js +184 -19
  7. package/dist/controller.js.map +1 -1
  8. package/dist/engine/call.d.ts +8 -0
  9. package/dist/engine/call.js +136 -0
  10. package/dist/engine/call.js.map +1 -0
  11. package/dist/engine/checkpoint.d.ts +11 -0
  12. package/dist/engine/checkpoint.js +187 -0
  13. package/dist/engine/checkpoint.js.map +1 -0
  14. package/dist/engine/delivery.js +6 -13
  15. package/dist/engine/delivery.js.map +1 -1
  16. package/dist/engine/execution.d.ts +5 -0
  17. package/dist/engine/execution.js +292 -0
  18. package/dist/engine/execution.js.map +1 -0
  19. package/dist/engine/frame.d.ts +77 -0
  20. package/dist/engine/frame.js +83 -0
  21. package/dist/engine/frame.js.map +1 -0
  22. package/dist/engine/hooks.d.ts +4 -0
  23. package/dist/engine/hooks.js +138 -0
  24. package/dist/engine/hooks.js.map +1 -0
  25. package/dist/engine/interrupt.d.ts +1 -1
  26. package/dist/engine/lineage.d.ts +1 -1
  27. package/dist/engine/recovery.d.ts +1 -2
  28. package/dist/engine/recovery.js +4 -2
  29. package/dist/engine/recovery.js.map +1 -1
  30. package/dist/engine/resume.d.ts +12 -1
  31. package/dist/engine/resume.js +189 -0
  32. package/dist/engine/resume.js.map +1 -1
  33. package/dist/engine/runtime.d.ts +16 -0
  34. package/dist/engine/runtime.js +29 -0
  35. package/dist/engine/runtime.js.map +1 -0
  36. package/dist/engine/services.d.ts +3 -0
  37. package/dist/engine/services.js +125 -0
  38. package/dist/engine/services.js.map +1 -0
  39. package/dist/engine/tool-executor.d.ts +8 -2
  40. package/dist/engine/tool-executor.js +266 -3
  41. package/dist/engine/tool-executor.js.map +1 -1
  42. package/dist/engine/tracked-effects.js +5 -6
  43. package/dist/engine/tracked-effects.js.map +1 -1
  44. package/dist/errors.js +24 -9
  45. package/dist/errors.js.map +1 -1
  46. package/dist/events/definition.d.ts +2 -0
  47. package/dist/events/definition.js +2 -0
  48. package/dist/events/definition.js.map +1 -1
  49. package/dist/events/dispatcher.d.ts +1 -1
  50. package/dist/events/dispatcher.js +35 -4
  51. package/dist/events/dispatcher.js.map +1 -1
  52. package/dist/events/observer.d.ts +3 -0
  53. package/dist/events/observer.js +13 -0
  54. package/dist/events/observer.js.map +1 -0
  55. package/dist/events/{catalog.d.ts → type.d.ts} +170 -47
  56. package/dist/events/type.js +175 -0
  57. package/dist/events/type.js.map +1 -0
  58. package/dist/identity.d.ts +1 -0
  59. package/dist/identity.js +23 -0
  60. package/dist/identity.js.map +1 -0
  61. package/dist/index.d.ts +4 -2
  62. package/dist/index.js +4 -2
  63. package/dist/index.js.map +1 -1
  64. package/dist/instructions/instruction.d.ts +2 -0
  65. package/dist/instructions/instruction.js +10 -3
  66. package/dist/instructions/instruction.js.map +1 -1
  67. package/dist/loop.d.ts +5 -5
  68. package/dist/loop.js +44 -204
  69. package/dist/loop.js.map +1 -1
  70. package/dist/messages/codec.js +4 -2
  71. package/dist/messages/codec.js.map +1 -1
  72. package/dist/messages/message.d.ts +2 -3
  73. package/dist/messages/message.js +3 -3
  74. package/dist/messages/message.js.map +1 -1
  75. package/dist/models/contract.d.ts +15 -0
  76. package/dist/models/options.d.ts +3 -0
  77. package/dist/models/options.js +13 -0
  78. package/dist/models/options.js.map +1 -0
  79. package/dist/models/registry.d.ts +2 -0
  80. package/dist/models/registry.js +18 -1
  81. package/dist/models/registry.js.map +1 -1
  82. package/dist/models/resolver.d.ts +4 -2
  83. package/dist/models/resolver.js +9 -4
  84. package/dist/models/resolver.js.map +1 -1
  85. package/dist/models/stream.d.ts +6 -0
  86. package/dist/models/stream.js +61 -2
  87. package/dist/models/stream.js.map +1 -1
  88. package/dist/plugins/context.d.ts +27 -2
  89. package/dist/plugins/host.d.ts +5 -1
  90. package/dist/plugins/host.js +33 -11
  91. package/dist/plugins/host.js.map +1 -1
  92. package/dist/plugins/registry.d.ts +1 -1
  93. package/dist/plugins/registry.js +18 -10
  94. package/dist/plugins/registry.js.map +1 -1
  95. package/dist/session.d.ts +16 -6
  96. package/dist/session.js +126 -55
  97. package/dist/session.js.map +1 -1
  98. package/dist/state/commit.d.ts +5 -0
  99. package/dist/state/commit.js +50 -5
  100. package/dist/state/commit.js.map +1 -1
  101. package/dist/state/fork.js +27 -6
  102. package/dist/state/fork.js.map +1 -1
  103. package/dist/state/memory-backend.js +307 -38
  104. package/dist/state/memory-backend.js.map +1 -1
  105. package/dist/state/plugin-state.js +73 -18
  106. package/dist/state/plugin-state.js.map +1 -1
  107. package/dist/state/queries.d.ts +14 -14
  108. package/dist/state/queries.js +150 -48
  109. package/dist/state/queries.js.map +1 -1
  110. package/dist/state/schema.d.ts +47 -6
  111. package/dist/state/schema.js +9 -1
  112. package/dist/state/schema.js.map +1 -1
  113. package/dist/state/scope.js +3 -2
  114. package/dist/state/scope.js.map +1 -1
  115. package/dist/state/sessions.d.ts +2 -0
  116. package/dist/state/sessions.js +21 -0
  117. package/dist/state/sessions.js.map +1 -0
  118. package/dist/state/storage-ports.d.ts +16 -2
  119. package/dist/state/threads.d.ts +1 -0
  120. package/dist/state/threads.js +77 -12
  121. package/dist/state/threads.js.map +1 -1
  122. package/dist/testing/harness.d.ts +2 -1
  123. package/dist/testing/harness.js +6 -4
  124. package/dist/testing/harness.js.map +1 -1
  125. package/dist/testing/scripted-provider.d.ts +1 -0
  126. package/dist/testing/scripted-provider.js +7 -0
  127. package/dist/testing/scripted-provider.js.map +1 -1
  128. package/dist/testing/storage-conformance.js +111 -0
  129. package/dist/testing/storage-conformance.js.map +1 -1
  130. package/dist/thread.d.ts +4 -2
  131. package/dist/thread.js +14 -6
  132. package/dist/thread.js.map +1 -1
  133. package/dist/tools/tool.d.ts +11 -12
  134. package/dist/tools/tool.js +27 -10
  135. package/dist/tools/tool.js.map +1 -1
  136. package/dist/trace/records.d.ts +11 -6
  137. package/dist/trace/records.js +28 -1
  138. package/dist/trace/records.js.map +1 -1
  139. package/package.json +7 -1
  140. package/dist/events/catalog.js +0 -89
  141. package/dist/events/catalog.js.map +0 -1
  142. package/dist/models/cache.d.ts +0 -12
  143. package/dist/models/cache.js +0 -17
  144. package/dist/models/cache.js.map +0 -1
  145. package/dist/session-events.d.ts +0 -60
  146. package/dist/session-events.js +0 -14
  147. package/dist/session-events.js.map +0 -1
@@ -1,14 +1,16 @@
1
1
  import { type Clock } from "../json.js";
2
2
  import type { ModelProfile, ProfilePatch } from "./profile.js";
3
3
  import type { ModelRef, ModelProviderRegistration } from "./contract.js";
4
- import { ProfileCache } from "./cache.js";
5
4
  import { type CatalogSnapshot } from "./catalog.js";
6
5
  export declare function emptyProfile(ref: ModelRef): ModelProfile;
7
6
  export declare function applyPatch(base: ModelProfile, patch: ProfilePatch, source: string, now: string): ModelProfile;
8
7
  export declare class ProfileResolver {
9
8
  private readonly options;
10
9
  catalog: CatalogSnapshot;
11
- readonly cache: ProfileCache;
10
+ readonly cache: Map<string, {
11
+ profile: ModelProfile;
12
+ fetchedAt: number;
13
+ }>;
12
14
  private readonly pending;
13
15
  constructor(options?: {
14
16
  catalog?: CatalogSnapshot;
@@ -1,5 +1,4 @@
1
1
  import { immutable, systemClock } from "../json.js";
2
- import { PROFILE_TTL_MS, ProfileCache } from "./cache.js";
3
2
  import { bundledCatalog } from "./catalog.js";
4
3
  export function emptyProfile(ref) {
5
4
  return immutable({
@@ -70,10 +69,11 @@ export function applyPatch(base, patch, source, now) {
70
69
  };
71
70
  return immutable(next);
72
71
  }
72
+ const PROFILE_TTL_MS = 24 * 60 * 60 * 1000;
73
73
  export class ProfileResolver {
74
74
  options;
75
75
  catalog;
76
- cache = new ProfileCache();
76
+ cache = new Map();
77
77
  pending = new Map();
78
78
  constructor(options = {}) {
79
79
  this.options = options;
@@ -83,7 +83,12 @@ export class ProfileResolver {
83
83
  return (this.options.clock ?? systemClock).now();
84
84
  }
85
85
  key(provider, ref) {
86
- return this.cache.key(ref.providerId, ref.modelId, provider.endpoint ?? "", provider.metadataPartition ?? "registration");
86
+ return JSON.stringify([
87
+ ref.providerId,
88
+ ref.modelId,
89
+ provider.endpoint ?? "",
90
+ provider.metadataPartition ?? "registration",
91
+ ]);
87
92
  }
88
93
  needsRefresh(ref, provider) {
89
94
  const cached = this.cache.get(this.key(provider, ref));
@@ -140,7 +145,7 @@ export class ProfileResolver {
140
145
  });
141
146
  }
142
147
  }
143
- this.cache.set(key, profile, Date.parse(this.now()));
148
+ this.cache.set(key, { profile, fetchedAt: Date.parse(this.now()) });
144
149
  return profile;
145
150
  })();
146
151
  this.pending.set(key, promise);
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/models/resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/models/resolver.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,9 @@
1
+ import type { ExecutionPosition } from "../state/schema.js";
2
+ import type { RegistryLease } from "../plugins/registry.js";
1
3
  import type { ModelAdapter, ModelCallContext, ModelRef, ModelRequest } from "./contract.js";
4
+ export declare function isModelAdapter(value: unknown): value is ModelAdapter;
5
+ export declare function selectAdapter(registry: RegistryLease, ref: ModelRef, direct?: ModelAdapter): ModelAdapter;
6
+ /** Bind before continuation effects, including when no assistant history exists yet. */
7
+ export declare function bindExecutionModel(registry: RegistryLease, position: ExecutionPosition, direct?: ModelAdapter, override?: ModelRef): ModelAdapter;
2
8
  export declare function providerCall<T>(ref: ModelRef, operation: () => T): T;
3
9
  export declare function streamModel(adapter: ModelAdapter, request: ModelRequest, context: ModelCallContext): AsyncGenerator<import("./contract.js").ModelChunk, void, any>;
@@ -1,7 +1,62 @@
1
- import { errorInfo, TessarError } from "../errors.js";
1
+ import { canonicalJson } from "../state/commit.js";
2
+ import { errorInfo, fail, TessarError } from "../errors.js";
3
+ import { normalizeInstruction } from "../instructions/instruction.js";
4
+ export function isModelAdapter(value) {
5
+ return (!!value &&
6
+ typeof value === "object" &&
7
+ typeof value.stream === "function" &&
8
+ typeof value.validate === "function");
9
+ }
10
+ export function selectAdapter(registry, ref, direct) {
11
+ if (direct &&
12
+ direct.ref.providerId === ref.providerId &&
13
+ direct.ref.connectionId === ref.connectionId) {
14
+ if (direct.ref.modelId === ref.modelId)
15
+ return direct;
16
+ if (direct.withModel)
17
+ return providerCall(ref, () => direct.withModel(ref.modelId));
18
+ }
19
+ const provider = registry.find("provider", ref.providerId);
20
+ if (!provider)
21
+ fail("MissingProvider", "Model provider is not registered");
22
+ const adapter = providerCall(ref, () => provider.create(ref.modelId));
23
+ if (ref.connectionId !== undefined &&
24
+ adapter.ref.connectionId !== ref.connectionId)
25
+ fail("ModelContextIncompatible", "The selected connection is no longer available");
26
+ return adapter;
27
+ }
28
+ /** Bind before continuation effects, including when no assistant history exists yet. */
29
+ export function bindExecutionModel(registry, position, direct, override) {
30
+ const ref = override ?? position.modelRef;
31
+ const changed = ref.providerId !== position.modelRef.providerId ||
32
+ ref.connectionId !== position.modelRef.connectionId;
33
+ const adapter = selectAdapter(registry, ref, direct);
34
+ if (!changed &&
35
+ position.modelConnection &&
36
+ canonicalJson(position.modelConnection) !==
37
+ canonicalJson(adapter.connection ?? null))
38
+ fail("ModelContextIncompatible", "Execution model connection changed");
39
+ if (changed)
40
+ delete position.modelOptions;
41
+ position.modelRef = {
42
+ ...ref,
43
+ ...(adapter.ref.connectionId
44
+ ? { connectionId: adapter.ref.connectionId }
45
+ : {}),
46
+ };
47
+ if (adapter.connection)
48
+ position.modelConnection = adapter.connection;
49
+ else
50
+ delete position.modelConnection;
51
+ return adapter;
52
+ }
2
53
  function record(error, ref) {
3
54
  if (!(error instanceof TessarError))
4
- errorInfo(error, { source: "provider", providerId: ref.providerId, modelId: ref.modelId });
55
+ errorInfo(error, {
56
+ source: "provider",
57
+ providerId: ref.providerId,
58
+ modelId: ref.modelId,
59
+ });
5
60
  }
6
61
  export function providerCall(ref, operation) {
7
62
  try {
@@ -13,6 +68,10 @@ export function providerCall(ref, operation) {
13
68
  }
14
69
  }
15
70
  export async function* streamModel(adapter, request, context) {
71
+ request = {
72
+ ...request,
73
+ instructions: normalizeInstruction(request.instructions),
74
+ };
16
75
  try {
17
76
  yield* adapter.stream(request, context);
18
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/models/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGtD,SAAS,MAAM,CAAC,KAAc,EAAE,GAAa;IAC3C,IAAI,CAAC,CAAC,KAAK,YAAY,WAAW,CAAC;QACjC,SAAS,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;AAC/F,CAAC;AACD,MAAM,UAAU,YAAY,CAAI,GAAa,EAAE,SAAkB;IAC/D,IAAI,CAAC;QAAC,OAAO,SAAS,EAAE,CAAC;IAAC,CAAC;IAC3B,OAAO,KAAK,EAAE,CAAC;QAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAAC,MAAM,KAAK,CAAC;IAAC,CAAC;AACpD,CAAC;AACD,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,WAAW,CAAC,OAAqB,EAAE,OAAqB,EAAE,OAAyB;IACxG,IAAI,CAAC;QAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAAC,CAAC;IAChD,OAAO,KAAK,EAAE,CAAC;QAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAAC,MAAM,KAAK,CAAC;IAAC,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/models/stream.ts"],"names":[],"mappings":"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"}
@@ -6,13 +6,38 @@ import type { ModelProviderRegistration } from "../models/contract.js";
6
6
  import type { StorageBackend } from "../state/storage-ports.js";
7
7
  import type { PluginStateDefinition } from "../state/plugin-state.js";
8
8
  import type { JsonValue } from "../json.js";
9
+ import type { Session } from "../session.js";
10
+ import type { Thread } from "../thread.js";
11
+ import type { Agent } from "../agent.js";
9
12
  export type Disposer = () => void | Promise<void>;
13
+ /** Read access to capabilities captured for the current hook execution. */
14
+ export interface CapabilityRegistry {
15
+ get<T = unknown>(kind: string, id: string): T | undefined;
16
+ list<T = unknown>(kind: string): readonly T[];
17
+ }
18
+ /** Controls that do not wait for completion of the active execution. */
19
+ export type SessionHookHandle = Pick<Session, "id" | "scope" | "model" | "thread" | "setModel" | "followUp">;
20
+ export type ThreadHookHandle = Pick<Thread, "id" | "scope" | "snapshot" | "getHistory" | "getCheckpoint" | "listCheckpoints">;
10
21
  export interface HookContext {
22
+ readonly registry: CapabilityRegistry;
23
+ readonly sessionId?: string;
11
24
  readonly signal?: AbortSignal;
25
+ readonly session?: SessionHookHandle;
26
+ readonly thread?: ThreadHookHandle;
12
27
  readonly [key: string]: unknown;
13
28
  }
29
+ export interface SessionHookContext extends HookContext {
30
+ readonly session: SessionHookHandle;
31
+ }
32
+ export interface ThreadHookContext extends HookContext {
33
+ readonly thread: ThreadHookHandle;
34
+ }
14
35
  export type EventHandler<D extends AnyEvent> = (event: EventEnvelope<PayloadOf<D>, D>, context: ContextOf<D>) => ResultOf<D> | void | Promise<ResultOf<D> | void>;
15
36
  export interface PluginContext {
37
+ /** Registers an Agent owned by this plugin; shutdown follows plugin disposal. */
38
+ readonly agent: {
39
+ register(agent: Agent): void;
40
+ };
16
41
  readonly effects: {
17
42
  register(definition: EffectDefinition): void;
18
43
  };
@@ -23,13 +48,13 @@ export interface PluginContext {
23
48
  define<T extends JsonValue>(definition: Omit<PluginStateDefinition<T>, "pluginId">): PluginStateDefinition<T>;
24
49
  };
25
50
  readonly storage: {
26
- registerBackend(backend: StorageBackend): void;
51
+ register(backend: StorageBackend): void;
27
52
  };
28
53
  readonly tools: {
29
54
  register(tool: Tool): void;
30
55
  };
31
56
  readonly models: {
32
- registerProvider(provider: ModelProviderRegistration): void;
57
+ register(provider: ModelProviderRegistration): void;
33
58
  };
34
59
  hook<D extends AnyEvent>(name: D, handler: EventHandler<D>, options?: HookOptions): Disposer;
35
60
  emit<D extends AnyEvent>(definition: D, payload: PayloadOf<D>): Promise<ResultOf<D>>;
@@ -1,4 +1,5 @@
1
1
  import { type ErrorInfo } from "../errors.js";
2
+ import { type OperationEvent } from "../events/type.js";
2
3
  import type { AnyEvent, EventContext, PayloadOf, ResultOf, EventKind } from "../events/definition.js";
3
4
  import type { HookContext, Plugin } from "./context.js";
4
5
  import { RegistryLease, type ValueRegistration } from "./registry.js";
@@ -7,14 +8,17 @@ export declare class PluginHost {
7
8
  private generation;
8
9
  private definitions;
9
10
  private storageSealed;
11
+ authorize<D extends OperationEvent>(name: D, payload: PayloadOf<D>, context: Partial<HookContext> & EventContext): Promise<void>;
10
12
  sealStorage(): void;
11
13
  kind(name: string): EventKind;
12
14
  private mutation;
13
15
  private closed;
14
16
  private disposal?;
15
17
  private readonly diagnostics;
18
+ private readonly values;
16
19
  constructor(options?: {
17
20
  diagnostics?: (error: ErrorInfo, context?: EventContext) => void;
21
+ values?: readonly ValueRegistration[];
18
22
  });
19
23
  initialize(plugins: readonly Plugin[]): Promise<void>;
20
24
  private serialize;
@@ -22,7 +26,7 @@ export declare class PluginHost {
22
26
  detach(id: string): Promise<void>;
23
27
  private releaseSlot;
24
28
  capture(): RegistryLease;
25
- dispatch<D extends AnyEvent>(definition: D, payload: PayloadOf<D>, context?: HookContext & EventContext, captured?: RegistryLease): Promise<ResultOf<D>>;
29
+ dispatch<D extends AnyEvent>(definition: D, payload: PayloadOf<D>, context?: Partial<HookContext> & EventContext, captured?: RegistryLease): Promise<ResultOf<D>>;
26
30
  registrations(): readonly ValueRegistration[];
27
31
  dispose(): Promise<void>;
28
32
  }
@@ -1,14 +1,22 @@
1
- import { TessarError, errorInfo, fail, requireId } from "../errors.js";
1
+ import { diagnostic as diagnosticHooks } from "../events/type.js";
2
+ import { TessarError, errorInfo, fail, requireId, } from "../errors.js";
2
3
  import { dispatch } from "../events/dispatcher.js";
3
- import { AgentEvents, hookKinds } from "../events/catalog.js";
4
- import { SessionEvents } from "../session-events.js";
4
+ import { hookKinds } from "../events/type.js";
5
5
  import { RegistryLease, } from "./registry.js";
6
6
  import { definePluginState } from "../state/plugin-state.js";
7
7
  export class PluginHost {
8
8
  slots = [];
9
9
  generation = 0;
10
- definitions = new Map([...Object.values(AgentEvents), ...Object.values(SessionEvents)].map((name) => [name, { kind: hookKinds[name] ?? "notification", version: 1 }]));
10
+ definitions = new Map(Object.entries(hookKinds).map(([name, kind]) => [
11
+ name,
12
+ { kind, version: 1 },
13
+ ]));
11
14
  storageSealed = false;
15
+ async authorize(name, payload, context) {
16
+ const decision = await this.dispatch(name, payload, context);
17
+ if (decision?.decision === "deny")
18
+ fail("OperationDenied", decision.reason ?? "Operation denied by plugin policy");
19
+ }
12
20
  sealStorage() {
13
21
  this.storageSealed = true;
14
22
  }
@@ -19,8 +27,10 @@ export class PluginHost {
19
27
  closed = false;
20
28
  disposal;
21
29
  diagnostics;
30
+ values;
22
31
  constructor(options = {}) {
23
32
  this.diagnostics = options.diagnostics ?? (() => { });
33
+ this.values = options.values ?? [];
24
34
  }
25
35
  async initialize(plugins) {
26
36
  try {
@@ -59,6 +69,7 @@ export class PluginHost {
59
69
  if (kind === "storage" && this.storageSealed)
60
70
  fail("InvalidTransition", "Storage backend is fixed after initialization");
61
71
  if ([
72
+ ...this.values,
62
73
  ...this.slots.filter((s) => !s.detached).flatMap((s) => s.values),
63
74
  ...slot.values,
64
75
  ].some((v) => v.kind === kind && v.id === id))
@@ -75,6 +86,12 @@ export class PluginHost {
75
86
  };
76
87
  const tessar = {
77
88
  registry: { register },
89
+ agent: {
90
+ register: (agent) => {
91
+ register("agent", agent.id, agent);
92
+ tessar.defer(() => agent.shutdown());
93
+ },
94
+ },
78
95
  effects: {
79
96
  register: (definition) => {
80
97
  const stateDefinition = definePluginState({
@@ -102,10 +119,10 @@ export class PluginHost {
102
119
  },
103
120
  tools: { register: (tool) => register("tool", tool.name, tool) },
104
121
  models: {
105
- registerProvider: (provider) => register("provider", provider.id, provider),
122
+ register: (provider) => register("provider", provider.id, provider),
106
123
  },
107
124
  storage: {
108
- registerBackend: (backend) => {
125
+ register: (backend) => {
109
126
  register("storage", "primary", backend);
110
127
  tessar.defer(() => backend.close());
111
128
  },
@@ -149,7 +166,9 @@ export class PluginHost {
149
166
  this.generation++;
150
167
  }
151
168
  catch (error) {
152
- this.diagnostics(errorInfo(error, error instanceof TessarError ? undefined : { source: "plugin", pluginId: plugin.id }));
169
+ this.diagnostics(errorInfo(error, error instanceof TessarError
170
+ ? undefined
171
+ : { source: "plugin", pluginId: plugin.id }));
153
172
  slot.detached = true;
154
173
  await this.releaseSlot(slot);
155
174
  throw error;
@@ -180,15 +199,15 @@ export class PluginHost {
180
199
  }
181
200
  }
182
201
  capture() {
183
- return new RegistryLease(this.generation, this.slots.filter((s) => !s.detached), (slot) => this.releaseSlot(slot));
202
+ return new RegistryLease(this.generation, this.slots.filter((s) => !s.detached), (slot) => this.releaseSlot(slot), this.values);
184
203
  }
185
204
  async dispatch(definition, payload, context = {}, captured) {
186
205
  const lease = captured ?? this.capture();
187
206
  try {
188
- return await dispatch(lease, definition, payload, context, definition === AgentEvents.Diagnostic ? () => { } : this.diagnostics, this.kind(definition));
207
+ return await dispatch(lease, definition, payload, context, definition === diagnosticHooks ? () => { } : this.diagnostics, this.kind(definition));
189
208
  }
190
209
  catch (error) {
191
- if (definition !== AgentEvents.Diagnostic)
210
+ if (definition !== diagnosticHooks)
192
211
  this.diagnostics(errorInfo(error), context);
193
212
  throw error;
194
213
  }
@@ -198,7 +217,10 @@ export class PluginHost {
198
217
  }
199
218
  }
200
219
  registrations() {
201
- return this.slots.filter((s) => !s.detached).flatMap((s) => s.values);
220
+ return [
221
+ ...this.values,
222
+ ...this.slots.filter((s) => !s.detached).flatMap((s) => s.values),
223
+ ];
202
224
  }
203
225
  dispose() {
204
226
  this.closed = true;
@@ -1 +1 @@
1
- {"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/plugins/host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/plugins/host.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,7 @@ export declare class RegistryLease {
35
35
  readonly handlers: readonly HandlerRegistration[];
36
36
  readonly values: readonly ValueRegistration[];
37
37
  private released;
38
- constructor(generation: number, slots: readonly PluginSlot[], releaseSlot: (slot: PluginSlot) => Promise<void>);
38
+ constructor(generation: number, slots: readonly PluginSlot[], releaseSlot: (slot: PluginSlot) => Promise<void>, values?: readonly ValueRegistration[]);
39
39
  release(): Promise<void>;
40
40
  find<T>(kind: string, id: string): T | undefined;
41
41
  list<T>(kind: string): readonly T[];
@@ -5,21 +5,29 @@ export class RegistryLease {
5
5
  handlers;
6
6
  values;
7
7
  released = false;
8
- constructor(generation, slots, releaseSlot) {
8
+ constructor(generation, slots, releaseSlot, values = []) {
9
9
  this.generation = generation;
10
10
  this.slots = slots;
11
11
  this.releaseSlot = releaseSlot;
12
- this.handlers = slots.flatMap(s => s.handlers.slice());
13
- this.values = slots.flatMap(s => s.values.slice());
12
+ this.handlers = slots.flatMap((s) => s.handlers.slice());
13
+ this.values = [...values, ...slots.flatMap((s) => s.values.slice())];
14
14
  for (const slot of slots)
15
15
  slot.references++;
16
16
  }
17
- async release() { if (this.released)
18
- return; this.released = true; for (const slot of this.slots) {
19
- slot.references--;
20
- await this.releaseSlot(slot);
21
- } }
22
- find(kind, id) { return this.values.find(v => v.kind === kind && v.id === id)?.value; }
23
- list(kind) { return this.values.filter(v => v.kind === kind).map(v => v.value); }
17
+ async release() {
18
+ if (this.released)
19
+ return;
20
+ this.released = true;
21
+ for (const slot of this.slots) {
22
+ slot.references--;
23
+ await this.releaseSlot(slot);
24
+ }
25
+ }
26
+ find(kind, id) {
27
+ return this.values.find((v) => v.kind === kind && v.id === id)?.value;
28
+ }
29
+ list(kind) {
30
+ return this.values.filter((v) => v.kind === kind).map((v) => v.value);
31
+ }
24
32
  }
25
33
  //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/plugins/registry.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,aAAa;IAIH,UAAU;IAA2B,KAAK;IAA0C,WAAW;IAH3G,QAAQ,CAAiC;IACzC,MAAM,CAA+B;IACtC,QAAQ,GAAG,KAAK,CAAC;IACzB,YAAqB,UAAkB,EAAmB,KAA4B,EAAmB,WAAgD;0BAApI,UAAU;qBAA2B,KAAK;2BAA0C,WAAW;QAClH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3G,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IAC9C,CAAC;IACD,KAAK,CAAC,OAAO,KAAoB,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC,CAAC,CAAC;IACvK,IAAI,CAAI,IAAY,EAAE,EAAU,IAAmB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAsB,CAAC,CAAC,CAAC;IAC1I,IAAI,CAAI,IAAY,IAAkB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAU,CAAC,CAAC,CAAC,CAAC;CAChH"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/plugins/registry.ts"],"names":[],"mappings":"AA8BA,MAAM,OAAO,aAAa;IAKb,UAAU;IACF,KAAK;IACL,WAAW;IANrB,QAAQ,CAAiC;IACzC,MAAM,CAA+B;IACtC,QAAQ,GAAG,KAAK,CAAC;IACzB,YACW,UAAkB,EACV,KAA4B,EAC5B,WAAgD,EACjE,MAAM,GAAiC,EAAE;0BAHhC,UAAU;qBACF,KAAK;2BACL,WAAW;QAG5B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACrE,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IAC9C,CAAC;IACD,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,IAAI,CAAI,IAAY,EAAE,EAAU;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAEnD,CAAC;IAChB,CAAC;IACD,IAAI,CAAI,IAAY;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAU,CAAC,CAAC;IAC7E,CAAC;CACF"}
package/dist/session.d.ts CHANGED
@@ -1,18 +1,19 @@
1
1
  import type { Controller } from "./controller.js";
2
2
  import { Thread } from "./thread.js";
3
3
  import { EventEnvelope, type AnyEvent, type PayloadOf, type StreamEvent } from "./events/definition.js";
4
- import { type ExecutionReceipt, type QueuedInputReceipt } from "./session-events.js";
5
- import { type JsonValue } from "./json.js";
4
+ import { type ExecutionReceipt, type QueuedInputReceipt } from "./events/type.js";
5
+ import { type JsonValue, type JsonObject } from "./json.js";
6
6
  import type { Model } from "./models/profile.js";
7
7
  import type { ModelRef } from "./models/contract.js";
8
8
  import type { MessageData } from "./messages/message.js";
9
- import type { Scope, PageOptions } from "./state/schema.js";
9
+ import type { Scope, PageOptions, SessionRecord } from "./state/schema.js";
10
10
  import type { CreateThreadOptions } from "./state/threads.js";
11
11
  import type { ForkOptions } from "./state/fork.js";
12
12
  import type { HistoryOptions } from "./state/queries.js";
13
13
  export interface SessionOptions {
14
14
  scope?: Scope;
15
15
  model?: Model | ModelRef;
16
+ metadata?: JsonObject;
16
17
  }
17
18
  export type SessionThreadOptions = Omit<CreateThreadOptions, "scope">;
18
19
  export interface ThreadTarget {
@@ -21,8 +22,11 @@ export interface ThreadTarget {
21
22
  type Observer = (event: StreamEvent) => unknown;
22
23
  export declare class Session {
23
24
  readonly controller: Controller;
24
- readonly agent: import("./agent.js").Agent;
25
+ private record;
26
+ readonly agent: import("./agent.js").Agent<import("./agent.js").ModelSelection>;
25
27
  readonly scope: Scope;
28
+ readonly id: string;
29
+ get metadata(): JsonObject;
26
30
  private selection;
27
31
  private selectedModel;
28
32
  private readonly observers;
@@ -33,14 +37,20 @@ export declare class Session {
33
37
  private closing;
34
38
  private disposal?;
35
39
  private sequence;
36
- constructor(controller: Controller, options?: SessionOptions);
40
+ private controlPending;
41
+ private control;
42
+ constructor(controller: Controller, record: SessionRecord, model: Model, thread?: Thread | null);
43
+ /** @internal Called only after durable creation, never on restoration. */
44
+ created(): void;
45
+ private persist;
46
+ private assertCurrent;
37
47
  get model(): Model;
38
48
  private check;
39
49
  private get busy();
40
50
  private checkSelectionChange;
41
51
  private selected;
42
52
  private target;
43
- setModel(model: Model | ModelRef): void;
53
+ setModel(model: Model | ModelRef): Promise<void>;
44
54
  subscribe(observer: Observer): () => void;
45
55
  subscribe<N extends AnyEvent>(name: N, observer: (event: EventEnvelope<PayloadOf<N>, N>) => unknown): () => void;
46
56
  private emit;