@felan-ai/agent-core 0.11.0 → 0.13.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 (70) hide show
  1. package/README.md +71 -0
  2. package/dist/dynamic-thinking/session.d.ts +2 -1
  3. package/dist/dynamic-thinking/session.d.ts.map +1 -1
  4. package/dist/dynamic-thinking/session.js +4 -4
  5. package/dist/dynamic-thinking/session.js.map +1 -1
  6. package/dist/extension-config-write.d.ts +7 -0
  7. package/dist/extension-config-write.d.ts.map +1 -0
  8. package/dist/extension-config-write.js +52 -0
  9. package/dist/extension-config-write.js.map +1 -0
  10. package/dist/extension-ui.d.ts +51 -0
  11. package/dist/extension-ui.d.ts.map +1 -0
  12. package/dist/extension-ui.js +22 -0
  13. package/dist/extension-ui.js.map +1 -0
  14. package/dist/extensions.d.ts +25 -3
  15. package/dist/extensions.d.ts.map +1 -1
  16. package/dist/extensions.js +56 -11
  17. package/dist/extensions.js.map +1 -1
  18. package/dist/host-agent-runtime.d.ts +12 -0
  19. package/dist/host-agent-runtime.d.ts.map +1 -1
  20. package/dist/host-agent-runtime.js +171 -7
  21. package/dist/host-agent-runtime.js.map +1 -1
  22. package/dist/host-workers.d.ts +31 -0
  23. package/dist/host-workers.d.ts.map +1 -0
  24. package/dist/host-workers.js +4 -0
  25. package/dist/host-workers.js.map +1 -0
  26. package/dist/index.d.ts +27 -4
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +11 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/model-tiers.js +0 -1
  31. package/dist/model-tiers.js.map +1 -1
  32. package/dist/platform.d.ts +33 -0
  33. package/dist/platform.d.ts.map +1 -0
  34. package/dist/platform.js +3 -0
  35. package/dist/platform.js.map +1 -0
  36. package/dist/runtime-files.d.ts +28 -0
  37. package/dist/runtime-files.d.ts.map +1 -0
  38. package/dist/runtime-files.js +2 -0
  39. package/dist/runtime-files.js.map +1 -0
  40. package/dist/runtime.d.ts +20 -1
  41. package/dist/runtime.d.ts.map +1 -1
  42. package/dist/savings.d.ts +12 -0
  43. package/dist/savings.d.ts.map +1 -1
  44. package/dist/savings.js +2 -1
  45. package/dist/savings.js.map +1 -1
  46. package/dist/services/models.d.ts +40 -0
  47. package/dist/services/models.d.ts.map +1 -0
  48. package/dist/services/models.js +3 -0
  49. package/dist/services/models.js.map +1 -0
  50. package/dist/services/runtime-dependencies.d.ts +16 -0
  51. package/dist/services/runtime-dependencies.d.ts.map +1 -0
  52. package/dist/services/runtime-dependencies.js +3 -0
  53. package/dist/services/runtime-dependencies.js.map +1 -0
  54. package/dist/services/secrets.d.ts +39 -0
  55. package/dist/services/secrets.d.ts.map +1 -0
  56. package/dist/services/secrets.js +18 -0
  57. package/dist/services/secrets.js.map +1 -0
  58. package/dist/services/sessions.d.ts +160 -0
  59. package/dist/services/sessions.d.ts.map +1 -0
  60. package/dist/services/sessions.js +37 -0
  61. package/dist/services/sessions.js.map +1 -0
  62. package/dist/services.d.ts +31 -0
  63. package/dist/services.d.ts.map +1 -0
  64. package/dist/services.js +55 -0
  65. package/dist/services.js.map +1 -0
  66. package/dist/session.d.ts +7 -1
  67. package/dist/session.d.ts.map +1 -1
  68. package/dist/session.js +17 -4
  69. package/dist/session.js.map +1 -1
  70. package/package.json +12 -5
package/README.md CHANGED
@@ -6,6 +6,11 @@ Portable Felan agent contracts and the Node.js host runtime.
6
6
  Felan host and the pinned Pi packages. It is intended for applications and
7
7
  portable extensions, not as a complete end-user CLI.
8
8
 
