@sema-agent/client-core 0.105.0 → 0.107.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/CHANGELOG.md +301 -0
- package/README.md +40 -21
- package/dist/adapt/arms.js +10 -1
- package/dist/adapter/activeRunSelfHeal.d.ts +21 -2
- package/dist/adapter/activeRunSelfHeal.js +129 -28
- package/dist/adapter/downstream/eventToSdkMessage.d.ts +0 -5
- package/dist/adapter/downstream/eventToSdkMessage.js +20 -19
- package/dist/adapter/downstream/terminalToSdkResult.js +2 -3
- package/dist/adapter/downstream/wiringManifestView.d.ts +1 -3
- package/dist/adapter/downstream/wiringManifestView.js +0 -1
- package/dist/adapter/runStream.js +3 -4
- package/dist/approvalReachWire.d.ts +1 -0
- package/dist/approvalReachWire.js +4 -1
- package/dist/approvalSeat.d.ts +21 -0
- package/dist/approvalSeat.js +73 -0
- package/dist/assistantInbox.d.ts +2 -0
- package/dist/assistantInbox.js +3 -0
- package/dist/checkpointRowVerdict.d.ts +29 -0
- package/dist/checkpointRowVerdict.js +98 -0
- package/dist/coreValuePorts.d.ts +12 -1
- package/dist/coreValuePorts.js +10 -0
- package/dist/decideFailureNote.js +3 -1
- package/dist/decideReceipt.d.ts +9 -0
- package/dist/decideReceipt.js +29 -1
- package/dist/declared/supportFloorDeclared.js +2 -2
- package/dist/deviceRebind.d.ts +7 -0
- package/dist/deviceRebind.js +39 -5
- package/dist/displayUntrusted.d.ts +5 -3
- package/dist/displayUntrusted.js +50 -41
- package/dist/engineAddress.d.ts +3 -0
- package/dist/engineAddress.js +25 -0
- package/dist/engineDirectory.js +9 -17
- package/dist/engineErrorCodes.d.ts +8 -0
- package/dist/engineErrorCodes.js +8 -0
- package/dist/engineNoticeCodes.d.ts +38 -3
- package/dist/engineNoticeCodes.js +167 -11
- package/dist/engineRowRef.js +1 -1
- package/dist/errorSupplementRoles.js +4 -1
- package/dist/eventLeg.d.ts +2 -2
- package/dist/eventLeg.js +2 -1
- package/dist/executionLaneCapability.js +3 -2
- package/dist/executionLaneWords.d.ts +1 -0
- package/dist/executionLaneWords.js +3 -0
- package/dist/fleet/fleetProjection.js +26 -5
- package/dist/generated/engineFactTables.d.ts +2 -1
- package/dist/generated/engineFactTables.js +3 -1
- package/dist/generated/engineNoticeTables.js +28 -7
- package/dist/generated/sdkFactTables.d.ts +3 -0
- package/dist/generated/sdkFactTables.js +15 -0
- package/dist/generated/settingsSchemaFns.d.ts +11 -0
- package/dist/generated/settingsSchemaFns.js +2 -1
- package/dist/generated/settingsSchemaSafetyMergeSpec.js +1 -1
- package/dist/generated/settingsSchemaSettingsSources.d.ts +1 -1
- package/dist/generated/settingsSchemaSettingsSources.js +22 -2
- package/dist/hitl/approvalLiveFace.d.ts +17 -0
- package/dist/hitl/approvalLiveFace.js +35 -0
- package/dist/hitl/approvalQueueRow.d.ts +21 -0
- package/dist/hitl/approvalQueueRow.js +69 -0
- package/dist/hitl/approvalResolution.d.ts +5 -1
- package/dist/hitl/approvalResolution.js +18 -1
- package/dist/hitl/approvalsFeed.d.ts +5 -4
- package/dist/hitl/approvalsFeed.js +39 -6
- package/dist/hitl/askParkRowRouting.d.ts +4 -3
- package/dist/hitl/askParkRowRouting.js +27 -3
- package/dist/hitl/automaticAnswerVerdict.js +13 -10
- package/dist/hitl/crashConverged.d.ts +5 -1
- package/dist/hitl/decisionConflict.js +2 -1
- package/dist/hitl/decisionRefusal.js +1 -1
- package/dist/hitl/decisionSend.d.ts +3 -0
- package/dist/hitl/decisionSend.js +32 -6
- package/dist/hitl/frameRouter.js +4 -5
- package/dist/hitl/hitlBridge.d.ts +6 -2
- package/dist/hitl/hitlBridge.js +53 -7
- package/dist/hitl/livePendingAsk.d.ts +5 -0
- package/dist/hitl/livePendingAsk.js +10 -3
- package/dist/hitl/parkOwnership.js +4 -5
- package/dist/hitl/parkResolver.js +9 -5
- package/dist/hitl/parkRowBirthWait.d.ts +7 -0
- package/dist/hitl/parkRowBirthWait.js +1 -1
- package/dist/hitl/parkRowDelegation.d.ts +6 -0
- package/dist/hitl/parkRowDelegation.js +33 -0
- package/dist/hitl/persistedRulesWire.d.ts +15 -3
- package/dist/hitl/persistedRulesWire.js +102 -20
- package/dist/hitl/planReviewCard.d.ts +2 -0
- package/dist/hitl/planReviewCard.js +21 -0
- package/dist/hitl/planReviewWire.d.ts +2 -2
- package/dist/hitl/planReviewWire.js +105 -38
- package/dist/hitl/sessionAllowRoute.d.ts +7 -0
- package/dist/hitl/sessionAllowRoute.js +49 -0
- package/dist/hitl/sessionPolicyWire.d.ts +1 -7
- package/dist/hitl/sessionPolicyWire.js +3 -43
- package/dist/hitl/standingRows.js +10 -10
- package/dist/hitl/subagentSource.d.ts +1 -0
- package/dist/hitl/subagentSource.js +13 -0
- package/dist/hitl/toolApprovalWire.d.ts +3 -2
- package/dist/hitl/toolApprovalWire.js +100 -44
- package/dist/hostSettingsSource.d.ts +4 -1
- package/dist/hostSettingsSource.js +11 -6
- package/dist/hostTurnSettings.d.ts +4 -5
- package/dist/hostTurnSettings.js +80 -19
- package/dist/i18n/messages.en.d.ts +41 -12
- package/dist/i18n/messages.en.js +42 -13
- package/dist/i18n/messages.zh.js +45 -13
- package/dist/index.d.ts +22 -2
- package/dist/index.js +12 -2
- package/dist/injectionLaneNotice.js +2 -1
- package/dist/liveInitToolFace.js +0 -1
- package/dist/liveModelCatalog.d.ts +15 -0
- package/dist/liveModelCatalog.js +40 -0
- package/dist/mcpWireCaps.js +1 -1
- package/dist/modelCapabilityProbe.js +66 -33
- package/dist/noticePresentation.js +2 -0
- package/dist/ownKey.d.ts +0 -1
- package/dist/ownKey.js +0 -2
- package/dist/permissionsDeclaration.d.ts +2 -2
- package/dist/permissionsDeclaration.js +12 -14
- package/dist/projectSeed.d.ts +39 -0
- package/dist/projectSeed.js +80 -0
- package/dist/promptDelivery.js +1 -1
- package/dist/replayBody.d.ts +7 -6
- package/dist/replayBody.js +62 -7
- package/dist/request/taskRequest.js +3 -4
- package/dist/ruleCompileVerdict.d.ts +0 -2
- package/dist/ruleCompileVerdict.js +0 -31
- package/dist/ruleRefusalSentence.js +0 -3
- package/dist/runReattachPolicy.d.ts +3 -0
- package/dist/runReattachPolicy.js +15 -2
- package/dist/runTerminal.js +30 -8
- package/dist/sandboxWire.d.ts +0 -3
- package/dist/sandboxWire.js +0 -9
- package/dist/sdkWireTransit.d.ts +1 -1
- package/dist/seam.d.ts +14 -7
- package/dist/seam.js +12 -0
- package/dist/seatContract.d.ts +58 -7
- package/dist/seatContract.js +135 -4
- package/dist/serverSupportRange.d.ts +18 -0
- package/dist/serverSupportRange.js +25 -0
- package/dist/sessionEngine.d.ts +156 -0
- package/dist/sessionEngine.js +464 -0
- package/dist/sessionMap.d.ts +11 -1
- package/dist/sessionMap.js +35 -9
- package/dist/sessionMemorySync.d.ts +31 -0
- package/dist/sessionMemorySync.js +95 -0
- package/dist/sessionRowTag.d.ts +4 -0
- package/dist/sessionRowTag.js +18 -0
- package/dist/settingsLayerAdmission.d.ts +1 -0
- package/dist/settingsLayerAdmission.js +4 -1
- package/dist/toolResult.js +1 -1
- package/dist/wireRefusalCopy.d.ts +6 -1
- package/dist/wireRefusalCopy.js +9 -7
- package/docs/INTEGRATION-CLIENTS.md +1393 -18
- package/package.json +5 -5
|
@@ -3,20 +3,21 @@ import { displayUntrusted } from './displayUntrusted.js';
|
|
|
3
3
|
import { CORE_ENGINE_NOTICE_CODES, CORE_MCP_INJECTION_DROP_REASONS, CORE_NOTICE_AUDIENCE, CORE_USER_INPUT_UNDRAINED_FAMILIES, } from './generated/engineNoticeTables.js';
|
|
4
4
|
import { CORE_APPROVAL_REMEDY_KINDS, CORE_ASK_UNRESOLVABLE_CAUSES, CORE_DURABLE_MANDATE_SOURCES, CORE_PERMISSION_MODE_FOLD_REASONS, } from './generated/engineFactTables.js';
|
|
5
5
|
import { msg, renderMessage } from './i18n/translate.js';
|
|
6
|
-
import { readOwnDataValue } from './ownKey.js';
|
|
6
|
+
import { ownDataField, readOwnDataValue } from './ownKey.js';
|
|
7
7
|
export const ENGINE_NOTICE_CODES = CORE_ENGINE_NOTICE_CODES;
|
|
8
8
|
const CATALOG = new Set(ENGINE_NOTICE_CODES);
|
|
9
9
|
function audienceRow(table, code) {
|
|
10
10
|
return Object.hasOwn(table, code) ? table[code] : undefined;
|
|
11
11
|
}
|
|
12
|
+
const LEGACY_NOTICE_AUDIENCE = Object.freeze({ 'context.image_removed': 'user', 'session.records_skipped': 'user' });
|
|
12
13
|
export function engineNoticeInCatalog(code) {
|
|
13
|
-
return typeof code === 'string' && CATALOG.has(code);
|
|
14
|
+
return typeof code === 'string' && (CATALOG.has(code) || Object.hasOwn(LEGACY_NOTICE_AUDIENCE, code));
|
|
14
15
|
}
|
|
15
16
|
export const ENGINE_NOTICE_AUDIENCE = CORE_NOTICE_AUDIENCE;
|
|
16
17
|
export function noticeAudienceOf(code) {
|
|
17
18
|
if (typeof code !== 'string')
|
|
18
19
|
return 'operator';
|
|
19
|
-
return audienceRow(ENGINE_NOTICE_AUDIENCE, code) ?? 'operator';
|
|
20
|
+
return audienceRow(ENGINE_NOTICE_AUDIENCE, code) ?? audienceRow(LEGACY_NOTICE_AUDIENCE, code) ?? 'operator';
|
|
20
21
|
}
|
|
21
22
|
export const MCP_INJECTION_DROP_REASONS = CORE_MCP_INJECTION_DROP_REASONS;
|
|
22
23
|
const DROP_REASONS = new Set(MCP_INJECTION_DROP_REASONS);
|
|
@@ -536,6 +537,15 @@ function optionalOwnSeat(o, key) {
|
|
|
536
537
|
return undefined;
|
|
537
538
|
}
|
|
538
539
|
}
|
|
540
|
+
const UNREADABLE = Symbol('unreadable');
|
|
541
|
+
function ownSeatOrUnreadable(o, key) {
|
|
542
|
+
try {
|
|
543
|
+
return ownSeat(o, key);
|
|
544
|
+
}
|
|
545
|
+
catch {
|
|
546
|
+
return UNREADABLE;
|
|
547
|
+
}
|
|
548
|
+
}
|
|
539
549
|
function readToolTurnRepairedOf(notice) {
|
|
540
550
|
if (typeof notice !== 'object' || notice === null || Array.isArray(notice))
|
|
541
551
|
return undefined;
|
|
@@ -716,7 +726,10 @@ function readUserInputUndrainedOf(notice) {
|
|
|
716
726
|
const taskId = nonEmpty(optionalOwnSeat(o, 'taskId'));
|
|
717
727
|
const sessionId = nonEmpty(optionalOwnSeat(o, 'sessionId'));
|
|
718
728
|
const runId = nonEmpty(optionalOwnSeat(o, 'runId'));
|
|
719
|
-
const
|
|
729
|
+
const childSeat = ownSeatOrUnreadable(o, 'childSessionId');
|
|
730
|
+
const childSessionId = nonEmpty(childSeat);
|
|
731
|
+
const childSeatProven = childSeat === undefined || childSessionId !== undefined;
|
|
732
|
+
const inputIds = childSeatProven ? exactInputIdList(optionalOwnSeat(o, 'inputIds'), count) : undefined;
|
|
720
733
|
return {
|
|
721
734
|
kind,
|
|
722
735
|
count,
|
|
@@ -725,8 +738,96 @@ function readUserInputUndrainedOf(notice) {
|
|
|
725
738
|
...(sessionId !== undefined ? { sessionId } : {}),
|
|
726
739
|
...(runId !== undefined ? { runId } : {}),
|
|
727
740
|
...(childSessionId !== undefined ? { childSessionId } : {}),
|
|
741
|
+
...(inputIds !== undefined ? { inputIds } : {}),
|
|
728
742
|
};
|
|
729
743
|
}
|
|
744
|
+
function exactInputIdList(v, count) {
|
|
745
|
+
try {
|
|
746
|
+
if (!Array.isArray(v) || ownDataField(v, 'length') !== count)
|
|
747
|
+
return undefined;
|
|
748
|
+
const out = [];
|
|
749
|
+
const seen = new Set();
|
|
750
|
+
for (let i = 0; i < count; i++) {
|
|
751
|
+
const d = Object.getOwnPropertyDescriptor(v, i);
|
|
752
|
+
const id = d !== undefined && Object.hasOwn(d, 'value') ? d.value : undefined;
|
|
753
|
+
if (typeof id !== 'string' || id.length === 0 || seen.has(id))
|
|
754
|
+
return undefined;
|
|
755
|
+
seen.add(id);
|
|
756
|
+
out.push(id);
|
|
757
|
+
}
|
|
758
|
+
return Object.freeze(out);
|
|
759
|
+
}
|
|
760
|
+
catch {
|
|
761
|
+
return undefined;
|
|
762
|
+
}
|
|
763
|
+
}
|
|
764
|
+
function strictSeat(o, key) {
|
|
765
|
+
try {
|
|
766
|
+
return ownDataField(o, key);
|
|
767
|
+
}
|
|
768
|
+
catch {
|
|
769
|
+
return UNREADABLE;
|
|
770
|
+
}
|
|
771
|
+
}
|
|
772
|
+
function ledgerIdSet(ledger, key) {
|
|
773
|
+
const list = strictSeat(ledger, key);
|
|
774
|
+
if (list === undefined)
|
|
775
|
+
return new Set();
|
|
776
|
+
try {
|
|
777
|
+
if (!Array.isArray(list))
|
|
778
|
+
return UNREADABLE;
|
|
779
|
+
const out = new Set();
|
|
780
|
+
for (const k of Object.getOwnPropertyNames(list)) {
|
|
781
|
+
if (k === 'length' || String(Number(k) >>> 0) !== k || Number(k) === 4294967295)
|
|
782
|
+
continue;
|
|
783
|
+
const id = strictSeat(list, k);
|
|
784
|
+
if (id === UNREADABLE)
|
|
785
|
+
return UNREADABLE;
|
|
786
|
+
if (typeof id === 'string' && id.length > 0)
|
|
787
|
+
out.add(id);
|
|
788
|
+
}
|
|
789
|
+
return out;
|
|
790
|
+
}
|
|
791
|
+
catch {
|
|
792
|
+
return UNREADABLE;
|
|
793
|
+
}
|
|
794
|
+
}
|
|
795
|
+
export function undrainedInputsVerdict(facts, ledger) {
|
|
796
|
+
if (facts === null || typeof facts !== 'object')
|
|
797
|
+
return undefined;
|
|
798
|
+
try {
|
|
799
|
+
if (Array.isArray(facts))
|
|
800
|
+
return undefined;
|
|
801
|
+
}
|
|
802
|
+
catch {
|
|
803
|
+
return undefined;
|
|
804
|
+
}
|
|
805
|
+
const count = positiveInt(strictSeat(facts, 'count'));
|
|
806
|
+
if (count === undefined)
|
|
807
|
+
return undefined;
|
|
808
|
+
const nothing = Object.freeze({ redeliver: Object.freeze([]), askUser: Object.freeze([]), unattributed: count });
|
|
809
|
+
if (strictSeat(facts, 'cause') !== 'leg_end' || strictSeat(facts, 'childSessionId') !== undefined)
|
|
810
|
+
return nothing;
|
|
811
|
+
const ids = exactInputIdList(strictSeat(facts, 'inputIds'), count);
|
|
812
|
+
if (ids === undefined)
|
|
813
|
+
return nothing;
|
|
814
|
+
if (ledger !== null && ledger !== undefined && typeof ledger !== 'object')
|
|
815
|
+
return nothing;
|
|
816
|
+
const l = ledger ?? {};
|
|
817
|
+
const handed = ledgerIdSet(l, 'handed');
|
|
818
|
+
const redelivered = ledgerIdSet(l, 'redelivered');
|
|
819
|
+
if (handed === UNREADABLE || redelivered === UNREADABLE)
|
|
820
|
+
return nothing;
|
|
821
|
+
const redeliver = [];
|
|
822
|
+
const askUser = [];
|
|
823
|
+
for (const id of ids) {
|
|
824
|
+
if (redelivered.has(id))
|
|
825
|
+
askUser.push(id);
|
|
826
|
+
else if (handed.has(id))
|
|
827
|
+
redeliver.push(id);
|
|
828
|
+
}
|
|
829
|
+
return Object.freeze({ redeliver: Object.freeze(redeliver), askUser: Object.freeze(askUser), unattributed: count - redeliver.length - askUser.length });
|
|
830
|
+
}
|
|
730
831
|
const messagesPhrase = (n, noun) => `${n} ${noun}${n === 1 ? '' : 's'}`;
|
|
731
832
|
const verbBe = (n) => (n === 1 ? 'was' : 'were');
|
|
732
833
|
const itThem = (n) => (n === 1 ? 'it' : 'them');
|
|
@@ -897,25 +998,37 @@ function readStreamEndIgnoredOf(notice) {
|
|
|
897
998
|
return undefined;
|
|
898
999
|
return { statement, word, frames, sessionId, runId };
|
|
899
1000
|
}
|
|
900
|
-
export function
|
|
901
|
-
return guardedRead(notice,
|
|
1001
|
+
export function readContextMediaRemoved(notice) {
|
|
1002
|
+
return guardedRead(notice, readContextMediaRemovedOf);
|
|
902
1003
|
}
|
|
903
|
-
function
|
|
1004
|
+
function readContextMediaRemovedOf(notice) {
|
|
904
1005
|
if (typeof notice !== 'object' || notice === null || Array.isArray(notice))
|
|
905
1006
|
return undefined;
|
|
906
1007
|
const n = notice;
|
|
907
|
-
|
|
1008
|
+
const code = ownSeat(n, 'code');
|
|
1009
|
+
if (code !== 'context.media_removed' && code !== 'context.image_removed')
|
|
908
1010
|
return undefined;
|
|
909
1011
|
const d = ownSeat(n, 'detail');
|
|
910
1012
|
if (typeof d !== 'object' || d === null || Array.isArray(d))
|
|
911
1013
|
return undefined;
|
|
912
1014
|
const o = d;
|
|
1015
|
+
const count = (v) => typeof v === 'number' && Number.isSafeInteger(v) && v >= 0;
|
|
1016
|
+
if (code === 'context.image_removed') {
|
|
1017
|
+
const legacyImages = ownSeat(o, 'images');
|
|
1018
|
+
const legacySessionId = nonEmpty(ownSeat(o, 'sessionId'));
|
|
1019
|
+
const legacyRunId = nonEmpty(ownSeat(o, 'runId'));
|
|
1020
|
+
if (!count(legacyImages) || legacyImages < 1 || legacySessionId === undefined || legacyRunId === undefined)
|
|
1021
|
+
return undefined;
|
|
1022
|
+
return { reason: 'rejected_by_provider', images: legacyImages, documents: 0, sessionId: legacySessionId, runId: legacyRunId };
|
|
1023
|
+
}
|
|
1024
|
+
const reason = nonEmpty(ownSeat(o, 'reason'));
|
|
913
1025
|
const images = ownSeat(o, 'images');
|
|
1026
|
+
const documents = ownSeat(o, 'documents');
|
|
914
1027
|
const sessionId = nonEmpty(ownSeat(o, 'sessionId'));
|
|
915
1028
|
const runId = nonEmpty(ownSeat(o, 'runId'));
|
|
916
|
-
if (
|
|
1029
|
+
if (reason === undefined || !count(images) || !count(documents) || images + documents < 1 || sessionId === undefined || runId === undefined)
|
|
917
1030
|
return undefined;
|
|
918
|
-
return { images, sessionId, runId };
|
|
1031
|
+
return { reason, images, documents, sessionId, runId };
|
|
919
1032
|
}
|
|
920
1033
|
export function readMcpAuthorizationRequired(notice) {
|
|
921
1034
|
return guardedRead(notice, readMcpAuthorizationRequiredOf);
|
|
@@ -939,6 +1052,47 @@ function readMcpAuthorizationRequiredOf(notice) {
|
|
|
939
1052
|
const authorizeUrl = nonEmpty(optionalOwnSeat(o, 'authorizeUrl'));
|
|
940
1053
|
return { server, reason, ...(authorizeUrl !== undefined ? { authorizeUrl } : {}), sessionId, runId };
|
|
941
1054
|
}
|
|
1055
|
+
export function readSessionLineageRerooted(notice) {
|
|
1056
|
+
return guardedRead(notice, readSessionLineageRerootedOf);
|
|
1057
|
+
}
|
|
1058
|
+
function readSessionLineageRerootedOf(notice) {
|
|
1059
|
+
if (typeof notice !== 'object' || notice === null || Array.isArray(notice))
|
|
1060
|
+
return undefined;
|
|
1061
|
+
const n = notice;
|
|
1062
|
+
if (ownSeat(n, 'code') !== 'session.lineage_rerooted')
|
|
1063
|
+
return undefined;
|
|
1064
|
+
const d = ownSeat(n, 'detail');
|
|
1065
|
+
if (typeof d !== 'object' || d === null || Array.isArray(d))
|
|
1066
|
+
return undefined;
|
|
1067
|
+
const o = d;
|
|
1068
|
+
const brk = ownSeat(o, 'break');
|
|
1069
|
+
if (brk !== true && brk !== false)
|
|
1070
|
+
return undefined;
|
|
1071
|
+
const sessionId = nonEmpty(ownSeat(o, 'sessionId'));
|
|
1072
|
+
const runId = nonEmpty(ownSeat(o, 'runId'));
|
|
1073
|
+
if (sessionId === undefined || runId === undefined)
|
|
1074
|
+
return undefined;
|
|
1075
|
+
const leafRaw = ownSeat(o, 'leaf');
|
|
1076
|
+
const common = {
|
|
1077
|
+
recordsDropped: countReading(optionalOwnSeat(o, 'recordsDropped')),
|
|
1078
|
+
recordsTotal: countReading(optionalOwnSeat(o, 'recordsTotal')),
|
|
1079
|
+
entriesOnPath: countReading(optionalOwnSeat(o, 'entriesOnPath')),
|
|
1080
|
+
sessionId,
|
|
1081
|
+
runId,
|
|
1082
|
+
};
|
|
1083
|
+
if (brk === false) {
|
|
1084
|
+
const leaf = leafRaw === null ? null : nonEmpty(leafRaw);
|
|
1085
|
+
if (leaf === undefined)
|
|
1086
|
+
return undefined;
|
|
1087
|
+
return { break: false, leaf, ...common };
|
|
1088
|
+
}
|
|
1089
|
+
const leaf = nonEmpty(leafRaw);
|
|
1090
|
+
const missingParentId = nonEmpty(ownSeat(o, 'missingParentId'));
|
|
1091
|
+
const rootedAt = nonEmpty(ownSeat(o, 'rootedAt'));
|
|
1092
|
+
if (leaf === undefined || missingParentId === undefined || rootedAt === undefined)
|
|
1093
|
+
return undefined;
|
|
1094
|
+
return { break: true, leaf, missingParentId, rootedAt, entriesCut: countReading(optionalOwnSeat(o, 'entriesCut')), ...common };
|
|
1095
|
+
}
|
|
942
1096
|
export const ENGINE_NOTICE_FACT_READERS = Object.freeze({
|
|
943
1097
|
'mcp.injection_dropped': readMcpInjectionDrop,
|
|
944
1098
|
'delegation.ask_unresolvable': readAskUnresolvable,
|
|
@@ -963,8 +1117,10 @@ export const ENGINE_NOTICE_FACT_READERS = Object.freeze({
|
|
|
963
1117
|
'task.turn_interrupted': readTurnInterrupted,
|
|
964
1118
|
'route.finish_reason_unknown': readFinishReasonUnknown,
|
|
965
1119
|
'route.stream_end_ignored': readStreamEndIgnored,
|
|
966
|
-
'context.image_removed': readContextImageRemoved,
|
|
967
1120
|
'mcp.authorization_required': readMcpAuthorizationRequired,
|
|
1121
|
+
'context.media_removed': readContextMediaRemoved,
|
|
1122
|
+
'context.image_removed': readContextMediaRemoved,
|
|
1123
|
+
'session.lineage_rerooted': readSessionLineageRerooted,
|
|
968
1124
|
});
|
|
969
1125
|
const _factReaderTablePin = true;
|
|
970
1126
|
void _factReaderTablePin;
|
package/dist/engineRowRef.js
CHANGED
|
@@ -74,7 +74,7 @@ export function mintEngineRowRef(eventId, bound) {
|
|
|
74
74
|
export function terminalRunIdOf(ev) {
|
|
75
75
|
if (ev.type !== 'done')
|
|
76
76
|
return undefined;
|
|
77
|
-
const v =
|
|
77
|
+
const v = doneResultView(ev.result).body?.runId;
|
|
78
78
|
return typeof v === 'string' && v.length > 0 ? v : undefined;
|
|
79
79
|
}
|
|
80
80
|
export const TRANSCRIPT_ROW_SIDECAR_KEYS = Object.freeze([
|
|
@@ -4,7 +4,8 @@ import { resumeRefusalContent, resumeContextUnavailableContent, requireExistingS
|
|
|
4
4
|
import { resumeReopenContent } from './hitl/suspendedReopen.js';
|
|
5
5
|
import { idempotencyPayloadMismatchContent } from './engineErrorCodes.js';
|
|
6
6
|
import { inheritEnvRefusalContent } from './inheritEnvWire.js';
|
|
7
|
-
import {
|
|
7
|
+
import { projectSeedRefusalContent } from './projectSeed.js';
|
|
8
|
+
import { usageWindowExhaustedContent, fleetLeaseUnavailableContent, settingsPermissionBucketRefusalContent, fieldLimitRefusalContent, autonomyLaneRefusalContent, sessionArchiveStampedContent, unsupportedRuleRefusalContent, admissionWallRefusalContent, hostPostureRefusalContent, toolDeclarationRefusalContent, } from './wireRefusalCopy.js';
|
|
8
9
|
const ROLE_BY_READER = new Map([
|
|
9
10
|
[corruptSessionContent, 'replacement'],
|
|
10
11
|
[corruptStoredRowContent, 'replacement'],
|
|
@@ -18,8 +19,10 @@ const ROLE_BY_READER = new Map([
|
|
|
18
19
|
[settingsPermissionBucketRefusalContent, 'replacement'],
|
|
19
20
|
[fieldLimitRefusalContent, 'replacement'],
|
|
20
21
|
[autonomyLaneRefusalContent, 'replacement'],
|
|
22
|
+
[sessionArchiveStampedContent, 'replacement'],
|
|
21
23
|
[idempotencyPayloadMismatchContent, 'replacement'],
|
|
22
24
|
[unsupportedRuleRefusalContent, 'replacement'],
|
|
25
|
+
[projectSeedRefusalContent, 'replacement'],
|
|
23
26
|
[admissionWallRefusalContent, 'supplement'],
|
|
24
27
|
[hostPostureRefusalContent, 'supplement'],
|
|
25
28
|
[toolDeclarationRefusalContent, 'supplement'],
|
package/dist/eventLeg.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { AgentEvent } from '@sema-agent/sdk';
|
|
|
2
2
|
import type { EngineBoundRun } from './engineRowRef.js';
|
|
3
3
|
import { type AskGateWireDeps } from './hitl/askGateWire.js';
|
|
4
4
|
import { type ActiveRunBusySignal } from './adapter/runStream.js';
|
|
5
|
-
import type { ApprovalRequestChromeEvent, ApprovalRevokeChromeEvent } from './seam.js';
|
|
5
|
+
import type { ApprovalCompleteChromeEvent, ApprovalRequestChromeEvent, ApprovalRevokeChromeEvent } from './seam.js';
|
|
6
6
|
export declare const EVENT_LEG_KINDS: readonly ["live", "durable", "continuation"];
|
|
7
7
|
export type EventLegKind = (typeof EVENT_LEG_KINDS)[number];
|
|
8
8
|
export type EventLegStage = 'bindRun' | 'stampOwner' | 'hitlFrames' | 'askBridge' | 'idleTriage';
|
|
@@ -71,7 +71,7 @@ export interface ApprovalFrameContext {
|
|
|
71
71
|
readonly receivedAtMs: number;
|
|
72
72
|
readonly streamEnded: AbortSignal;
|
|
73
73
|
}
|
|
74
|
-
export declare function approvalFrameContextOf(arm: ApprovalRequestChromeEvent | ApprovalRevokeChromeEvent): ApprovalFrameContext | undefined;
|
|
74
|
+
export declare function approvalFrameContextOf(arm: ApprovalRequestChromeEvent | ApprovalCompleteChromeEvent | ApprovalRevokeChromeEvent): ApprovalFrameContext | undefined;
|
|
75
75
|
export interface EventLegPorts {
|
|
76
76
|
readonly run?: EventLegRunPorts;
|
|
77
77
|
readonly owner?: EventLegOwnerPorts;
|
package/dist/eventLeg.js
CHANGED
|
@@ -3,6 +3,7 @@ import { bridgeAskUserQuestionGates } from './hitl/askGateWire.js';
|
|
|
3
3
|
import { diagnoseSseIdleTear } from './sseIdleTriage.js';
|
|
4
4
|
import { recordSubagentOwnerFromProgress } from './subagentContentStore.js';
|
|
5
5
|
import { activeRunBusySignal } from './adapter/runStream.js';
|
|
6
|
+
import { frameProvesDelivery } from './promptDelivery.js';
|
|
6
7
|
import { faultText, invokeHostCallbackIsolated } from './hostCallbackGuard.js';
|
|
7
8
|
import { hostLog } from './host.js';
|
|
8
9
|
import { guardedRead, readOwnDataNonEmptyString, readOwnDataValue } from './ownKey.js';
|
|
@@ -180,7 +181,7 @@ export function composeEventLeg(source, leg, ports) {
|
|
|
180
181
|
if (taskId === undefined && streamKind === 'live')
|
|
181
182
|
taskId = readHeaderRunId();
|
|
182
183
|
const refusal = streamKind === 'live' && !runEvidence && inDomain('bindRun', ev.type) ? refusalOf(ev, taskId) : undefined;
|
|
183
|
-
if (
|
|
184
|
+
if (frameProvesDelivery(ev))
|
|
184
185
|
runEvidence = true;
|
|
185
186
|
if (refusal !== undefined) {
|
|
186
187
|
if (runPorts !== undefined && typeof runPorts.onRefused === 'function' && isCurrentNow())
|
|
@@ -2,6 +2,7 @@ import { capForDisplay } from './fleetTaskDesc.js';
|
|
|
2
2
|
import { engineWireTargetBaseUrl } from './engineWireTarget.js';
|
|
3
3
|
import { createEngineCapReader, unreadableReadingDetail } from './engineCapReader.js';
|
|
4
4
|
import { ownDataField } from './ownKey.js';
|
|
5
|
+
import { executionLaneWordIsNone } from './executionLaneWords.js';
|
|
5
6
|
export function projectExecutionLaneCapability(caps) {
|
|
6
7
|
try {
|
|
7
8
|
if (caps === null || typeof caps !== 'object')
|
|
@@ -100,8 +101,8 @@ export function executionLaneDoctorDetail(reading) {
|
|
|
100
101
|
if (reading.view.toolsOnThisHost) {
|
|
101
102
|
return `execution lane ${lane} — tools run on the engine host (same filesystem), so skills that have a directory of their own can carry a baseDir`;
|
|
102
103
|
}
|
|
103
|
-
if (reading.view.provider
|
|
104
|
-
return
|
|
104
|
+
if (executionLaneWordIsNone(reading.view.provider)) {
|
|
105
|
+
return `no execution lane on this deployment (${lane}) — the engine has no machine of its own for running tools here, so its built-in file and shell tools are not mounted and skill baseDir is never sent; whether a given run had tools is answered by its tool roster`;
|
|
105
106
|
}
|
|
106
107
|
return `execution lane ${lane} — tools run on a different machine than the engine, so skill baseDir is never sent on this deployment`;
|
|
107
108
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function executionLaneWordIsNone(provider: string): boolean;
|
|
@@ -3,7 +3,8 @@ import { rowIdTail } from '../workflow.js';
|
|
|
3
3
|
import { cycleSeqValue } from '../cycleOrder.js';
|
|
4
4
|
import { frozenSet } from '../frozenSet.js';
|
|
5
5
|
import { guardedRead, readOwnDataValue } from '../ownKey.js';
|
|
6
|
-
import { CORE_RESERVED_AGENT_NAMES } from '../generated/engineFactTables.js';
|
|
6
|
+
import { CORE_RESERVED_AGENT_NAMES, CORE_WORKFLOW_AGENT_PARKED_ERROR_CODE } from '../generated/engineFactTables.js';
|
|
7
|
+
import { runParkedOf as coreRunParkedOf } from '../coreValuePorts.js';
|
|
7
8
|
export function coerceTaskStatus(s) {
|
|
8
9
|
if (s === 'parked')
|
|
9
10
|
return 'awaiting approval';
|
|
@@ -31,9 +32,9 @@ export function coerceWorkflowStatus(s) {
|
|
|
31
32
|
}
|
|
32
33
|
export function workflowRunDisplayStatusOf(run) {
|
|
33
34
|
const status = runField(run, 'status');
|
|
34
|
-
if (
|
|
35
|
+
if (parkedWindowOf(run, status))
|
|
35
36
|
return 'awaiting approval';
|
|
36
|
-
if (status === 'failed' && runField(run, 'errorCode') ===
|
|
37
|
+
if (status === 'failed' && runField(run, 'errorCode') === CORE_WORKFLOW_AGENT_PARKED_ERROR_CODE)
|
|
37
38
|
return 'awaiting approval';
|
|
38
39
|
switch (status) {
|
|
39
40
|
case 'completed':
|
|
@@ -52,7 +53,27 @@ export function workflowRunDisplayStatusOf(run) {
|
|
|
52
53
|
return 'idle';
|
|
53
54
|
}
|
|
54
55
|
}
|
|
55
|
-
|
|
56
|
+
function parkedWindowOf(run, status) {
|
|
57
|
+
if (runField(run, 'parked') === true)
|
|
58
|
+
return true;
|
|
59
|
+
if (guardedRead(() => (typeof run === 'object' && run !== null ? !Object.hasOwn(run, 'parked') : undefined)) !== true)
|
|
60
|
+
return false;
|
|
61
|
+
const agents = runField(run, 'agents');
|
|
62
|
+
if (typeof status !== 'string' || guardedRead(() => Array.isArray(agents)) !== true)
|
|
63
|
+
return false;
|
|
64
|
+
return guardedRead(() => {
|
|
65
|
+
const rows = [];
|
|
66
|
+
const list = agents;
|
|
67
|
+
for (const k of Object.keys(list)) {
|
|
68
|
+
if (!/^(?:0|[1-9]\d*)$/.test(k))
|
|
69
|
+
continue;
|
|
70
|
+
const a = readOwnDataValue(list, k);
|
|
71
|
+
const st = typeof a === 'object' && a !== null ? runField(a, 'status') : undefined;
|
|
72
|
+
rows.push({ status: typeof st === 'string' ? st : '' });
|
|
73
|
+
}
|
|
74
|
+
return coreRunParkedOf({ status, agents: rows });
|
|
75
|
+
}) === true;
|
|
76
|
+
}
|
|
56
77
|
function runField(run, key) {
|
|
57
78
|
return guardedRead(() => typeof run === 'object' && run !== null && !Array.isArray(run) ? readOwnDataValue(run, key) : undefined);
|
|
58
79
|
}
|
|
@@ -362,7 +383,7 @@ export const FLEET_WORKFLOW_ROW_KEYS_NOT_PROJECTED = {
|
|
|
362
383
|
errorCode: {
|
|
363
384
|
kind: 'by-design',
|
|
364
385
|
owner: 'client-core 0.103.0 提货',
|
|
365
|
-
reason: '折进 status
|
|
386
|
+
reason: '折进 status:只有引擎的停驻终态码(值取自引擎包根导出,经生成表读)改显示状态(awaiting approval,停驻不是失败),读法唯一处 workflowRunDisplayStatusOf;' +
|
|
366
387
|
'0.95.0 CC-388 把它从视图退出时服务端还不铸,现在铸了也不回到视图 —— run 级别的其它码走 workflow 读面。',
|
|
367
388
|
},
|
|
368
389
|
parked: {
|
|
@@ -48,7 +48,7 @@ export declare const CORE_TASK_NOTIFICATION_TERMINAL_STATUSES: readonly ["comple
|
|
|
48
48
|
export declare const CORE_RESUME_STARTUP_CAUSES: readonly ["environment", "session_gone", "transcript_corrupt", "tool_unavailable", "configuration", "decision_rejected"];
|
|
49
49
|
export declare const CORE_BUILTIN_SUBAGENT_TYPES: readonly ["Explore", "Plan", "fork", "general-purpose"];
|
|
50
50
|
export declare const CORE_RULE_OFFERS_ABSENCES: readonly ["mandated", "allow_outranked", "ask_rule_matched", "lane_cannot_speak"];
|
|
51
|
-
export declare const CORE_TOOL_APPROVAL_CARDS: readonly ["file-edit", "file-write", "notebook-edit", "shell", "fetch", "skill", "workflow", "plan", "question", "generic"];
|
|
51
|
+
export declare const CORE_TOOL_APPROVAL_CARDS: readonly ["file-edit", "file-write", "notebook-edit", "shell", "fetch", "skill", "workflow", "plan", "question", "generic", "computer-access", "computer-control"];
|
|
52
52
|
export declare const CORE_MCP_FAILURE_KINDS: readonly ["connect_refused", "connection_failed", "connection_closed", "unauthorized", "http_status", "not_mcp_response", "spawn_failed", "timeout", "protocol", "invalid_config", "credential_unavailable", "host_refused", "unknown"];
|
|
53
53
|
export declare const CORE_MCP_AUTHORIZATION_REASONS: readonly ["rejected", "scope", "none"];
|
|
54
54
|
export declare const CORE_PERSISTED_RULE_MATCHES: readonly ["exact", "prefix", "wildcard", "pattern", "subpath", "path", "name", "name_prefix", "host", "subdomain", "tool"];
|
|
@@ -72,3 +72,4 @@ export declare const CORE_USER_ATTACHMENT_SEAT: CoreUserAttachmentSeat;
|
|
|
72
72
|
export declare const CORE_USER_ATTACHMENTS_MAX: number;
|
|
73
73
|
export declare const CORE_USER_ATTACHMENT_LABEL_MAX: number;
|
|
74
74
|
export declare const CORE_PRESENT_PLAN_TOOL_NAME: "ExitPlanMode";
|
|
75
|
+
export declare const CORE_WORKFLOW_AGENT_PARKED_ERROR_CODE: "workflow.agent_parked";
|
|
@@ -76,7 +76,6 @@ export const CORE_ENGINE_CARD_TYPES = Object.freeze([
|
|
|
76
76
|
"repo-map",
|
|
77
77
|
"artifact",
|
|
78
78
|
"worktree",
|
|
79
|
-
"task-output",
|
|
80
79
|
"task-stop",
|
|
81
80
|
"monitor-start",
|
|
82
81
|
"send-message",
|
|
@@ -366,6 +365,8 @@ export const CORE_TOOL_APPROVAL_CARDS = Object.freeze([
|
|
|
366
365
|
"plan",
|
|
367
366
|
"question",
|
|
368
367
|
"generic",
|
|
368
|
+
"computer-access",
|
|
369
|
+
"computer-control",
|
|
369
370
|
]);
|
|
370
371
|
export const CORE_MCP_FAILURE_KINDS = Object.freeze([
|
|
371
372
|
"connect_refused",
|
|
@@ -464,3 +465,4 @@ export const CORE_USER_ATTACHMENT_SEAT = Object.freeze({
|
|
|
464
465
|
export const CORE_USER_ATTACHMENTS_MAX = 20;
|
|
465
466
|
export const CORE_USER_ATTACHMENT_LABEL_MAX = 4096;
|
|
466
467
|
export const CORE_PRESENT_PLAN_TOOL_NAME = "ExitPlanMode";
|
|
468
|
+
export const CORE_WORKFLOW_AGENT_PARKED_ERROR_CODE = "workflow.agent_parked";
|
|
@@ -18,6 +18,7 @@ export const CORE_ENGINE_NOTICE_CODES = Object.freeze([
|
|
|
18
18
|
"config.path_view_unresolved",
|
|
19
19
|
"config.execution_env_capability_invalid",
|
|
20
20
|
"config.read_deny_floor_unkept",
|
|
21
|
+
"config.read_floor_confinement_unavailable",
|
|
21
22
|
"config.tool_card_undeclared",
|
|
22
23
|
"config.tool_face_undeclared",
|
|
23
24
|
"config.tool_face_invalid",
|
|
@@ -50,6 +51,7 @@ export const CORE_ENGINE_NOTICE_CODES = Object.freeze([
|
|
|
50
51
|
"checkpoint.execution_outcome_unrecorded",
|
|
51
52
|
"delegation.transcript_integrity",
|
|
52
53
|
"delegation.ask_unresolvable",
|
|
54
|
+
"delegation.resume_lane_missing",
|
|
53
55
|
"mcp.injection_dropped",
|
|
54
56
|
"mcp.revocation_probe_failed",
|
|
55
57
|
"mcp.server_redialed",
|
|
@@ -59,6 +61,8 @@ export const CORE_ENGINE_NOTICE_CODES = Object.freeze([
|
|
|
59
61
|
"workflow.agent_option_ignored",
|
|
60
62
|
"memory.session_polluted",
|
|
61
63
|
"memory.harvest_quarantined",
|
|
64
|
+
"memory.harvest_refused",
|
|
65
|
+
"memory.harvest_conflict",
|
|
62
66
|
"memory.delegation_static_mark_waived",
|
|
63
67
|
"memory.content_class_declared",
|
|
64
68
|
"memory.hold_opened",
|
|
@@ -86,7 +90,8 @@ export const CORE_ENGINE_NOTICE_CODES = Object.freeze([
|
|
|
86
90
|
"model.capability_downgraded",
|
|
87
91
|
"model.role_defaulted",
|
|
88
92
|
"context.tool_turn_repaired",
|
|
89
|
-
"context.
|
|
93
|
+
"context.media_removed",
|
|
94
|
+
"context.tool_schema_removed",
|
|
90
95
|
"task.user_steer_undrained",
|
|
91
96
|
"task.user_followup_undrained",
|
|
92
97
|
"steering.parked_input_blocked",
|
|
@@ -104,8 +109,10 @@ export const CORE_ENGINE_NOTICE_CODES = Object.freeze([
|
|
|
104
109
|
"tool_result.offload_put_failed",
|
|
105
110
|
"tool_result.media_refused",
|
|
106
111
|
"config.image_processor_unavailable",
|
|
112
|
+
"fs.staging_file_left",
|
|
113
|
+
"fs.staging_file_swept",
|
|
114
|
+
"session.lineage_rerooted",
|
|
107
115
|
"instructions.source_changed",
|
|
108
|
-
"session.records_skipped",
|
|
109
116
|
"memory.layer_locked_legacy",
|
|
110
117
|
"server.model_unreachable",
|
|
111
118
|
"permission.entry_mode_clamped",
|
|
@@ -130,6 +137,7 @@ export const CORE_NOTICE_AUDIENCE = Object.freeze({
|
|
|
130
137
|
"config.path_view_unresolved": "operator",
|
|
131
138
|
"config.execution_env_capability_invalid": "operator",
|
|
132
139
|
"config.read_deny_floor_unkept": "operator",
|
|
140
|
+
"config.read_floor_confinement_unavailable": "operator",
|
|
133
141
|
"config.tool_card_undeclared": "operator",
|
|
134
142
|
"config.tool_face_undeclared": "operator",
|
|
135
143
|
"config.tool_face_invalid": "operator",
|
|
@@ -155,13 +163,14 @@ export const CORE_NOTICE_AUDIENCE = Object.freeze({
|
|
|
155
163
|
"peer.idle_subscription": "user",
|
|
156
164
|
"classifier.denial_limit": "user",
|
|
157
165
|
"classifier.fallback": "operator",
|
|
158
|
-
"classifier.seat_rate_limited": "
|
|
166
|
+
"classifier.seat_rate_limited": "user",
|
|
159
167
|
"classifier.role_defaulted": "operator",
|
|
160
168
|
"classifier.contract_broken": "operator",
|
|
161
169
|
"classifier.unavailable": "user",
|
|
162
170
|
"checkpoint.execution_outcome_unrecorded": "operator",
|
|
163
171
|
"delegation.transcript_integrity": "operator",
|
|
164
172
|
"delegation.ask_unresolvable": "user",
|
|
173
|
+
"delegation.resume_lane_missing": "operator",
|
|
165
174
|
"mcp.injection_dropped": "user",
|
|
166
175
|
"mcp.revocation_probe_failed": "operator",
|
|
167
176
|
"mcp.server_redialed": "operator",
|
|
@@ -171,6 +180,8 @@ export const CORE_NOTICE_AUDIENCE = Object.freeze({
|
|
|
171
180
|
"workflow.agent_option_ignored": "operator",
|
|
172
181
|
"memory.session_polluted": "user",
|
|
173
182
|
"memory.harvest_quarantined": "user",
|
|
183
|
+
"memory.harvest_refused": "user",
|
|
184
|
+
"memory.harvest_conflict": "user",
|
|
174
185
|
"memory.delegation_static_mark_waived": "user",
|
|
175
186
|
"memory.content_class_declared": "operator",
|
|
176
187
|
"memory.hold_opened": "user",
|
|
@@ -198,7 +209,8 @@ export const CORE_NOTICE_AUDIENCE = Object.freeze({
|
|
|
198
209
|
"model.capability_downgraded": "user",
|
|
199
210
|
"model.role_defaulted": "operator",
|
|
200
211
|
"context.tool_turn_repaired": "operator",
|
|
201
|
-
"context.
|
|
212
|
+
"context.media_removed": "user",
|
|
213
|
+
"context.tool_schema_removed": "user",
|
|
202
214
|
"task.user_steer_undrained": "user",
|
|
203
215
|
"task.user_followup_undrained": "user",
|
|
204
216
|
"steering.parked_input_blocked": "user",
|
|
@@ -216,8 +228,10 @@ export const CORE_NOTICE_AUDIENCE = Object.freeze({
|
|
|
216
228
|
"tool_result.offload_put_failed": "operator",
|
|
217
229
|
"tool_result.media_refused": "operator",
|
|
218
230
|
"config.image_processor_unavailable": "operator",
|
|
231
|
+
"fs.staging_file_left": "operator",
|
|
232
|
+
"fs.staging_file_swept": "operator",
|
|
233
|
+
"session.lineage_rerooted": "user",
|
|
219
234
|
"instructions.source_changed": "user",
|
|
220
|
-
"session.records_skipped": "user",
|
|
221
235
|
"memory.layer_locked_legacy": "operator",
|
|
222
236
|
"server.model_unreachable": "user",
|
|
223
237
|
"permission.entry_mode_clamped": "user",
|
|
@@ -248,6 +262,7 @@ export const CORE_NOTICE_MINTER = Object.freeze({
|
|
|
248
262
|
"config.path_view_unresolved": "engine",
|
|
249
263
|
"config.execution_env_capability_invalid": "engine",
|
|
250
264
|
"config.read_deny_floor_unkept": "engine",
|
|
265
|
+
"config.read_floor_confinement_unavailable": "engine",
|
|
251
266
|
"config.tool_card_undeclared": "engine",
|
|
252
267
|
"config.tool_face_undeclared": "engine",
|
|
253
268
|
"config.tool_face_invalid": "engine",
|
|
@@ -280,6 +295,7 @@ export const CORE_NOTICE_MINTER = Object.freeze({
|
|
|
280
295
|
"checkpoint.execution_outcome_unrecorded": "engine",
|
|
281
296
|
"delegation.transcript_integrity": "engine",
|
|
282
297
|
"delegation.ask_unresolvable": "engine",
|
|
298
|
+
"delegation.resume_lane_missing": "engine",
|
|
283
299
|
"mcp.injection_dropped": "engine",
|
|
284
300
|
"mcp.revocation_probe_failed": "engine",
|
|
285
301
|
"mcp.server_redialed": "engine",
|
|
@@ -289,6 +305,8 @@ export const CORE_NOTICE_MINTER = Object.freeze({
|
|
|
289
305
|
"workflow.agent_option_ignored": "engine",
|
|
290
306
|
"memory.session_polluted": "engine",
|
|
291
307
|
"memory.harvest_quarantined": "engine",
|
|
308
|
+
"memory.harvest_refused": "engine",
|
|
309
|
+
"memory.harvest_conflict": "engine",
|
|
292
310
|
"memory.delegation_static_mark_waived": "engine",
|
|
293
311
|
"memory.content_class_declared": "engine",
|
|
294
312
|
"memory.hold_opened": "engine",
|
|
@@ -316,7 +334,8 @@ export const CORE_NOTICE_MINTER = Object.freeze({
|
|
|
316
334
|
"model.capability_downgraded": "engine",
|
|
317
335
|
"model.role_defaulted": "engine",
|
|
318
336
|
"context.tool_turn_repaired": "engine",
|
|
319
|
-
"context.
|
|
337
|
+
"context.media_removed": "engine",
|
|
338
|
+
"context.tool_schema_removed": "engine",
|
|
320
339
|
"task.user_steer_undrained": "engine",
|
|
321
340
|
"task.user_followup_undrained": "engine",
|
|
322
341
|
"steering.parked_input_blocked": "engine",
|
|
@@ -334,8 +353,10 @@ export const CORE_NOTICE_MINTER = Object.freeze({
|
|
|
334
353
|
"tool_result.offload_put_failed": "engine",
|
|
335
354
|
"tool_result.media_refused": "engine",
|
|
336
355
|
"config.image_processor_unavailable": "engine",
|
|
356
|
+
"fs.staging_file_left": "engine",
|
|
357
|
+
"fs.staging_file_swept": "engine",
|
|
358
|
+
"session.lineage_rerooted": "engine",
|
|
337
359
|
"instructions.source_changed": "server",
|
|
338
|
-
"session.records_skipped": "server",
|
|
339
360
|
"memory.layer_locked_legacy": "server",
|
|
340
361
|
"server.model_unreachable": "server",
|
|
341
362
|
"permission.entry_mode_clamped": "server",
|
|
@@ -7,3 +7,6 @@ export declare const SDK_APPROVAL_DECIDE_GATE_KINDS: readonly ["human", "irrever
|
|
|
7
7
|
export declare const SDK_PLAN_REVIEW_GATE_KINDS: readonly ["plan_review"];
|
|
8
8
|
export declare const SDK_PERMISSION_MODE_ADMISSION_FOLDS: readonly ["entry_floor", "disable_auto_mode"];
|
|
9
9
|
export declare const SDK_PERMISSION_MODE_PERSIST_MISSES: readonly ["claim_released", "context_absent", "store_failed"];
|
|
10
|
+
export declare const SDK_DECIDE_BINDING_KEYS: readonly ["boundCallId", "boundInputHash"];
|
|
11
|
+
export declare const SDK_APPROVAL_QUEUE_KINDS: readonly ["checkpoint", "peer_inbound"];
|
|
12
|
+
export declare const SDK_SESSION_MEMORY_UNOBSERVED_REASONS: readonly ["no_settled_run", "run_result_missing", "run_result_unobserved", "memory_not_mounted", "no_leaf"];
|
|
@@ -48,3 +48,18 @@ export const SDK_PERMISSION_MODE_PERSIST_MISSES = Object.freeze([
|
|
|
48
48
|
"context_absent",
|
|
49
49
|
"store_failed",
|
|
50
50
|
]);
|
|
51
|
+
export const SDK_DECIDE_BINDING_KEYS = Object.freeze([
|
|
52
|
+
"boundCallId",
|
|
53
|
+
"boundInputHash",
|
|
54
|
+
]);
|
|
55
|
+
export const SDK_APPROVAL_QUEUE_KINDS = Object.freeze([
|
|
56
|
+
"checkpoint",
|
|
57
|
+
"peer_inbound",
|
|
58
|
+
]);
|
|
59
|
+
export const SDK_SESSION_MEMORY_UNOBSERVED_REASONS = Object.freeze([
|
|
60
|
+
"no_settled_run",
|
|
61
|
+
"run_result_missing",
|
|
62
|
+
"run_result_unobserved",
|
|
63
|
+
"memory_not_mounted",
|
|
64
|
+
"no_leaf",
|
|
65
|
+
]);
|
|
@@ -51,6 +51,17 @@ export declare const SETTINGS_IS_AT_LEAST: (layer: string, minTrust: string) =>
|
|
|
51
51
|
export declare const SETTINGS_MEMBER_ADMISSION: (category: string, member: string) => object;
|
|
52
52
|
export declare const SETTINGS_SAFETY_MERGE_SPEC: object;
|
|
53
53
|
export declare const SETTINGS_LAYER_ADMISSION: (source: string, workspace: string, category: string, member?: string) => string;
|
|
54
|
+
export declare const SETTINGS_BUILD_LAYER_PARTS_UNREAD_NOTICE: (input: {
|
|
55
|
+
readonly source: string;
|
|
56
|
+
readonly workspace: string;
|
|
57
|
+
readonly file: string;
|
|
58
|
+
readonly parts: readonly string[];
|
|
59
|
+
}) => {
|
|
60
|
+
readonly code: string;
|
|
61
|
+
readonly source: string;
|
|
62
|
+
readonly parts: readonly string[];
|
|
63
|
+
readonly line: string;
|
|
64
|
+
} | undefined;
|
|
54
65
|
export declare const SETTINGS_RESOLVE_ACTIVE_TIERS: (models: {
|
|
55
66
|
readonly tierGroups?: readonly {
|
|
56
67
|
readonly name: string;
|
|
@@ -182,8 +182,9 @@ const SETTINGS_SAFETY_MERGE = SETTINGS_SAFETY_MERGE_CLOSURE(SETTINGS_MIN_TRUST_W
|
|
|
182
182
|
export const SETTINGS_IS_AT_LEAST = SETTINGS_SAFETY_MERGE.isAtLeast;
|
|
183
183
|
export const SETTINGS_MEMBER_ADMISSION = SETTINGS_SAFETY_MERGE.memberAdmission;
|
|
184
184
|
export const SETTINGS_SAFETY_MERGE_SPEC = SETTINGS_SAFETY_MERGE.SAFETY_MERGE_SPEC;
|
|
185
|
-
const SETTINGS_LAYER_SOURCES = SETTINGS_LAYER_SOURCES_CLOSURE(SETTINGS_SAFETY_MERGE_SPEC, SETTINGS_IS_AT_LEAST, SETTINGS_MEMBER_ADMISSION);
|
|
185
|
+
const SETTINGS_LAYER_SOURCES = SETTINGS_LAYER_SOURCES_CLOSURE(SETTINGS_SAFETY_MERGE_SPEC, SETTINGS_IS_AT_LEAST, SETTINGS_MEMBER_ADMISSION, SETTINGS_ECHO_CALLER_TEXT, SETTINGS_STRIP_CONTROL_AND_BIDI);
|
|
186
186
|
export const SETTINGS_LAYER_ADMISSION = SETTINGS_LAYER_SOURCES.layerAdmission;
|
|
187
|
+
export const SETTINGS_BUILD_LAYER_PARTS_UNREAD_NOTICE = SETTINGS_LAYER_SOURCES.buildLayerPartsUnreadNotice;
|
|
187
188
|
const SETTINGS_ACTIVE_TIERS = SETTINGS_ACTIVE_TIERS_CLOSURE();
|
|
188
189
|
export const SETTINGS_RESOLVE_ACTIVE_TIERS = SETTINGS_ACTIVE_TIERS.resolveActiveTiers;
|
|
189
190
|
const SETTINGS_TIER_WORDS = SETTINGS_TIER_WORDS_CLOSURE();
|