@byok-sdk/client 0.5.0 → 0.6.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/dist/bin/byok-agent.js +153 -10
- package/dist/bin/byok-agent.js.map +1 -1
- package/dist/bin/byok-approval-mcp.js.map +1 -1
- package/dist/bin/config.d.ts +3 -1
- package/dist/bin/format.d.ts +2 -1
- package/dist/bin/official-release.d.ts +1 -0
- package/dist/bin/version.d.ts +2 -0
- package/dist/daemon/connection-manager.d.ts +2 -0
- package/dist/daemon/control-protocol.d.ts +3 -0
- package/dist/daemon/create-daemon.d.ts +5 -0
- package/dist/daemon/presence-publisher.d.ts +7 -1
- package/dist/daemon/task-runner.d.ts +20 -0
- package/dist/daemon/ws-transport.d.ts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +127 -10
- package/dist/index.js.map +1 -1
- package/dist/release-identity.d.ts +15 -0
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import { promises, mkdirSync, existsSync, renameSync, writeFileSync, chmodSync,
|
|
|
4
4
|
import path17, { join, isAbsolute } from 'path';
|
|
5
5
|
import os5 from 'os';
|
|
6
6
|
import { parseDeviceAssertionEnvelope, tenantId, DeviceProofProtectedClaimsSchema, deviceProofSigningInput, DEVICE_PROOF_SCHEMA_ID, SKILL_PACK_MAX_BYTES, hasCapability, parseSkillPackManifest, checkSkillPackManifest, skillPackContentHashInput, checkSkillPackFileContent, SKILL_PACK_ENTRY_PATH, checkSkillPackEntry, isSkillPackPathSafe, DEVICE_PROOF_HEADER, contentHash, TRUTH_RECORD_KINDS, nonceSigningBytes, DEVICE_ASSERTION_AUDIENCE_MAX_BYTES, DEVICE_ASSERTION_DEFAULT_TTL_MS, DEVICE_ASSERTION_MAX_TTL_MS, CONTENT_HASH_PATTERN, CapabilityDeclarationSchema, DeviceAssertionClaimsSchema, deviceAssertionSigningInput, DEVICE_ASSERTION_SCHEMA_ID } from '@byok-sdk/core';
|
|
7
|
-
import { BYOK_PAIR_PATH, BYOK_CHALLENGE_PATH, BYOK_TOKEN_PATH, byokBlobUrlPath, BYOK_BLOBS_PATH, byokBlobFinalizePath, partitionAgentEvents, BYOK_SKILL_PACKS_PATH, byokSkillPackFilePath, BYOK_RECORDS_PATH, byokRecordPath, TASK_TRANSITIONS, CONFIGURED_TOOLSETS_MAX_ITEMS, ToolsetIdSchema, encodeEnvelope, createEnvelope, checkResultDocument, MAX_MESSAGES_PER_BATCH, BYOK_CAPABILITIES_PATH, BYOK_PRESENCE_PATH, RuntimeIdSchema,
|
|
7
|
+
import { BYOK_PAIR_PATH, BYOK_CHALLENGE_PATH, BYOK_TOKEN_PATH, byokBlobUrlPath, BYOK_BLOBS_PATH, byokBlobFinalizePath, partitionAgentEvents, BYOK_SKILL_PACKS_PATH, byokSkillPackFilePath, BYOK_RECORDS_PATH, byokRecordPath, TASK_TRANSITIONS, CONFIGURED_TOOLSETS_MAX_ITEMS, ToolsetIdSchema, encodeEnvelope, PROTOCOL_VERSION, createEnvelope, checkResultDocument, MAX_MESSAGES_PER_BATCH, BYOK_CAPABILITIES_PATH, BYOK_PRESENCE_PATH, RuntimeIdSchema, TERMINAL_INFERENCE_USAGE_MAX_DURATION_MS, TERMINAL_INFERENCE_USAGE_MAX_TOKENS, RESULT_DOCUMENT_MAX_BYTES, decodeEnvelope, BYOK_MESSAGES_PATH, MessagesSendResponseSchema, BYOK_EVENTS_PATH, parseMessage, UnknownMessageTypeError, BYOK_WS_PATH } from '@byok-sdk/protocol';
|
|
8
8
|
import { promisify } from 'util';
|
|
9
9
|
import { fileURLToPath } from 'url';
|
|
10
10
|
import 'readline';
|
|
@@ -75,6 +75,28 @@ var SteerUnsupportedError = class extends Error {
|
|
|
75
75
|
}
|
|
76
76
|
};
|
|
77
77
|
|
|
78
|
+
// src/release-identity.ts
|
|
79
|
+
var LOCAL_AGENT_RELEASE_VERSION_MAX_LENGTH = 128;
|
|
80
|
+
var LOCAL_AGENT_RELEASE_BUILD_ID_MAX_LENGTH = 128;
|
|
81
|
+
var STRICT_SEMVER_PATTERN = new RegExp(
|
|
82
|
+
"^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-(?:0|[1-9]\\d*|\\d*[A-Za-z-][0-9A-Za-z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[A-Za-z-][0-9A-Za-z-]*))*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$"
|
|
83
|
+
);
|
|
84
|
+
var BUILD_ID_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._:-]*$/;
|
|
85
|
+
function resolveLocalAgentReleaseIdentity(input) {
|
|
86
|
+
if (input === void 0 || typeof input.version !== "string" || input.version.length > LOCAL_AGENT_RELEASE_VERSION_MAX_LENGTH || !STRICT_SEMVER_PATTERN.test(input.version)) {
|
|
87
|
+
throw new Error("DaemonConfig.localAgentRelease.version must be canonical strict SemVer");
|
|
88
|
+
}
|
|
89
|
+
if (input.buildId !== void 0 && (typeof input.buildId !== "string" || input.buildId.length > LOCAL_AGENT_RELEASE_BUILD_ID_MAX_LENGTH || !BUILD_ID_PATTERN.test(input.buildId))) {
|
|
90
|
+
throw new Error(
|
|
91
|
+
`DaemonConfig.localAgentRelease.buildId must be 1-${LOCAL_AGENT_RELEASE_BUILD_ID_MAX_LENGTH} safe opaque characters`
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
return Object.freeze({
|
|
95
|
+
version: input.version,
|
|
96
|
+
...input.buildId === void 0 ? {} : { buildId: input.buildId }
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
|
|
78
100
|
// src/runtime-failure.ts
|
|
79
101
|
var RUNTIME_EXECUTION_FAILURE_BRAND = /* @__PURE__ */ Symbol.for("@byok-sdk/client/RuntimeExecutionFailure/v1");
|
|
80
102
|
var RUNTIME_DISPOSAL_FAILURE_BRAND = /* @__PURE__ */ Symbol.for("@byok-sdk/client/RuntimeDisposalFailure/v1");
|
|
@@ -4366,7 +4388,20 @@ var PresencePublisher = class {
|
|
|
4366
4388
|
headers: { "content-type": "application/json" },
|
|
4367
4389
|
body: JSON.stringify({
|
|
4368
4390
|
level: "online",
|
|
4369
|
-
...this.opts.configuredToolsets === void 0 ? {} : { configuredToolsets: this.opts.configuredToolsets }
|
|
4391
|
+
...this.opts.configuredToolsets === void 0 ? {} : { configuredToolsets: this.opts.configuredToolsets },
|
|
4392
|
+
...this.opts.clientVersion === void 0 ? {} : { clientVersion: this.opts.clientVersion },
|
|
4393
|
+
...this.opts.protocolVersions === void 0 ? {} : { protocolVersions: [...this.opts.protocolVersions] },
|
|
4394
|
+
// Presence is a lightweight readiness fact, not a second
|
|
4395
|
+
// capability-negotiation channel. Keep its projection identical
|
|
4396
|
+
// to the persisted presence contract: the conn.hello snapshot's
|
|
4397
|
+
// runtime identity/version/auth facts, with no capabilities blob.
|
|
4398
|
+
...this.opts.runtimes === void 0 ? {} : {
|
|
4399
|
+
runtimes: this.opts.runtimes.map(({ id, version, authPresent }) => ({
|
|
4400
|
+
id,
|
|
4401
|
+
...version === void 0 ? {} : { version },
|
|
4402
|
+
...authPresent === void 0 ? {} : { authPresent }
|
|
4403
|
+
}))
|
|
4404
|
+
}
|
|
4370
4405
|
})
|
|
4371
4406
|
},
|
|
4372
4407
|
this.opts.auth
|
|
@@ -5092,6 +5127,7 @@ var WsTransport = class {
|
|
|
5092
5127
|
capabilities: this.opts.capabilities,
|
|
5093
5128
|
deviceId: this.opts.deviceId,
|
|
5094
5129
|
productId: this.opts.productId,
|
|
5130
|
+
clientVersion: this.opts.clientVersion,
|
|
5095
5131
|
runtimes: this.opts.runtimes,
|
|
5096
5132
|
configuredToolsets: this.opts.configuredToolsets === void 0 ? void 0 : [...this.opts.configuredToolsets],
|
|
5097
5133
|
cursor: this.opts.getCursor?.()
|
|
@@ -5182,6 +5218,7 @@ var ConnectionManager = class {
|
|
|
5182
5218
|
deviceId: opts.deviceId,
|
|
5183
5219
|
productId: opts.productId,
|
|
5184
5220
|
capabilities: opts.capabilities,
|
|
5221
|
+
clientVersion: opts.clientVersion,
|
|
5185
5222
|
runtimes: opts.runtimes,
|
|
5186
5223
|
configuredToolsets: opts.configuredToolsets,
|
|
5187
5224
|
getCursor: () => this.cursor,
|
|
@@ -8421,6 +8458,9 @@ var DEFAULT_MAX_TASK_OUTPUT_BYTES = 64 * 1024 * 1024;
|
|
|
8421
8458
|
function isKnownRuntimeId(id) {
|
|
8422
8459
|
return RuntimeIdSchema.safeParse(id).success;
|
|
8423
8460
|
}
|
|
8461
|
+
function terminalUsageNumber(value, maximum) {
|
|
8462
|
+
return value !== void 0 && Number.isSafeInteger(value) && value >= 0 && value <= maximum ? value : void 0;
|
|
8463
|
+
}
|
|
8424
8464
|
var DEFAULT_RUNTIME_PREFERENCE = ["claude", "codex", "pi"];
|
|
8425
8465
|
function orderByPreference(candidates, preference) {
|
|
8426
8466
|
const rank = new Map(preference.map((id, index) => [id, index]));
|
|
@@ -8720,7 +8760,13 @@ var TaskRunner = class {
|
|
|
8720
8760
|
const timeoutMs = this.deps.shutdownInterruptTimeoutMs ?? DEFAULT_SHUTDOWN_INTERRUPT_TIMEOUT_MS;
|
|
8721
8761
|
await raceSettleFirst(() => active.session.interrupt(), timeoutMs);
|
|
8722
8762
|
if (this.tasks.get(active.taskId) !== active) return true;
|
|
8723
|
-
this.deps.send(
|
|
8763
|
+
this.deps.send(
|
|
8764
|
+
createEnvelope(
|
|
8765
|
+
"task.fail",
|
|
8766
|
+
{ reason, retryable, ...this.terminalInferenceUsagePayload(active) },
|
|
8767
|
+
{ taskId: active.taskId }
|
|
8768
|
+
)
|
|
8769
|
+
);
|
|
8724
8770
|
return this.finish(active.taskId);
|
|
8725
8771
|
}
|
|
8726
8772
|
/** Graceful-shutdown caller of {@link teardownActiveTask} — see `shutdownActiveTasks`'s own doc comment. `retryable: true`: nothing about the task/policy itself was ever at fault, only this device's own availability right now. */
|
|
@@ -9098,7 +9144,8 @@ var TaskRunner = class {
|
|
|
9098
9144
|
this.deps.batcherOptions
|
|
9099
9145
|
),
|
|
9100
9146
|
approvalQueue: [],
|
|
9101
|
-
outputBytesSoFar: 0
|
|
9147
|
+
outputBytesSoFar: 0,
|
|
9148
|
+
startedAtMs: Date.now()
|
|
9102
9149
|
};
|
|
9103
9150
|
if (this.pendingCancelled.has(taskId)) {
|
|
9104
9151
|
const reason = this.pendingCancelled.get(taskId);
|
|
@@ -9110,7 +9157,13 @@ var TaskRunner = class {
|
|
|
9110
9157
|
} catch {
|
|
9111
9158
|
}
|
|
9112
9159
|
await this.updateGitPhaseBestEffort(gitWorkspaceId, "cancelled");
|
|
9113
|
-
this.deps.send(
|
|
9160
|
+
this.deps.send(
|
|
9161
|
+
createEnvelope(
|
|
9162
|
+
"task.cancelled",
|
|
9163
|
+
{ reason, ...this.terminalInferenceUsagePayload(active) },
|
|
9164
|
+
{ taskId }
|
|
9165
|
+
)
|
|
9166
|
+
);
|
|
9114
9167
|
await this.finish(taskId);
|
|
9115
9168
|
return;
|
|
9116
9169
|
}
|
|
@@ -9183,6 +9236,9 @@ var TaskRunner = class {
|
|
|
9183
9236
|
);
|
|
9184
9237
|
return;
|
|
9185
9238
|
}
|
|
9239
|
+
if (event.type === "usage") {
|
|
9240
|
+
active.lastUsage = event;
|
|
9241
|
+
}
|
|
9186
9242
|
if (event.type === "needs_approval") {
|
|
9187
9243
|
active.batcher.flush();
|
|
9188
9244
|
const { taskId } = active;
|
|
@@ -9235,7 +9291,8 @@ var TaskRunner = class {
|
|
|
9235
9291
|
// (where the codec actually serializes it), so a contextual
|
|
9236
9292
|
// `toJSON(key)` or an unstable getter cannot make the wire
|
|
9237
9293
|
// bytes differ from what the cap gate approved.
|
|
9238
|
-
...outcome.document !== void 0 ? { document: outcome.document } : {}
|
|
9294
|
+
...outcome.document !== void 0 ? { document: outcome.document } : {},
|
|
9295
|
+
...this.terminalInferenceUsagePayload(active)
|
|
9239
9296
|
},
|
|
9240
9297
|
{ taskId: active.taskId, sessionRef: active.session.sessionRef }
|
|
9241
9298
|
)
|
|
@@ -9352,7 +9409,13 @@ var TaskRunner = class {
|
|
|
9352
9409
|
} catch {
|
|
9353
9410
|
}
|
|
9354
9411
|
await this.observeGit(active, "salvage");
|
|
9355
|
-
this.deps.send(
|
|
9412
|
+
this.deps.send(
|
|
9413
|
+
createEnvelope(
|
|
9414
|
+
"task.cancelled",
|
|
9415
|
+
{ reason, ...this.terminalInferenceUsagePayload(active) },
|
|
9416
|
+
{ taskId }
|
|
9417
|
+
)
|
|
9418
|
+
);
|
|
9356
9419
|
await this.finish(taskId);
|
|
9357
9420
|
}
|
|
9358
9421
|
/** M3-B: bounded insert for `pendingCancelled` — see its class-level doc comment and `MAX_TRACKED_TASK_IDS`. Evicts the oldest SAFE-TO-EVICT entry once over cap — see `evictPendingCancelled` (finding #5: not simply "the oldest entry", which could be an in-flight offer's own cancel marker). */
|
|
@@ -9790,7 +9853,13 @@ var TaskRunner = class {
|
|
|
9790
9853
|
} catch {
|
|
9791
9854
|
}
|
|
9792
9855
|
await this.observeGit(active, "salvage");
|
|
9793
|
-
this.deps.send(
|
|
9856
|
+
this.deps.send(
|
|
9857
|
+
createEnvelope(
|
|
9858
|
+
"task.fail",
|
|
9859
|
+
{ reason: reason ?? "rejected", retryable: false, ...this.terminalInferenceUsagePayload(active) },
|
|
9860
|
+
{ taskId }
|
|
9861
|
+
)
|
|
9862
|
+
);
|
|
9794
9863
|
await this.finish(taskId);
|
|
9795
9864
|
}
|
|
9796
9865
|
/** Pre-claim, fail-closed rejection (protocol §3.2) — never claims first. */
|
|
@@ -9808,9 +9877,44 @@ var TaskRunner = class {
|
|
|
9808
9877
|
return;
|
|
9809
9878
|
}
|
|
9810
9879
|
if (active) await this.observeGit(active, "salvage");
|
|
9811
|
-
this.deps.send(
|
|
9880
|
+
this.deps.send(
|
|
9881
|
+
createEnvelope(
|
|
9882
|
+
"task.fail",
|
|
9883
|
+
active === void 0 ? { reason, retryable } : { reason, retryable, ...this.terminalInferenceUsagePayload(active) },
|
|
9884
|
+
{ taskId }
|
|
9885
|
+
)
|
|
9886
|
+
);
|
|
9812
9887
|
await this.finish(taskId);
|
|
9813
9888
|
}
|
|
9889
|
+
/**
|
|
9890
|
+
* Build the optional terminal observation from facts this running daemon
|
|
9891
|
+
* actually has. No offered `dispatchSelection` is echoed here: it is a
|
|
9892
|
+
* requested execution target, not an adapter-reported provider/model fact.
|
|
9893
|
+
* The bundled adapter event contracts currently expose token observations
|
|
9894
|
+
* (Codex and Claude) but no provider/model observation, so those keys stay
|
|
9895
|
+
* absent. Pi exposes no native usage observation, so its terminal payload
|
|
9896
|
+
* omits this optional block rather than fabricating a usage observation from
|
|
9897
|
+
* independently known runtime, elapsed duration, or Local Agent version.
|
|
9898
|
+
*/
|
|
9899
|
+
terminalInferenceUsagePayload(active) {
|
|
9900
|
+
const release = this.deps.localAgentRelease;
|
|
9901
|
+
const runtimeId = active.adapter.descriptor.id;
|
|
9902
|
+
if (release === void 0 || active.lastUsage === void 0 || !isKnownRuntimeId(runtimeId)) return {};
|
|
9903
|
+
const nowMs = Date.now();
|
|
9904
|
+
const durationMs = terminalUsageNumber(nowMs - active.startedAtMs, TERMINAL_INFERENCE_USAGE_MAX_DURATION_MS);
|
|
9905
|
+
const promptTokens = terminalUsageNumber(active.lastUsage?.inputTokens, TERMINAL_INFERENCE_USAGE_MAX_TOKENS);
|
|
9906
|
+
const completionTokens = terminalUsageNumber(active.lastUsage?.outputTokens, TERMINAL_INFERENCE_USAGE_MAX_TOKENS);
|
|
9907
|
+
return {
|
|
9908
|
+
usage: {
|
|
9909
|
+
runtime: runtimeId,
|
|
9910
|
+
clientVersion: release.version,
|
|
9911
|
+
reportedAt: new Date(nowMs).toISOString(),
|
|
9912
|
+
...promptTokens === void 0 ? {} : { promptTokens },
|
|
9913
|
+
...completionTokens === void 0 ? {} : { completionTokens },
|
|
9914
|
+
...durationMs === void 0 ? {} : { durationMs }
|
|
9915
|
+
}
|
|
9916
|
+
};
|
|
9917
|
+
}
|
|
9814
9918
|
/**
|
|
9815
9919
|
* additive-minor (`task.complete.document`): the whole daemon-side gate
|
|
9816
9920
|
* between a configured {@link ResultDocumentExtractor} and the wire —
|
|
@@ -10339,6 +10443,7 @@ function createDaemonWithAdapters(config, adapters, overrides = {}) {
|
|
|
10339
10443
|
return buildDaemonWithAdapters(config, adapters, overrides);
|
|
10340
10444
|
}
|
|
10341
10445
|
function buildDaemonWithAdapters(config, adapters, overrides = {}, assertionProbe) {
|
|
10446
|
+
const localAgentRelease = resolveLocalAgentReleaseIdentity(config.localAgentRelease);
|
|
10342
10447
|
const mcpToolsets = resolveMcpToolsets(config.mcpToolsets);
|
|
10343
10448
|
const configuredToolsets = Object.freeze(
|
|
10344
10449
|
[...mcpToolsets?.keys() ?? []].sort()
|
|
@@ -10452,6 +10557,7 @@ function buildDaemonWithAdapters(config, adapters, overrides = {}, assertionProb
|
|
|
10452
10557
|
let controlServerHandle;
|
|
10453
10558
|
let daemonOwnerLease;
|
|
10454
10559
|
let presencePublisher;
|
|
10560
|
+
let detectedRuntimeFacts = [];
|
|
10455
10561
|
let presenceDiscovery;
|
|
10456
10562
|
let presenceDiscoveryInFlight = false;
|
|
10457
10563
|
let shutdownPromise;
|
|
@@ -10585,6 +10691,7 @@ function buildDaemonWithAdapters(config, adapters, overrides = {}, assertionProb
|
|
|
10585
10691
|
Promise.resolve(new BlobClient(config.serverUrl, auth))
|
|
10586
10692
|
]);
|
|
10587
10693
|
observer.noteRuntimesDetected(runtimes);
|
|
10694
|
+
detectedRuntimeFacts = runtimes;
|
|
10588
10695
|
const capabilities = computeCapabilities(adapters);
|
|
10589
10696
|
const journalIdentity = config.hostedJournal ? { tenantId: config.hostedJournal.tenantId, productId: config.productId, deviceId: record.deviceId } : void 0;
|
|
10590
10697
|
const sendEnvelope = activeJournal && journalIdentity ? (envelope) => {
|
|
@@ -10662,6 +10769,10 @@ function buildDaemonWithAdapters(config, adapters, overrides = {}, assertionProb
|
|
|
10662
10769
|
approvalRegistry,
|
|
10663
10770
|
storeDir,
|
|
10664
10771
|
productId: config.productId,
|
|
10772
|
+
// U2 terminal inference usage consumes the one U4a-resolved,
|
|
10773
|
+
// process-immutable identity captured above. This is composition-only:
|
|
10774
|
+
// TaskRunner receives no config, manifest, or second identity resolver.
|
|
10775
|
+
localAgentRelease,
|
|
10665
10776
|
approvalTimeoutMs: overrides.approvalTimeoutMs,
|
|
10666
10777
|
// Finding F5(a): see TaskRunnerDeps.shutdownInterruptTimeoutMs's own doc comment.
|
|
10667
10778
|
shutdownInterruptTimeoutMs: overrides.shutdown?.taskInterruptTimeoutMs,
|
|
@@ -10707,6 +10818,7 @@ function buildDaemonWithAdapters(config, adapters, overrides = {}, assertionProb
|
|
|
10707
10818
|
deviceId: record.deviceId,
|
|
10708
10819
|
productId: config.productId,
|
|
10709
10820
|
capabilities,
|
|
10821
|
+
clientVersion: localAgentRelease.version,
|
|
10710
10822
|
runtimes,
|
|
10711
10823
|
configuredToolsets,
|
|
10712
10824
|
auth,
|
|
@@ -10796,6 +10908,9 @@ function buildDaemonWithAdapters(config, adapters, overrides = {}, assertionProb
|
|
|
10796
10908
|
serverUrl: config.serverUrl,
|
|
10797
10909
|
auth,
|
|
10798
10910
|
configuredToolsets,
|
|
10911
|
+
clientVersion: localAgentRelease.version,
|
|
10912
|
+
protocolVersions: [PROTOCOL_VERSION],
|
|
10913
|
+
runtimes: detectedRuntimeFacts,
|
|
10799
10914
|
...presenceCadence,
|
|
10800
10915
|
onDegraded: (reason) => console.warn(`[byok/client] ${reason}`)
|
|
10801
10916
|
});
|
|
@@ -10977,6 +11092,7 @@ function buildDaemonWithAdapters(config, adapters, overrides = {}, assertionProb
|
|
|
10977
11092
|
const activeTasks = observer.tasks().filter((task) => TASK_TRANSITIONS[task.state].length > 0).map((task) => ({ taskId: task.taskId, state: task.state }));
|
|
10978
11093
|
const pendingApprovals = approvalRegistry.list();
|
|
10979
11094
|
return {
|
|
11095
|
+
localAgentRelease,
|
|
10980
11096
|
pid: process.pid,
|
|
10981
11097
|
uptimeMs: startedAt !== void 0 ? Date.now() - startedAt : 0,
|
|
10982
11098
|
paired: auth.deviceId !== void 0,
|
|
@@ -11175,6 +11291,7 @@ function buildDaemonWithAdapters(config, adapters, overrides = {}, assertionProb
|
|
|
11175
11291
|
}
|
|
11176
11292
|
function status() {
|
|
11177
11293
|
return {
|
|
11294
|
+
localAgentRelease,
|
|
11178
11295
|
paired: auth.deviceId !== void 0,
|
|
11179
11296
|
connected: connectionState === "open",
|
|
11180
11297
|
degraded: connection?.isTransportDegraded() ?? false,
|
|
@@ -12689,6 +12806,6 @@ function createServiceLifecycle(def, opts = {}) {
|
|
|
12689
12806
|
}
|
|
12690
12807
|
}
|
|
12691
12808
|
|
|
12692
|
-
export { AuthManager, BlobClient, ClaudeAdapter, CodexAdapter, DEFAULT_ACK_CRITICAL_RESERVE_BYTES, DEFAULT_CLEANUP_BATCH_LIMIT, DEFAULT_HARD_BUDGET_RATIO, DEFAULT_INCREMENTAL_VACUUM_PAGES, DEFAULT_LOG_ROTATION, DEFAULT_NORMAL_COMPACTION_INTERVAL_MS, DEFAULT_PRESSURE_COMPACTION_INTERVAL_MS, DEFAULT_RETENTION_MS, DEFAULT_SOFT_BUDGET_RATIO, DaemonObserver, DeviceRevokedError, GitWorkspaceError, GitWorkspaceManager, GitWorkspaceStore, JOURNAL_DB_FILENAME, JOURNAL_QUARANTINE_DIRNAME, JOURNAL_TASK_REF_PREFIX, JournalClosedError, JournalCorruptError, JournalRecordTooLargeError, JournalUnavailableError, JournalUnknownTaskError, LocalStorageEmergencyError, LocalStoragePolicyError, LocalStoragePressureEngine, PI_PACKAGE_NAME, PiAdapter, PolicyUnsupportedError, RUNTIME_ADAPTER_CONTRACT_VIOLATION_REASON, RuntimeDisposalFailure, RuntimeExecutionFailure, SKILL_PACKS_CAPABILITY, SKILL_PACKS_DIRNAME, SKILL_PACK_AUDIT_FILENAME, SKILL_PACK_INSTALL_ERROR_CODES, SKILL_PACK_LOCK_FILENAME, SKILL_PACK_LOCK_SCHEMA, SKILL_PACK_RESPONSE_MAX_BYTES, SecureDirHardeningError, SkillPackInstallError, SqliteLocalTaskJournal, SteerUnsupportedError, StoredDeviceProofSigner, TruthMemoryClient, TruthMemoryClientError, UnsupportedServicePlatformError, buildIcaclsArgs, cleanupEligibleAt, cleanupOrderFor, computePressureState, createDaemon, createDaemonWithAdapters, createFilesystemCleanupExecutor, createServiceLifecycle, createStatfsFreeBytesProvider, ensureSecureDir, freezeRuntimeAdapterDescriptor, generateLaunchdPlist, generateSystemdUnit, generateWinswXml, installSkillPacks, isGitWorkspaceConfig, isRuntimeDisposalFailure, isRuntimeExecutionFailure, journalHash, listInstalledSkillPacks, nodeAgentProgram, prependGitWorkspaceGuidance, projectRuntimeBoundaryFailure, projectRuntimeExecutionFailure, projectSkillPack, requestDeviceAssertion, resolveLocalStoragePolicy, sanitizeServiceName, sealRuntimeOperationManifest, skillPacksRoot };
|
|
12809
|
+
export { AuthManager, BlobClient, ClaudeAdapter, CodexAdapter, DEFAULT_ACK_CRITICAL_RESERVE_BYTES, DEFAULT_CLEANUP_BATCH_LIMIT, DEFAULT_HARD_BUDGET_RATIO, DEFAULT_INCREMENTAL_VACUUM_PAGES, DEFAULT_LOG_ROTATION, DEFAULT_NORMAL_COMPACTION_INTERVAL_MS, DEFAULT_PRESSURE_COMPACTION_INTERVAL_MS, DEFAULT_RETENTION_MS, DEFAULT_SOFT_BUDGET_RATIO, DaemonObserver, DeviceRevokedError, GitWorkspaceError, GitWorkspaceManager, GitWorkspaceStore, JOURNAL_DB_FILENAME, JOURNAL_QUARANTINE_DIRNAME, JOURNAL_TASK_REF_PREFIX, JournalClosedError, JournalCorruptError, JournalRecordTooLargeError, JournalUnavailableError, JournalUnknownTaskError, LocalStorageEmergencyError, LocalStoragePolicyError, LocalStoragePressureEngine, PI_PACKAGE_NAME, PiAdapter, PolicyUnsupportedError, RUNTIME_ADAPTER_CONTRACT_VIOLATION_REASON, RuntimeDisposalFailure, RuntimeExecutionFailure, SKILL_PACKS_CAPABILITY, SKILL_PACKS_DIRNAME, SKILL_PACK_AUDIT_FILENAME, SKILL_PACK_INSTALL_ERROR_CODES, SKILL_PACK_LOCK_FILENAME, SKILL_PACK_LOCK_SCHEMA, SKILL_PACK_RESPONSE_MAX_BYTES, SecureDirHardeningError, SkillPackInstallError, SqliteLocalTaskJournal, SteerUnsupportedError, StoredDeviceProofSigner, TruthMemoryClient, TruthMemoryClientError, UnsupportedServicePlatformError, buildIcaclsArgs, cleanupEligibleAt, cleanupOrderFor, computePressureState, createDaemon, createDaemonWithAdapters, createFilesystemCleanupExecutor, createServiceLifecycle, createStatfsFreeBytesProvider, ensureSecureDir, freezeRuntimeAdapterDescriptor, generateLaunchdPlist, generateSystemdUnit, generateWinswXml, installSkillPacks, isGitWorkspaceConfig, isRuntimeDisposalFailure, isRuntimeExecutionFailure, journalHash, listInstalledSkillPacks, nodeAgentProgram, prependGitWorkspaceGuidance, projectRuntimeBoundaryFailure, projectRuntimeExecutionFailure, projectSkillPack, requestDeviceAssertion, resolveLocalAgentReleaseIdentity, resolveLocalStoragePolicy, sanitizeServiceName, sealRuntimeOperationManifest, skillPacksRoot };
|
|
12693
12810
|
//# sourceMappingURL=index.js.map
|
|
12694
12811
|
//# sourceMappingURL=index.js.map
|