@xenosystem/agent-interface-host 0.1.7 → 0.1.9
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/dist/acp/AcpAgentRegistryService.d.ts.map +1 -1
- package/dist/acp/AcpAgentRegistryService.js +40 -18
- package/dist/acp/AcpAgentRegistryService.js.map +1 -1
- package/dist/acp/AcpAgentTurnExecutionAdapter.d.ts.map +1 -1
- package/dist/acp/AcpAgentTurnExecutionAdapter.js +11 -0
- package/dist/acp/AcpAgentTurnExecutionAdapter.js.map +1 -1
- package/dist/acp/AcpNativeProviderLauncherResolver.d.ts +26 -0
- package/dist/acp/AcpNativeProviderLauncherResolver.d.ts.map +1 -0
- package/dist/acp/AcpNativeProviderLauncherResolver.js +145 -0
- package/dist/acp/AcpNativeProviderLauncherResolver.js.map +1 -0
- package/dist/acp/AcpProcessSupervisor.d.ts.map +1 -1
- package/dist/acp/AcpProcessSupervisor.js +4 -1
- package/dist/acp/AcpProcessSupervisor.js.map +1 -1
- package/dist/acp/AcpProviderModelService.d.ts +1 -0
- package/dist/acp/AcpProviderModelService.d.ts.map +1 -1
- package/dist/acp/AcpProviderModelService.js +2 -2
- package/dist/acp/AcpProviderModelService.js.map +1 -1
- package/dist/acp/AcpSessionService.d.ts.map +1 -1
- package/dist/acp/AcpSessionService.js +40 -2
- package/dist/acp/AcpSessionService.js.map +1 -1
- package/dist/acp/acpTypes.d.ts +3 -0
- package/dist/acp/acpTypes.d.ts.map +1 -1
- package/dist/cloud/XenoCloudAgentTurnExecutionAdapter.d.ts.map +1 -1
- package/dist/cloud/XenoCloudAgentTurnExecutionAdapter.js +4 -0
- package/dist/cloud/XenoCloudAgentTurnExecutionAdapter.js.map +1 -1
- package/dist/index.d.ts +41 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +138 -10
- package/dist/index.js.map +1 -1
- package/dist/lease/ProcessLivenessProber.d.ts +30 -0
- package/dist/lease/ProcessLivenessProber.d.ts.map +1 -0
- package/dist/lease/ProcessLivenessProber.js +95 -0
- package/dist/lease/ProcessLivenessProber.js.map +1 -0
- package/dist/lease/ProviderWriterLeaseService.d.ts +43 -0
- package/dist/lease/ProviderWriterLeaseService.d.ts.map +1 -0
- package/dist/lease/ProviderWriterLeaseService.js +148 -0
- package/dist/lease/ProviderWriterLeaseService.js.map +1 -0
- package/dist/node.d.ts +8 -0
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +8 -0
- package/dist/node.js.map +1 -1
- package/dist/provider/ProviderLaneService.d.ts +71 -0
- package/dist/provider/ProviderLaneService.d.ts.map +1 -0
- package/dist/provider/ProviderLaneService.js +892 -0
- package/dist/provider/ProviderLaneService.js.map +1 -0
- package/dist/provider/ProviderTransitionOutboxDispatcher.d.ts +22 -0
- package/dist/provider/ProviderTransitionOutboxDispatcher.d.ts.map +1 -0
- package/dist/provider/ProviderTransitionOutboxDispatcher.js +60 -0
- package/dist/provider/ProviderTransitionOutboxDispatcher.js.map +1 -0
- package/dist/sdk/SdkNativeAgentTurnExecutionAdapter.d.ts +4 -1
- package/dist/sdk/SdkNativeAgentTurnExecutionAdapter.d.ts.map +1 -1
- package/dist/sdk/SdkNativeAgentTurnExecutionAdapter.js +37 -1
- package/dist/sdk/SdkNativeAgentTurnExecutionAdapter.js.map +1 -1
- package/dist/session/nativeTuiSessionPty.d.ts.map +1 -1
- package/dist/session/nativeTuiSessionPty.js +8 -0
- package/dist/session/nativeTuiSessionPty.js.map +1 -1
- package/dist/state/ProviderLaneSqliteStore.d.ts +64 -0
- package/dist/state/ProviderLaneSqliteStore.d.ts.map +1 -0
- package/dist/state/ProviderLaneSqliteStore.js +728 -0
- package/dist/state/ProviderLaneSqliteStore.js.map +1 -0
- package/dist/state/SqliteAgentStateRepository.d.ts +9 -0
- package/dist/state/SqliteAgentStateRepository.d.ts.map +1 -1
- package/dist/state/SqliteAgentStateRepository.js +171 -17
- package/dist/state/SqliteAgentStateRepository.js.map +1 -1
- package/dist/state/createAgentStateRepository.d.ts.map +1 -1
- package/dist/state/createAgentStateRepository.js +4 -2
- package/dist/state/createAgentStateRepository.js.map +1 -1
- package/dist/state/providerLaneSchema.d.ts +13 -0
- package/dist/state/providerLaneSchema.d.ts.map +1 -0
- package/dist/state/providerLaneSchema.js +129 -0
- package/dist/state/providerLaneSchema.js.map +1 -0
- package/dist/state/providerLaneTypes.d.ts +122 -0
- package/dist/state/providerLaneTypes.d.ts.map +1 -0
- package/dist/state/providerLaneTypes.js +28 -0
- package/dist/state/providerLaneTypes.js.map +1 -0
- package/dist/state/sdkProtectedStateCipher.d.ts +30 -0
- package/dist/state/sdkProtectedStateCipher.d.ts.map +1 -0
- package/dist/state/sdkProtectedStateCipher.js +50 -0
- package/dist/state/sdkProtectedStateCipher.js.map +1 -0
- package/dist/workspace/WorkspaceHostService.d.ts +33 -1
- package/dist/workspace/WorkspaceHostService.d.ts.map +1 -1
- package/dist/workspace/WorkspaceHostService.js +109 -14
- package/dist/workspace/WorkspaceHostService.js.map +1 -1
- package/package.json +10 -7
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { execFileSync } from 'node:child_process';
|
|
2
|
+
export class DefaultProcessLivenessProber {
|
|
3
|
+
platform;
|
|
4
|
+
processExists;
|
|
5
|
+
processStartTime;
|
|
6
|
+
constructor(options = {}) {
|
|
7
|
+
this.platform = options.platform ?? process.platform;
|
|
8
|
+
this.processExists = options.processExists ?? defaultProcessExists;
|
|
9
|
+
this.processStartTime = options.processStartTime ?? ((pid) => defaultProcessStartTime(this.platform, pid));
|
|
10
|
+
}
|
|
11
|
+
probe(input) {
|
|
12
|
+
validatePid(input.pid);
|
|
13
|
+
if (input.hostInstanceId !== input.currentHostInstanceId) {
|
|
14
|
+
return { state: 'unknown', reason: 'foreign_host' };
|
|
15
|
+
}
|
|
16
|
+
try {
|
|
17
|
+
const exists = this.processExists(input.pid);
|
|
18
|
+
if (exists === 'unknown')
|
|
19
|
+
return { state: 'unknown', reason: 'probe_denied' };
|
|
20
|
+
if (!exists)
|
|
21
|
+
return { state: 'dead', reason: 'pid_missing' };
|
|
22
|
+
const observed = this.processStartTime(input.pid);
|
|
23
|
+
if (observed === 'unknown')
|
|
24
|
+
return { state: 'unknown', reason: 'probe_denied' };
|
|
25
|
+
if (!observed)
|
|
26
|
+
return { state: 'unknown', reason: 'probe_failed' };
|
|
27
|
+
if (!sameProcessStartTime(observed, input.expectedProcessStartTime)) {
|
|
28
|
+
return { state: 'dead', reason: 'pid_reused', observedProcessStartTime: observed };
|
|
29
|
+
}
|
|
30
|
+
return { state: 'alive', reason: 'alive', observedProcessStartTime: observed };
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return { state: 'unknown', reason: 'probe_failed' };
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export function sameProcessStartTime(left, right, toleranceMs = 2000) {
|
|
38
|
+
const leftMs = Date.parse(left);
|
|
39
|
+
const rightMs = Date.parse(right);
|
|
40
|
+
if (!Number.isFinite(leftMs) || !Number.isFinite(rightMs))
|
|
41
|
+
return left === right;
|
|
42
|
+
return Math.abs(leftMs - rightMs) <= toleranceMs;
|
|
43
|
+
}
|
|
44
|
+
function defaultProcessExists(pid) {
|
|
45
|
+
try {
|
|
46
|
+
process.kill(pid, 0);
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
const code = isRecord(error) && typeof error.code === 'string' ? error.code : '';
|
|
51
|
+
if (code === 'ESRCH')
|
|
52
|
+
return false;
|
|
53
|
+
if (code === 'EPERM' || code === 'EACCES')
|
|
54
|
+
return 'unknown';
|
|
55
|
+
return 'unknown';
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function defaultProcessStartTime(platform, pid) {
|
|
59
|
+
validatePid(pid);
|
|
60
|
+
try {
|
|
61
|
+
if (platform === 'win32') {
|
|
62
|
+
const script = [
|
|
63
|
+
"$p = Get-CimInstance Win32_Process -Filter ('ProcessId = ' + $args[0])",
|
|
64
|
+
"if ($null -ne $p) { $p.CreationDate.ToUniversalTime().ToString('o') }",
|
|
65
|
+
].join('; ');
|
|
66
|
+
const output = execFileSync('powershell.exe', [
|
|
67
|
+
'-NoLogo', '-NoProfile', '-NonInteractive', '-Command', script, String(pid),
|
|
68
|
+
], { encoding: 'utf8', windowsHide: true, timeout: 5000, stdio: ['ignore', 'pipe', 'ignore'] }).trim();
|
|
69
|
+
return output || null;
|
|
70
|
+
}
|
|
71
|
+
const output = execFileSync('ps', ['-p', String(pid), '-o', 'lstart='], {
|
|
72
|
+
encoding: 'utf8',
|
|
73
|
+
timeout: 5000,
|
|
74
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
75
|
+
}).trim();
|
|
76
|
+
if (!output)
|
|
77
|
+
return null;
|
|
78
|
+
const parsed = new Date(output);
|
|
79
|
+
return Number.isNaN(parsed.valueOf()) ? 'unknown' : parsed.toISOString();
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
const code = isRecord(error) && typeof error.code === 'string' ? error.code : '';
|
|
83
|
+
if (code === 'EPERM' || code === 'EACCES')
|
|
84
|
+
return 'unknown';
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function validatePid(pid) {
|
|
89
|
+
if (!Number.isSafeInteger(pid) || pid <= 0)
|
|
90
|
+
throw new Error('Invalid process ID.');
|
|
91
|
+
}
|
|
92
|
+
function isRecord(value) {
|
|
93
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=ProcessLivenessProber.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProcessLivenessProber.js","sourceRoot":"","sources":["../../src/lease/ProcessLivenessProber.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { AgentCockpitErrorCode } from '@xenosystem/agent-interface-contract';
|
|
2
|
+
import type { ProviderLaneSqliteStore } from '../state/ProviderLaneSqliteStore.js';
|
|
3
|
+
import type { ProviderWriterLeaseRecordV1 } from '../state/providerLaneTypes.js';
|
|
4
|
+
import { type ProcessLivenessProber, type ProcessLivenessResult } from './ProcessLivenessProber.js';
|
|
5
|
+
export interface ExternalProviderBusyProbeInput {
|
|
6
|
+
runtimeProviderId: string;
|
|
7
|
+
nativeProviderId?: string;
|
|
8
|
+
nativeSessionHash?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ExternalProviderBusyClassifier {
|
|
11
|
+
classify(input: ExternalProviderBusyProbeInput): 'clear' | 'busy' | 'unknown';
|
|
12
|
+
}
|
|
13
|
+
export interface ProviderWriterLeaseServiceOptions {
|
|
14
|
+
store: ProviderLaneSqliteStore;
|
|
15
|
+
hostInstanceId: string;
|
|
16
|
+
livenessProber?: ProcessLivenessProber;
|
|
17
|
+
externalBusyClassifier?: ExternalProviderBusyClassifier;
|
|
18
|
+
now?: () => Date;
|
|
19
|
+
}
|
|
20
|
+
export interface WriterLeaseResult {
|
|
21
|
+
success: boolean;
|
|
22
|
+
lease?: ProviderWriterLeaseRecordV1;
|
|
23
|
+
code?: AgentCockpitErrorCode;
|
|
24
|
+
error?: string;
|
|
25
|
+
liveness?: ProcessLivenessResult;
|
|
26
|
+
}
|
|
27
|
+
export declare class ProviderWriterLeaseService {
|
|
28
|
+
private readonly store;
|
|
29
|
+
private readonly hostInstanceId;
|
|
30
|
+
private readonly livenessProber;
|
|
31
|
+
private readonly externalBusyClassifier;
|
|
32
|
+
private readonly now;
|
|
33
|
+
constructor(options: ProviderWriterLeaseServiceOptions);
|
|
34
|
+
acquireLease(lease: ProviderWriterLeaseRecordV1): WriterLeaseResult;
|
|
35
|
+
renewLease(leaseId: string, laneId: string, expectedLeaseRevision: number, expiresAt: string): WriterLeaseResult;
|
|
36
|
+
heartbeat(leaseId: string, laneId: string, expectedLeaseRevision: number): WriterLeaseResult;
|
|
37
|
+
beginRelease(leaseId: string, laneId: string, expectedLeaseRevision: number): WriterLeaseResult;
|
|
38
|
+
confirmReleased(leaseId: string, laneId: string, expectedLeaseRevision: number, processExited: boolean): WriterLeaseResult;
|
|
39
|
+
assertAuthority(leaseId: string, authoritySnapshotHash: string): WriterLeaseResult;
|
|
40
|
+
private requireCurrentLease;
|
|
41
|
+
private fromStore;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=ProviderWriterLeaseService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProviderWriterLeaseService.d.ts","sourceRoot":"","sources":["../../src/lease/ProviderWriterLeaseService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAA;AACjF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA;AAClF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAA;AAChF,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC3B,MAAM,4BAA4B,CAAA;AAEnC,MAAM,WAAW,8BAA8B;IAC7C,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;CAC9E;AAED,MAAM,WAAW,iCAAiC;IAChD,KAAK,EAAE,uBAAuB,CAAA;IAC9B,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,qBAAqB,CAAA;IACtC,sBAAsB,CAAC,EAAE,8BAA8B,CAAA;IACvD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,2BAA2B,CAAA;IACnC,IAAI,CAAC,EAAE,qBAAqB,CAAA;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,qBAAqB,CAAA;CACjC;AAED,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA4C;IACnF,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;gBAEpB,OAAO,EAAE,iCAAiC;IAQtD,YAAY,CAAC,KAAK,EAAE,2BAA2B,GAAG,iBAAiB;IAqDnE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,iBAAiB;IAYhH,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,GAAG,iBAAiB;IAa5F,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,GAAG,iBAAiB;IAU/F,eAAe,CACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,qBAAqB,EAAE,MAAM,EAC7B,aAAa,EAAE,OAAO,GACrB,iBAAiB;IAgBpB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,GAAG,iBAAiB;IASlF,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,SAAS;CAalB"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { DefaultProcessLivenessProber, } from './ProcessLivenessProber.js';
|
|
2
|
+
export class ProviderWriterLeaseService {
|
|
3
|
+
store;
|
|
4
|
+
hostInstanceId;
|
|
5
|
+
livenessProber;
|
|
6
|
+
externalBusyClassifier;
|
|
7
|
+
now;
|
|
8
|
+
constructor(options) {
|
|
9
|
+
this.store = options.store;
|
|
10
|
+
this.hostInstanceId = requireText(options.hostInstanceId, 'hostInstanceId');
|
|
11
|
+
this.livenessProber = options.livenessProber ?? new DefaultProcessLivenessProber();
|
|
12
|
+
this.externalBusyClassifier = options.externalBusyClassifier;
|
|
13
|
+
this.now = options.now ?? (() => new Date());
|
|
14
|
+
}
|
|
15
|
+
acquireLease(lease) {
|
|
16
|
+
const external = this.externalBusyClassifier?.classify({
|
|
17
|
+
runtimeProviderId: lease.runtimeProviderId,
|
|
18
|
+
...(lease.nativeProviderId ? { nativeProviderId: lease.nativeProviderId } : {}),
|
|
19
|
+
...(lease.nativeSessionHash ? { nativeSessionHash: lease.nativeSessionHash } : {}),
|
|
20
|
+
});
|
|
21
|
+
if (external === 'busy') {
|
|
22
|
+
return { success: false, code: 'PROVIDER_SESSION_BUSY_EXTERNAL', error: 'Provider reports an external live writer.' };
|
|
23
|
+
}
|
|
24
|
+
if (external === 'unknown') {
|
|
25
|
+
return { success: false, code: 'LANE_WRITER_UNKNOWN', error: 'External provider writer state is unknown.' };
|
|
26
|
+
}
|
|
27
|
+
const existing = this.store.getActiveLease(lease.laneId);
|
|
28
|
+
if (!existing)
|
|
29
|
+
return this.fromStore(this.store.saveLeaseAtomic({ ...lease, leaseRevision: 1 }, 0));
|
|
30
|
+
if (Date.parse(existing.expiresAt) > this.now().valueOf()) {
|
|
31
|
+
return { success: false, code: 'LANE_WRITER_ACTIVE', error: 'Provider lane already has an active writer.', lease: existing };
|
|
32
|
+
}
|
|
33
|
+
const liveness = this.livenessProber.probe({
|
|
34
|
+
pid: existing.ownerPid,
|
|
35
|
+
expectedProcessStartTime: existing.ownerProcessStartTime,
|
|
36
|
+
expectedProcessIdentity: existing.ownerProcessIdentity,
|
|
37
|
+
hostInstanceId: existing.hostInstanceId,
|
|
38
|
+
currentHostInstanceId: this.hostInstanceId,
|
|
39
|
+
});
|
|
40
|
+
if (liveness.state === 'alive') {
|
|
41
|
+
return { success: false, code: 'LANE_WRITER_ACTIVE', error: 'Expired lease still has a live owner process.', lease: existing, liveness };
|
|
42
|
+
}
|
|
43
|
+
if (liveness.state === 'unknown') {
|
|
44
|
+
const marked = this.store.saveLeaseAtomic({
|
|
45
|
+
...existing,
|
|
46
|
+
state: 'unknown',
|
|
47
|
+
updatedAt: this.now().toISOString(),
|
|
48
|
+
}, existing.leaseRevision);
|
|
49
|
+
return {
|
|
50
|
+
success: false,
|
|
51
|
+
code: 'LANE_WRITER_UNKNOWN',
|
|
52
|
+
error: 'Expired lease owner liveness is unknown.',
|
|
53
|
+
lease: marked.lease ?? existing,
|
|
54
|
+
liveness,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
const replaced = this.store.replaceExpiredLeaseAtomic(existing.leaseId, existing.leaseRevision, { ...lease, leaseRevision: 1 });
|
|
58
|
+
return { ...this.fromStore(replaced), liveness };
|
|
59
|
+
}
|
|
60
|
+
renewLease(leaseId, laneId, expectedLeaseRevision, expiresAt) {
|
|
61
|
+
const current = this.requireCurrentLease(leaseId, laneId);
|
|
62
|
+
if (!current.success || !current.lease)
|
|
63
|
+
return current;
|
|
64
|
+
return this.fromStore(this.store.saveLeaseAtomic({
|
|
65
|
+
...current.lease,
|
|
66
|
+
expiresAt: requireTimestamp(expiresAt, 'expiresAt'),
|
|
67
|
+
renewedAt: this.now().toISOString(),
|
|
68
|
+
lastHeartbeatAt: this.now().toISOString(),
|
|
69
|
+
updatedAt: this.now().toISOString(),
|
|
70
|
+
}, expectedLeaseRevision));
|
|
71
|
+
}
|
|
72
|
+
heartbeat(leaseId, laneId, expectedLeaseRevision) {
|
|
73
|
+
const current = this.requireCurrentLease(leaseId, laneId);
|
|
74
|
+
if (!current.success || !current.lease)
|
|
75
|
+
return current;
|
|
76
|
+
if (current.lease.state !== 'active') {
|
|
77
|
+
return { success: false, code: 'LANE_WRITER_UNKNOWN', error: 'Only an active lease can heartbeat.', lease: current.lease };
|
|
78
|
+
}
|
|
79
|
+
return this.fromStore(this.store.saveLeaseAtomic({
|
|
80
|
+
...current.lease,
|
|
81
|
+
lastHeartbeatAt: this.now().toISOString(),
|
|
82
|
+
updatedAt: this.now().toISOString(),
|
|
83
|
+
}, expectedLeaseRevision));
|
|
84
|
+
}
|
|
85
|
+
beginRelease(leaseId, laneId, expectedLeaseRevision) {
|
|
86
|
+
const current = this.requireCurrentLease(leaseId, laneId);
|
|
87
|
+
if (!current.success || !current.lease)
|
|
88
|
+
return current;
|
|
89
|
+
return this.fromStore(this.store.saveLeaseAtomic({
|
|
90
|
+
...current.lease,
|
|
91
|
+
state: 'releasing',
|
|
92
|
+
updatedAt: this.now().toISOString(),
|
|
93
|
+
}, expectedLeaseRevision));
|
|
94
|
+
}
|
|
95
|
+
confirmReleased(leaseId, laneId, expectedLeaseRevision, processExited) {
|
|
96
|
+
const current = this.requireCurrentLease(leaseId, laneId);
|
|
97
|
+
if (!current.success || !current.lease)
|
|
98
|
+
return current;
|
|
99
|
+
if (!processExited) {
|
|
100
|
+
return { success: false, code: 'LANE_WRITER_ACTIVE', error: 'Writer process exit was not verified.', lease: current.lease };
|
|
101
|
+
}
|
|
102
|
+
if (current.lease.state !== 'releasing') {
|
|
103
|
+
return { success: false, code: 'LANE_WRITER_UNKNOWN', error: 'Writer lease must enter releasing state first.', lease: current.lease };
|
|
104
|
+
}
|
|
105
|
+
return this.fromStore(this.store.saveLeaseAtomic({
|
|
106
|
+
...current.lease,
|
|
107
|
+
state: 'released',
|
|
108
|
+
updatedAt: this.now().toISOString(),
|
|
109
|
+
}, expectedLeaseRevision));
|
|
110
|
+
}
|
|
111
|
+
assertAuthority(leaseId, authoritySnapshotHash) {
|
|
112
|
+
const lease = this.store.getLease(requireText(leaseId, 'leaseId'));
|
|
113
|
+
if (!lease)
|
|
114
|
+
return { success: false, code: 'LANE_WRITER_UNKNOWN', error: 'Writer lease was not found.' };
|
|
115
|
+
if (lease.authoritySnapshotHash !== requireText(authoritySnapshotHash, 'authoritySnapshotHash')) {
|
|
116
|
+
return { success: false, code: 'WORKSPACE_EPOCH_CONFLICT', error: 'Writer authority snapshot changed.' };
|
|
117
|
+
}
|
|
118
|
+
return { success: true, lease };
|
|
119
|
+
}
|
|
120
|
+
requireCurrentLease(leaseId, laneId) {
|
|
121
|
+
const lease = this.store.getLease(requireText(leaseId, 'leaseId'));
|
|
122
|
+
if (!lease || lease.laneId !== requireText(laneId, 'laneId')) {
|
|
123
|
+
return { success: false, code: 'LANE_WRITER_UNKNOWN', error: 'Writer lease was not found.' };
|
|
124
|
+
}
|
|
125
|
+
return { success: true, lease };
|
|
126
|
+
}
|
|
127
|
+
fromStore(result) {
|
|
128
|
+
return {
|
|
129
|
+
success: result.success,
|
|
130
|
+
...(result.lease ? { lease: result.lease } : {}),
|
|
131
|
+
...(result.code ? { code: result.code } : {}),
|
|
132
|
+
...(result.error ? { error: result.error } : {}),
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
function requireText(value, field) {
|
|
137
|
+
const normalized = typeof value === 'string' ? value.trim() : '';
|
|
138
|
+
if (!normalized || normalized.length > 512)
|
|
139
|
+
throw new Error(`${field} is invalid.`);
|
|
140
|
+
return normalized;
|
|
141
|
+
}
|
|
142
|
+
function requireTimestamp(value, field) {
|
|
143
|
+
const normalized = requireText(value, field);
|
|
144
|
+
if (!Number.isFinite(Date.parse(normalized)))
|
|
145
|
+
throw new Error(`${field} is invalid.`);
|
|
146
|
+
return normalized;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=ProviderWriterLeaseService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProviderWriterLeaseService.js","sourceRoot":"","sources":["../../src/lease/ProviderWriterLeaseService.ts"],"names":[],"mappings":"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"}
|
package/dist/node.d.ts
CHANGED
|
@@ -15,6 +15,13 @@ export * from './intake/RepositoryTodoIntakeSource.js';
|
|
|
15
15
|
export * from './intake/WorkspaceTodoIntakeSource.js';
|
|
16
16
|
export * from './observation/MountContentReader.js';
|
|
17
17
|
export * from './observation/DirectoryBaselineScanner.js';
|
|
18
|
+
export * from './state/sdkProtectedStateCipher.js';
|
|
19
|
+
export * from './state/providerLaneTypes.js';
|
|
20
|
+
export * from './state/ProviderLaneSqliteStore.js';
|
|
21
|
+
export * from './lease/ProcessLivenessProber.js';
|
|
22
|
+
export * from './lease/ProviderWriterLeaseService.js';
|
|
23
|
+
export * from './provider/ProviderLaneService.js';
|
|
24
|
+
export * from './provider/ProviderTransitionOutboxDispatcher.js';
|
|
18
25
|
export * from './workspace/WorkspaceHostService.js';
|
|
19
26
|
export * from './workspace/WorkspaceShellService.js';
|
|
20
27
|
export * from './workspace/fileAssociations.js';
|
|
@@ -77,6 +84,7 @@ export * from './acp/acpSessionResume.js';
|
|
|
77
84
|
export * from './acp/AcpRuntimeEventMapper.js';
|
|
78
85
|
export * from './acp/AcpProviderVersionReadiness.js';
|
|
79
86
|
export * from './acp/AcpProviderModelService.js';
|
|
87
|
+
export * from './acp/AcpNativeProviderLauncherResolver.js';
|
|
80
88
|
export * from './acp/AcpDiagnosticsService.js';
|
|
81
89
|
export * from './acp/AcpAgentRegistryService.js';
|
|
82
90
|
export * from './acp/AcpExternalCertificationHarness.js';
|
package/dist/node.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
|
package/dist/node.js
CHANGED
|
@@ -15,6 +15,13 @@ export * from './intake/RepositoryTodoIntakeSource.js';
|
|
|
15
15
|
export * from './intake/WorkspaceTodoIntakeSource.js';
|
|
16
16
|
export * from './observation/MountContentReader.js';
|
|
17
17
|
export * from './observation/DirectoryBaselineScanner.js';
|
|
18
|
+
export * from './state/sdkProtectedStateCipher.js';
|
|
19
|
+
export * from './state/providerLaneTypes.js';
|
|
20
|
+
export * from './state/ProviderLaneSqliteStore.js';
|
|
21
|
+
export * from './lease/ProcessLivenessProber.js';
|
|
22
|
+
export * from './lease/ProviderWriterLeaseService.js';
|
|
23
|
+
export * from './provider/ProviderLaneService.js';
|
|
24
|
+
export * from './provider/ProviderTransitionOutboxDispatcher.js';
|
|
18
25
|
export * from './workspace/WorkspaceHostService.js';
|
|
19
26
|
export * from './workspace/WorkspaceShellService.js';
|
|
20
27
|
export * from './workspace/fileAssociations.js';
|
|
@@ -77,6 +84,7 @@ export * from './acp/acpSessionResume.js';
|
|
|
77
84
|
export * from './acp/AcpRuntimeEventMapper.js';
|
|
78
85
|
export * from './acp/AcpProviderVersionReadiness.js';
|
|
79
86
|
export * from './acp/AcpProviderModelService.js';
|
|
87
|
+
export * from './acp/AcpNativeProviderLauncherResolver.js';
|
|
80
88
|
export * from './acp/AcpDiagnosticsService.js';
|
|
81
89
|
export * from './acp/AcpAgentRegistryService.js';
|
|
82
90
|
export * from './acp/AcpExternalCertificationHarness.js';
|
package/dist/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { AgentCockpitErrorCode, AgentConversationOpenRequest, AgentConversationOpenResult, AgentConversationResumeRequest, AgentConversationResumeResult, AgentProviderLaneGetRequest, AgentProviderLaneGetResult, AgentProviderLaneListRequest, AgentProviderLaneListResult, AgentProviderLaneSelectRequest, AgentProviderLaneSelectResult, AgentProviderNativeAttachRequest, AgentProviderNativeAttachResult, AgentProviderNativeDetachRequest, AgentProviderNativeDetachResult, AgentProviderNativeReattachRequest, AgentProviderNativeReattachResult, AgentProviderNativeStopRequest, AgentProviderNativeStopResult, AgentProviderReconcileRequest, AgentProviderReconcileResult, AgentHostEvent, AgentRuntimeProviderDescriptor, AgentSessionHostBindingV1, AgentTurnContinuation, AgentTurnStartRequest, ProviderLaneProjectionV1 } from '@xenosystem/agent-interface-contract';
|
|
2
|
+
import type { WorkspaceHostService, ProviderSessionPtyResolver } from '../workspace/WorkspaceHostService.js';
|
|
3
|
+
import type { SqliteAgentStateRepository } from '../state/SqliteAgentStateRepository.js';
|
|
4
|
+
import { ProviderWriterLeaseService } from '../lease/ProviderWriterLeaseService.js';
|
|
5
|
+
import type { NativeProviderLauncherInput, NativeProviderLauncherResult } from '../acp/AcpNativeProviderLauncherResolver.js';
|
|
6
|
+
import { type ProviderTransitionRuntimeEventAppender } from './ProviderTransitionOutboxDispatcher.js';
|
|
7
|
+
export interface ProviderLaneServiceOptions {
|
|
8
|
+
repository: SqliteAgentStateRepository;
|
|
9
|
+
workspaceService: Pick<WorkspaceHostService, 'ensureManagedConversationWorkspace' | 'startPty' | 'snapshotPty' | 'stopPty' | 'transferPtyOwnership'>;
|
|
10
|
+
hostStorageIdentity: string;
|
|
11
|
+
hostInstanceId?: string;
|
|
12
|
+
getProviders: () => AgentRuntimeProviderDescriptor[] | Promise<AgentRuntimeProviderDescriptor[]>;
|
|
13
|
+
resolveNativeLauncher?: (input: NativeProviderLauncherInput) => Promise<NativeProviderLauncherResult>;
|
|
14
|
+
writerLeaseService?: ProviderWriterLeaseService;
|
|
15
|
+
runtimeEventRepository?: ProviderTransitionRuntimeEventAppender;
|
|
16
|
+
now?: () => Date;
|
|
17
|
+
createId?: () => string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Host authority for conversation workspace epochs and redacted provider lanes.
|
|
21
|
+
* Provider continuation locators never leave the repository's protected path.
|
|
22
|
+
*/
|
|
23
|
+
export declare class ProviderLaneService {
|
|
24
|
+
private readonly options;
|
|
25
|
+
private readonly now;
|
|
26
|
+
private readonly createId;
|
|
27
|
+
private readonly writerLeases;
|
|
28
|
+
private eventSink;
|
|
29
|
+
private readonly nativeTerminals;
|
|
30
|
+
private readonly nativeTerminalByLane;
|
|
31
|
+
private readonly outboxDispatcher;
|
|
32
|
+
constructor(options: ProviderLaneServiceOptions);
|
|
33
|
+
getHostBinding(conversationId: string): AgentSessionHostBindingV1;
|
|
34
|
+
setEventSink(sink: (type: AgentHostEvent['type'], payload: Record<string, unknown>) => void): void;
|
|
35
|
+
start(): void;
|
|
36
|
+
openConversation(input: AgentConversationOpenRequest): Promise<AgentConversationOpenResult>;
|
|
37
|
+
resumeConversation(input: AgentConversationResumeRequest): Promise<AgentConversationResumeResult>;
|
|
38
|
+
listLanes(input: AgentProviderLaneListRequest): Promise<AgentProviderLaneListResult>;
|
|
39
|
+
getLane(input: AgentProviderLaneGetRequest): Promise<AgentProviderLaneGetResult>;
|
|
40
|
+
selectLane(input: AgentProviderLaneSelectRequest): Promise<AgentProviderLaneSelectResult>;
|
|
41
|
+
attachNative(input: AgentProviderNativeAttachRequest): Promise<AgentProviderNativeAttachResult>;
|
|
42
|
+
detachNative(input: AgentProviderNativeDetachRequest): AgentProviderNativeDetachResult;
|
|
43
|
+
reattachNative(input: AgentProviderNativeReattachRequest): AgentProviderNativeReattachResult;
|
|
44
|
+
stopNative(input: AgentProviderNativeStopRequest): AgentProviderNativeStopResult;
|
|
45
|
+
reconcile(input: AgentProviderReconcileRequest): AgentProviderReconcileResult;
|
|
46
|
+
resolveProviderSessionPty: ProviderSessionPtyResolver;
|
|
47
|
+
handleWorkspacePtyExit(payload: Record<string, unknown>): void;
|
|
48
|
+
close(): void;
|
|
49
|
+
getWorkspaceDirectory(conversationId: string): string;
|
|
50
|
+
private requireWriterLeases;
|
|
51
|
+
private startLeaseHeartbeat;
|
|
52
|
+
private restoreLaneAfterFailedNativeStart;
|
|
53
|
+
prepareTurn(request: AgentTurnStartRequest): AgentTurnStartRequest;
|
|
54
|
+
beginStructuredTurn(request: AgentTurnStartRequest): void;
|
|
55
|
+
finishStructuredTurn(conversationId: string, requestId: string): void;
|
|
56
|
+
commitTurnContinuation(input: {
|
|
57
|
+
conversationId: string;
|
|
58
|
+
requestId: string;
|
|
59
|
+
continuation: AgentTurnContinuation;
|
|
60
|
+
}): {
|
|
61
|
+
success: boolean;
|
|
62
|
+
code?: AgentCockpitErrorCode;
|
|
63
|
+
error?: string;
|
|
64
|
+
lane?: ProviderLaneProjectionV1;
|
|
65
|
+
};
|
|
66
|
+
private conversationResult;
|
|
67
|
+
private requireHostState;
|
|
68
|
+
private resolveWorkspace;
|
|
69
|
+
private createWorkspaceEpoch;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=ProviderLaneService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProviderLaneService.d.ts","sourceRoot":"","sources":["../../src/provider/ProviderLaneService.ts"],"names":[],"mappings":"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"}
|