@felan-ai/agent-core 0.12.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.
- package/README.md +65 -1
- package/dist/dynamic-thinking/session.d.ts +2 -1
- package/dist/dynamic-thinking/session.d.ts.map +1 -1
- package/dist/dynamic-thinking/session.js +4 -4
- package/dist/dynamic-thinking/session.js.map +1 -1
- package/dist/extension-config-write.d.ts +7 -0
- package/dist/extension-config-write.d.ts.map +1 -0
- package/dist/extension-config-write.js +52 -0
- package/dist/extension-config-write.js.map +1 -0
- package/dist/extension-ui.d.ts +51 -0
- package/dist/extension-ui.d.ts.map +1 -0
- package/dist/extension-ui.js +22 -0
- package/dist/extension-ui.js.map +1 -0
- package/dist/extensions.d.ts +25 -3
- package/dist/extensions.d.ts.map +1 -1
- package/dist/extensions.js +56 -11
- package/dist/extensions.js.map +1 -1
- package/dist/host-agent-runtime.d.ts +12 -0
- package/dist/host-agent-runtime.d.ts.map +1 -1
- package/dist/host-agent-runtime.js +171 -7
- package/dist/host-agent-runtime.js.map +1 -1
- package/dist/host-workers.d.ts +31 -0
- package/dist/host-workers.d.ts.map +1 -0
- package/dist/host-workers.js +4 -0
- package/dist/host-workers.js.map +1 -0
- package/dist/index.d.ts +27 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -1
- package/dist/platform.d.ts +33 -0
- package/dist/platform.d.ts.map +1 -0
- package/dist/platform.js +3 -0
- package/dist/platform.js.map +1 -0
- package/dist/runtime-files.d.ts +28 -0
- package/dist/runtime-files.d.ts.map +1 -0
- package/dist/runtime-files.js +2 -0
- package/dist/runtime-files.js.map +1 -0
- package/dist/runtime.d.ts +20 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/savings.d.ts +12 -0
- package/dist/savings.d.ts.map +1 -1
- package/dist/savings.js +2 -1
- package/dist/savings.js.map +1 -1
- package/dist/services/models.d.ts +40 -0
- package/dist/services/models.d.ts.map +1 -0
- package/dist/services/models.js +3 -0
- package/dist/services/models.js.map +1 -0
- package/dist/services/runtime-dependencies.d.ts +16 -0
- package/dist/services/runtime-dependencies.d.ts.map +1 -0
- package/dist/services/runtime-dependencies.js +3 -0
- package/dist/services/runtime-dependencies.js.map +1 -0
- package/dist/services/secrets.d.ts +39 -0
- package/dist/services/secrets.d.ts.map +1 -0
- package/dist/services/secrets.js +18 -0
- package/dist/services/secrets.js.map +1 -0
- package/dist/services/sessions.d.ts +160 -0
- package/dist/services/sessions.d.ts.map +1 -0
- package/dist/services/sessions.js +37 -0
- package/dist/services/sessions.js.map +1 -0
- package/dist/services.d.ts +31 -0
- package/dist/services.d.ts.map +1 -0
- package/dist/services.js +55 -0
- package/dist/services.js.map +1 -0
- package/dist/session.d.ts +7 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +17 -4
- package/dist/session.js.map +1 -1
- package/package.json +9 -2
package/dist/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { LOG_LEVELS, createLogger, createSilentLogger, isLogLevel, isLoggerLevel, } from './logger.js';
|
|
2
|
+
export { USAGE_SERVICE } from './savings.js';
|
|
3
|
+
export { FELAN_PLATFORM_SERVICE } from './platform.js';
|
|
2
4
|
export { AGENT_CORE_VERSION } from './version.js';
|
|
3
5
|
export * from './classifier/index.js';
|
|
4
6
|
export * from './dynamic-thinking/index.js';
|
|
@@ -6,6 +8,14 @@ export { MODEL_TIERS, formatModelReference, getModelFamily, getModelStrength, is
|
|
|
6
8
|
export { FELAN_THINKING_LEVELS, isFelanThinkingLevel } from './thinking.js';
|
|
7
9
|
export { HostAgentRuntime } from './host-agent-runtime.js';
|
|
8
10
|
export { bindFelanExtension, loadFelanExtensions, } from './extensions.js';
|
|
11
|
+
export { createFelanServiceRegistry, defineServiceContract, createExtensionServiceAccess, HOST_RUNTIME_SERVICE } from './services.js';
|
|
12
|
+
export { createUnavailableExtensionUi, ExtensionUiUnavailableError } from './extension-ui.js';
|
|
13
|
+
export { MODELS_SERVICE } from './services/models.js';
|
|
14
|
+
export { SECRETS_SERVICE, SECRETS_LIMITS, SecretServiceError } from './services/secrets.js';
|
|
15
|
+
export { SESSIONS_SERVICE, SESSIONS_HISTORY_SERVICE, SESSION_EXECUTION_LIMITS, SESSION_HISTORY_LIMITS, SessionsServiceError, createReadOnlySessionsService } from './services/sessions.js';
|
|
16
|
+
export { RUNTIME_DEPENDENCIES_SERVICE } from './services/runtime-dependencies.js';
|
|
17
|
+
export { Type } from '@earendil-works/pi-ai';
|
|
18
|
+
export { buildSessionContext, parseSessionEntries } from '@earendil-works/pi-coding-agent';
|
|
9
19
|
export { associateExtensionConfig, configField, configureExtension, defineExtensionConfig, extensionConfigOverridesFromObject, getExtensionConfigCliOptions, getExtensionConfigDefinition, parseExtensionConfigCliValue, resolveExtensionConfigs, validateExtensionConfigValue, } from './extension-config.js';
|
|
10
20
|
export { formatCapabilitiesSection } from './capabilities.js';
|
|
11
21
|
export { FELAN_BASE_SYSTEM_PROMPT } from './system-prompt.js';
|
|
@@ -17,4 +27,5 @@ export { getProjectInstructions, PROJECT_INSTRUCTIONS_CUSTOM_TYPE, } from './ses
|
|
|
17
27
|
export { AgentSession, CURRENT_SESSION_VERSION, DefaultResourceLoader, DynamicBorder, ModelRuntime, SessionManager, SettingsManager, createAgentSessionRuntime, createCodemodeExtension, defineTool, formatSkillsForPrompt, getAgentDir, loadSkillsFromDir, resizeImage, sessionEntryToContextMessages, withFileMutationQueue, } from '@earendil-works/pi-coding-agent';
|
|
18
28
|
export { InMemoryCredentialStore, StringEnum, calculateCost, clampThinkingLevel, createAssistantMessageEventStream, getCurrentSystemPrompt, getCurrentTools, getSupportedThinkingLevels, isContextOverflow, lazyStream, normalizeContext, uuidv7, } from '@earendil-works/pi-ai';
|
|
19
29
|
export { builtinProviders } from '@earendil-works/pi-ai/providers/all';
|
|
30
|
+
export { HOST_WORKERS_SERVICE, RUNTIME_LIFETIME_SERVICE } from './host-workers.js';
|
|
20
31
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,aAAa,GACd,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,aAAa,GACd,MAAM,aAAa,CAAC;AA+CrB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAO1B,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACtI,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AA4B9F,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE5F,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAC3L,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AAOlF,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3F,OAAO,EACL,wBAAwB,EACxB,WAAW,EACX,kBAAkB,EAClB,qBAAqB,EACrB,kCAAkC,EAClC,4BAA4B,EAC5B,4BAA4B,EAC5B,4BAA4B,EAC5B,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAe/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAU9D,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAGtG,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,oCAAoC,GACrC,MAAM,cAAc,CAAC;AAStB,OAAO,EACL,sBAAsB,EACtB,gCAAgC,GACjC,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,EACf,yBAAyB,EACzB,uBAAuB,EACvB,UAAU,EACV,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,6BAA6B,EAC7B,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AAmCzC,OAAO,EACL,uBAAuB,EACvB,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,iCAAiC,EACjC,sBAAsB,EACtB,eAAe,EACf,0BAA0B,EAC1B,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,MAAM,GACP,MAAM,uBAAuB,CAAC;AAyB/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAEvE,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export type FelanApiMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
|
|
2
|
+
export type FelanApiTarget = 'api' | 'docs';
|
|
3
|
+
export type FelanApiQueryValue = string | number | boolean;
|
|
4
|
+
export interface FelanApiRequest {
|
|
5
|
+
readonly target?: FelanApiTarget;
|
|
6
|
+
readonly method?: FelanApiMethod;
|
|
7
|
+
readonly path?: string;
|
|
8
|
+
readonly query?: Readonly<Record<string, FelanApiQueryValue>>;
|
|
9
|
+
readonly body?: unknown;
|
|
10
|
+
}
|
|
11
|
+
export interface FelanApiResultDetails {
|
|
12
|
+
readonly method: FelanApiMethod;
|
|
13
|
+
readonly target?: FelanApiTarget;
|
|
14
|
+
readonly path: string;
|
|
15
|
+
readonly ok: boolean;
|
|
16
|
+
readonly truncated: boolean;
|
|
17
|
+
readonly status?: number;
|
|
18
|
+
readonly error?: 'invalid_request' | 'request_too_large' | 'timeout' | 'network_error' | 'response_error' | 'http_error';
|
|
19
|
+
}
|
|
20
|
+
export interface FelanPlatformService {
|
|
21
|
+
readonly teamSlug?: string;
|
|
22
|
+
/** Results must be bounded, credential-redacted, and wrapped as untrusted content. */
|
|
23
|
+
execute(request: FelanApiRequest, signal?: AbortSignal): Promise<{
|
|
24
|
+
content: Array<{
|
|
25
|
+
type: 'text';
|
|
26
|
+
text: string;
|
|
27
|
+
}>;
|
|
28
|
+
details: FelanApiResultDetails;
|
|
29
|
+
isError?: true;
|
|
30
|
+
}>;
|
|
31
|
+
}
|
|
32
|
+
export declare const FELAN_PLATFORM_SERVICE: import("./services.js").ServiceContract<FelanPlatformService>;
|
|
33
|
+
//# sourceMappingURL=platform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AACzE,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,CAAC;AAC5C,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,GAAG,mBAAmB,GAAG,SAAS,GAAG,eAAe,GAAG,gBAAgB,GAAG,YAAY,CAAC;CAC1H;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,sFAAsF;IACtF,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAC/D,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC/C,OAAO,EAAE,qBAAqB,CAAC;QAC/B,OAAO,CAAC,EAAE,IAAI,CAAC;KAChB,CAAC,CAAC;CACJ;AAED,eAAO,MAAM,sBAAsB,+DAAmE,CAAC"}
|
package/dist/platform.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAkCtD,MAAM,CAAC,MAAM,sBAAsB,GAAG,qBAAqB,CAAuB,gBAAgB,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface RuntimeFileInfo {
|
|
2
|
+
readonly kind: 'file' | 'directory' | 'symlink' | 'other';
|
|
3
|
+
/** Opaque identity of this node, stable across renames but not replacement. */
|
|
4
|
+
readonly identity: string;
|
|
5
|
+
readonly size: number;
|
|
6
|
+
readonly modifiedAt: number;
|
|
7
|
+
}
|
|
8
|
+
export interface RuntimeFileSnapshot {
|
|
9
|
+
readonly info: RuntimeFileInfo;
|
|
10
|
+
readonly content: Uint8Array;
|
|
11
|
+
readonly truncated: boolean;
|
|
12
|
+
}
|
|
13
|
+
/** Atomic operations in the same authorized path namespace as AgentRuntime. */
|
|
14
|
+
export interface RuntimeFiles {
|
|
15
|
+
inspect(path: string): Promise<RuntimeFileInfo>;
|
|
16
|
+
canonicalPath(path: string): Promise<string>;
|
|
17
|
+
move(source: string, target: string): Promise<void>;
|
|
18
|
+
removeEmptyDirectory(path: string): Promise<void>;
|
|
19
|
+
touch(path: string, modifiedAt: number): Promise<void>;
|
|
20
|
+
ensurePrivateDirectory(path: string, options?: {
|
|
21
|
+
recursive?: boolean;
|
|
22
|
+
}): Promise<void>;
|
|
23
|
+
/** Reads a bounded prefix of a regular file without following a symlink; rejects replacement or mutation. */
|
|
24
|
+
snapshot(path: string, maxBytes: number): Promise<RuntimeFileSnapshot>;
|
|
25
|
+
/** Never follows symlinks. An expected snapshot rejects replacement or mutation before appending. */
|
|
26
|
+
append(path: string, content: Uint8Array, expected?: RuntimeFileInfo): Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=runtime-files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-files.d.ts","sourceRoot":"","sources":["../src/runtime-files.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;IAC1D,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED,+EAA+E;AAC/E,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAChD,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvF,6GAA6G;IAC7G,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACvE,qGAAqG;IACrG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-files.js","sourceRoot":"","sources":["../src/runtime-files.ts"],"names":[],"mappings":""}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ExecOptions as PiExecOptions, ExecResult as PiExecResult } from '@earendil-works/pi-coding-agent';
|
|
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 ExecOptions = PiExecOptions;
|
|
5
6
|
export interface AgentRuntimeExecOptions extends PiExecOptions {
|
|
6
7
|
/** Maximum combined stdout/stderr bytes retained by the host adapter. */
|
|
@@ -29,6 +30,7 @@ export interface AgentRuntimeProcessSnapshot {
|
|
|
29
30
|
readonly nextOffset: number;
|
|
30
31
|
readonly running: boolean;
|
|
31
32
|
readonly exitCode?: number;
|
|
33
|
+
readonly signal?: AgentRuntimeTerminationSignal;
|
|
32
34
|
}
|
|
33
35
|
export interface AgentRuntimeProcess {
|
|
34
36
|
readonly pid: number | undefined;
|
|
@@ -64,8 +66,13 @@ export interface AgentRuntimePrivateRuntime {
|
|
|
64
66
|
/** Creates or validates an owner-private, deterministic directory for short-lived local coordination. */
|
|
65
67
|
ensureDirectory(namespace: string): Promise<string>;
|
|
66
68
|
}
|
|
69
|
+
export interface AgentRuntimeTerminalOptions extends AgentRuntimeShellProcessOptions {
|
|
70
|
+
readonly id?: string;
|
|
71
|
+
}
|
|
67
72
|
export interface AgentRuntimeTerminals {
|
|
68
|
-
|
|
73
|
+
/** Reattaches a root-scoped terminal without transferring its host-owned lifetime. */
|
|
74
|
+
attach?(id: string): AgentRuntimeProcess | undefined;
|
|
75
|
+
startShell(command: string, options?: AgentRuntimeTerminalOptions): Promise<AgentRuntimeProcess>;
|
|
69
76
|
}
|
|
70
77
|
export interface AgentRuntimeStorage {
|
|
71
78
|
readonly root: string;
|
|
@@ -85,12 +92,16 @@ export interface AgentRuntimeFileReadOptions {
|
|
|
85
92
|
}
|
|
86
93
|
export interface AgentRuntimeFileWriteOptions {
|
|
87
94
|
readonly exclusive?: boolean;
|
|
95
|
+
readonly noFollow?: boolean;
|
|
96
|
+
readonly readOnly?: boolean;
|
|
88
97
|
}
|
|
89
98
|
export interface AgentRuntimeListFilesOptions {
|
|
90
99
|
/** Traverse descendants instead of returning only immediate entries. */
|
|
91
100
|
readonly recursive?: boolean;
|
|
92
101
|
/** Include directories as well as regular files in the returned paths. */
|
|
93
102
|
readonly includeDirectories?: boolean;
|
|
103
|
+
/** Include symlinks and special files without traversing them. */
|
|
104
|
+
readonly includeOther?: boolean;
|
|
94
105
|
/** Maximum entry depth below the requested directory; immediate entries have depth 1. */
|
|
95
106
|
readonly maxDepth?: number;
|
|
96
107
|
/** Match returned paths with `/`-separated glob syntax. */
|
|
@@ -105,11 +116,18 @@ export interface AgentRuntimeListFilesOptions {
|
|
|
105
116
|
export interface AgentRuntime {
|
|
106
117
|
readonly kind: AgentRuntimeKind;
|
|
107
118
|
readonly cwd: string;
|
|
119
|
+
readonly host?: {
|
|
120
|
+
readonly name: string;
|
|
121
|
+
readonly version: string;
|
|
122
|
+
};
|
|
123
|
+
/** User directory in the runtime path namespace, when user resources are available. */
|
|
124
|
+
readonly userHome?: string;
|
|
108
125
|
readonly classifier?: Classifier;
|
|
109
126
|
readonly logger: Logger;
|
|
110
127
|
readonly processes?: AgentRuntimeProcesses;
|
|
111
128
|
readonly privateRuntime?: AgentRuntimePrivateRuntime;
|
|
112
129
|
readonly terminals?: AgentRuntimeTerminals;
|
|
130
|
+
readonly files?: RuntimeFiles;
|
|
113
131
|
storage(scope?: AgentRuntimeStorageScope): AgentRuntimeStorage;
|
|
114
132
|
exec(command: string, args: readonly string[], options?: AgentRuntimeExecOptions): Promise<ExecResult>;
|
|
115
133
|
shell(command: string, options?: AgentRuntimeShellOptions): Promise<ExecResult>;
|
|
@@ -123,5 +141,6 @@ export interface AgentRuntime {
|
|
|
123
141
|
recursive?: boolean;
|
|
124
142
|
}): Promise<void>;
|
|
125
143
|
readAgentFile?(path: string): Promise<Uint8Array>;
|
|
144
|
+
getEnvironmentVariable?(name: string): string | undefined;
|
|
126
145
|
}
|
|
127
146
|
//# sourceMappingURL=runtime.d.ts.map
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,IAAI,aAAa,EAC5B,UAAU,IAAI,YAAY,EAC3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/savings.d.ts
CHANGED
|
@@ -37,4 +37,16 @@ export interface SavingsReporter {
|
|
|
37
37
|
export interface SavingsReporterProvider {
|
|
38
38
|
createReporter(producerId: string): SavingsReporter;
|
|
39
39
|
}
|
|
40
|
+
export interface SavingsSummary {
|
|
41
|
+
readonly savedCostUsd: number;
|
|
42
|
+
readonly hasUnpricedMeasurements: boolean;
|
|
43
|
+
}
|
|
44
|
+
export interface UsageService {
|
|
45
|
+
querySavings(query: {
|
|
46
|
+
readonly from: Date;
|
|
47
|
+
readonly to: Date;
|
|
48
|
+
readonly signal?: AbortSignal;
|
|
49
|
+
}): Promise<SavingsSummary>;
|
|
50
|
+
}
|
|
51
|
+
export declare const USAGE_SERVICE: import("./services.js").ServiceContract<UsageService>;
|
|
40
52
|
//# sourceMappingURL=savings.d.ts.map
|
package/dist/savings.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"savings.d.ts","sourceRoot":"","sources":["../src/savings.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"savings.d.ts","sourceRoot":"","sources":["../src/savings.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GACvB,qBAAqB,GACrB,eAAe,GACf,oBAAoB,GACpB,OAAO,CAAC;AAEZ,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;CACrC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,IAAI,EAAE,qBAAqB,GAAG,oBAAoB,CAAC;QAC5D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE;QACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACzC,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,WAAW,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AAED,gFAAgF;AAChF,MAAM,WAAW,uBAAuB;IACtC,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,CAAC;CACrD;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;CAC3C;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;QAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACzH;AAED,eAAO,MAAM,aAAa,uDAAwD,CAAC"}
|
package/dist/savings.js
CHANGED
package/dist/savings.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"savings.js","sourceRoot":"","sources":["../src/savings.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"savings.js","sourceRoot":"","sources":["../src/savings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AA6DtD,MAAM,CAAC,MAAM,aAAa,GAAG,qBAAqB,CAAe,aAAa,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { Api, AssistantImages, AssistantMessage, AssistantMessageEventStream, Context, ImageApi, ImageModel, ImagesContext, Model, SimpleStreamOptions } from '@earendil-works/pi-ai';
|
|
2
|
+
import type { Classifier } from '../classifier/types.js';
|
|
3
|
+
import type { ModelReference } from '../model-tiers.js';
|
|
4
|
+
export interface ModelsRequestOptions {
|
|
5
|
+
readonly signal?: AbortSignal;
|
|
6
|
+
}
|
|
7
|
+
export type ModelSubscriptionUsageResult = {
|
|
8
|
+
readonly ok: true;
|
|
9
|
+
readonly data: unknown;
|
|
10
|
+
} | {
|
|
11
|
+
readonly ok: false;
|
|
12
|
+
readonly error: {
|
|
13
|
+
readonly code: 'NO_CREDENTIALS' | 'COMPANION_UNAVAILABLE' | 'FETCH_FAILED' | 'HTTP_ERROR';
|
|
14
|
+
readonly httpStatus?: number;
|
|
15
|
+
readonly retryAfterMs?: number;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
export type ModelsCallOptions = Readonly<Pick<SimpleStreamOptions, 'signal' | 'maxTokens' | 'reasoning' | 'timeoutMs' | 'maxRetries' | 'cacheRetention' | 'sessionId'>>;
|
|
19
|
+
export type TextModelInfo = Readonly<Pick<Model<Api>, 'id' | 'name' | 'api' | 'provider' | 'input' | 'cost' | 'reasoning' | 'thinkingLevelMap' | 'contextWindow' | 'maxTokens'>>;
|
|
20
|
+
export type ImageModelInfo = Readonly<Pick<ImageModel<ImageApi>, 'id' | 'name' | 'api' | 'provider' | 'type' | 'input' | 'output' | 'cost'>>;
|
|
21
|
+
/**
|
|
22
|
+
* Implementations expose only this facade, never the underlying model runtime.
|
|
23
|
+
* Providers resolve model references against the current authenticated, allowed
|
|
24
|
+
* scope on every call. Caller model metadata and unlisted option keys must not
|
|
25
|
+
* reach provider dispatch. Availability describes selection metadata, not
|
|
26
|
+
* endpoint authority, headers or credentials.
|
|
27
|
+
* Request limits remain host-controlled. sessionId is a cache-affinity hint,
|
|
28
|
+
* not a session selector, and must be namespaced to the authorized scope.
|
|
29
|
+
*/
|
|
30
|
+
export interface ModelsService {
|
|
31
|
+
getSubscriptionUsage?(model: ModelReference, options?: ModelsRequestOptions): Promise<ModelSubscriptionUsageResult>;
|
|
32
|
+
getAvailable(providerId?: string, options?: ModelsRequestOptions): Promise<readonly TextModelInfo[]>;
|
|
33
|
+
completeSimple(model: ModelReference, context: Context, options?: ModelsCallOptions): Promise<AssistantMessage>;
|
|
34
|
+
streamSimple(model: ModelReference, context: Context, options?: ModelsCallOptions): AssistantMessageEventStream;
|
|
35
|
+
getAvailableOfType(type: 'image', providerId?: string, options?: ModelsRequestOptions): Promise<readonly ImageModelInfo[]>;
|
|
36
|
+
generateImages(model: ModelReference, context: ImagesContext, options?: ModelsRequestOptions): Promise<AssistantImages>;
|
|
37
|
+
readonly classifier?: Classifier;
|
|
38
|
+
}
|
|
39
|
+
export declare const MODELS_SERVICE: import("../services.js").ServiceContract<ModelsService>;
|
|
40
|
+
//# sourceMappingURL=models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/services/models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,GAAG,EACH,eAAe,EACf,gBAAgB,EAChB,2BAA2B,EAC3B,OAAO,EACP,QAAQ,EACR,UAAU,EACV,aAAa,EACb,KAAK,EACL,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,MAAM,MAAM,4BAA4B,GACpC;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC7C;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE;QACtC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,uBAAuB,GAAG,cAAc,GAAG,YAAY,CAAC;QAC1F,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;KAChC,CAAA;CAAE,CAAC;AAEN,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAC3C,mBAAmB,EACnB,QAAQ,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,gBAAgB,GAAG,WAAW,CACnG,CAAC,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAClD,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,GAAG,kBAAkB,GAAG,eAAe,GAAG,WAAW,CACzH,CAAC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC7D,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAC1E,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,oBAAoB,CAAC,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;IACpH,YAAY,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC,CAAC;IACrG,cAAc,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAChH,YAAY,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,2BAA2B,CAAC;IAChH,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC,CAAC;IAC3H,cAAc,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACxH,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;CAClC;AAED,eAAO,MAAM,cAAc,yDAA0D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/services/models.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AA8CvD,MAAM,CAAC,MAAM,cAAc,GAAG,qBAAqB,CAAgB,cAAc,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type RuntimeDependencyInstallResult = {
|
|
2
|
+
readonly status: 'installed';
|
|
3
|
+
} | {
|
|
4
|
+
readonly status: 'cancelled' | 'unavailable';
|
|
5
|
+
readonly message: string;
|
|
6
|
+
};
|
|
7
|
+
/** Host policy selects known installers; session UI consent alone grants nothing. */
|
|
8
|
+
export interface RuntimeDependenciesService {
|
|
9
|
+
install(request: {
|
|
10
|
+
readonly id: string;
|
|
11
|
+
}, options?: {
|
|
12
|
+
readonly signal?: AbortSignal;
|
|
13
|
+
}): Promise<RuntimeDependencyInstallResult>;
|
|
14
|
+
}
|
|
15
|
+
export declare const RUNTIME_DEPENDENCIES_SERVICE: import("../services.js").ServiceContract<RuntimeDependenciesService>;
|
|
16
|
+
//# sourceMappingURL=runtime-dependencies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-dependencies.d.ts","sourceRoot":"","sources":["../../src/services/runtime-dependencies.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,8BAA8B,GACtC;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GAChC;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/E,qFAAqF;AACrF,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;CACjI;AAED,eAAO,MAAM,4BAA4B,sEAAqF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-dependencies.js","sourceRoot":"","sources":["../../src/services/runtime-dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAWvD,MAAM,CAAC,MAAM,4BAA4B,GAAG,qBAAqB,CAA6B,4BAA4B,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export interface SecretAddress {
|
|
2
|
+
readonly namespace: string;
|
|
3
|
+
readonly key: string;
|
|
4
|
+
}
|
|
5
|
+
export interface SecretRecord {
|
|
6
|
+
readonly value: string;
|
|
7
|
+
/** Opaque content identity, not a monotonic revision or an authorization token. */
|
|
8
|
+
readonly version: string;
|
|
9
|
+
}
|
|
10
|
+
export interface SecretsRequestOptions {
|
|
11
|
+
readonly signal?: AbortSignal;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Grant only to trusted credential consumers. Namespace selection addresses
|
|
15
|
+
* storage within the provider's grant; it does not authorize a new namespace.
|
|
16
|
+
* An address outside the grant fails with unavailable, not an absent record.
|
|
17
|
+
* Values must stay out of model-facing results, UI, logs and durable events.
|
|
18
|
+
*/
|
|
19
|
+
export interface SecretsService {
|
|
20
|
+
read(address: SecretAddress, options?: SecretsRequestOptions): Promise<SecretRecord | undefined>;
|
|
21
|
+
write(address: SecretAddress, record: {
|
|
22
|
+
readonly value: string;
|
|
23
|
+
readonly expectedVersion: string | null;
|
|
24
|
+
}, options?: SecretsRequestOptions): Promise<SecretRecord>;
|
|
25
|
+
remove(address: SecretAddress, expectedVersion: string, options?: SecretsRequestOptions): Promise<void>;
|
|
26
|
+
}
|
|
27
|
+
export type SecretServiceErrorCode = 'invalid' | 'unavailable' | 'conflict';
|
|
28
|
+
export declare class SecretServiceError extends Error {
|
|
29
|
+
readonly code: SecretServiceErrorCode;
|
|
30
|
+
constructor(code: SecretServiceErrorCode);
|
|
31
|
+
}
|
|
32
|
+
export declare const SECRETS_LIMITS: Readonly<{
|
|
33
|
+
namespaceBytes: 64;
|
|
34
|
+
keyBytes: 128;
|
|
35
|
+
valueBytes: number;
|
|
36
|
+
versionBytes: 128;
|
|
37
|
+
}>;
|
|
38
|
+
export declare const SECRETS_SERVICE: import("../services.js").ServiceContract<SecretsService>;
|
|
39
|
+
//# sourceMappingURL=secrets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../src/services/secrets.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,mFAAmF;IACnF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;IACjG,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACnK,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzG;AAED,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,aAAa,GAAG,UAAU,CAAC;AAQ5E,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;gBAE1B,IAAI,EAAE,sBAAsB;CAMzC;AAED,eAAO,MAAM,cAAc;;;;;EAAiG,CAAC;AAC7H,eAAO,MAAM,eAAe,0DAA4D,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { defineServiceContract } from '../services.js';
|
|
2
|
+
const messages = {
|
|
3
|
+
invalid: 'Secret request is invalid.',
|
|
4
|
+
unavailable: 'Secret storage is unavailable.',
|
|
5
|
+
conflict: 'Secret version conflict.',
|
|
6
|
+
};
|
|
7
|
+
export class SecretServiceError extends Error {
|
|
8
|
+
code;
|
|
9
|
+
constructor(code) {
|
|
10
|
+
const safeCode = code === 'unavailable' || code === 'conflict' ? code : 'invalid';
|
|
11
|
+
super(messages[safeCode]);
|
|
12
|
+
this.name = 'SecretServiceError';
|
|
13
|
+
this.code = safeCode;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export const SECRETS_LIMITS = Object.freeze({ namespaceBytes: 64, keyBytes: 128, valueBytes: 64 * 1024, versionBytes: 128 });
|
|
17
|
+
export const SECRETS_SERVICE = defineServiceContract('felan.secrets', 1);
|
|
18
|
+
//# sourceMappingURL=secrets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/services/secrets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AA+BvD,MAAM,QAAQ,GAA2C;IACvD,OAAO,EAAE,4BAA4B;IACrC,WAAW,EAAE,gCAAgC;IAC7C,QAAQ,EAAE,0BAA0B;CACrC,CAAC;AAEF,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAClC,IAAI,CAAyB;IAEtC,YAAY,IAA4B;QACtC,MAAM,QAAQ,GAAG,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAClF,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;IACvB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;AAC7H,MAAM,CAAC,MAAM,eAAe,GAAG,qBAAqB,CAAiB,eAAe,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import type { SessionEntry } from '@earendil-works/pi-coding-agent';
|
|
2
|
+
import type { ModelReference } from '../model-tiers.js';
|
|
3
|
+
import type { FelanThinkingLevel } from '../thinking.js';
|
|
4
|
+
export interface SessionsRequestOptions {
|
|
5
|
+
readonly signal?: AbortSignal;
|
|
6
|
+
}
|
|
7
|
+
export interface SessionPageOptions extends SessionsRequestOptions {
|
|
8
|
+
readonly cursor?: string;
|
|
9
|
+
readonly limit?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface SessionPage<T> {
|
|
12
|
+
readonly items: readonly T[];
|
|
13
|
+
readonly nextCursor?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface SessionRef {
|
|
16
|
+
readonly id: string;
|
|
17
|
+
readonly root: string;
|
|
18
|
+
readonly parent?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface SessionHistoryInfo extends SessionRef {
|
|
21
|
+
readonly title: string;
|
|
22
|
+
/** Display metadata in the runtime's path namespace, never a storage selector. */
|
|
23
|
+
readonly cwd: string;
|
|
24
|
+
readonly updatedAt: number;
|
|
25
|
+
readonly state: 'open' | 'closed';
|
|
26
|
+
readonly diagnostic?: 'inaccessible' | 'oversize' | 'unsupported';
|
|
27
|
+
}
|
|
28
|
+
export interface HistoryRevision {
|
|
29
|
+
readonly sessionId: string;
|
|
30
|
+
/** Content identity, independent of the daemon's control/projection counter. */
|
|
31
|
+
readonly revision: string;
|
|
32
|
+
/** The selected leaf entry ID; history may also contain abandoned branches. */
|
|
33
|
+
readonly branch: string | null;
|
|
34
|
+
}
|
|
35
|
+
export interface SessionHistoryOptions extends SessionPageOptions {
|
|
36
|
+
readonly at?: HistoryRevision;
|
|
37
|
+
}
|
|
38
|
+
export interface SessionHistoryPage extends HistoryRevision {
|
|
39
|
+
readonly entries: readonly SessionEntry[];
|
|
40
|
+
/** Original parseable header timestamp, repeated on every page when available. */
|
|
41
|
+
readonly startedAt?: string;
|
|
42
|
+
readonly nextCursor?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface SessionCheckpointRef extends HistoryRevision {
|
|
45
|
+
/** UTF-8 byte length of the provider's complete source snapshot, before branch selection. */
|
|
46
|
+
readonly byteLength: number;
|
|
47
|
+
/**
|
|
48
|
+
* Lowercase hexadecimal SHA-256 of a compact UTF-8 JSON array, root to selected
|
|
49
|
+
* leaf (empty array for null). Object keys sort by JavaScript string order;
|
|
50
|
+
* primitives use JSON.stringify formatting. Entries must be valid JSON.
|
|
51
|
+
*/
|
|
52
|
+
readonly transcriptDigest: string;
|
|
53
|
+
}
|
|
54
|
+
export interface SessionExecution {
|
|
55
|
+
readonly id: string;
|
|
56
|
+
readonly parent?: string;
|
|
57
|
+
readonly label?: string;
|
|
58
|
+
readonly description?: string;
|
|
59
|
+
readonly createdAt?: string;
|
|
60
|
+
readonly startedAt?: string;
|
|
61
|
+
readonly completedAt?: string;
|
|
62
|
+
readonly completionPending?: boolean;
|
|
63
|
+
readonly model?: ModelReference;
|
|
64
|
+
readonly usage?: {
|
|
65
|
+
readonly input: number;
|
|
66
|
+
readonly output: number;
|
|
67
|
+
readonly cacheRead: number;
|
|
68
|
+
readonly cacheWrite: number;
|
|
69
|
+
readonly cacheWrite1h: number;
|
|
70
|
+
readonly cost: number;
|
|
71
|
+
};
|
|
72
|
+
/** Absent until the queued execution has a canonically registered session. */
|
|
73
|
+
readonly session?: SessionRef;
|
|
74
|
+
readonly state: 'queued' | 'running' | 'completed' | 'failed' | 'cancelled';
|
|
75
|
+
readonly result?: {
|
|
76
|
+
readonly text: string;
|
|
77
|
+
readonly error?: string;
|
|
78
|
+
readonly truncated: boolean;
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
export interface SessionExecutionInput {
|
|
82
|
+
readonly prompt: string;
|
|
83
|
+
/** Additional instructions; providers must retain the base prompt and project instructions. */
|
|
84
|
+
readonly appendSystemPrompt?: string;
|
|
85
|
+
readonly model?: ModelReference;
|
|
86
|
+
readonly thinking?: FelanThinkingLevel;
|
|
87
|
+
readonly description: string;
|
|
88
|
+
readonly maxTurns?: number;
|
|
89
|
+
readonly timeoutMs?: number;
|
|
90
|
+
readonly label?: string;
|
|
91
|
+
readonly allowChildren?: boolean;
|
|
92
|
+
readonly excludedTools?: readonly string[];
|
|
93
|
+
readonly notifyOnCompletion?: boolean;
|
|
94
|
+
}
|
|
95
|
+
export interface SessionExecutionsOptions extends SessionPageOptions {
|
|
96
|
+
/** Descendants are visible but only direct children can be controlled. */
|
|
97
|
+
readonly includeDescendants?: boolean;
|
|
98
|
+
}
|
|
99
|
+
export interface SessionExecutionReadOptions extends SessionsRequestOptions {
|
|
100
|
+
readonly acknowledge?: boolean;
|
|
101
|
+
}
|
|
102
|
+
export interface SessionsEvent {
|
|
103
|
+
readonly kind: 'history' | 'execution';
|
|
104
|
+
/** A history event identifies a session; an execution event identifies an execution record. */
|
|
105
|
+
readonly id: string;
|
|
106
|
+
}
|
|
107
|
+
/** Providers must expose a separate frozen facade with only these members. */
|
|
108
|
+
export interface SessionsHistory {
|
|
109
|
+
readonly current: SessionRef;
|
|
110
|
+
/** Filters an already authorized inventory; project/cwd equality never grants access. */
|
|
111
|
+
list(filter: {
|
|
112
|
+
readonly scope: 'root' | 'project' | 'visible';
|
|
113
|
+
}, options?: SessionPageOptions): Promise<SessionPage<SessionHistoryInfo>>;
|
|
114
|
+
/**
|
|
115
|
+
* Complete, unfiltered Pi entries in append order, parents before children.
|
|
116
|
+
* Entries are untrusted data. Cursors pin session, revision and selected leaf;
|
|
117
|
+
* any changed source or mismatched pin fails with stale, never a mixed page.
|
|
118
|
+
*/
|
|
119
|
+
history(id: string, options?: SessionHistoryOptions): Promise<SessionHistoryPage>;
|
|
120
|
+
checkpoint(id: string, options?: SessionsRequestOptions): Promise<SessionCheckpointRef>;
|
|
121
|
+
}
|
|
122
|
+
export interface SessionsService extends SessionsHistory {
|
|
123
|
+
setTitleIfMissing(title: string, requestId: string, options?: SessionsRequestOptions): Promise<boolean>;
|
|
124
|
+
/** Admission rechecks scope. Invalid or out-of-range requests reject, never clamp. */
|
|
125
|
+
create(input: SessionExecutionInput, options?: SessionsRequestOptions): Promise<SessionExecution>;
|
|
126
|
+
/** Only executions owned by this parent are readable and controllable through this handle. */
|
|
127
|
+
executions(options?: SessionExecutionsOptions): Promise<SessionPage<SessionExecution>>;
|
|
128
|
+
execution(id: string, options?: SessionExecutionReadOptions): Promise<SessionExecution>;
|
|
129
|
+
steer(id: string, message: string, options?: SessionsRequestOptions): Promise<void>;
|
|
130
|
+
cancel(id: string, reason?: string, options?: SessionsRequestOptions): Promise<void>;
|
|
131
|
+
/** Events use the same history and execution visibility as this handle's reads. */
|
|
132
|
+
subscribe(listener: (event: SessionsEvent) => void): () => void;
|
|
133
|
+
}
|
|
134
|
+
export type SessionsServiceErrorCode = 'invalid' | 'inaccessible' | 'stale' | 'oversize' | 'unsupported';
|
|
135
|
+
export declare class SessionsServiceError extends Error {
|
|
136
|
+
readonly code: SessionsServiceErrorCode;
|
|
137
|
+
constructor(code: SessionsServiceErrorCode, message?: string);
|
|
138
|
+
}
|
|
139
|
+
export declare const SESSION_HISTORY_LIMITS: Readonly<{
|
|
140
|
+
fileBytes: number;
|
|
141
|
+
pageBytes: number;
|
|
142
|
+
pageEntries: 256;
|
|
143
|
+
}>;
|
|
144
|
+
export declare const SESSION_EXECUTION_LIMITS: Readonly<{
|
|
145
|
+
maxTurns: 100;
|
|
146
|
+
timeoutMs: 86400000;
|
|
147
|
+
promptBytes: number;
|
|
148
|
+
appendSystemPromptBytes: number;
|
|
149
|
+
descriptionBytes: 512;
|
|
150
|
+
steerBytes: number;
|
|
151
|
+
cancelReasonBytes: 4096;
|
|
152
|
+
titleBytes: 4096;
|
|
153
|
+
requestIdBytes: 128;
|
|
154
|
+
resultTextBytes: number;
|
|
155
|
+
resultErrorBytes: 4096;
|
|
156
|
+
}>;
|
|
157
|
+
export declare function createReadOnlySessionsService(source: SessionsHistory): SessionsHistory;
|
|
158
|
+
export declare const SESSIONS_HISTORY_SERVICE: import("../services.js").ServiceContract<SessionsHistory>;
|
|
159
|
+
export declare const SESSIONS_SERVICE: import("../services.js").ServiceContract<SessionsService>;
|
|
160
|
+
//# sourceMappingURL=sessions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/services/sessions.ts"],"names":[],"mappings":"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"}
|