@felan-ai/daemon 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/NOTICE +69 -0
- package/README.md +61 -2
- package/dist/client.d.ts +5 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +4 -0
- package/dist/client.js.map +1 -0
- package/dist/daemon/admission.d.ts +39 -0
- package/dist/daemon/admission.d.ts.map +1 -0
- package/dist/daemon/admission.js +175 -0
- package/dist/daemon/admission.js.map +1 -0
- package/dist/daemon/agent-logs.d.ts +11 -0
- package/dist/daemon/agent-logs.d.ts.map +1 -0
- package/dist/daemon/agent-logs.js +31 -0
- package/dist/daemon/agent-logs.js.map +1 -0
- package/dist/daemon/bootstrap.d.ts +7 -0
- package/dist/daemon/bootstrap.d.ts.map +1 -0
- package/dist/daemon/bootstrap.js +4 -0
- package/dist/daemon/bootstrap.js.map +1 -0
- package/dist/daemon/broker.d.ts +94 -0
- package/dist/daemon/broker.d.ts.map +1 -0
- package/dist/daemon/broker.js +374 -0
- package/dist/daemon/broker.js.map +1 -0
- package/dist/daemon/commands.d.ts +47 -0
- package/dist/daemon/commands.d.ts.map +1 -0
- package/dist/daemon/commands.js +639 -0
- package/dist/daemon/commands.js.map +1 -0
- package/dist/daemon/control-recovery.d.ts +9 -0
- package/dist/daemon/control-recovery.d.ts.map +1 -0
- package/dist/daemon/control-recovery.js +68 -0
- package/dist/daemon/control-recovery.js.map +1 -0
- package/dist/daemon/control-state.d.ts +1915 -0
- package/dist/daemon/control-state.d.ts.map +1 -0
- package/dist/daemon/control-state.js +154 -0
- package/dist/daemon/control-state.js.map +1 -0
- package/dist/daemon/control-store.d.ts +113 -0
- package/dist/daemon/control-store.d.ts.map +1 -0
- package/dist/daemon/control-store.js +901 -0
- package/dist/daemon/control-store.js.map +1 -0
- package/dist/daemon/execution-policy.d.ts +15 -0
- package/dist/daemon/execution-policy.d.ts.map +1 -0
- package/dist/daemon/execution-policy.js +42 -0
- package/dist/daemon/execution-policy.js.map +1 -0
- package/dist/daemon/execution-services.d.ts +5 -0
- package/dist/daemon/execution-services.d.ts.map +1 -0
- package/dist/daemon/execution-services.js +73 -0
- package/dist/daemon/execution-services.js.map +1 -0
- package/dist/daemon/executions.d.ts +134 -0
- package/dist/daemon/executions.d.ts.map +1 -0
- package/dist/daemon/executions.js +486 -0
- package/dist/daemon/executions.js.map +1 -0
- package/dist/daemon/extension-ui.d.ts +24 -0
- package/dist/daemon/extension-ui.d.ts.map +1 -0
- package/dist/daemon/extension-ui.js +161 -0
- package/dist/daemon/extension-ui.js.map +1 -0
- package/dist/daemon/fanout.d.ts +40 -0
- package/dist/daemon/fanout.d.ts.map +1 -0
- package/dist/daemon/fanout.js +304 -0
- package/dist/daemon/fanout.js.map +1 -0
- package/dist/daemon/headless-json.d.ts +3 -0
- package/dist/daemon/headless-json.d.ts.map +1 -0
- package/dist/daemon/headless-json.js +20 -0
- package/dist/daemon/headless-json.js.map +1 -0
- package/dist/daemon/host-config.d.ts +61 -0
- package/dist/daemon/host-config.d.ts.map +1 -0
- package/dist/daemon/host-config.js +167 -0
- package/dist/daemon/host-config.js.map +1 -0
- package/dist/daemon/host-services.d.ts +61 -0
- package/dist/daemon/host-services.d.ts.map +1 -0
- package/dist/daemon/host-services.js +2 -0
- package/dist/daemon/host-services.js.map +1 -0
- package/dist/daemon/ipc.d.ts +14 -0
- package/dist/daemon/ipc.d.ts.map +1 -0
- package/dist/daemon/ipc.js +233 -0
- package/dist/daemon/ipc.js.map +1 -0
- package/dist/daemon/legacy-sessions.d.ts +48 -0
- package/dist/daemon/legacy-sessions.d.ts.map +1 -0
- package/dist/daemon/legacy-sessions.js +328 -0
- package/dist/daemon/legacy-sessions.js.map +1 -0
- package/dist/daemon/lifecycle.d.ts +44 -0
- package/dist/daemon/lifecycle.d.ts.map +1 -0
- package/dist/daemon/lifecycle.js +164 -0
- package/dist/daemon/lifecycle.js.map +1 -0
- package/dist/daemon/main.d.ts +3 -0
- package/dist/daemon/main.d.ts.map +1 -0
- package/dist/daemon/main.js +83 -0
- package/dist/daemon/main.js.map +1 -0
- package/dist/daemon/message-display.d.ts +4 -0
- package/dist/daemon/message-display.d.ts.map +1 -0
- package/dist/daemon/message-display.js +20 -0
- package/dist/daemon/message-display.js.map +1 -0
- package/dist/daemon/native-ownership.d.ts +13 -0
- package/dist/daemon/native-ownership.d.ts.map +1 -0
- package/dist/daemon/native-ownership.js +173 -0
- package/dist/daemon/native-ownership.js.map +1 -0
- package/dist/daemon/operational-log.d.ts +23 -0
- package/dist/daemon/operational-log.d.ts.map +1 -0
- package/dist/daemon/operational-log.js +79 -0
- package/dist/daemon/operational-log.js.map +1 -0
- package/dist/daemon/ownership.d.ts +35 -0
- package/dist/daemon/ownership.d.ts.map +1 -0
- package/dist/daemon/ownership.js +395 -0
- package/dist/daemon/ownership.js.map +1 -0
- package/dist/daemon/persistence.d.ts +110 -0
- package/dist/daemon/persistence.d.ts.map +1 -0
- package/dist/daemon/persistence.js +540 -0
- package/dist/daemon/persistence.js.map +1 -0
- package/dist/daemon/process-adapter.d.ts +23 -0
- package/dist/daemon/process-adapter.d.ts.map +1 -0
- package/dist/daemon/process-adapter.js +2 -0
- package/dist/daemon/process-adapter.js.map +1 -0
- package/dist/daemon/processes.d.ts +102 -0
- package/dist/daemon/processes.d.ts.map +1 -0
- package/dist/daemon/processes.js +691 -0
- package/dist/daemon/processes.js.map +1 -0
- package/dist/daemon/profile-storage.d.ts +16 -0
- package/dist/daemon/profile-storage.d.ts.map +1 -0
- package/dist/daemon/profile-storage.js +148 -0
- package/dist/daemon/profile-storage.js.map +1 -0
- package/dist/daemon/projection.d.ts +110 -0
- package/dist/daemon/projection.d.ts.map +1 -0
- package/dist/daemon/projection.js +661 -0
- package/dist/daemon/projection.js.map +1 -0
- package/dist/daemon/provider-loader.d.ts +28 -0
- package/dist/daemon/provider-loader.d.ts.map +1 -0
- package/dist/daemon/provider-loader.js +376 -0
- package/dist/daemon/provider-loader.js.map +1 -0
- package/dist/daemon/provider.d.ts +92 -0
- package/dist/daemon/provider.d.ts.map +1 -0
- package/dist/daemon/provider.js +31 -0
- package/dist/daemon/provider.js.map +1 -0
- package/dist/daemon/registry.d.ts +209 -0
- package/dist/daemon/registry.d.ts.map +1 -0
- package/dist/daemon/registry.js +1591 -0
- package/dist/daemon/registry.js.map +1 -0
- package/dist/daemon/runtime-dependencies.d.ts +5 -0
- package/dist/daemon/runtime-dependencies.d.ts.map +1 -0
- package/dist/daemon/runtime-dependencies.js +31 -0
- package/dist/daemon/runtime-dependencies.js.map +1 -0
- package/dist/daemon/server.d.ts +110 -0
- package/dist/daemon/server.d.ts.map +1 -0
- package/dist/daemon/server.js +556 -0
- package/dist/daemon/server.js.map +1 -0
- package/dist/daemon/service.d.ts +38 -0
- package/dist/daemon/service.d.ts.map +1 -0
- package/dist/daemon/service.js +275 -0
- package/dist/daemon/service.js.map +1 -0
- package/dist/daemon/session-cursor.d.ts +3 -0
- package/dist/daemon/session-cursor.d.ts.map +1 -0
- package/dist/daemon/session-cursor.js +4 -0
- package/dist/daemon/session-cursor.js.map +1 -0
- package/dist/daemon/session-execution.d.ts +88 -0
- package/dist/daemon/session-execution.d.ts.map +1 -0
- package/dist/daemon/session-execution.js +2 -0
- package/dist/daemon/session-execution.js.map +1 -0
- package/dist/daemon/session-executions.d.ts +5 -0
- package/dist/daemon/session-executions.d.ts.map +1 -0
- package/dist/daemon/session-executions.js +146 -0
- package/dist/daemon/session-executions.js.map +1 -0
- package/dist/daemon/session-files.d.ts +28 -0
- package/dist/daemon/session-files.d.ts.map +1 -0
- package/dist/daemon/session-files.js +189 -0
- package/dist/daemon/session-files.js.map +1 -0
- package/dist/daemon/session-lifecycle-contracts.d.ts +104 -0
- package/dist/daemon/session-lifecycle-contracts.d.ts.map +1 -0
- package/dist/daemon/session-lifecycle-contracts.js +2 -0
- package/dist/daemon/session-lifecycle-contracts.js.map +1 -0
- package/dist/daemon/session-lifecycle.d.ts +26 -0
- package/dist/daemon/session-lifecycle.d.ts.map +1 -0
- package/dist/daemon/session-lifecycle.js +246 -0
- package/dist/daemon/session-lifecycle.js.map +1 -0
- package/dist/daemon/session-runtime.d.ts +64 -0
- package/dist/daemon/session-runtime.d.ts.map +1 -0
- package/dist/daemon/session-runtime.js +3 -0
- package/dist/daemon/session-runtime.js.map +1 -0
- package/dist/daemon/session-services.d.ts +6 -0
- package/dist/daemon/session-services.d.ts.map +1 -0
- package/dist/daemon/session-services.js +144 -0
- package/dist/daemon/session-services.js.map +1 -0
- package/dist/daemon/shutdown-error.d.ts +12 -0
- package/dist/daemon/shutdown-error.d.ts.map +1 -0
- package/dist/daemon/shutdown-error.js +51 -0
- package/dist/daemon/shutdown-error.js.map +1 -0
- package/dist/daemon/supervisor.d.ts +28 -0
- package/dist/daemon/supervisor.d.ts.map +1 -0
- package/dist/daemon/supervisor.js +159 -0
- package/dist/daemon/supervisor.js.map +1 -0
- package/dist/daemon/target.d.ts +55 -0
- package/dist/daemon/target.d.ts.map +1 -0
- package/dist/daemon/target.js +191 -0
- package/dist/daemon/target.js.map +1 -0
- package/dist/daemon/tree.d.ts +7 -0
- package/dist/daemon/tree.d.ts.map +1 -0
- package/dist/daemon/tree.js +126 -0
- package/dist/daemon/tree.js.map +1 -0
- package/dist/daemon/ui-vocabulary.d.ts +29 -0
- package/dist/daemon/ui-vocabulary.d.ts.map +1 -0
- package/dist/daemon/ui-vocabulary.js +323 -0
- package/dist/daemon/ui-vocabulary.js.map +1 -0
- package/dist/daemon/worker.d.ts +5 -0
- package/dist/daemon/worker.d.ts.map +1 -0
- package/dist/daemon/worker.js +49 -0
- package/dist/daemon/worker.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/lock.d.ts +27 -0
- package/dist/lock.d.ts.map +1 -0
- package/dist/lock.js +432 -0
- package/dist/lock.js.map +1 -0
- package/dist/logger.d.ts +9 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +56 -0
- package/dist/logger.js.map +1 -0
- package/dist/remote/backoff.d.ts +17 -0
- package/dist/remote/backoff.d.ts.map +1 -0
- package/dist/remote/backoff.js +18 -0
- package/dist/remote/backoff.js.map +1 -0
- package/dist/remote/batch.d.ts +3 -0
- package/dist/remote/batch.d.ts.map +1 -0
- package/dist/remote/batch.js +27 -0
- package/dist/remote/batch.js.map +1 -0
- package/dist/remote/command-journal.d.ts +30 -0
- package/dist/remote/command-journal.d.ts.map +1 -0
- package/dist/remote/command-journal.js +72 -0
- package/dist/remote/command-journal.js.map +1 -0
- package/dist/remote/commands.d.ts +48 -0
- package/dist/remote/commands.d.ts.map +1 -0
- package/dist/remote/commands.js +145 -0
- package/dist/remote/commands.js.map +1 -0
- package/dist/remote/connector.d.ts +135 -0
- package/dist/remote/connector.d.ts.map +1 -0
- package/dist/remote/connector.js +1069 -0
- package/dist/remote/connector.js.map +1 -0
- package/dist/remote/content.d.ts +17 -0
- package/dist/remote/content.d.ts.map +1 -0
- package/dist/remote/content.js +116 -0
- package/dist/remote/content.js.map +1 -0
- package/dist/remote/outbox.d.ts +52 -0
- package/dist/remote/outbox.d.ts.map +1 -0
- package/dist/remote/outbox.js +321 -0
- package/dist/remote/outbox.js.map +1 -0
- package/dist/remote/platform.d.ts +53 -0
- package/dist/remote/platform.d.ts.map +1 -0
- package/dist/remote/platform.js +231 -0
- package/dist/remote/platform.js.map +1 -0
- package/dist/remote/realtime.d.ts +45 -0
- package/dist/remote/realtime.d.ts.map +1 -0
- package/dist/remote/realtime.js +265 -0
- package/dist/remote/realtime.js.map +1 -0
- package/dist/remote/sharing.d.ts +16 -0
- package/dist/remote/sharing.d.ts.map +1 -0
- package/dist/remote/sharing.js +24 -0
- package/dist/remote/sharing.js.map +1 -0
- package/dist/remote/state.d.ts +52 -0
- package/dist/remote/state.d.ts.map +1 -0
- package/dist/remote/state.js +156 -0
- package/dist/remote/state.js.map +1 -0
- package/dist/remote/text.d.ts +11 -0
- package/dist/remote/text.d.ts.map +1 -0
- package/dist/remote/text.js +188 -0
- package/dist/remote/text.js.map +1 -0
- package/dist/remote/token.d.ts +39 -0
- package/dist/remote/token.d.ts.map +1 -0
- package/dist/remote/token.js +238 -0
- package/dist/remote/token.js.map +1 -0
- package/dist/runtime-factory.d.ts +12 -0
- package/dist/runtime-factory.d.ts.map +1 -0
- package/dist/runtime-factory.js +12 -0
- package/dist/runtime-factory.js.map +1 -0
- package/dist/session-history.d.ts +29 -0
- package/dist/session-history.d.ts.map +1 -0
- package/dist/session-history.js +374 -0
- package/dist/session-history.js.map +1 -0
- package/dist/setup/dependencies.d.ts +15 -0
- package/dist/setup/dependencies.d.ts.map +1 -0
- package/dist/setup/dependencies.js +2 -0
- package/dist/setup/dependencies.js.map +1 -0
- package/dist/setup/open.d.ts +8 -0
- package/dist/setup/open.d.ts.map +1 -0
- package/dist/setup/open.js +16 -0
- package/dist/setup/open.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +4 -0
- package/dist/version.js.map +1 -0
- package/package.json +65 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-executions.js","sourceRoot":"","sources":["../../src/daemon/session-executions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Type } from 'typebox';
|
|
2
|
+
import type { DaemonOwnership } from './ownership.js';
|
|
3
|
+
/** Messages a person or the shell produced. Extension context and session metadata do not count. */
|
|
4
|
+
export declare function isConversationEntry(entry: unknown): boolean;
|
|
5
|
+
export declare const sessionHeaderSchema: Type.TObject<{
|
|
6
|
+
type: Type.TLiteral<"session">;
|
|
7
|
+
version: Type.TInteger;
|
|
8
|
+
id: Type.TString;
|
|
9
|
+
cwd: Type.TString;
|
|
10
|
+
}>;
|
|
11
|
+
export declare function prepareTranscriptDeletion(owner: DaemonOwnership, input: string): () => void;
|
|
12
|
+
export declare function readOwnedOutputRange(owner: DaemonOwnership, input: string, offset: number, limit: number): Uint8Array;
|
|
13
|
+
export interface PreparedImport {
|
|
14
|
+
bytes: Buffer;
|
|
15
|
+
}
|
|
16
|
+
export interface StagedImport {
|
|
17
|
+
path: string;
|
|
18
|
+
dispose(): void;
|
|
19
|
+
}
|
|
20
|
+
export declare function prepareImport(owner: DaemonOwnership, source: string): PreparedImport;
|
|
21
|
+
export declare function stageImport(owner: DaemonOwnership, directory: string, source: string, prepared?: PreparedImport): StagedImport;
|
|
22
|
+
export interface PreparedExport {
|
|
23
|
+
target: string;
|
|
24
|
+
}
|
|
25
|
+
/** Resolves an export destination; only daemon-managed files (transcripts, control and runtime state) are protected. */
|
|
26
|
+
export declare function prepareExport(owner: DaemonOwnership, destination: string, managed: readonly string[]): PreparedExport;
|
|
27
|
+
export declare function publishExport(owner: DaemonOwnership, render: (path: string) => Promise<unknown>, prepared: PreparedExport): Promise<string>;
|
|
28
|
+
//# sourceMappingURL=session-files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-files.d.ts","sourceRoot":"","sources":["../../src/daemon/session-files.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAItD,oGAAoG;AACpG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAI3D;AACD,eAAO,MAAM,mBAAmB;;;;;EAA2I,CAAC;AAmB5K,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,IAAI,CAQ3F;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAYrH;AAED,MAAM,WAAW,cAAc;IAAG,KAAK,EAAE,MAAM,CAAA;CAAE;AACjD,MAAM,WAAW,YAAY;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,IAAI,IAAI,CAAA;CAAE;AAC/D,wBAAgB,aAAa,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,CAQpF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,iBAA+B,GAAG,YAAY,CAa5I;AAED,MAAM,WAAW,cAAc;IAAG,MAAM,EAAE,MAAM,CAAA;CAAE;AAClD,wHAAwH;AACxH,wBAAgB,aAAa,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,cAAc,CAQrH;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBjJ"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { chmodSync, closeSync, constants, fstatSync, fsyncSync, openSync, readFileSync, readSync, realpathSync, renameSync, statSync, unlinkSync, writeFileSync } from 'node:fs';
|
|
3
|
+
import { basename, dirname, join } from 'node:path';
|
|
4
|
+
import { AbsolutePathSchema, IdSchema } from '@felan-ai/session-protocol';
|
|
5
|
+
import { Type } from 'typebox';
|
|
6
|
+
import { guardOwnedPaths, prepareControlDirectory, syncOwnedDirectory } from './persistence.js';
|
|
7
|
+
import { assertPathIdentity, pathIdentity, pathInside } from './target.js';
|
|
8
|
+
/** Messages a person or the shell produced. Extension context and session metadata do not count. */
|
|
9
|
+
export function isConversationEntry(entry) {
|
|
10
|
+
if (!entry || typeof entry !== 'object')
|
|
11
|
+
return false;
|
|
12
|
+
const row = entry;
|
|
13
|
+
return row.type === 'message' && typeof row.message?.role === 'string' && ['user', 'assistant', 'bashExecution'].includes(row.message.role);
|
|
14
|
+
}
|
|
15
|
+
export const sessionHeaderSchema = Type.Object({ type: Type.Literal('session'), version: Type.Integer({ minimum: 1, maximum: 3 }), id: IdSchema, cwd: AbsolutePathSchema });
|
|
16
|
+
const error = (code, message) => Object.assign(new Error(message), { code });
|
|
17
|
+
const absent = (cause) => cause.code === 'ENOENT';
|
|
18
|
+
function owned(owner, path) {
|
|
19
|
+
if (owner.assertOwnsPath(path) !== path)
|
|
20
|
+
throw error('ownership_lost', 'Owned file changed its canonical destination.');
|
|
21
|
+
return path;
|
|
22
|
+
}
|
|
23
|
+
function regular(stat, owner) {
|
|
24
|
+
if (!stat.isFile() || owner && (stat.uid !== BigInt(owner.target.uid) || stat.nlink !== 1n))
|
|
25
|
+
throw error('invalid_request', 'Expected an unchanged regular file with one owned link.');
|
|
26
|
+
}
|
|
27
|
+
function sameFile(stat, pin) {
|
|
28
|
+
if (stat.dev !== pin.dev || stat.ino !== pin.ino)
|
|
29
|
+
throw error('ownership_lost', 'File identity changed.');
|
|
30
|
+
}
|
|
31
|
+
function unlinkPinned(path, pin) {
|
|
32
|
+
try {
|
|
33
|
+
assertPathIdentity(pin);
|
|
34
|
+
unlinkSync(path);
|
|
35
|
+
}
|
|
36
|
+
catch (cause) {
|
|
37
|
+
if (!absent(cause))
|
|
38
|
+
throw cause;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export function prepareTranscriptDeletion(owner, input) {
|
|
42
|
+
const path = owned(owner, input);
|
|
43
|
+
return () => {
|
|
44
|
+
owned(owner, path);
|
|
45
|
+
try {
|
|
46
|
+
unlinkSync(path);
|
|
47
|
+
}
|
|
48
|
+
catch (cause) {
|
|
49
|
+
if (!absent(cause))
|
|
50
|
+
throw cause;
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
syncOwnedDirectory(owner, dirname(path));
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export function readOwnedOutputRange(owner, input, offset, limit) {
|
|
57
|
+
if (!Number.isSafeInteger(offset) || offset < 0 || !Number.isSafeInteger(limit) || limit < 1 || limit > 65536)
|
|
58
|
+
throw error('invalid_request', 'Invalid output range.');
|
|
59
|
+
const path = owned(owner, input);
|
|
60
|
+
const check = guardOwnedPaths(owner, [path]);
|
|
61
|
+
const pin = pathIdentity(path);
|
|
62
|
+
const fd = openSync(path, constants.O_RDONLY | constants.O_NOFOLLOW | constants.O_NONBLOCK);
|
|
63
|
+
try {
|
|
64
|
+
const before = fstatSync(fd, { bigint: true });
|
|
65
|
+
regular(before, owner);
|
|
66
|
+
sameFile(before, pin);
|
|
67
|
+
check();
|
|
68
|
+
if (BigInt(offset) > before.size)
|
|
69
|
+
throw error('resync_required', 'Output range is no longer retained.');
|
|
70
|
+
const bytes = Buffer.alloc(limit);
|
|
71
|
+
const count = readSync(fd, bytes, 0, limit, offset);
|
|
72
|
+
const after = fstatSync(fd, { bigint: true });
|
|
73
|
+
regular(after, owner);
|
|
74
|
+
sameFile(after, pin);
|
|
75
|
+
if (!Number.isSafeInteger(offset + count) || after.size < BigInt(offset + count))
|
|
76
|
+
throw error('resync_required', 'Output shrank during the read.');
|
|
77
|
+
check();
|
|
78
|
+
return new Uint8Array(bytes.subarray(0, count));
|
|
79
|
+
}
|
|
80
|
+
finally {
|
|
81
|
+
closeSync(fd);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
export function prepareImport(owner, source) {
|
|
85
|
+
owner.assertCurrent();
|
|
86
|
+
const bytes = readFileSync(source);
|
|
87
|
+
const end = bytes.indexOf(10);
|
|
88
|
+
let header;
|
|
89
|
+
try {
|
|
90
|
+
header = JSON.parse(bytes.subarray(0, end < 0 ? bytes.length : end).toString('utf8'));
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
header = undefined;
|
|
94
|
+
}
|
|
95
|
+
if (header?.type !== 'session')
|
|
96
|
+
throw error('invalid_request', 'Import source is not a session transcript.');
|
|
97
|
+
return { bytes };
|
|
98
|
+
}
|
|
99
|
+
export function stageImport(owner, directory, source, prepared = prepareImport(owner, source)) {
|
|
100
|
+
owner.assertCurrent();
|
|
101
|
+
const target = prepareControlDirectory(owner, join(owned(owner, directory), '.felan-import'));
|
|
102
|
+
const check = guardOwnedPaths(owner, [target]);
|
|
103
|
+
const path = join(target, `.felan-import-${randomUUID()}.tmp`);
|
|
104
|
+
const output = openSync(path, constants.O_WRONLY | constants.O_CREAT | constants.O_EXCL | constants.O_NOFOLLOW, 0o600);
|
|
105
|
+
let pin;
|
|
106
|
+
try {
|
|
107
|
+
pin = pathIdentity(path);
|
|
108
|
+
check();
|
|
109
|
+
writeFileSync(output, prepared.bytes);
|
|
110
|
+
fsyncSync(output);
|
|
111
|
+
check();
|
|
112
|
+
}
|
|
113
|
+
catch (cause) {
|
|
114
|
+
owner.assertCurrent();
|
|
115
|
+
if (pin)
|
|
116
|
+
unlinkPinned(path, pin);
|
|
117
|
+
throw cause;
|
|
118
|
+
}
|
|
119
|
+
finally {
|
|
120
|
+
closeSync(output);
|
|
121
|
+
}
|
|
122
|
+
const pinned = pin;
|
|
123
|
+
const dispose = () => { check(); unlinkPinned(path, pinned); syncOwnedDirectory(owner, target); };
|
|
124
|
+
try {
|
|
125
|
+
syncOwnedDirectory(owner, target);
|
|
126
|
+
return { path, dispose };
|
|
127
|
+
}
|
|
128
|
+
catch (cause) {
|
|
129
|
+
dispose();
|
|
130
|
+
throw cause;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/** Resolves an export destination; only daemon-managed files (transcripts, control and runtime state) are protected. */
|
|
134
|
+
export function prepareExport(owner, destination, managed) {
|
|
135
|
+
owner.assertCurrent();
|
|
136
|
+
if (['.', '..', ''].includes(basename(destination)))
|
|
137
|
+
throw error('invalid_request', 'Export requires an explicit file name.');
|
|
138
|
+
const target = join(realpathSync(dirname(destination)), basename(destination));
|
|
139
|
+
let resolved = target;
|
|
140
|
+
try {
|
|
141
|
+
resolved = realpathSync(target);
|
|
142
|
+
}
|
|
143
|
+
catch (cause) {
|
|
144
|
+
if (!absent(cause))
|
|
145
|
+
throw cause;
|
|
146
|
+
}
|
|
147
|
+
if (managed.some(path => pathInside(path, target) || pathInside(path, resolved)))
|
|
148
|
+
throw error('forbidden', 'Export cannot overwrite files managed by the session daemon.');
|
|
149
|
+
return { target };
|
|
150
|
+
}
|
|
151
|
+
export async function publishExport(owner, render, prepared) {
|
|
152
|
+
const { target } = prepared;
|
|
153
|
+
const temp = join(dirname(target), `.felan-export-${randomUUID()}.tmp`);
|
|
154
|
+
try {
|
|
155
|
+
await render(temp);
|
|
156
|
+
owner.assertCurrent();
|
|
157
|
+
try {
|
|
158
|
+
chmodSync(temp, statSync(target).mode & 0o777);
|
|
159
|
+
}
|
|
160
|
+
catch (cause) {
|
|
161
|
+
if (!absent(cause))
|
|
162
|
+
throw cause;
|
|
163
|
+
}
|
|
164
|
+
const fd = openSync(temp, constants.O_RDONLY);
|
|
165
|
+
try {
|
|
166
|
+
fsyncSync(fd);
|
|
167
|
+
}
|
|
168
|
+
finally {
|
|
169
|
+
closeSync(fd);
|
|
170
|
+
}
|
|
171
|
+
renameSync(temp, target);
|
|
172
|
+
}
|
|
173
|
+
catch (cause) {
|
|
174
|
+
try {
|
|
175
|
+
unlinkSync(temp);
|
|
176
|
+
}
|
|
177
|
+
catch { }
|
|
178
|
+
throw cause;
|
|
179
|
+
}
|
|
180
|
+
const directory = openSync(dirname(target), constants.O_RDONLY | constants.O_DIRECTORY);
|
|
181
|
+
try {
|
|
182
|
+
fsyncSync(directory);
|
|
183
|
+
}
|
|
184
|
+
finally {
|
|
185
|
+
closeSync(directory);
|
|
186
|
+
}
|
|
187
|
+
return target;
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=session-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-files.js","sourceRoot":"","sources":["../../src/daemon/session-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import type { AgentRuntime, AgentSessionRuntime, AgentSessionRuntimeDiagnostic, CreateAgentSessionOptions, CreateAgentCoreSessionOptions, ExtensionConfigDefinition, ExtensionConfigOverride, ModelRuntime, SessionManager, SettingsManager } from '@felan-ai/agent-core';
|
|
2
|
+
import type { SessionEnvironment, SessionRuntime } from './session-runtime.js';
|
|
3
|
+
import type { SessionExtensionBindings, SessionExtensionContext, SessionExecutionPort } from './session-execution.js';
|
|
4
|
+
export declare const SESSION_LIFECYCLE_API_VERSION = 1;
|
|
5
|
+
export interface SessionResourceRequest {
|
|
6
|
+
readonly cwd: string;
|
|
7
|
+
readonly sessionDir?: string;
|
|
8
|
+
}
|
|
9
|
+
export type SessionResources = SessionEnvironment;
|
|
10
|
+
export interface SessionOwnership {
|
|
11
|
+
assertOwned(resources: SessionResources, target: SessionTargetIdentity): void | Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
export interface SessionTargetIdentity {
|
|
14
|
+
readonly kind: SessionTarget['kind'];
|
|
15
|
+
readonly destinationDirectory: string;
|
|
16
|
+
readonly sourceSessionFile?: string;
|
|
17
|
+
readonly sourceSessionId?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface ToolProvenance {
|
|
20
|
+
readonly name: string;
|
|
21
|
+
readonly source: 'builtin' | 'external';
|
|
22
|
+
readonly sourceId: string;
|
|
23
|
+
}
|
|
24
|
+
export interface SessionExecutionPolicy {
|
|
25
|
+
readonly mode: 'host-default' | 'acp-strict';
|
|
26
|
+
readonly generation: number;
|
|
27
|
+
}
|
|
28
|
+
export interface DaemonSessionServices {
|
|
29
|
+
readonly getExecutionPolicy: () => SessionExecutionPolicy;
|
|
30
|
+
readonly extensions: {
|
|
31
|
+
configuration(packages: readonly string[]): Promise<readonly ExtensionConfigDefinition[]>;
|
|
32
|
+
executionPort?(context: SessionExtensionContext): SessionExecutionPort;
|
|
33
|
+
bind(context: SessionExtensionContext, port?: SessionExecutionPort): Promise<SessionExtensionBindings>;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export type SessionTarget = {
|
|
37
|
+
readonly kind: 'new';
|
|
38
|
+
readonly id?: string;
|
|
39
|
+
} | {
|
|
40
|
+
readonly kind: 'resume';
|
|
41
|
+
readonly sessionFile: string;
|
|
42
|
+
} | {
|
|
43
|
+
readonly kind: 'fork';
|
|
44
|
+
readonly sourceSessionFile: string;
|
|
45
|
+
readonly entryId: string;
|
|
46
|
+
readonly position: 'before' | 'at';
|
|
47
|
+
} | {
|
|
48
|
+
readonly kind: 'clone';
|
|
49
|
+
readonly sourceSessionFile: string;
|
|
50
|
+
} | {
|
|
51
|
+
readonly kind: 'import';
|
|
52
|
+
readonly sessionFile: string;
|
|
53
|
+
};
|
|
54
|
+
export interface SessionOpenRequest {
|
|
55
|
+
readonly resources: SessionResources;
|
|
56
|
+
readonly ownership: SessionOwnership;
|
|
57
|
+
readonly policy: SessionExecutionPolicy;
|
|
58
|
+
readonly services: DaemonSessionServices;
|
|
59
|
+
readonly target: SessionTarget;
|
|
60
|
+
readonly rootSessionId?: string;
|
|
61
|
+
readonly parentSessionId?: string;
|
|
62
|
+
readonly model?: CreateAgentSessionOptions['model'];
|
|
63
|
+
readonly thinkingLevel?: CreateAgentSessionOptions['thinkingLevel'];
|
|
64
|
+
readonly extensionConfigOverrides?: readonly ExtensionConfigOverride[];
|
|
65
|
+
readonly extensionPaths?: readonly string[];
|
|
66
|
+
readonly allowedTools?: readonly string[];
|
|
67
|
+
readonly worker?: SessionWorkerConfiguration;
|
|
68
|
+
}
|
|
69
|
+
export interface SessionWorkerConfiguration {
|
|
70
|
+
readonly runtime: AgentRuntime;
|
|
71
|
+
readonly modelRuntime: ModelRuntime;
|
|
72
|
+
readonly sessionManager: SessionManager;
|
|
73
|
+
readonly model: NonNullable<CreateAgentCoreSessionOptions['model']>;
|
|
74
|
+
readonly thinkingLevel?: CreateAgentCoreSessionOptions['thinkingLevel'];
|
|
75
|
+
readonly settingsManager: SettingsManager;
|
|
76
|
+
readonly customTools?: CreateAgentCoreSessionOptions['customTools'];
|
|
77
|
+
readonly appendSystemPrompt?: CreateAgentCoreSessionOptions['appendSystemPrompt'];
|
|
78
|
+
readonly allowedTools: readonly string[];
|
|
79
|
+
}
|
|
80
|
+
export interface SessionBinding {
|
|
81
|
+
readonly runtime: AgentSessionRuntime;
|
|
82
|
+
readonly agentRuntime: AgentRuntime;
|
|
83
|
+
readonly sessionId: string;
|
|
84
|
+
readonly rootSessionId: string;
|
|
85
|
+
readonly parentSessionId?: string;
|
|
86
|
+
readonly resources: SessionResources;
|
|
87
|
+
readonly diagnostics: readonly AgentSessionRuntimeDiagnostic[];
|
|
88
|
+
readonly activate?: () => Promise<void>;
|
|
89
|
+
readonly projectMessage?: SessionRuntime['projectMessage'];
|
|
90
|
+
readonly toolProvenance: readonly ToolProvenance[];
|
|
91
|
+
readonly tools: {
|
|
92
|
+
readonly provenance: readonly ToolProvenance[];
|
|
93
|
+
requiresApproval(policy: SessionExecutionPolicy, name: string): boolean;
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
export interface SessionLifecycle {
|
|
97
|
+
readonly apiVersion: typeof SESSION_LIFECYCLE_API_VERSION;
|
|
98
|
+
readonly id: string;
|
|
99
|
+
resolveResources(request: SessionResourceRequest): Promise<SessionResources>;
|
|
100
|
+
validateConfiguration?(resources: SessionResources, overrides: readonly ExtensionConfigOverride[], configuration: DaemonSessionServices['extensions']['configuration']): Promise<void>;
|
|
101
|
+
openSession(request: SessionOpenRequest): Promise<SessionBinding>;
|
|
102
|
+
dispose(): Promise<void>;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=session-lifecycle-contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-lifecycle-contracts.d.ts","sourceRoot":"","sources":["../../src/daemon/session-lifecycle-contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-lifecycle-contracts.js","sourceRoot":"","sources":["../../src/daemon/session-lifecycle-contracts.ts"],"names":[],"mappings":"AAeA,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { HostConfiguration } from './host-services.js';
|
|
2
|
+
import { type AgentRuntime, type FelanServiceRegistry, type Logger, type ModelRuntime, type RuntimeDependenciesService, type SessionRef, type SessionsService } from '@felan-ai/agent-core';
|
|
3
|
+
import { createRuntimeStorageRequest } from '../runtime-factory.js';
|
|
4
|
+
import { type LoadedProviders } from './provider-loader.js';
|
|
5
|
+
import type { ProviderSecretStorage, ProviderWorkerLauncher } from './provider.js';
|
|
6
|
+
import type { SessionRuntime } from './session-runtime.js';
|
|
7
|
+
import { type SessionLifecycle } from './session-lifecycle-contracts.js';
|
|
8
|
+
export interface SessionLifecycleOptions {
|
|
9
|
+
readonly configuration: () => HostConfiguration;
|
|
10
|
+
readonly composition: SessionRuntime;
|
|
11
|
+
readonly agentDir: string;
|
|
12
|
+
readonly homeDir?: string;
|
|
13
|
+
readonly extensionPackages: readonly string[];
|
|
14
|
+
readonly createModelRuntime?: (agentDir: string) => Promise<ModelRuntime>;
|
|
15
|
+
readonly secretStorage: ProviderSecretStorage;
|
|
16
|
+
readonly serviceRegistry: FelanServiceRegistry;
|
|
17
|
+
readonly openServiceScope: LoadedProviders['openSession'];
|
|
18
|
+
readonly wrapRuntime?: (runtime: AgentRuntime, request: ReturnType<typeof createRuntimeStorageRequest>) => AgentRuntime;
|
|
19
|
+
readonly createLogger?: (root: string) => Logger;
|
|
20
|
+
readonly sessions?: (current: SessionRef, cwd: string) => SessionsService;
|
|
21
|
+
readonly openWorker?: (current: SessionRef, models: ModelRuntime, allowed: readonly import('@felan-ai/agent-core').ModelReference[] | undefined) => ProviderWorkerLauncher;
|
|
22
|
+
readonly deferActivation?: boolean;
|
|
23
|
+
readonly runtimeDependencies?: RuntimeDependenciesService;
|
|
24
|
+
}
|
|
25
|
+
export declare function createSessionLifecycle(options: SessionLifecycleOptions): SessionLifecycle;
|
|
26
|
+
//# sourceMappingURL=session-lifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-lifecycle.d.ts","sourceRoot":"","sources":["../../src/daemon/session-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EAAqH,KAAK,YAAY,EAAiD,KAAK,oBAAoB,EAAE,KAAK,MAAM,EAAE,KAAK,YAAY,EAAE,KAAK,0BAA0B,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9V,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAGpE,OAAO,EAA0B,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEpF,OAAO,KAAK,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,KAAK,EAAsB,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAiC,KAAK,gBAAgB,EAA8C,MAAM,kCAAkC,CAAC;AAGpJ,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,aAAa,EAAE,MAAM,iBAAiB,CAAC;IAChD,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1E,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAC;IAC9C,QAAQ,CAAC,eAAe,EAAE,oBAAoB,CAAC;IAC/C,QAAQ,CAAC,gBAAgB,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;IAC1D,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,2BAA2B,CAAC,KAAK,YAAY,CAAC;IACxH,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,KAAK,eAAe,CAAC;IAC1E,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,OAAO,sBAAsB,EAAE,cAAc,EAAE,GAAG,SAAS,KAAK,sBAAsB,CAAC;IAC3K,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,0BAA0B,CAAC;CAC3D;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAG,gBAAgB,CAyLzF"}
|