9
+ The published manifest pins the complete Pi runtime package family to one exact
10
+ version. Workspace overrides alone do not protect npm consumers from upstream
11
+ caret ranges selecting an incompatible Pi minor. Packed-install checks verify
12
+ that every installed Pi package uses the pinned version.
13
+
9
14
  ```ts
10
15
  import { HostAgentRuntime } from '@felan-ai/agent-core';
11
16
 
@@ -169,6 +174,65 @@ Runtime-backed coding tools are installed during composition as hidden fallback
169
174
  extension tools, so feature extensions can override standard tool names while
170
175
  explicit application `customTools` retain final precedence.
171
176
 
177
+ Hosts may pass a `FelanServiceRegistry` to session composition. Providers register
178
+ typed contracts created by `defineServiceContract(id, major)`; an extension
179
+ declares its `serviceRequirements` on its configured default export and accesses
180
+ only those contracts through `pi.services.get(contract)`. Required services
181
+ without a provider skip that extension and call
182
+ `onServiceRequirementFailure(packageName, contract)` when configured. Optional
183
+ services return `undefined` when absent. Hosts own provider loading, validation,
184
+ scope, and lifecycle; Core does not discover provider modules or define an
185
+ extension-specific service table. Revoke the registry when its owning scope is
186
+ disposed so retained handles fail closed.
187
+
188
+ Core supplies shared `MODELS_SERVICE`, `SESSIONS_HISTORY_SERVICE`,
189
+ `SESSIONS_SERVICE`, `SECRETS_SERVICE` and `RUNTIME_DEPENDENCIES_SERVICE`
190
+ contracts. Models exposes authenticated,
191
+ allowed selection metadata and inference, not endpoint configuration or
192
+ credential mutation. Sessions exposes scoped, revision-pinned history and
193
+ admitted execution. History-only consumers declare `SESSIONS_HISTORY_SERVICE`
194
+ without receiving execution methods. History IDs and cursors are opaque, and reads must not
195
+ restore, adopt or execute a historical session. Secrets provides versioned,
196
+ namespaced storage, not sign-in authority. Runtime dependency installation is
197
+ an explicit host operation; a session form answer alone does not authorize it.
198
+ Providers determine availability and enforce these boundaries.
199
+
200
+ Models providers resolve `{ provider, id }` against the current authenticated,
201
+ allowed scope on every call. Selection metadata never grants endpoint or
202
+ credential authority. Providers own activation, cancellation and settlement;
203
+ discovery may run during extension registration, but inference must wait for
204
+ canonical session activation. Draining prevents new inference while joining
205
+ existing work.
206
+
207
+ Secrets exposes `read`, conditional `write`, and conditional `remove` within
208
+ provider-granted namespaces. `expectedVersion: null` creates only an absent
209
+ record. Versions are opaque content identities, not monotonic counters or
210
+ authorization tokens. Keep values out of model results, UI, logs and events;
211
+ storage access never grants permission to start an OAuth flow.
212
+
213
+ Every extension receives `pi.ui`. It publishes bounded generic statuses,
214
+ documents, views and progress, and requests forms with explicit action IDs.
215
+ Applications supply `createExtensionUi(packageName)` to session composition;
216
+ the package-specific binding owns validation, revisions, action dispatch and
217
+ cleanup. A missing binding returns an unsupported cancellation for requests
218
+ and rejects publication; it does not silently approve or discard an action.
219
+ Presentation hints are optional and never change the allowed values or
220
+ outcomes. Terminal components belong in an explicit client entrypoint, not
221
+ the portable default export.
222
+
223
+ Form requests default to the current session. `audience: 'owner'` requests an
224
+ owner-only session approval, such as existing-Chrome access;
225
+ `audience: 'host'` requests a local-console host interaction, such as MCP sign-in
226
+ or installation consent. The daemon applies authenticated identity, transport
227
+ authority, capabilities and host policy. TUI and ACP clients with equivalent
228
+ capabilities have equivalent eligibility; neither a client-kind label nor a
229
+ presenter hint grants authority.
230
+
231
+ Extension execution contributions also travel with the configured default
232
+ export. Importers must preserve their configuration and execution metadata;
233
+ they must not separately apply a provider-specific stream wrapper a second
234
+ time. Application policy still controls activation and the final tool loadout.
235
+
172
236
  Agent Core owns the exact Pi dependency versions used by its consumers. Its
173
237
  public entry point exposes the Pi model, credential, streaming, session,
174
238
  resource, skill, tool, and context-inspection symbols needed to compose Felan applications, so
@@ -182,6 +246,13 @@ does not enable it automatically. Felan's local host supports `codemode.mode`
182
246
  values `off`, `on`, and `only`, defaults to `off`, and disables the sandbox's
183
247
  extra model helpers with `models: false`.
184
248
 
249
+ Agent Core 0.13 follows Pi 1.1's public contracts. Extension integrations must
250
+ handle `aborted` on `agent_settled` events, include `durationMs` and `outputPad`
251
+ when implementing Pi tool-render callbacks, and provide
252
+ `ToolLoadout.getPromptGuidelines()`. Custom stream functions should return an
253
+ `AssistantMessageEventStream`, typically created by
254
+ `createAssistantMessageEventStream()`.
255
+
185
256
  Agent Core also exposes shared `xhigh`, `high`, `medium`, and `low` model tiers for
186
257
  extensions that need model-strength selection:
187
258
 
@@ -1,10 +1,11 @@
1
+ import type { Api, Model } from '@earendil-works/pi-ai';
1
2
  import type { InlineExtension } from '@earendil-works/pi-coding-agent';
2
3
  import { type TurnClassificationRegistry } from '../classifier/turn-classification.js';
3
4
  import type { AgentRuntime } from '../runtime.js';
4
5
  import type { SavingsReporter } from '../savings.js';
5
6
  import type { ModelSelectionPersistenceScope } from '../model-selection.js';
6
7
  export declare const DYNAMIC_THINKING_PRODUCER = "@felan-ai/agent-core/dynamic-thinking";
7
- export declare function createDynamicThinkingSession(runtime: AgentRuntime, codexEffortUpdatesAvailable: boolean, reporter?: SavingsReporter, options?: {
8
+ export declare function createDynamicThinkingSession(runtime: AgentRuntime, supportsNativeThinkingUpdates: (model: Model<Api>) => boolean, reporter?: SavingsReporter, options?: {
8
9
  selectionScope?: ModelSelectionPersistenceScope;
9
10
  turnClassification?: TurnClassificationRegistry;
10
11
  }): InlineExtension;
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/dynamic-thinking/session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAoC,KAAK,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AACzH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAK5E,eAAO,MAAM,yBAAyB,0CAA0C,CAAC;AAEjF,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,YAAY,EACrB,2BAA2B,EAAE,OAAO,EACpC,QAAQ,CAAC,EAAE,eAAe,EAC1B,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,8BAA8B,CAAC;IAAC,kBAAkB,CAAC,EAAE,0BAA0B,CAAA;CAAO,GACjH,eAAe,CA6HjB"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/dynamic-thinking/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAoB,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAoC,KAAK,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AACzH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAK5E,eAAO,MAAM,yBAAyB,0CAA0C,CAAC;AAEjF,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,YAAY,EACrB,6BAA6B,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,EAC7D,QAAQ,CAAC,EAAE,eAAe,EAC1B,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,8BAA8B,CAAC;IAAC,kBAAkB,CAAC,EAAE,0BAA0B,CAAA;CAAO,GACjH,eAAe,CA6HjB"}
@@ -3,7 +3,7 @@ import { isFelanThinkingLevel } from '../thinking.js';
3
3
  import { reportDynamicThinkingSavings } from './savings.js';
4
4
  import { dynamicThinkingQuestion, dynamicThinkingDecision, supportsDynamicThinking } from './selection.js';
5
5
  export const DYNAMIC_THINKING_PRODUCER = '@felan-ai/agent-core/dynamic-thinking';
6
- export function createDynamicThinkingSession(runtime, codexEffortUpdatesAvailable, reporter, options = {}) {
6
+ export function createDynamicThinkingSession(runtime, supportsNativeThinkingUpdates, reporter, options = {}) {
7
7
  const classifier = runtime.classifier;
8
8
  if (!classifier)
9
9
  throw new Error('Dynamic thinking requires a classifier');
@@ -12,8 +12,8 @@ export function createDynamicThinkingSession(runtime, codexEffortUpdatesAvailabl
12
12
  let expectedLevel;
13
13
  let lastAutomaticLevel;
14
14
  let pendingSavings;
15
- const canClassify = (api) => (api !== 'openai-codex-responses' && api !== 'openai-responses')
16
- || codexEffortUpdatesAvailable;
15
+ const canClassify = (model) => (model.api !== 'openai-codex-responses' && model.api !== 'openai-responses')
16
+ || supportsNativeThinkingUpdates(model);
17
17
  const local = options.turnClassification ? undefined : createTurnClassificationRegistry(classifier, runtime.logger);
18
18
  const registry = options.turnClassification ?? local;
19
19
  let prepared;
@@ -51,7 +51,7 @@ export function createDynamicThinkingSession(runtime, codexEffortUpdatesAvailabl
51
51
  prepare(input, ctx) {
52
52
  prepared = undefined;
53
53
  if (!input.prompt.trim() || options.selectionScope?.owner || manualOverride || lifetime.signal.aborted
54
- || !supportsDynamicThinking(ctx.model) || !canClassify(ctx.model.api))
54
+ || !supportsDynamicThinking(ctx.model) || !canClassify(ctx.model))
55
55
  return undefined;
56
56
  const original = pi.getThinkingLevel();
57
57
  if (lastAutomaticLevel !== undefined && original !== lastAutomaticLevel) {
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/dynamic-thinking/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/dynamic-thinking/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { type ExtensionConfigDefinition, type ExtensionConfigValue } from './extension-config.js';
2
+ export type ExtensionConfigWriter = (packageName: string, patch: Readonly<Record<string, ExtensionConfigValue>>) => Promise<void>;
3
+ export declare function createExtensionConfigBinding(packageName: string, definition: ExtensionConfigDefinition | undefined, writer: ExtensionConfigWriter | undefined): () => {
4
+ updateConfig(patch: Readonly<Record<string, ExtensionConfigValue>>): Promise<void>;
5
+ revoke(): void;
6
+ };
7
+ //# sourceMappingURL=extension-config-write.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension-config-write.d.ts","sourceRoot":"","sources":["../src/extension-config-write.ts"],"names":[],"mappings":"AAAA,OAAO,EACoB,KAAK,yBAAyB,EAAE,KAAK,oBAAoB,EACnF,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,qBAAqB,GAAG,CAClC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,KAClD,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,yBAAyB,GAAG,SAAS,EACjD,MAAM,EAAE,qBAAqB,GAAG,SAAS,GACxC,MAAM;IAAE,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,MAAM,IAAI,IAAI,CAAA;CAAE,CAyB9G"}
@@ -0,0 +1,52 @@
1
+ import { resolveExtensionConfigs, } from './extension-config.js';
2
+ export function createExtensionConfigBinding(packageName, definition, writer) {
3
+ let generation = 0;
4
+ let pending = Promise.resolve();
5
+ return () => {
6
+ const activation = ++generation;
7
+ const assertCurrent = () => {
8
+ if (activation !== generation)
9
+ throw new Error('Extension configuration binding is no longer active.');
10
+ };
11
+ return {
12
+ revoke() { if (generation === activation)
13
+ generation++; },
14
+ async updateConfig(patch) {
15
+ assertCurrent();
16
+ if (!writer)
17
+ throw new Error('Extension configuration persistence is unsupported without a configured writer.');
18
+ if (!definition)
19
+ throw new Error('This extension does not declare a configuration definition.');
20
+ const validated = validatePatch(definition, patch);
21
+ const work = pending.then(async () => {
22
+ assertCurrent();
23
+ await writer(packageName, validated);
24
+ assertCurrent();
25
+ });
26
+ pending = work.catch(() => { });
27
+ return work;
28
+ },
29
+ };
30
+ };
31
+ }
32
+ function validatePatch(definition, patch) {
33
+ if (!patch || typeof patch !== 'object' || Array.isArray(patch)
34
+ || (Object.getPrototypeOf(patch) !== Object.prototype && Object.getPrototypeOf(patch) !== null)) {
35
+ throw new Error('Extension configuration patch must be a plain object.');
36
+ }
37
+ const values = Object.create(null);
38
+ const keys = Reflect.ownKeys(patch);
39
+ for (const key of keys) {
40
+ if (typeof key !== 'string' || !Object.hasOwn(definition.fields, key))
41
+ throw new Error('Unknown extension configuration field.');
42
+ if (definition.fields[key].sensitive)
43
+ throw new Error('Sensitive extension configuration fields cannot be updated through this API.');
44
+ const descriptor = Object.getOwnPropertyDescriptor(patch, key);
45
+ if (!descriptor.enumerable || !('value' in descriptor))
46
+ throw new Error('Extension configuration fields must be enumerable data properties.');
47
+ values[key] = descriptor.value;
48
+ }
49
+ const resolved = resolveExtensionConfigs([definition], [{ extensionId: definition.id, values, source: 'extension configuration update' }]).get(definition.id);
50
+ return Object.freeze(Object.fromEntries(keys.map(key => [key, resolved[key]])));
51
+ }
52
+ //# sourceMappingURL=extension-config-write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension-config-write.js","sourceRoot":"","sources":["../src/extension-config-write.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import type { UiActionRequest, UiActionSource, UiFormAnswer, UiForm, UiStatus } from '@felan-ai/session-protocol';
2
+ export type UiCancelReason = 'user' | 'abort' | 'timeout' | 'unsupported' | 'drain' | 'restart';
3
+ export type UiRequestResult = {
4
+ readonly state: 'answered';
5
+ readonly answer: UiFormAnswer;
6
+ } | {
7
+ readonly state: 'deferred';
8
+ readonly interactionId: string;
9
+ } | {
10
+ readonly state: 'cancelled';
11
+ readonly reason: UiCancelReason;
12
+ };
13
+ export interface UiActionContext {
14
+ readonly requestId: string;
15
+ readonly signal: AbortSignal;
16
+ }
17
+ export type UiInteractiveElement = UiActionSource;
18
+ export interface UiElementHandle {
19
+ update(element: UiInteractiveElement): Promise<void>;
20
+ close(): Promise<void>;
21
+ }
22
+ export interface UiRequestOptions {
23
+ readonly signal?: AbortSignal;
24
+ readonly timeoutMs?: number;
25
+ readonly deferrable?: boolean;
26
+ /** Host-only: keeps the form out of durable state; answer admission remains durable, so do not collect secrets. */
27
+ readonly transient?: boolean;
28
+ readonly audience?: 'session' | 'owner' | 'host';
29
+ }
30
+ export interface UiPresentOptions {
31
+ readonly signal?: AbortSignal;
32
+ readonly onAction?: (request: UiActionRequest, context: UiActionContext) => Promise<void>;
33
+ }
34
+ export interface ExtensionUi {
35
+ /** Current presentation availability only; this does not grant consent or authorization. */
36
+ canRequest(form: UiForm, options?: Pick<UiRequestOptions, 'audience'>): boolean;
37
+ notify(message: {
38
+ readonly level: 'info' | 'warning' | 'error';
39
+ readonly text: string;
40
+ }): Promise<void>;
41
+ status(item: UiStatus): Promise<void>;
42
+ removeStatus(id: string): Promise<void>;
43
+ request(form: UiForm, options?: UiRequestOptions): Promise<UiRequestResult>;
44
+ present(element: UiInteractiveElement, options?: UiPresentOptions): Promise<UiElementHandle>;
45
+ }
46
+ export type ExtensionUiBindingFactory = (packageName: string) => ExtensionUi;
47
+ export declare class ExtensionUiUnavailableError extends Error {
48
+ constructor();
49
+ }
50
+ export declare function createUnavailableExtensionUi(): ExtensionUi;
51
+ //# sourceMappingURL=extension-ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension-ui.d.ts","sourceRoot":"","sources":["../src/extension-ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,YAAY,EACZ,MAAM,EACN,QAAQ,EACT,MAAM,4BAA4B,CAAC;AAEpC,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;AAEhG,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAC9D;IAAE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;CAAE,CAAC;AAErE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAC9B;AAED,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC;AAElD,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,mHAAmH;IACnH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;CAClD;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3F;AAED,MAAM,WAAW,WAAW;IAC1B,4FAA4F;IAC5F,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC;IAChF,MAAM,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxG,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5E,OAAO,CAAC,OAAO,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC9F;AAED,MAAM,MAAM,yBAAyB,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,WAAW,CAAC;AAE7E,qBAAa,2BAA4B,SAAQ,KAAK;;CAKrD;AAED,wBAAgB,4BAA4B,IAAI,WAAW,CAc1D"}
@@ -0,0 +1,22 @@
1
+ export class ExtensionUiUnavailableError extends Error {
2
+ constructor() {
3
+ super('Extension UI is unavailable in this host.');
4
+ this.name = 'ExtensionUiUnavailableError';
5
+ }
6
+ }
7
+ export function createUnavailableExtensionUi() {
8
+ const unavailable = async () => { throw new ExtensionUiUnavailableError(); };
9
+ const ui = {
10
+ canRequest: () => false,
11
+ notify: unavailable,
12
+ status: unavailable,
13
+ removeStatus: unavailable,
14
+ request: async (_form, options) => ({
15
+ state: 'cancelled',
16
+ reason: options?.signal?.aborted ? 'abort' : 'unsupported',
17
+ }),
18
+ present: unavailable,
19
+ };
20
+ return Object.freeze(ui);
21
+ }
22
+ //# sourceMappingURL=extension-ui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension-ui.js","sourceRoot":"","sources":["../src/extension-ui.ts"],"names":[],"mappings":"AAqDA,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpD;QACE,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF;AAED,MAAM,UAAU,4BAA4B;IAC1C,MAAM,WAAW,GAAG,KAAK,IAAoB,EAAE,GAAG,MAAM,IAAI,2BAA2B,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7F,MAAM,EAAE,GAAgB;QACtB,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK;QACvB,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,WAAW;QACnB,YAAY,EAAE,WAAW;QACzB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YAClC,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa;SAC3D,CAAC;QACF,OAAO,EAAE,WAAW;KACrB,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC3B,CAAC"}
@@ -1,10 +1,16 @@
1
1
  import type { ExtensionAPI, InlineExtension } from '@earendil-works/pi-coding-agent';
2
2
  import type { AgentRuntime } from './runtime.js';
3
+ import type { Api, Model } from '@earendil-works/pi-ai';
4
+ import type { StreamFunction } from './session.js';
3
5
  import type { TurnClassificationRegistry } from './classifier/turn-classification.js';
4
6
  import type { ModelSelectionPersistenceScope, SessionSelectionAutomation } from './model-selection.js';
5
7
  import type { SavingsReporter, SavingsReporterProvider } from './savings.js';
8
+ import { type ExtensionUi, type ExtensionUiBindingFactory } from './extension-ui.js';
9
+ import { type ExtensionConfigWriter } from './extension-config-write.js';
10
+ import { type ExtensionServiceAccess, type ExtensionServiceRequirements, type FelanServiceRegistry } from './services.js';
6
11
  import { type FelanCapability } from './capabilities.js';
7
12
  import { type ExtensionConfigDefinition, type ExtensionConfigOverride, type ExtensionConfigValue } from './extension-config.js';
13
+ export type { ExtensionConfigWriter } from './extension-config-write.js';
8
14
  export interface FelanModelSelectionOptions {
9
15
  readonly updateDefault?: boolean;
10
16
  }
@@ -13,6 +19,9 @@ export interface FelanExtensionAPI extends Omit<ExtensionAPI, 'getFlag' | 'regis
13
19
  readonly runtime: AgentRuntime;
14
20
  readonly config: Readonly<Record<string, ExtensionConfigValue>>;
15
21
  readonly savings?: SavingsReporter;
22
+ readonly services: ExtensionServiceAccess;
23
+ readonly ui: ExtensionUi;
24
+ updateConfig(patch: Readonly<Record<string, ExtensionConfigValue>>): Promise<void>;
16
25
  readonly turnClassification?: TurnClassificationRegistry;
17
26
  readonly selectionAutomation?: SessionSelectionAutomation;
18
27
  registerCapability(capability: FelanCapability): void;
@@ -22,9 +31,22 @@ export interface FelanExtensionAPI extends Omit<ExtensionAPI, 'getFlag' | 'regis
22
31
  export type FelanExtension = (pi: FelanExtensionAPI) => void | Promise<void>;
23
32
  export interface ConfiguredFelanExtension extends FelanExtension {
24
33
  readonly configDefinition?: ExtensionConfigDefinition;
34
+ readonly serviceRequirements?: ExtensionServiceRequirements;
35
+ /** Resolved once per package load, after config validation and required-service admission. */
36
+ readonly execution?: (context: FelanExecutionContext) => FelanExecutionContribution;
25
37
  }
38
+ export interface FelanExecutionContext {
39
+ readonly config: Readonly<Record<string, ExtensionConfigValue>>;
40
+ readonly services: ExtensionServiceAccess;
41
+ }
42
+ export interface FelanExecutionContribution {
43
+ /** Applied in package order, before the caller's wrapStreamFunction. */
44
+ readonly wrapStreamFunction?: (original: StreamFunction) => StreamFunction;
45
+ readonly supportsNativeThinkingUpdates?: (model: Model<Api>) => boolean;
46
+ }
47
+ export declare function getExecutionContribution(extension: InlineExtension): FelanExecutionContribution | undefined;
26
48
  export type ExtensionPackageImporter = (packageName: string) => Promise<unknown>;
27
- export declare function bindFelanExtension(packageName: string, extension: FelanExtension, runtime: AgentRuntime, agentDir?: string, config?: Readonly<Record<string, ExtensionConfigValue>>, savings?: SavingsReporterProvider): InlineExtension;
28
- export declare function loadFelanExtensions(packageNames: readonly string[], importExtension: ExtensionPackageImporter, runtime: AgentRuntime, agentDir?: string, configOverrides?: readonly ExtensionConfigOverride[], savings?: SavingsReporterProvider): Promise<InlineExtension[]>;
29
- export declare function loadFelanSessionExtensions(packageNames: readonly string[], importExtension: ExtensionPackageImporter, runtime: AgentRuntime, agentDir: string, modelSelectionScope: ModelSelectionPersistenceScope, configOverrides?: readonly ExtensionConfigOverride[], savings?: SavingsReporterProvider, turnClassification?: TurnClassificationRegistry): Promise<InlineExtension[]>;
49
+ export declare function bindFelanExtension(packageName: string, extension: FelanExtension, runtime: AgentRuntime, agentDir?: string, config?: Readonly<Record<string, ExtensionConfigValue>>, savings?: SavingsReporterProvider, services?: FelanServiceRegistry, serviceRequirements?: ExtensionServiceRequirements, createExtensionUi?: ExtensionUiBindingFactory, updateExtensionConfig?: ExtensionConfigWriter): InlineExtension;
50
+ export declare function loadFelanExtensions(packageNames: readonly string[], importExtension: ExtensionPackageImporter, runtime: AgentRuntime, agentDir?: string, configOverrides?: readonly ExtensionConfigOverride[], savings?: SavingsReporterProvider, services?: FelanServiceRegistry, onServiceRequirementFailure?: (packageName: string, service: string) => void, createExtensionUi?: ExtensionUiBindingFactory, updateExtensionConfig?: ExtensionConfigWriter): Promise<InlineExtension[]>;
51
+ export declare function loadFelanSessionExtensions(packageNames: readonly string[], importExtension: ExtensionPackageImporter, runtime: AgentRuntime, agentDir: string, modelSelectionScope: ModelSelectionPersistenceScope, configOverrides?: readonly ExtensionConfigOverride[], savings?: SavingsReporterProvider, turnClassification?: TurnClassificationRegistry, services?: FelanServiceRegistry, onServiceRequirementFailure?: (packageName: string, service: string) => void, createExtensionUi?: ExtensionUiBindingFactory, updateExtensionConfig?: ExtensionConfigWriter): Promise<InlineExtension[]>;
30
52
  //# sourceMappingURL=extensions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,29 @@
1
+ import { createUnavailableExtensionUi } from './extension-ui.js';
2
+ import { createExtensionConfigBinding } from './extension-config-write.js';
3
+ import { createExtensionServiceAccess, createFelanServiceRegistry } from './services.js';
1
4
  import { associateCapabilityCollector, CapabilityCollector, } from './capabilities.js';
2
5
  import { getExtensionConfigDefinition, resolveExtensionConfigs, } from './extension-config.js';
3
- export function bindFelanExtension(packageName, extension, runtime, agentDir = runtime.cwd, config = {}, savings) {
4
- return bindFelanExtensionWithCapabilities(packageName, extension, runtime, agentDir, new CapabilityCollector(), true, undefined, config, savings);
6
+ const executionContributions = new WeakMap();
7
+ export function getExecutionContribution(extension) {
8
+ const entry = executionContributions.get(extension);
9
+ return entry?.initialized ? entry.contribution : undefined;
5
10
  }
6
- function bindFelanExtensionWithCapabilities(packageName, extension, runtime, agentDir, capabilityCollector, resetCapabilities, modelSelectionScope, config, savings, turnClassification) {
11
+ export function bindFelanExtension(packageName, extension, runtime, agentDir = runtime.cwd, config = {}, savings, services = createFelanServiceRegistry(), serviceRequirements = {}, createExtensionUi, updateExtensionConfig) {
12
+ return bindFelanExtensionWithCapabilities(packageName, extension, runtime, agentDir, new CapabilityCollector(), true, undefined, config, savings, undefined, services, serviceRequirements, createExtensionUi, updateExtensionConfig);
13
+ }
14
+ function bindFelanExtensionWithCapabilities(packageName, extension, runtime, agentDir, capabilityCollector, resetCapabilities, modelSelectionScope, config, savings, turnClassification, services = createFelanServiceRegistry(), serviceRequirements = {}, createExtensionUi, updateExtensionConfig) {
15
+ const createConfigBinding = createExtensionConfigBinding(packageName, getExtensionConfigDefinition(extension), updateExtensionConfig);
16
+ const contribution = extension.execution?.({
17
+ config,
18
+ services: createExtensionServiceAccess(services, serviceRequirements),
19
+ });
20
+ const execution = contribution === undefined ? undefined : { contribution, initialized: false };
7
21
  const inline = {
8
22
  name: packageName,
9
23
  factory: async (pi) => {
24
+ const configBinding = createConfigBinding();
25
+ if (execution)
26
+ execution.initialized = false;
10
27
  if (resetCapabilities)
11
28
  capabilityCollector.beginLoad();
12
29
  let initializing = true;
@@ -17,23 +34,33 @@ function bindFelanExtensionWithCapabilities(packageName, extension, runtime, age
17
34
  capabilityCollector.register(packageName, capability);
18
35
  };
19
36
  try {
20
- await extension(createFelanExtensionAPI(pi, runtime, agentDir, registerCapability, modelSelectionScope, config, savings?.createReporter(packageName), turnClassification));
37
+ await extension(createFelanExtensionAPI(pi, runtime, agentDir, registerCapability, modelSelectionScope, config, savings?.createReporter(packageName), turnClassification, services, serviceRequirements, createExtensionUi ? createExtensionUi(packageName) : createUnavailableExtensionUi(), configBinding.updateConfig));
38
+ if (updateExtensionConfig)
39
+ pi.on('session_shutdown', () => { configBinding.revoke(); });
40
+ if (execution)
41
+ execution.initialized = true;
42
+ }
43
+ catch (error) {
44
+ configBinding.revoke();
45
+ throw error;
21
46
  }
22
47
  finally {
23
48
  initializing = false;
24
49
  }
25
50
  },
26
51
  };
52
+ if (execution)
53
+ executionContributions.set(inline, execution);
27
54
  associateCapabilityCollector(inline, capabilityCollector);
28
55
  return inline;
29
56
  }
30
- export async function loadFelanExtensions(packageNames, importExtension, runtime, agentDir = runtime.cwd, configOverrides = [], savings) {
31
- return loadFelanExtensionsWithScope(packageNames, importExtension, runtime, agentDir, undefined, configOverrides, savings);
57
+ export async function loadFelanExtensions(packageNames, importExtension, runtime, agentDir = runtime.cwd, configOverrides = [], savings, services, onServiceRequirementFailure, createExtensionUi, updateExtensionConfig) {
58
+ return loadFelanExtensionsWithScope(packageNames, importExtension, runtime, agentDir, undefined, configOverrides, savings, undefined, services, onServiceRequirementFailure, createExtensionUi, updateExtensionConfig);
32
59
  }
33
- export async function loadFelanSessionExtensions(packageNames, importExtension, runtime, agentDir, modelSelectionScope, configOverrides = [], savings, turnClassification) {
34
- return loadFelanExtensionsWithScope(packageNames, importExtension, runtime, agentDir, modelSelectionScope, configOverrides, savings, turnClassification);
60
+ export async function loadFelanSessionExtensions(packageNames, importExtension, runtime, agentDir, modelSelectionScope, configOverrides = [], savings, turnClassification, services, onServiceRequirementFailure, createExtensionUi, updateExtensionConfig) {
61
+ return loadFelanExtensionsWithScope(packageNames, importExtension, runtime, agentDir, modelSelectionScope, configOverrides, savings, turnClassification, services, onServiceRequirementFailure, createExtensionUi, updateExtensionConfig);
35
62
  }
36
- async function loadFelanExtensionsWithScope(packageNames, importExtension, runtime, agentDir, modelSelectionScope, configOverrides, savings, turnClassification) {
63
+ async function loadFelanExtensionsWithScope(packageNames, importExtension, runtime, agentDir, modelSelectionScope, configOverrides, savings, turnClassification, services, onServiceRequirementFailure, createExtensionUi, updateExtensionConfig) {
37
64
  const seen = new Set();
38
65
  const extensions = [];
39
66
  const capabilityCollector = new CapabilityCollector();
@@ -64,15 +91,21 @@ async function loadFelanExtensionsWithScope(packageNames, importExtension, runti
64
91
  throw new Error(`${packageName} must default-export a Felan extension`);
65
92
  }
66
93
  const configuredExtension = defaultExport;
94
+ const serviceRequirements = configuredExtension.serviceRequirements ?? {};
95
+ const missing = (serviceRequirements.required ?? []).find(contract => services?.get(contract) === undefined);
96
+ if (missing) {
97
+ onServiceRequirementFailure?.(packageName, missing.key);
98
+ continue;
99
+ }
67
100
  const definition = getExtensionConfigDefinition(configuredExtension);
68
101
  const config = definition === undefined
69
102
  ? {}
70
103
  : resolveExtensionConfigs([definition], configOverrides.filter(({ extensionId }) => extensionId === definition.id)).get(definition.id);
71
- extensions.push(bindFelanExtensionWithCapabilities(packageName, defaultExport, runtime, agentDir, capabilityCollector, extensions.length === 0, modelSelectionScope, config, savings, turnClassification));
104
+ extensions.push(bindFelanExtensionWithCapabilities(packageName, defaultExport, runtime, agentDir, capabilityCollector, extensions.length === 0, modelSelectionScope, config, savings, turnClassification, services, serviceRequirements, createExtensionUi, updateExtensionConfig));
72
105
  }
73
106
  return extensions;
74
107
  }
75
- function createFelanExtensionAPI(pi, runtime, agentDir, registerCapability, modelSelectionScope, config, savings, turnClassification) {
108
+ function createFelanExtensionAPI(pi, runtime, agentDir, registerCapability, modelSelectionScope, config, savings, turnClassification, services = createFelanServiceRegistry(), serviceRequirements = {}, ui = createUnavailableExtensionUi(), updateConfig = async () => { throw new Error('Extension configuration persistence is unsupported.'); }) {
76
109
  const boundMethods = new Map();
77
110
  return new Proxy(pi, {
78
111
  get(target, property) {
@@ -82,10 +115,16 @@ function createFelanExtensionAPI(pi, runtime, agentDir, registerCapability, mode
82
115
  return runtime;
83
116
  if (property === 'config')
84
117
  return config;
118
+ if (property === 'updateConfig')
119
+ return updateConfig;
85
120
  if (property === 'savings')
86
121
  return savings;
87
122
  if (property === 'turnClassification')
88
123
  return turnClassification;
124
+ if (property === 'services')
125
+ return createExtensionServiceAccess(services, serviceRequirements);
126
+ if (property === 'ui')
127
+ return ui;
89
128
  if (property === 'selectionAutomation')
90
129
  return modelSelectionScope;
91
130
  if (property === 'registerCapability') {
@@ -138,13 +177,19 @@ function createFelanExtensionAPI(pi, runtime, agentDir, registerCapability, mode
138
177
  if (property === 'agentDir'
139
178
  || property === 'runtime'
140
179
  || property === 'config'
180
+ || property === 'updateConfig'
141
181
  || property === 'savings'
142
182
  || property === 'turnClassification'
183
+ || property === 'services'
184
+ || property === 'ui'
143
185
  || property === 'selectionAutomation'
144
186
  || property === 'registerCapability')
145
187
  return false;
146
188
  return Reflect.set(target, property, value, target);
147
189
  },
190
+ has(target, property) {
191
+ return property === 'ui' || property === 'updateConfig' || Reflect.has(target, property);
192
+ },
148
193
  });
149
194
  }
150
195
  function getDefaultExport(imported) {
@@ -1 +1 @@
1
- {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,4BAA4B,EAAoD,MAAM,mBAAmB,CAAC;AACnH,OAAO,EAAE,4BAA4B,EAA8B,MAAM,6BAA6B,CAAC;AACvG,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAA6F,MAAM,eAAe,CAAC;AACpL,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,GAEpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAIL,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAmD/B,MAAM,sBAAsB,GAAG,IAAI,OAAO,EAGtC,CAAC;AAEL,MAAM,UAAU,wBAAwB,CAAC,SAA0B;IACjE,MAAM,KAAK,GAAG,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACpD,OAAO,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7D,CAAC;AAMD,MAAM,UAAU,kBAAkB,CAChC,WAAmB,EACnB,SAAyB,EACzB,OAAqB,EACrB,WAAmB,OAAO,CAAC,GAAG,EAC9B,SAAyD,EAAE,EAC3D,OAAiC,EACjC,WAAiC,0BAA0B,EAAE,EAC7D,sBAAoD,EAAE,EACtD,iBAA6C,EAC7C,qBAA6C;IAE7C,OAAO,kCAAkC,CACvC,WAAW,EACX,SAAS,EACT,OAAO,EACP,QAAQ,EACR,IAAI,mBAAmB,EAAE,EACzB,IAAI,EACJ,SAAS,EACT,MAAM,EACN,OAAO,EACP,SAAS,EACT,QAAQ,EACR,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,CACtB,CAAC;AACJ,CAAC;AAED,SAAS,kCAAkC,CACzC,WAAmB,EACnB,SAAyB,EACzB,OAAqB,EACrB,QAAgB,EAChB,mBAAwC,EACxC,iBAA0B,EAC1B,mBAA+D,EAC/D,MAAsD,EACtD,OAA4C,EAC5C,kBAA+C,EAC/C,WAAiC,0BAA0B,EAAE,EAC7D,sBAAoD,EAAE,EACtD,iBAA6C,EAC7C,qBAA6C;IAE7C,MAAM,mBAAmB,GAAG,4BAA4B,CAAC,WAAW,EAAE,4BAA4B,CAAC,SAAS,CAAC,EAAE,qBAAqB,CAAC,CAAC;IACtI,MAAM,YAAY,GAAI,SAAsC,CAAC,SAAS,EAAE,CAAC;QACvE,MAAM;QACN,QAAQ,EAAE,4BAA4B,CAAC,QAAQ,EAAE,mBAAmB,CAAC;KACtE,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAChG,MAAM,MAAM,GAAoB;QAC9B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YACpB,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAC;YAC5C,IAAI,SAAS;gBAAE,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC;YAC7C,IAAI,iBAAiB;gBAAE,mBAAmB,CAAC,SAAS,EAAE,CAAC;YACvD,IAAI,YAAY,GAAG,IAAI,CAAC;YACxB,MAAM,kBAAkB,GAAG,CAAC,UAA2B,EAAQ,EAAE;gBAC/D,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,MAAM,IAAI,KAAK,CAAC,gCAAgC,WAAW,0CAA0C,CAAC,CAAC;gBACzG,CAAC;gBACD,mBAAmB,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YACxD,CAAC,CAAC;YACF,IAAI,CAAC;gBACH,MAAM,SAAS,CAAC,uBAAuB,CACrC,EAAE,EACF,OAAO,EACP,QAAQ,EACR,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,EACN,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,EACpC,kBAAkB,EAClB,QAAQ,EACR,mBAAmB,EACnB,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,4BAA4B,EAAE,EACnF,aAAa,CAAC,YAAY,CAC3B,CAAC,CAAC;gBACH,IAAI,qBAAqB;oBAAE,EAAE,CAAC,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxF,IAAI,SAAS;oBAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;YAC9C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,aAAa,CAAC,MAAM,EAAE,CAAC;gBACvB,MAAM,KAAK,CAAC;YACd,CAAC;oBAAS,CAAC;gBACT,YAAY,GAAG,KAAK,CAAC;YACvB,CAAC;QACH,CAAC;KACF,CAAC;IACF,IAAI,SAAS;QAAE,sBAAsB,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC7D,4BAA4B,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC1D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,YAA+B,EAC/B,eAAyC,EACzC,OAAqB,EACrB,WAAmB,OAAO,CAAC,GAAG,EAC9B,kBAAsD,EAAE,EACxD,OAAiC,EACjC,QAA+B,EAC/B,2BAA4E,EAC5E,iBAA6C,EAC7C,qBAA6C;IAE7C,OAAO,4BAA4B,CACjC,YAAY,EACZ,eAAe,EACf,OAAO,EACP,QAAQ,EACR,SAAS,EACT,eAAe,EACf,OAAO,EACP,SAAS,EACT,QAAQ,EACR,2BAA2B,EAC3B,iBAAiB,EACjB,qBAAqB,CACtB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,YAA+B,EAC/B,eAAyC,EACzC,OAAqB,EACrB,QAAgB,EAChB,mBAAmD,EACnD,kBAAsD,EAAE,EACxD,OAAiC,EACjC,kBAA+C,EAC/C,QAA+B,EAC/B,2BAA4E,EAC5E,iBAA6C,EAC7C,qBAA6C;IAE7C,OAAO,4BAA4B,CACjC,YAAY,EACZ,eAAe,EACf,OAAO,EACP,QAAQ,EACR,mBAAmB,EACnB,eAAe,EACf,OAAO,EACP,kBAAkB,EAClB,QAAQ,EACR,2BAA2B,EAC3B,iBAAiB,EACjB,qBAAqB,CACtB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,4BAA4B,CACzC,YAA+B,EAC/B,eAAyC,EACzC,OAAqB,EACrB,QAAgB,EAChB,mBAA+D,EAC/D,eAAmD,EACnD,OAA4C,EAC5C,kBAA+C,EAC/C,QAA+B,EAC/B,2BAA4E,EAC5E,iBAA6C,EAC7C,qBAA6C;IAE7C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,UAAU,GAAsB,EAAE,CAAC;IACzC,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAEtD,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,sCAAsC,WAAW,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAEtB,IAAI,QAAiB,CAAC;QACtB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,oCAAoC,WAAW,KAAK,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE;gBACzF,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;QACL,CAAC;QAED,IAAI,aAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,qCAAqC,WAAW,KAAK,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE;gBAC1F,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;QACL,CAAC;QACD,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,GAAG,WAAW,wCAAwC,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,mBAAmB,GAAG,aAAyC,CAAC;QACtE,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,mBAAmB,IAAI,EAAE,CAAC;QAC1E,MAAM,OAAO,GAAG,CAAC,mBAAmB,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC,CAAC;QAC7G,IAAI,OAAO,EAAE,CAAC;YACZ,2BAA2B,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YACxD,SAAS;QACX,CAAC;QACD,MAAM,UAAU,GAAG,4BAA4B,CAAC,mBAAmB,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,UAAU,KAAK,SAAS;YACrC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,uBAAuB,CAAC,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW,KAAK,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAE,CAAC;QAC1I,UAAU,CAAC,IAAI,CAAC,kCAAkC,CAChD,WAAW,EACX,aAA+B,EAC/B,OAAO,EACP,QAAQ,EACR,mBAAmB,EACnB,UAAU,CAAC,MAAM,KAAK,CAAC,EACvB,mBAAmB,EACnB,MAAM,EACN,OAAO,EACP,kBAAkB,EAClB,QAAQ,EACR,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,CACtB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,uBAAuB,CAC9B,EAAgB,EAChB,OAAqB,EACrB,QAAgB,EAChB,kBAAyD,EACzD,mBAA+D,EAC/D,MAAsD,EACtD,OAAoC,EACpC,kBAA+C,EAC/C,WAAiC,0BAA0B,EAAE,EAC7D,sBAAoD,EAAE,EACtD,KAAkB,4BAA4B,EAAE,EAChD,eAAkD,KAAK,IAAI,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC,CAAC,CAAC;IAEzI,MAAM,YAAY,GAAG,IAAI,GAAG,EAAwB,CAAC;IAErD,OAAO,IAAI,KAAK,CAAC,EAAkC,EAAE;QACnD,GAAG,CAAC,MAAM,EAAE,QAAQ;YAClB,IAAI,QAAQ,KAAK,UAAU;gBAAE,OAAO,QAAQ,CAAC;YAC7C,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC;YAC3C,IAAI,QAAQ,KAAK,QAAQ;gBAAE,OAAO,MAAM,CAAC;YACzC,IAAI,QAAQ,KAAK,cAAc;gBAAE,OAAO,YAAY,CAAC;YACrD,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC;YAC3C,IAAI,QAAQ,KAAK,oBAAoB;gBAAE,OAAO,kBAAkB,CAAC;YACjE,IAAI,QAAQ,KAAK,UAAU;gBAAE,OAAO,4BAA4B,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;YAChG,IAAI,QAAQ,KAAK,IAAI;gBAAE,OAAO,EAAE,CAAC;YACjC,IAAI,QAAQ,KAAK,qBAAqB;gBAAE,OAAO,mBAAmB,CAAC;YACnE,IAAI,QAAQ,KAAK,oBAAoB,EAAE,CAAC;gBACtC,OAAO,kBAAkB,CAAC;YAC5B,CAAC;YACD,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACxB,OAAO,CACL,OAAe,EACf,IAAc,EACd,OAA6C,EAC7C,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;gBAC5B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC9C,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,CACzB,KAA8C,EAC9C,OAAoC,EACpC,EAAE;wBACF,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,KAAK,KAAK,CAAC;wBACvD,IAAI,CAAC,mBAAmB,EAAE,CAAC;4BACzB,IAAI,CAAC,aAAa,EAAE,CAAC;gCACnB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAC7B,sEAAsE,CACvE,CAAC,CAAC;4BACL,CAAC;4BACD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;wBACzB,CAAC;wBACD,OAAO,mBAAmB,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;oBACvE,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpC,CAAC;YACD,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;gBACpC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAChC,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC9D,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,CACzB,KAAsD,EACtD,OAAoC,EACpC,EAAE;wBACF,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,KAAK,KAAK,CAAC;wBACvD,IAAI,CAAC,mBAAmB,EAAE,CAAC;4BACzB,IAAI,CAAC,aAAa,EAAE,CAAC;gCACnB,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;4BACJ,CAAC;4BACD,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;wBACjC,CAAC;wBACD,OAAO,mBAAmB,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC/E,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpC,CAAC;YAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YACpD,IAAI,OAAO,KAAK,KAAK,UAAU;gBAAE,OAAO,KAAK,CAAC;YAE9C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACjD,CAAC;YACD,OAAO,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;QACD,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK;YACzB,IACE,QAAQ,KAAK,UAAU;mBACpB,QAAQ,KAAK,SAAS;mBACtB,QAAQ,KAAK,QAAQ;mBACrB,QAAQ,KAAK,cAAc;mBAC3B,QAAQ,KAAK,SAAS;mBACtB,QAAQ,KAAK,oBAAoB;mBACjC,QAAQ,KAAK,UAAU;mBACvB,QAAQ,KAAK,IAAI;mBACjB,QAAQ,KAAK,qBAAqB;mBAClC,QAAQ,KAAK,oBAAoB;gBACpC,OAAO,KAAK,CAAC;YACf,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACtD,CAAC;QACD,GAAG,CAAC,MAAM,EAAE,QAAQ;YAClB,OAAO,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC3F,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAiB;IACzC,IAAI,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC1F,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC"}
@@ -1,8 +1,13 @@
1
1
  import type { AgentRuntime, AgentRuntimeExecOptions, AgentRuntimeFileReadOptions, AgentRuntimeFileWriteOptions, AgentRuntimeListFilesOptions, AgentRuntimeProcesses, AgentRuntimePrivateRuntime, AgentRuntimeShellOptions, AgentRuntimeStorage, AgentRuntimeStorageScope, AgentRuntimeTerminals, ExecResult } from './runtime.js';
2
2
  import type { Classifier } from './classifier/index.js';
3
3
  import { type Logger } from './logger.js';
4
+ import type { RuntimeFiles } from './runtime-files.js';
4
5
  export type HostShellOptions = AgentRuntimeShellOptions;
5
6
  export interface HostAgentRuntimeOptions {
7
+ readonly host?: {
8
+ readonly name: string;
9
+ readonly version: string;
10
+ };
6
11
  readonly sessionStorageRoot: string;
7
12
  readonly agentStorageRoot: string;
8
13
  readonly agentDir?: string;
@@ -13,12 +18,19 @@ export interface HostAgentRuntimeOptions {
13
18
  }
14
19
  export declare class HostAgentRuntime implements AgentRuntime {
15
20
  #private;
21
+ readonly host?: {
22
+ readonly name: string;
23
+ readonly version: string;
24
+ };
16
25
  readonly classifier?: Classifier;
17
26
  readonly logger: Logger;
18
27
  readonly processes: AgentRuntimeProcesses;
19
28
  readonly privateRuntime: AgentRuntimePrivateRuntime;
20
29
  readonly terminals: AgentRuntimeTerminals;
30
+ readonly userHome?: string;
31
+ readonly files: RuntimeFiles;
21
32
  constructor(cwd: string, options: HostAgentRuntimeOptions);
33
+ getEnvironmentVariable(name: string): string | undefined;
22
34
  get kind(): 'host';
23
35
  get cwd(): string;
24
36
  storage(scope?: AgentRuntimeStorageScope): AgentRuntimeStorage;