@corca-org/ceal-host-linux-arm64 1.0.19 → 1.0.20
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/bin/ceal-host +0 -0
- package/libexec/ceal-host/claude-hook.mjs +200 -75
- package/libexec/ceal-host/claude-invocation-authentication.mjs +174 -81
- package/libexec/ceal-host/claude-producer.mjs +212 -119
- package/libexec/ceal-host/codex-hook.mjs +216 -25
- package/libexec/ceal-host/codex-invocation-authentication.mjs +207 -46
- package/libexec/ceal-host/codex-producer.mjs +259 -90
- package/libexec/ceal-host/control.mjs +764 -212
- package/libexec/ceal-host/relay.mjs +92 -14
- package/package.json +1 -1
- package/share/ceal-host/bundle-manifest.json +12 -12
- package/share/ceal-host/bundle-manifest.sigstore.json +1 -1
|
@@ -980,6 +980,7 @@ var REQUIRED_FIELDS = CEAL_CLIENT_WIRE_CONTRACT.command_response.bare_document_f
|
|
|
980
980
|
var OPTIONAL_FIELDS = CEAL_CLIENT_WIRE_CONTRACT.command_response.bare_document_optional_fields;
|
|
981
981
|
|
|
982
982
|
// packages/ceal-client-protocol/src/resource-row.ts
|
|
983
|
+
var CEAL_RESOURCE_ROW_TITLE_MATCH_DISPOSITIONS = vocabulary(["exact", "not_exact", "unknown"]);
|
|
983
984
|
var CEAL_RESOURCE_SEARCH_ORDERS = vocabulary(["relevance", "modified", "viewed", "created"]);
|
|
984
985
|
var CEAL_RESOURCE_SEARCH_DIRECTIONS = vocabulary(["ascending", "descending"]);
|
|
985
986
|
var CEAL_RESOURCE_SEARCH_FILTERS = vocabulary(["query", "modified_since", "since", "until", "authored_by_me", "authored_by", "include_replies", "kinds", "container_ref", "container_refs", "container_names", "addressed_to_me", "unread"]);
|
|
@@ -1063,6 +1064,7 @@ var RESOURCE_ROW_KEY_RULES = Object.freeze({
|
|
|
1063
1064
|
next: { required: true, timestamp: false },
|
|
1064
1065
|
kind: { required: true, timestamp: false },
|
|
1065
1066
|
matched_kinds: { required: false, timestamp: false },
|
|
1067
|
+
title_match: { required: false, timestamp: false },
|
|
1066
1068
|
title: { required: true, timestamp: false },
|
|
1067
1069
|
container_label: { required: true, timestamp: false },
|
|
1068
1070
|
container_ref: { required: false, timestamp: false },
|
|
@@ -1508,7 +1510,7 @@ var CEAL_HOST_AUTHENTICATION_POLICY = Object.freeze({
|
|
|
1508
1510
|
invalid_arguments: Object.freeze({ classification: "host_arguments_invalid", next_action: "answer_with_gap" }),
|
|
1509
1511
|
options_invalid: Object.freeze({ classification: "host_configuration_invalid", next_action: "answer_with_gap" }),
|
|
1510
1512
|
session_unavailable: Object.freeze({ classification: "host_session_unavailable", next_action: "answer_with_gap" }),
|
|
1511
|
-
context_unavailable: Object.freeze({ classification: "host_context_unavailable", next_action: "refresh_host_invocation_context", remedy: "the Host has no invocation context from the current transcript turn;
|
|
1513
|
+
context_unavailable: Object.freeze({ classification: "host_context_unavailable", next_action: "refresh_host_invocation_context", remedy: "the Host has no invocation context from the current transcript turn; send a new message to start a fresh Host turn, then retry this command on that turn (run `ceal-host install` only if the Host hook registration is missing or drifted)" }),
|
|
1512
1514
|
context_replaced: Object.freeze({ classification: "host_invocation_context_stale", next_action: "refresh_host_invocation_context" }),
|
|
1513
1515
|
no_binding: Object.freeze({ classification: "host_binding_unavailable", next_action: "refresh_host_invocation_context" }),
|
|
1514
1516
|
context_stale: Object.freeze({ classification: "host_invocation_context_stale", next_action: "refresh_host_invocation_context" }),
|
|
@@ -1585,6 +1587,7 @@ function exactKeys(value, expected) {
|
|
|
1585
1587
|
}
|
|
1586
1588
|
|
|
1587
1589
|
// packages/ceal-client-protocol/src/host-service-diagnostic.ts
|
|
1590
|
+
var CEAL_HOST_SERVICE_DIAGNOSTIC_SCHEMA = "ceal.host_service_diagnostic.v1";
|
|
1588
1591
|
var CEAL_HOST_SERVICE_DIAGNOSTIC_PRODUCERS = vocabulary(["claude", "codex"]);
|
|
1589
1592
|
var CEAL_HOST_SERVICE_DIAGNOSTIC_EVENTS = vocabulary([
|
|
1590
1593
|
"hook_invoked",
|
|
@@ -1593,6 +1596,7 @@ var CEAL_HOST_SERVICE_DIAGNOSTIC_EVENTS = vocabulary([
|
|
|
1593
1596
|
"watcher_turn_observed",
|
|
1594
1597
|
"current_prompt_registered",
|
|
1595
1598
|
"current_prompt_registration_failed",
|
|
1599
|
+
"current_prompt_capacity_exhausted",
|
|
1596
1600
|
"activation_recorded",
|
|
1597
1601
|
"activation_failed",
|
|
1598
1602
|
"watcher_scan_failed",
|
|
@@ -1749,6 +1753,17 @@ function errorCode(error) {
|
|
|
1749
1753
|
import { copyFile, open, stat, truncate } from "node:fs/promises";
|
|
1750
1754
|
import { isAbsolute } from "node:path";
|
|
1751
1755
|
var HOST_SERVICE_LOG_ENVIRONMENT = "CEAL_HOST_SERVICE_LOG";
|
|
1756
|
+
function writeHostServiceDiagnostic(producer_id, event, failure_kind, cause, sink) {
|
|
1757
|
+
const line = `${JSON.stringify({ schema_version: CEAL_HOST_SERVICE_DIAGNOSTIC_SCHEMA, producer_id, event, ...event === "watcher_scan_failed" && failure_kind !== void 0 ? { failure_kind } : {}, ...event === "watcher_scan_failed" && cause !== void 0 ? { cause } : {} })}
|
|
1758
|
+
`;
|
|
1759
|
+
try {
|
|
1760
|
+
(sink ?? defaultHostServiceDiagnosticSink)(line);
|
|
1761
|
+
} catch {
|
|
1762
|
+
}
|
|
1763
|
+
}
|
|
1764
|
+
function defaultHostServiceDiagnosticSink(line) {
|
|
1765
|
+
process.stderr.write(line);
|
|
1766
|
+
}
|
|
1752
1767
|
var HOST_SERVICE_LOG_MAX_BYTES = 1024 * 1024;
|
|
1753
1768
|
var HOST_SERVICE_LOG_CHECK_INTERVAL_MS = 6e4;
|
|
1754
1769
|
function hostServiceLogPreviousPath(path) {
|
|
@@ -3502,10 +3517,20 @@ import { dirname as dirname3, join as join6 } from "node:path";
|
|
|
3502
3517
|
import { createHash as createHash5 } from "node:crypto";
|
|
3503
3518
|
var HOST_CURRENT_PROMPT_MAX_BYTES = 256 * 1024;
|
|
3504
3519
|
var MAX_CURRENT_PROMPTS = 1024;
|
|
3520
|
+
var MAX_CONSUMED_PROMPTS = 1024;
|
|
3521
|
+
var HostCurrentPromptCapacityError = class extends Error {
|
|
3522
|
+
report_diagnostic;
|
|
3523
|
+
constructor(reportDiagnostic) {
|
|
3524
|
+
super("current_prompt_unavailable");
|
|
3525
|
+
this.name = "HostCurrentPromptCapacityError";
|
|
3526
|
+
this.report_diagnostic = reportDiagnostic;
|
|
3527
|
+
}
|
|
3528
|
+
};
|
|
3505
3529
|
var HostCurrentPromptCustody = class {
|
|
3506
3530
|
#records = /* @__PURE__ */ new Map();
|
|
3507
3531
|
#consumed = /* @__PURE__ */ new Map();
|
|
3508
3532
|
#now;
|
|
3533
|
+
#capacityDiagnosticReported = false;
|
|
3509
3534
|
constructor(now = Date.now) {
|
|
3510
3535
|
this.#now = now;
|
|
3511
3536
|
}
|
|
@@ -3517,10 +3542,14 @@ var HostCurrentPromptCustody = class {
|
|
|
3517
3542
|
this.#purge();
|
|
3518
3543
|
const key = promptKey(identity);
|
|
3519
3544
|
if (this.#consumed.has(key)) return;
|
|
3520
|
-
if (!this.#records.has(key) && this.#records.size
|
|
3545
|
+
if (!this.#records.has(key) && this.#records.size >= MAX_CURRENT_PROMPTS) {
|
|
3546
|
+
const reportDiagnostic = !this.#capacityDiagnosticReported;
|
|
3547
|
+
this.#capacityDiagnosticReported = true;
|
|
3548
|
+
throw new HostCurrentPromptCapacityError(reportDiagnostic);
|
|
3549
|
+
}
|
|
3521
3550
|
this.#records.set(key, { prompt, expires_at_ms: expiry });
|
|
3522
3551
|
}
|
|
3523
|
-
/** Transfer this turn's prompt
|
|
3552
|
+
/** Transfer this turn's prompt once while its bounded recent replay guard retains the identity. */
|
|
3524
3553
|
take(identity) {
|
|
3525
3554
|
this.#purge();
|
|
3526
3555
|
const key = promptKey(identity);
|
|
@@ -3528,14 +3557,38 @@ var HostCurrentPromptCustody = class {
|
|
|
3528
3557
|
if (prompt !== void 0) {
|
|
3529
3558
|
const expiresAt = this.#records.get(key)?.expires_at_ms;
|
|
3530
3559
|
this.#records.delete(key);
|
|
3531
|
-
if (expiresAt !== void 0) this.#
|
|
3560
|
+
if (expiresAt !== void 0) this.#rememberConsumed(key, expiresAt);
|
|
3561
|
+
this.#resetCapacityDiagnosticIfAvailable();
|
|
3532
3562
|
}
|
|
3533
3563
|
return prompt;
|
|
3534
3564
|
}
|
|
3565
|
+
/** Release a prompt after its turn ends while retaining the same bounded replay guard. */
|
|
3566
|
+
release(identity) {
|
|
3567
|
+
this.#purge();
|
|
3568
|
+
const key = promptKey(identity);
|
|
3569
|
+
const record6 = this.#records.get(key);
|
|
3570
|
+
if (record6 === void 0) return false;
|
|
3571
|
+
this.#records.delete(key);
|
|
3572
|
+
this.#rememberConsumed(key, record6.expires_at_ms);
|
|
3573
|
+
this.#resetCapacityDiagnosticIfAvailable();
|
|
3574
|
+
return true;
|
|
3575
|
+
}
|
|
3576
|
+
#rememberConsumed(key, expiresAt) {
|
|
3577
|
+
this.#consumed.set(key, expiresAt);
|
|
3578
|
+
while (this.#consumed.size > MAX_CONSUMED_PROMPTS) {
|
|
3579
|
+
const oldest = this.#consumed.keys().next().value;
|
|
3580
|
+
if (oldest === void 0) return;
|
|
3581
|
+
this.#consumed.delete(oldest);
|
|
3582
|
+
}
|
|
3583
|
+
}
|
|
3535
3584
|
#purge() {
|
|
3536
3585
|
const now = this.#now();
|
|
3537
3586
|
for (const [key, value] of this.#records) if (value.expires_at_ms <= now) this.#records.delete(key);
|
|
3538
3587
|
for (const [key, expiresAt] of this.#consumed) if (expiresAt <= now) this.#consumed.delete(key);
|
|
3588
|
+
this.#resetCapacityDiagnosticIfAvailable();
|
|
3589
|
+
}
|
|
3590
|
+
#resetCapacityDiagnosticIfAvailable() {
|
|
3591
|
+
if (this.#records.size < MAX_CURRENT_PROMPTS) this.#capacityDiagnosticReported = false;
|
|
3539
3592
|
}
|
|
3540
3593
|
};
|
|
3541
3594
|
function promptKey(value) {
|
|
@@ -3564,6 +3617,7 @@ var HOST_RELAY_BINDING_RESULT_SCHEMA = "ceal.host_relay_binding_result.v1";
|
|
|
3564
3617
|
var HOST_RELAY_INVOCATION_CONTEXT_QUERY_SCHEMA = "ceal.host_relay_invocation_context_query.v1";
|
|
3565
3618
|
var HOST_RELAY_INVOCATION_CONTEXT_RESULT_SCHEMA = "ceal.host_relay_invocation_context_result.v1";
|
|
3566
3619
|
var HOST_RELAY_CURRENT_PROMPT_REGISTER_SCHEMA = "ceal.host_relay_current_prompt_register.v1";
|
|
3620
|
+
var HOST_RELAY_CURRENT_PROMPT_RELEASE_SCHEMA = "ceal.host_relay_current_prompt_release.v1";
|
|
3567
3621
|
var HOST_RELAY_CURRENT_PROMPT_RESULT_SCHEMA = "ceal.host_relay_current_prompt_result.v1";
|
|
3568
3622
|
var HOST_RELAY_IPC_LENGTH_BYTES = Uint32Array.BYTES_PER_ELEMENT;
|
|
3569
3623
|
var HOST_RELAY_INVOCATION_MINT_REFUSAL_REASONS = vocabulary([
|
|
@@ -3687,7 +3741,7 @@ function serveSocket(socket, options, currentPrompts, quarantine, active, socket
|
|
|
3687
3741
|
socket.once("error", () => closeConnection(socket, state, active, sockets));
|
|
3688
3742
|
socket.once("close", () => closeConnection(socket, state, active, sockets));
|
|
3689
3743
|
socket.once("end", () => {
|
|
3690
|
-
if (state.buffer.length > 0 &&
|
|
3744
|
+
if (state.buffer.length > 0 && isCurrentPromptWire(state.buffer)) {
|
|
3691
3745
|
writeCurrentPromptResponse(socket, "current_prompt_unavailable");
|
|
3692
3746
|
socket.end();
|
|
3693
3747
|
} else if (state.buffer.length > 0) void quarantine.retainMalformed(state.buffer, "frame_truncated").finally(() => {
|
|
@@ -3703,7 +3757,7 @@ async function drainFrames(socket, state, options, currentPrompts, quarantine, a
|
|
|
3703
3757
|
}
|
|
3704
3758
|
async function processBufferedRequest(socket, state, options, currentPrompts, quarantine, active) {
|
|
3705
3759
|
const length = state.buffer.readUInt32BE(0);
|
|
3706
|
-
const promptWire =
|
|
3760
|
+
const promptWire = isCurrentPromptWire(state.buffer);
|
|
3707
3761
|
const maximum = promptWire ? HOST_CURRENT_PROMPT_MAX_BYTES + 4096 : HOST_PRODUCER_MAX_JSON_BYTES;
|
|
3708
3762
|
if (length === 0 || length > maximum) {
|
|
3709
3763
|
await refuseInvalidBufferedRequest(socket, state.buffer, length, promptWire, quarantine);
|
|
@@ -3721,13 +3775,8 @@ async function processBufferedRequest(socket, state, options, currentPrompts, qu
|
|
|
3721
3775
|
await refuseMalformedRequest(socket, encoded, promptWire, error, quarantine);
|
|
3722
3776
|
return true;
|
|
3723
3777
|
}
|
|
3724
|
-
if (request2.schema_version === HOST_RELAY_CURRENT_PROMPT_REGISTER_SCHEMA) {
|
|
3725
|
-
|
|
3726
|
-
currentPrompts.register(request2, request2.current_prompt, request2.context_expires_at);
|
|
3727
|
-
writeCurrentPromptResponse(socket, "registered");
|
|
3728
|
-
} catch {
|
|
3729
|
-
writeCurrentPromptResponse(socket, "current_prompt_unavailable");
|
|
3730
|
-
}
|
|
3778
|
+
if (request2.schema_version === HOST_RELAY_CURRENT_PROMPT_REGISTER_SCHEMA || request2.schema_version === HOST_RELAY_CURRENT_PROMPT_RELEASE_SCHEMA) {
|
|
3779
|
+
answerCurrentPromptRequest(socket, request2, currentPrompts, options.diagnostic_sink);
|
|
3731
3780
|
return true;
|
|
3732
3781
|
}
|
|
3733
3782
|
const answered = await processHostQuery(socket, request2, options, currentPrompts, state.abort.signal);
|
|
@@ -3739,6 +3788,22 @@ async function processBufferedRequest(socket, state, options, currentPrompts, qu
|
|
|
3739
3788
|
await processProducerRequest(socket, state, request2, encoded, options.admission, quarantine, active);
|
|
3740
3789
|
return true;
|
|
3741
3790
|
}
|
|
3791
|
+
function answerCurrentPromptRequest(socket, request2, currentPrompts, sink) {
|
|
3792
|
+
if (request2.schema_version === HOST_RELAY_CURRENT_PROMPT_RELEASE_SCHEMA) {
|
|
3793
|
+
currentPrompts.release(request2);
|
|
3794
|
+
writeCurrentPromptResponse(socket, "released");
|
|
3795
|
+
return;
|
|
3796
|
+
}
|
|
3797
|
+
try {
|
|
3798
|
+
currentPrompts.register(request2, request2.current_prompt, request2.context_expires_at);
|
|
3799
|
+
writeCurrentPromptResponse(socket, "registered");
|
|
3800
|
+
} catch (error) {
|
|
3801
|
+
if (error instanceof HostCurrentPromptCapacityError) {
|
|
3802
|
+
if (error.report_diagnostic) writeHostServiceDiagnostic(request2.producer_id, "current_prompt_capacity_exhausted", void 0, void 0, sink);
|
|
3803
|
+
writeCurrentPromptResponse(socket, "capacity_exhausted");
|
|
3804
|
+
} else writeCurrentPromptResponse(socket, "current_prompt_unavailable");
|
|
3805
|
+
}
|
|
3806
|
+
}
|
|
3742
3807
|
async function refuseInvalidBufferedRequest(socket, rawBuffer, length, promptWire, quarantine) {
|
|
3743
3808
|
if (promptWire) {
|
|
3744
3809
|
writeCurrentPromptResponse(socket, "current_prompt_unavailable");
|
|
@@ -3986,6 +4051,10 @@ function decodeLocalRequest(value) {
|
|
|
3986
4051
|
if (!validCurrentPromptRegisterRequest(value)) throw new HostProducerFrameError("invalid_frame_shape");
|
|
3987
4052
|
return value;
|
|
3988
4053
|
}
|
|
4054
|
+
if (value.schema_version === HOST_RELAY_CURRENT_PROMPT_RELEASE_SCHEMA) {
|
|
4055
|
+
if (!validCurrentPromptReleaseRequest(value)) throw new HostProducerFrameError("invalid_frame_shape");
|
|
4056
|
+
return value;
|
|
4057
|
+
}
|
|
3989
4058
|
if (value.schema_version === HOST_RELAY_BINDING_QUERY_SCHEMA) {
|
|
3990
4059
|
if (!validBindingQueryRequest(value)) throw new HostProducerFrameError("invalid_frame_shape");
|
|
3991
4060
|
return value;
|
|
@@ -3999,6 +4068,9 @@ function decodeLocalRequest(value) {
|
|
|
3999
4068
|
function validCurrentPromptRegisterRequest(value) {
|
|
4000
4069
|
return validQueryIdentity(value, HOST_RELAY_CURRENT_PROMPT_REGISTER_SCHEMA) && exactKeys4(value, ["schema_version", "producer_id", "producer_installation_ref", "local_session_ref", "local_turn_ref", "prompt_ref", "current_prompt", "context_expires_at"]) && safeRef3(value.prompt_ref) && typeof value.current_prompt === "string" && Buffer.byteLength(value.current_prompt, "utf8") > 0 && Buffer.byteLength(value.current_prompt, "utf8") <= HOST_CURRENT_PROMPT_MAX_BYTES && validTimestamp2(value.context_expires_at);
|
|
4001
4070
|
}
|
|
4071
|
+
function validCurrentPromptReleaseRequest(value) {
|
|
4072
|
+
return validQueryIdentity(value, HOST_RELAY_CURRENT_PROMPT_RELEASE_SCHEMA) && exactKeys4(value, ["schema_version", "producer_id", "producer_installation_ref", "local_session_ref", "local_turn_ref", "prompt_ref"]) && safeRef3(value.prompt_ref);
|
|
4073
|
+
}
|
|
4002
4074
|
function validBindingQueryRequest(value) {
|
|
4003
4075
|
return validQueryIdentity(value, HOST_RELAY_BINDING_QUERY_SCHEMA) && exactKeys4(value, ["schema_version", "producer_id", "producer_installation_ref", "local_session_ref", "local_turn_ref"]);
|
|
4004
4076
|
}
|
|
@@ -4033,9 +4105,15 @@ function encodeLengthPrefixed(value) {
|
|
|
4033
4105
|
body.copy(output, HOST_RELAY_IPC_LENGTH_BYTES);
|
|
4034
4106
|
return output;
|
|
4035
4107
|
}
|
|
4036
|
-
function
|
|
4108
|
+
function isCurrentPromptWire(value) {
|
|
4109
|
+
return currentPromptRegisterWire(value) || currentPromptReleaseWire(value);
|
|
4110
|
+
}
|
|
4111
|
+
function currentPromptRegisterWire(value) {
|
|
4037
4112
|
return value.subarray(HOST_RELAY_IPC_LENGTH_BYTES, Math.min(value.length, HOST_RELAY_IPC_LENGTH_BYTES + 128)).includes(Buffer.from(`"schema_version":"${HOST_RELAY_CURRENT_PROMPT_REGISTER_SCHEMA}"`, "utf8"));
|
|
4038
4113
|
}
|
|
4114
|
+
function currentPromptReleaseWire(value) {
|
|
4115
|
+
return value.subarray(HOST_RELAY_IPC_LENGTH_BYTES, Math.min(value.length, HOST_RELAY_IPC_LENGTH_BYTES + 128)).includes(Buffer.from(`"schema_version":"${HOST_RELAY_CURRENT_PROMPT_RELEASE_SCHEMA}"`, "utf8"));
|
|
4116
|
+
}
|
|
4039
4117
|
function exactKeys4(value, required, optional = []) {
|
|
4040
4118
|
const keys = Object.keys(value);
|
|
4041
4119
|
return required.every((key) => Object.hasOwn(value, key)) && keys.every((key) => required.includes(key) || optional.includes(key));
|
package/package.json
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
"product": "ceal-host",
|
|
4
4
|
"version_source": {
|
|
5
5
|
"product": "ceal-host",
|
|
6
|
-
"version": "1.0.
|
|
6
|
+
"version": "1.0.20"
|
|
7
7
|
},
|
|
8
8
|
"source": {
|
|
9
9
|
"repository": "corca-ai/ceal",
|
|
10
|
-
"commit": "
|
|
11
|
-
"tree": "
|
|
10
|
+
"commit": "489268bcad5cb18af4d945a670ce408825193fa6",
|
|
11
|
+
"tree": "cccf6b16edbb9503414c7a007c29cf45bf373c4e"
|
|
12
12
|
},
|
|
13
13
|
"target": "linux-arm64",
|
|
14
14
|
"required_features": [],
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
],
|
|
20
20
|
"executable": true,
|
|
21
21
|
"path": "bin/ceal-host",
|
|
22
|
-
"sha256": "
|
|
22
|
+
"sha256": "3ebd34e70d10390332afb57fdb82a342af46a8d11c05a347806676802dbd916d"
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
25
|
"owners": [
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
],
|
|
28
28
|
"executable": false,
|
|
29
29
|
"path": "libexec/ceal-host/claude-hook.mjs",
|
|
30
|
-
"sha256": "
|
|
30
|
+
"sha256": "9855ee0b659db272d9a085a25678c66e8fa1ab8e324894374c62fc0abe5763f5"
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
"owners": [
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
],
|
|
36
36
|
"executable": false,
|
|
37
37
|
"path": "libexec/ceal-host/claude-invocation-authentication.mjs",
|
|
38
|
-
"sha256": "
|
|
38
|
+
"sha256": "4170ceaf9105eb5f8561ec47e4399236270c2405ba46ba2cc054d1866bfa7bc7"
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
41
|
"owners": [
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
],
|
|
44
44
|
"executable": false,
|
|
45
45
|
"path": "libexec/ceal-host/claude-producer.mjs",
|
|
46
|
-
"sha256": "
|
|
46
|
+
"sha256": "a052b05bec47ae8bb585fd6b21498c7e203b0438a0c8bf73898b842d9c80f7af"
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
49
|
"owners": [
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
],
|
|
52
52
|
"executable": false,
|
|
53
53
|
"path": "libexec/ceal-host/codex-hook.mjs",
|
|
54
|
-
"sha256": "
|
|
54
|
+
"sha256": "29e069007aaed9a1ffcb07ce3aefe80b010fafc18114ecdba770f5c60414d8e4"
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
57
|
"owners": [
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
],
|
|
60
60
|
"executable": false,
|
|
61
61
|
"path": "libexec/ceal-host/codex-invocation-authentication.mjs",
|
|
62
|
-
"sha256": "
|
|
62
|
+
"sha256": "d0f5fcb696478a5de6caff04f41ee09b99690440ae957e670fe1624635652a0a"
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
65
|
"owners": [
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
],
|
|
68
68
|
"executable": false,
|
|
69
69
|
"path": "libexec/ceal-host/codex-producer.mjs",
|
|
70
|
-
"sha256": "
|
|
70
|
+
"sha256": "29d32a67b1a000d4efa1c27a6546beaab9a2f97150d6ad956cdd4a848b93bae9"
|
|
71
71
|
},
|
|
72
72
|
{
|
|
73
73
|
"owners": [
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
],
|
|
76
76
|
"executable": false,
|
|
77
77
|
"path": "libexec/ceal-host/control.mjs",
|
|
78
|
-
"sha256": "
|
|
78
|
+
"sha256": "7d568d3b37924d7cc8ec6bc0f328996fcc22540d2b38b4e84c2362336cf15ec1"
|
|
79
79
|
},
|
|
80
80
|
{
|
|
81
81
|
"owners": [
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
],
|
|
92
92
|
"executable": false,
|
|
93
93
|
"path": "libexec/ceal-host/relay.mjs",
|
|
94
|
-
"sha256": "
|
|
94
|
+
"sha256": "9481b8dab66eef5f06d8fbcc88f96602d25be001ffbaf5073aeea0ecada9384a"
|
|
95
95
|
}
|
|
96
96
|
]
|
|
97
97
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"
|
|
1
|
+
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIG7jCCBnOgAwIBAgIUX2obGe07QQBNs7xVZCq2ACJPT1YwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDEyMTg0ODE1WhcNMjYxMDEyMTg1ODE1WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAER6ccobdRcy23mgsDP11mSdZ5LvRwBxjlev1P8wWC1UaKQ3Yf9MdNftOURtzRk+E3D3Ay5tt9cGpNv6nOF+vBoaOCBZIwggWOMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBmBgNVHREBAf8EXDBahlhodHRwczovL2dpdGh1Yi5jb20vY29yY2EtYWkvY2VhbC8uZ2l0aHViL3dvcmtmbG93cy9yZWxlYXNlLWNhbmRpZGF0ZS55bWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoNDg5MjY4YmNhZDVjYjE4YWY0ZDk0NWE2NzBjZTQwODgyNTE5M2ZhNjAkBgorBgEEAYO/MAEEBBZDZWFsIHJlbGVhc2UgY2FuZGlkYXRlMBsGCisGAQQBg78wAQUEDWNvcmNhLWFpL2NlYWwwHQYKKwYBBAGDvzABBgQPcmVmcy9oZWFkcy9tYWluMDsGCisGAQQBg78wAQgELQwraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTBoBgorBgEEAYO/MAEJBFoMWGh0dHBzOi8vZ2l0aHViLmNvbS9jb3JjYS1haS9jZWFsLy5naXRodWIvd29ya2Zsb3dzL3JlbGVhc2UtY2FuZGlkYXRlLnltbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDCg0ODkyNjhiY2FkNWNiMThhZjRkOTQ1YTY3MGNlNDA4ODI1MTkzZmE2MB0GCisGAQQBg78wAQsEDwwNZ2l0aHViLWhvc3RlZDAwBgorBgEEAYO/MAEMBCIMIGh0dHBzOi8vZ2l0aHViLmNvbS9jb3JjYS1haS9jZWFsMDgGCisGAQQBg78wAQ0EKgwoNDg5MjY4YmNhZDVjYjE4YWY0ZDk0NWE2NzBjZTQwODgyNTE5M2ZhNjAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjExOTE1NTQ1OTMwKwYKKwYBBAGDvzABEAQdDBtodHRwczovL2dpdGh1Yi5jb20vY29yY2EtYWkwGAYKKwYBBAGDvzABEQQKDAg3Mjk3ODg2MDBoBgorBgEEAYO/MAESBFoMWGh0dHBzOi8vZ2l0aHViLmNvbS9jb3JjYS1haS9jZWFsLy5naXRodWIvd29ya2Zsb3dzL3JlbGVhc2UtY2FuZGlkYXRlLnltbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABEwQqDCg0ODkyNjhiY2FkNWNiMThhZjRkOTQ1YTY3MGNlNDA4ODI1MTkzZmE2MCEGCisGAQQBg78wARQEEwwRd29ya2Zsb3dfZGlzcGF0Y2gwVAYKKwYBBAGDvzABFQRGDERodHRwczovL2dpdGh1Yi5jb20vY29yY2EtYWkvY2VhbC9hY3Rpb25zL3J1bnMvMzgyOTIxMTg2OTMvYXR0ZW1wdHMvMTAXBgorBgEEAYO/MAEWBAkMB3ByaXZhdGUwNgYKKwYBBAGDvzABGAQoDCZyZXBvOmNvcmNhLWFpL2NlYWw6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoTFxrD4AAAQDAEYwRAIgBP+LLHqwM8H4dCuC/5nFGR/PFAhbXBfw7A9vRVi2yuYCIH9bg96IFBlxm+hRE/yuYvx3l5xEeISoMj6QSq6z8NUHMAoGCCqGSM49BAMDA2kAMGYCMQDaPFXkvZhILHx5lnStKGz7BzDVS0PXd854tqxYklwDeAO3E6i6GHy7rpA7eT3x6dMCMQDCD3dIGrtmcj/dvXtov/jKn9REJte8FyCUBjxA1fhVls9g6WJmWSUpdLvvvgP67fg="},"tlogEntries":[{"logIndex":"3233362836","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1791830895","inclusionPromise":{"signedEntryTimestamp":"MEUCIH8q7h5cnTUpysghPCKv9G6nKXwidvbRjT4TiHs4Pqw6AiEAzozx65IDc87I3Kjw3ALXAn4bfCFggwsFjo+irHmchnI="},"inclusionProof":{"logIndex":"3111458574","rootHash":"pZlSB+TuhRZ9JN5BhCoXyJZ9OiPYaCpjIiDESplV+/k=","treeSize":"3111458623","hashes":["/+SRLAVThQ9eozLgb4REOe+0Zsgsd5DjdRatz3QUz/U=","t52ENlNedu5eCyiO39R8rhgHb5owf29CNpyYYPi1fqs=","QpYXdKJLRePxU6pW839GEnWR4YDkM96OLy5Ii0nu+6Y=","0fxy7TTYJ2MBtCi5k6qVYht03VMld+kJDUZhrf8VWtI=","A4N6yxjQmfc4sBgpim+Av4k+EAjSQqv6cm4f2X36W/w=","ZqOBH50p5z13bYkC/0Kk23dgcbmUQWVohvvJKFJ2LhM=","jjAkoVUCuoBi/+V/5coC8Eo3l4Yw4jAJ1KCEyiclxhE=","sCbKvCDmv7fJdQs3vTECWS2SpqHCLry+IRQEg9rUPg8=","3ID17r5Q8jp+QUyKZnrjaIq8Xc3XIN5QHn4xhsbyKfw=","+UgtumUZSML/VsvGwhYPSFP/ujC0QRoKzrQsBzVYdbk=","SCqUpxr32TXzhwUo+Hn5LiTtltJKOXKJ+M0VwRKeEMA=","OvjTb/10AyDIGTcsr05zJgGF29+xxAC6469LD5wLGgA=","w+ANyfpAQd7aN9Rtw6/7/kLsa6YqS8OAe4u7I0i4kvo=","sK5tyejFNs4i3Poi+8A7KeNdZHPy32HPtSJ7z8TnTyo=","kWfGIR953AP4Z87NAshsRz5VcurxE91SnXPMKYNxk5c=","bpfx3CvxJAnYOghd+Bi2asK3AkgiPItBYoCGoLVZlrI=","gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=","NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=","qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3111458623\npZlSB+TuhRZ9JN5BhCoXyJZ9OiPYaCpjIiDESplV+/k=\n\n— rekor.sigstore.dev wNI9ajBFAiEA9nY6wi/qUDmMdj+G7iqUmG9GkPDI2v+OkJ/QlKMOxwcCIFDxbpaz9cR16lxKVOgdMRrilzflUOsmza6axk8pFBFy\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJjNTFhYTdhZTU0NTExM2NhMzYxMWYzOTQzZjQ5NTczYmIxOGE5MjFhMjMyYThlMDFkMzZhOTFlOTkxZGQwYjc1In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUNUc1padVY0YUYxbVFFc05KNkRnZTVnYitHV0t6ZkJxYjBGTFdNWVR0djRBSWdjYU9Kb2JFcmNFSVdrLytUekUxUlgzZm1FenIyTytRRS80NXJmSjJETmxzPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVYzNha05EUW01UFowRjNTVUpCWjBsVldESnZZa2RsTURkUlVVSk9jemQ0VmxwRGNUSkJRMHBRVkRGWmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlhsTlZHY3dUMFJGTVZkb1kwNU5hbGw0VFVSRmVVMVVaekZQUkVVeFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZTTm1OamIySmtVbU41TWpOdFozTkVVREV4YlZOa1dqVk1kbEozUW5ocWJHVjJNVkFLT0hkWFF6RlZZVXRSTTFsbU9VMWtUbVowVDFWU2RIcFNheXRGTTBRelFYazFkSFE1WTBkd1RuWTJiazlHSzNaQ2IyRlBRMEphU1hkbloxZFBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFtMUNaMDVXU0ZKRlFrRm1PRVZZUkVKaGFHeG9iMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWlpNamw1V1RKRmRGbFhhM1paTWxab1lrTTRkVm95YkRCaFNGWnBURE5rZG1OdGRHMWlSemt6WTNrNWVWcFhlR3haV0U1c1RGZE9hQXBpYlZKd1drZEdNRnBUTlRWaVYzaEJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOUkd0SFEybHpSMEZSVVVKbk56aDNRVkZGUlVzeWFEQmtTRUo2Q2s5cE9IWmtSemx5V2xjMGRWbFhUakJoVnpsMVkzazFibUZZVW05a1Ywb3hZekpXZVZreU9YVmtSMVoxWkVNMWFtSXlNSGRJZDFsTFMzZFpRa0pCUjBRS2RucEJRa0ZuVVZKa01qbDVZVEphYzJJelpHWmFSMng2WTBkR01Ga3laM2RPWjFsTFMzZFpRa0pCUjBSMmVrRkNRWGRSYjA1RVp6Vk5hbGswV1cxT2FBcGFSRlpxV1dwRk5GbFhXVEJhUkdzd1RsZEZNazU2UW1wYVZGRjNUMFJuZVU1VVJUVk5NbHBvVG1wQmEwSm5iM0pDWjBWRlFWbFBMMDFCUlVWQ1FscEVDbHBYUm5OSlNFcHNZa2RXYUdNeVZXZFpNa1oxV2tkc2ExbFlVbXhOUW5OSFEybHpSMEZSVVVKbk56aDNRVkZWUlVSWFRuWmpiVTVvVEZkR2NFd3lUbXdLV1ZkM2QwaFJXVXRMZDFsQ1FrRkhSSFo2UVVKQ1oxRlFZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOUkhOSFEybHpSMEZSVVVKbk56aDNRVkZuUlFwTVVYZHlZVWhTTUdOSVRUWk1lVGt3WWpKMGJHSnBOV2haTTFKd1lqSTFla3h0WkhCa1IyZ3hXVzVXZWxwWVNtcGlNalV3V2xjMU1FeHRUblppVkVKdkNrSm5iM0pDWjBWRlFWbFBMMDFCUlVwQ1JtOU5WMGRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVhbUl6U21wWlV6Rm9ZVk01YWxwWFJuTUtUSGsxYm1GWVVtOWtWMGwyWkRJNWVXRXlXbk5pTTJSNlRETktiR0pIVm1oak1sVjBXVEpHZFZwSGJHdFpXRkpzVEc1c2RHSkZRbmxhVjFwNlRESm9iQXBaVjFKNlRESXhhR0ZYTkhkUFFWbExTM2RaUWtKQlIwUjJla0ZDUTJkUmNVUkRaekJQUkd0NVRtcG9hVmt5Um10T1YwNXBUVlJvYUZwcVVtdFBWRkV4Q2xsVVdUTk5SMDVzVGtSQk5FOUVTVEZOVkd0NldtMUZNazFDTUVkRGFYTkhRVkZSUW1jM09IZEJVWE5GUkhkM1Rsb3liREJoU0ZacFRGZG9kbU16VW13S1drUkJkMEpuYjNKQ1owVkZRVmxQTDAxQlJVMUNRMGxOU1Vkb01HUklRbnBQYVRoMldqSnNNR0ZJVm1sTWJVNTJZbE01YW1JelNtcFpVekZvWVZNNWFncGFWMFp6VFVSblIwTnBjMGRCVVZGQ1p6YzRkMEZSTUVWTFozZHZUa1JuTlUxcVdUUlpiVTVvV2tSV2FsbHFSVFJaVjFrd1drUnJNRTVYUlRKT2VrSnFDbHBVVVhkUFJHZDVUbFJGTlUweVdtaE9ha0ZtUW1kdmNrSm5SVVZCV1U4dlRVRkZUMEpDUlUxRU0wcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRV0VLUW1kdmNrSm5SVVZCV1U4dlRVRkZVRUpCZDAxRGFrVjRUMVJGTVU1VVVURlBWRTEzUzNkWlMwdDNXVUpDUVVkRWRucEJRa1ZCVVdSRVFuUnZaRWhTZHdwamVtOTJUREprY0dSSGFERlphVFZxWWpJd2Rsa3lPWGxaTWtWMFdWZHJkMGRCV1V0TGQxbENRa0ZIUkhaNlFVSkZVVkZMUkVGbk0wMXFhek5QUkdjeUNrMUVRbTlDWjI5eVFtZEZSVUZaVHk5TlFVVlRRa1p2VFZkSGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1dwaU0wcHFXVk14YUdGVE9Xb0tXbGRHYzB4NU5XNWhXRkp2WkZkSmRtUXlPWGxoTWxwellqTmtla3d6U214aVIxWm9ZekpWZEZreVJuVmFSMnhyV1ZoU2JFeHViSFJpUlVKNVdsZGFlZ3BNTW1oc1dWZFNla3d5TVdoaFZ6UjNUMEZaUzB0M1dVSkNRVWRFZG5wQlFrVjNVWEZFUTJjd1QwUnJlVTVxYUdsWk1rWnJUbGRPYVUxVWFHaGFhbEpyQ2s5VVVURlpWRmt6VFVkT2JFNUVRVFJQUkVreFRWUnJlbHB0UlRKTlEwVkhRMmx6UjBGUlVVSm5OemgzUVZKUlJVVjNkMUprTWpsNVlUSmFjMkl6WkdZS1drZHNlbU5IUmpCWk1tZDNWa0ZaUzB0M1dVSkNRVWRFZG5wQlFrWlJVa2RFUlZKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyV1RJNWVRcFpNa1YwV1ZkcmRsa3lWbWhpUXpsb1dUTlNjR0l5TlhwTU0wb3hZbTVOZGsxNlozbFBWRWw0VFZSbk1rOVVUWFpaV0ZJd1dsY3hkMlJJVFhaTlZFRllDa0puYjNKQ1owVkZRVmxQTDAxQlJWZENRV3ROUWpOQ2VXRllXbWhrUjFWM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtkQlVXOUVRMXA1V2xoQ2RrOXRUbllLWTIxT2FFeFhSbkJNTWs1c1dWZDNObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwVVZsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTTndwQ1NHdEJaSGRDTVVGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOVVSbmh5UkRSQkNrRkJVVVJCUlZsM1VrRkpaMEpRSzB4TVNIRjNUVGhJTkdSRGRVTXZOVzVHUjFJdlVFWkJhR0pZUW1aM04wRTVkbEpXYVRKNWRWbERTVWc1WW1jNU5ra0tSa0pzZUcwcmFGSkZMM2wxV1haNE0ydzFlRVZsU1ZOdlRXbzJVVk54Tm5vNFRsVklUVUZ2UjBORGNVZFRUVFE1UWtGTlJFRXlhMEZOUjFsRFRWRkVZUXBRUmxocmRscG9TVXhJZURWc2JsTjBTMGQ2TjBKNlJGWlRNRkJZWkRnMU5IUnhlRmxyYkhkRVpVRlBNMFUyYVRaSFNIazNjbkJCTjJWVU0zZzJaRTFEQ2sxUlJFTkVNMlJKUjNKMGJXTnFMMlIyV0hSdmRpOXFTMjQ1VWtWS2RHVTRSbmxEVlVKcWVFRXhabWhXYkhNNVp6WlhTbTFYVTFWd1pFeDJkblpuVURZS04yWm5QUW90TFMwdExVVk9SQ0JEUlZKVVNVWkpRMEZVUlMwdExTMHRDZz09In19fX0="}]},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"xRqnrlRRE8o2EfOUP0lXO7GKkhojKo4B02qR6ZHdC3U="},"signature":"MEUCIQCTsZZuV4aF1mQEsNJ6Dge5gb+GWKzfBqb0FLWMYTtv4AIgcaOJobErcEIWk/+TzE1RX3fmEzr2O+QE/45rfJ2DNls="}}
|