@theokit/sdk 4.54.0 → 4.56.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 +159 -0
- package/dist/a2a/index.cjs +13 -4
- package/dist/a2a/index.cjs.map +1 -1
- package/dist/a2a/index.d.cts +1 -1
- package/dist/a2a/index.d.ts +1 -1
- package/dist/a2a/index.js +13 -5
- package/dist/a2a/index.js.map +1 -1
- package/dist/a2a/message-bus.d.cts +33 -4
- package/dist/a2a/message-bus.d.ts +33 -4
- package/dist/{agent-CIUgz7cN.d.cts → agent-D3Xr_-6Z.d.cts} +61 -6
- package/dist/{agent-DSec-E0c.d.ts → agent-DIu6FooJ.d.ts} +61 -6
- package/dist/{agent-VGD5WL4N.js → agent-K3PQBS7D.js} +10 -9
- package/dist/{agent-VGD5WL4N.js.map → agent-K3PQBS7D.js.map} +1 -1
- package/dist/{agent-NOEGF4GI.cjs → agent-PJMBK7HQ.cjs} +11 -10
- package/dist/{agent-NOEGF4GI.cjs.map → agent-PJMBK7HQ.cjs.map} +1 -1
- package/dist/{chunk-SSQZA3DZ.js → chunk-2BDH744Z.js} +3 -3
- package/dist/{chunk-SSQZA3DZ.js.map → chunk-2BDH744Z.js.map} +1 -1
- package/dist/chunk-6HTXPPHK.cjs +18 -0
- package/dist/{chunk-3KGLRRFC.cjs.map → chunk-6HTXPPHK.cjs.map} +1 -1
- package/dist/{chunk-5UOVYM3P.cjs → chunk-6VLKVX7O.cjs} +131 -54
- package/dist/chunk-6VLKVX7O.cjs.map +1 -0
- package/dist/{chunk-5PHVENFV.js → chunk-7FHZ4VQX.js} +3 -55
- package/dist/chunk-7FHZ4VQX.js.map +1 -0
- package/dist/{chunk-Q47R5E2X.cjs → chunk-E3WZ6Y4H.cjs} +7 -59
- package/dist/chunk-E3WZ6Y4H.cjs.map +1 -0
- package/dist/{chunk-TTHBHAJI.cjs → chunk-H5GOSXSC.cjs} +4 -4
- package/dist/{chunk-TTHBHAJI.cjs.map → chunk-H5GOSXSC.cjs.map} +1 -1
- package/dist/{chunk-UNDROG5N.cjs → chunk-HLPSLDGL.cjs} +94 -26
- package/dist/chunk-HLPSLDGL.cjs.map +1 -0
- package/dist/{chunk-TPTZA6NI.js → chunk-KBXWEWKS.js} +70 -29
- package/dist/chunk-KBXWEWKS.js.map +1 -0
- package/dist/chunk-KRD3GQAA.cjs +71 -0
- package/dist/chunk-KRD3GQAA.cjs.map +1 -0
- package/dist/chunk-KVNWIAO4.js +68 -0
- package/dist/chunk-KVNWIAO4.js.map +1 -0
- package/dist/{chunk-UFAO4T7Z.cjs → chunk-LQYQHXIW.cjs} +129 -88
- package/dist/chunk-LQYQHXIW.cjs.map +1 -0
- package/dist/{chunk-AGSBJD2L.js → chunk-M7UHYBEY.js} +3 -3
- package/dist/{chunk-AGSBJD2L.js.map → chunk-M7UHYBEY.js.map} +1 -1
- package/dist/{chunk-VDEWG5TV.js → chunk-MVAPK2BX.js} +77 -9
- package/dist/chunk-MVAPK2BX.js.map +1 -0
- package/dist/{chunk-RM7Y65IG.cjs → chunk-NIRE5CNO.cjs} +10 -3
- package/dist/{chunk-FXEUP75G.js.map → chunk-NIRE5CNO.cjs.map} +1 -1
- package/dist/{chunk-DAPSQZT4.js → chunk-ODTZ7HX3.js} +131 -54
- package/dist/chunk-ODTZ7HX3.js.map +1 -0
- package/dist/{chunk-DUIF54UP.js → chunk-OHBIUXKM.js} +3 -3
- package/dist/{chunk-DUIF54UP.js.map → chunk-OHBIUXKM.js.map} +1 -1
- package/dist/{chunk-FXEUP75G.js → chunk-Q4CMI2LP.js} +9 -2
- package/dist/chunk-Q4CMI2LP.js.map +1 -0
- package/dist/{chunk-5BJV5UPY.cjs → chunk-V2UUGUY4.cjs} +3 -3
- package/dist/{chunk-5BJV5UPY.cjs.map → chunk-V2UUGUY4.cjs.map} +1 -1
- package/dist/{compact-session-K5LXTBPJ.js → compact-session-FUJDVF7B.js} +4 -4
- package/dist/{compact-session-K5LXTBPJ.js.map → compact-session-FUJDVF7B.js.map} +1 -1
- package/dist/{compact-session-YCT6JMBX.cjs → compact-session-LEWF554G.cjs} +12 -12
- package/dist/{compact-session-YCT6JMBX.cjs.map → compact-session-LEWF554G.cjs.map} +1 -1
- package/dist/context/index.cjs +6 -5
- package/dist/context/index.cjs.map +1 -1
- package/dist/context/index.js +3 -2
- package/dist/context/index.js.map +1 -1
- package/dist/{cron-DxxeQ-sK.d.cts → cron-BcWmzWzT.d.cts} +1 -1
- package/dist/{cron-CRwy2JBF.d.ts → cron-De6hzWCF.d.ts} +1 -1
- package/dist/cron.cjs +10 -9
- package/dist/cron.d.cts +2 -2
- package/dist/cron.d.ts +2 -2
- package/dist/cron.js +9 -8
- package/dist/eval.cjs +9 -8
- package/dist/eval.cjs.map +1 -1
- package/dist/eval.js +8 -7
- package/dist/eval.js.map +1 -1
- package/dist/{index-manager-ZMRJ6ZII.js → index-manager-WBIMDVQT.js} +4 -3
- package/dist/{index-manager-ZMRJ6ZII.js.map → index-manager-WBIMDVQT.js.map} +1 -1
- package/dist/{index-manager-NG5YENWO.cjs → index-manager-WC5ZVJWO.cjs} +5 -4
- package/dist/{index-manager-NG5YENWO.cjs.map → index-manager-WC5ZVJWO.cjs.map} +1 -1
- package/dist/index.cjs +47 -46
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +12 -11
- package/dist/index.js.map +1 -1
- package/dist/{inject-session-DDR6X6PC.js → inject-session-BJMJH5BX.js} +3 -3
- package/dist/{inject-session-DDR6X6PC.js.map → inject-session-BJMJH5BX.js.map} +1 -1
- package/dist/{inject-session-XLO3KTBM.cjs → inject-session-WQGGMCQY.cjs} +4 -4
- package/dist/{inject-session-XLO3KTBM.cjs.map → inject-session-WQGGMCQY.cjs.map} +1 -1
- package/dist/internal/llm/prompt-cache-key.d.ts +1 -0
- package/dist/internal/llm/responses.d.ts +67 -1
- package/dist/internal/llm/types.d.ts +15 -0
- package/dist/internal/local-agent/real-local-run-tools.d.ts +17 -6
- package/dist/internal/memory/storage/markdown-store.d.ts +14 -2
- package/dist/internal/memory/storage/memory-file.d.ts +54 -0
- package/dist/internal/memory/types.d.ts +28 -0
- package/dist/models.cjs +9 -9
- package/dist/models.js +1 -1
- package/dist/providers.cjs +4 -4
- package/dist/providers.js +2 -2
- package/dist/sandbox/index.cjs +1 -1
- package/dist/sandbox/index.cjs.map +1 -1
- package/dist/sandbox/index.js +1 -1
- package/dist/sandbox/index.js.map +1 -1
- package/dist/subagents-loader.d.cts +1 -1
- package/dist/subagents-loader.d.ts +1 -1
- package/dist/types/agent.d.ts +47 -5
- package/dist/types/provider-profile.d.ts +13 -0
- package/docs/error-codes.md +22 -20
- package/docs/harness-capability-map.md +3 -1
- package/package.json +1 -1
- package/dist/chunk-3KGLRRFC.cjs +0 -18
- package/dist/chunk-5PHVENFV.js.map +0 -1
- package/dist/chunk-5UOVYM3P.cjs.map +0 -1
- package/dist/chunk-DAPSQZT4.js.map +0 -1
- package/dist/chunk-Q47R5E2X.cjs.map +0 -1
- package/dist/chunk-RM7Y65IG.cjs.map +0 -1
- package/dist/chunk-TPTZA6NI.js.map +0 -1
- package/dist/chunk-UFAO4T7Z.cjs.map +0 -1
- package/dist/chunk-UNDROG5N.cjs.map +0 -1
- package/dist/chunk-VDEWG5TV.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { enqueueSessionWrite } from './chunk-
|
|
1
|
+
import { enqueueSessionWrite } from './chunk-OHBIUXKM.js';
|
|
2
2
|
import { invalidateSessionCache } from './chunk-WTMU7J4U.js';
|
|
3
3
|
import './chunk-BMAZLQQ4.js';
|
|
4
4
|
import { SessionTranscript } from './chunk-DZBSJX6J.js';
|
|
@@ -23,5 +23,5 @@ async function injectSessionTurn(opts) {
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
export { injectSessionTurn };
|
|
26
|
-
//# sourceMappingURL=inject-session-
|
|
27
|
-
//# sourceMappingURL=inject-session-
|
|
26
|
+
//# sourceMappingURL=inject-session-BJMJH5BX.js.map
|
|
27
|
+
//# sourceMappingURL=inject-session-BJMJH5BX.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/internal/session/inject-session.ts"],"names":[],"mappings":";;;;;;;;;AAWA,eAAsB,kBAAkB,IAAA,EAMtB;AAChB,EAAA,MAAM,oBAAoB,IAAA,CAAK,GAAA,CAAI,KAAK,IAAA,CAAK,GAAA,CAAI,SAAS,YAAY;AACpE,IAAA,MAAM,QAAQ,MAAM,IAAA,CAAK,MAAM,WAAA,CAAY,IAAA,CAAK,IAAI,OAAO,CAAA;AAC3D,IAAA,MAAM,UAAA,GAAa,iBAAA,CAAkB,WAAA,CAAY,KAAA,EAAO;AAAA,MACtD,GAAA,EAAK,KAAK,GAAA,CAAI,GAAA;AAAA,MACd,WAAW,IAAA,CAAK,SAAA;AAAA,MAChB,KAAA,EAAO,IAAA,CAAK,GAAA,CAAI,KAAA,IAAS;AAAA,KAC1B,CAAA;AACD,IAAA,UAAA,CAAW,cAAA,CAAe,KAAK,QAAQ,CAAA;AACvC,IAAA,UAAA,CAAW,mBAAA,CAAoB,EAAE,IAAA,EAAM,IAAA,CAAK,eAAe,CAAA;AAC3D,IAAA,MAAM,IAAA,CAAK,KAAA,CAAM,aAAA,CAAc,IAAA,CAAK,GAAA,CAAI,OAAA,EAAS,UAAA,CAAW,OAAA,EAAQ,CAAE,KAAA,CAAM,KAAA,CAAM,MAAM,CAAC,CAAA;AACzF,IAAA,sBAAA,CAAuB,IAAA,CAAK,GAAA,CAAI,GAAA,EAAK,IAAA,CAAK,IAAI,OAAO,CAAA;AAAA,EACvD,CAAC,CAAA;AACH","file":"inject-session-
|
|
1
|
+
{"version":3,"sources":["../src/internal/session/inject-session.ts"],"names":[],"mappings":";;;;;;;;;AAWA,eAAsB,kBAAkB,IAAA,EAMtB;AAChB,EAAA,MAAM,oBAAoB,IAAA,CAAK,GAAA,CAAI,KAAK,IAAA,CAAK,GAAA,CAAI,SAAS,YAAY;AACpE,IAAA,MAAM,QAAQ,MAAM,IAAA,CAAK,MAAM,WAAA,CAAY,IAAA,CAAK,IAAI,OAAO,CAAA;AAC3D,IAAA,MAAM,UAAA,GAAa,iBAAA,CAAkB,WAAA,CAAY,KAAA,EAAO;AAAA,MACtD,GAAA,EAAK,KAAK,GAAA,CAAI,GAAA;AAAA,MACd,WAAW,IAAA,CAAK,SAAA;AAAA,MAChB,KAAA,EAAO,IAAA,CAAK,GAAA,CAAI,KAAA,IAAS;AAAA,KAC1B,CAAA;AACD,IAAA,UAAA,CAAW,cAAA,CAAe,KAAK,QAAQ,CAAA;AACvC,IAAA,UAAA,CAAW,mBAAA,CAAoB,EAAE,IAAA,EAAM,IAAA,CAAK,eAAe,CAAA;AAC3D,IAAA,MAAM,IAAA,CAAK,KAAA,CAAM,aAAA,CAAc,IAAA,CAAK,GAAA,CAAI,OAAA,EAAS,UAAA,CAAW,OAAA,EAAQ,CAAE,KAAA,CAAM,KAAA,CAAM,MAAM,CAAC,CAAA;AACzF,IAAA,sBAAA,CAAuB,IAAA,CAAK,GAAA,CAAI,GAAA,EAAK,IAAA,CAAK,IAAI,OAAO,CAAA;AAAA,EACvD,CAAC,CAAA;AACH","file":"inject-session-BJMJH5BX.js","sourcesContent":["/**\n * M51 (agent-builder) — inject a SYNTHETIC user+assistant pair into a session's persisted transcript\n * WITHOUT running an LLM turn. This is the Codex review-exit mechanism (`exit_success.xml` appended to\n * the parent thread history so follow-ups like \"fix finding 2\" work): the pair chains onto the DAG\n * leaf (M50 pattern) and the in-memory cache is invalidated so the NEXT send re-hydrates with it.\n */\nimport type { SessionStore } from \"../../types/session-store.js\";\nimport { SessionTranscript } from \"../persistence/session-transcript.js\";\nimport { enqueueSessionWrite, invalidateSessionCache } from \"./agent-session.js\";\nimport type { CompactLocation } from \"./compact-session.js\";\n\nexport async function injectSessionTurn(opts: {\n store: SessionStore;\n loc: CompactLocation;\n sessionId: string;\n userText: string;\n assistantText: string;\n}): Promise<void> {\n await enqueueSessionWrite(opts.loc.cwd, opts.loc.agentId, async () => {\n const prior = await opts.store.readRecords(opts.loc.agentId);\n const transcript = SessionTranscript.fromRecords(prior, {\n cwd: opts.loc.cwd,\n sessionId: opts.sessionId,\n model: opts.loc.model ?? \"unknown\",\n });\n transcript.appendUserTurn(opts.userText);\n transcript.appendAssistantTurn({ text: opts.assistantText });\n await opts.store.appendRecords(opts.loc.agentId, transcript.records().slice(prior.length));\n invalidateSessionCache(opts.loc.cwd, opts.loc.agentId);\n });\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkV2UUGUY4_cjs = require('./chunk-V2UUGUY4.cjs');
|
|
4
4
|
var chunk4OTIXDMU_cjs = require('./chunk-4OTIXDMU.cjs');
|
|
5
5
|
require('./chunk-CTCGWIUD.cjs');
|
|
6
6
|
var chunkJHPGF3FP_cjs = require('./chunk-JHPGF3FP.cjs');
|
|
@@ -10,7 +10,7 @@ require('./chunk-NUKRL3I6.cjs');
|
|
|
10
10
|
|
|
11
11
|
// src/internal/session/inject-session.ts
|
|
12
12
|
async function injectSessionTurn(opts) {
|
|
13
|
-
await
|
|
13
|
+
await chunkV2UUGUY4_cjs.enqueueSessionWrite(opts.loc.cwd, opts.loc.agentId, async () => {
|
|
14
14
|
const prior = await opts.store.readRecords(opts.loc.agentId);
|
|
15
15
|
const transcript = chunkJHPGF3FP_cjs.SessionTranscript.fromRecords(prior, {
|
|
16
16
|
cwd: opts.loc.cwd,
|
|
@@ -25,5 +25,5 @@ async function injectSessionTurn(opts) {
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
exports.injectSessionTurn = injectSessionTurn;
|
|
28
|
-
//# sourceMappingURL=inject-session-
|
|
29
|
-
//# sourceMappingURL=inject-session-
|
|
28
|
+
//# sourceMappingURL=inject-session-WQGGMCQY.cjs.map
|
|
29
|
+
//# sourceMappingURL=inject-session-WQGGMCQY.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/internal/session/inject-session.ts"],"names":["enqueueSessionWrite","SessionTranscript","invalidateSessionCache"],"mappings":";;;;;;;;;;;AAWA,eAAsB,kBAAkB,IAAA,EAMtB;AAChB,EAAA,MAAMA,sCAAoB,IAAA,CAAK,GAAA,CAAI,KAAK,IAAA,CAAK,GAAA,CAAI,SAAS,YAAY;AACpE,IAAA,MAAM,QAAQ,MAAM,IAAA,CAAK,MAAM,WAAA,CAAY,IAAA,CAAK,IAAI,OAAO,CAAA;AAC3D,IAAA,MAAM,UAAA,GAAaC,mCAAA,CAAkB,WAAA,CAAY,KAAA,EAAO;AAAA,MACtD,GAAA,EAAK,KAAK,GAAA,CAAI,GAAA;AAAA,MACd,WAAW,IAAA,CAAK,SAAA;AAAA,MAChB,KAAA,EAAO,IAAA,CAAK,GAAA,CAAI,KAAA,IAAS;AAAA,KAC1B,CAAA;AACD,IAAA,UAAA,CAAW,cAAA,CAAe,KAAK,QAAQ,CAAA;AACvC,IAAA,UAAA,CAAW,mBAAA,CAAoB,EAAE,IAAA,EAAM,IAAA,CAAK,eAAe,CAAA;AAC3D,IAAA,MAAM,IAAA,CAAK,KAAA,CAAM,aAAA,CAAc,IAAA,CAAK,GAAA,CAAI,OAAA,EAAS,UAAA,CAAW,OAAA,EAAQ,CAAE,KAAA,CAAM,KAAA,CAAM,MAAM,CAAC,CAAA;AACzF,IAAAC,wCAAA,CAAuB,IAAA,CAAK,GAAA,CAAI,GAAA,EAAK,IAAA,CAAK,IAAI,OAAO,CAAA;AAAA,EACvD,CAAC,CAAA;AACH","file":"inject-session-
|
|
1
|
+
{"version":3,"sources":["../src/internal/session/inject-session.ts"],"names":["enqueueSessionWrite","SessionTranscript","invalidateSessionCache"],"mappings":";;;;;;;;;;;AAWA,eAAsB,kBAAkB,IAAA,EAMtB;AAChB,EAAA,MAAMA,sCAAoB,IAAA,CAAK,GAAA,CAAI,KAAK,IAAA,CAAK,GAAA,CAAI,SAAS,YAAY;AACpE,IAAA,MAAM,QAAQ,MAAM,IAAA,CAAK,MAAM,WAAA,CAAY,IAAA,CAAK,IAAI,OAAO,CAAA;AAC3D,IAAA,MAAM,UAAA,GAAaC,mCAAA,CAAkB,WAAA,CAAY,KAAA,EAAO;AAAA,MACtD,GAAA,EAAK,KAAK,GAAA,CAAI,GAAA;AAAA,MACd,WAAW,IAAA,CAAK,SAAA;AAAA,MAChB,KAAA,EAAO,IAAA,CAAK,GAAA,CAAI,KAAA,IAAS;AAAA,KAC1B,CAAA;AACD,IAAA,UAAA,CAAW,cAAA,CAAe,KAAK,QAAQ,CAAA;AACvC,IAAA,UAAA,CAAW,mBAAA,CAAoB,EAAE,IAAA,EAAM,IAAA,CAAK,eAAe,CAAA;AAC3D,IAAA,MAAM,IAAA,CAAK,KAAA,CAAM,aAAA,CAAc,IAAA,CAAK,GAAA,CAAI,OAAA,EAAS,UAAA,CAAW,OAAA,EAAQ,CAAE,KAAA,CAAM,KAAA,CAAM,MAAM,CAAC,CAAA;AACzF,IAAAC,wCAAA,CAAuB,IAAA,CAAK,GAAA,CAAI,GAAA,EAAK,IAAA,CAAK,IAAI,OAAO,CAAA;AAAA,EACvD,CAAC,CAAA;AACH","file":"inject-session-WQGGMCQY.cjs","sourcesContent":["/**\n * M51 (agent-builder) — inject a SYNTHETIC user+assistant pair into a session's persisted transcript\n * WITHOUT running an LLM turn. This is the Codex review-exit mechanism (`exit_success.xml` appended to\n * the parent thread history so follow-ups like \"fix finding 2\" work): the pair chains onto the DAG\n * leaf (M50 pattern) and the in-memory cache is invalidated so the NEXT send re-hydrates with it.\n */\nimport type { SessionStore } from \"../../types/session-store.js\";\nimport { SessionTranscript } from \"../persistence/session-transcript.js\";\nimport { enqueueSessionWrite, invalidateSessionCache } from \"./agent-session.js\";\nimport type { CompactLocation } from \"./compact-session.js\";\n\nexport async function injectSessionTurn(opts: {\n store: SessionStore;\n loc: CompactLocation;\n sessionId: string;\n userText: string;\n assistantText: string;\n}): Promise<void> {\n await enqueueSessionWrite(opts.loc.cwd, opts.loc.agentId, async () => {\n const prior = await opts.store.readRecords(opts.loc.agentId);\n const transcript = SessionTranscript.fromRecords(prior, {\n cwd: opts.loc.cwd,\n sessionId: opts.sessionId,\n model: opts.loc.model ?? \"unknown\",\n });\n transcript.appendUserTurn(opts.userText);\n transcript.appendAssistantTurn({ text: opts.assistantText });\n await opts.store.appendRecords(opts.loc.agentId, transcript.records().slice(prior.length));\n invalidateSessionCache(opts.loc.cwd, opts.loc.agentId);\n });\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -8,14 +8,80 @@ export interface ResponsesApiClientOptions {
|
|
|
8
8
|
/** Injected fetch (refresh-aware / dynamic headers). Defaults to global `fetch`. */
|
|
9
9
|
fetch?: typeof fetch;
|
|
10
10
|
providerName?: string;
|
|
11
|
+
/**
|
|
12
|
+
* usetheokit/theokit-sdk#383 — carry the model's ENCRYPTED reasoning across the rounds of a turn.
|
|
13
|
+
* Forwarded from `ProviderProfile.encryptedReasoning`; default off. See
|
|
14
|
+
* {@link ResponsesBodyOptions.encryptedReasoning} for what it puts on the wire and why it is
|
|
15
|
+
* opt-in rather than universal.
|
|
16
|
+
*/
|
|
17
|
+
encryptedReasoning?: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* usetheokit/theokit-sdk#383 — one reasoning item the model produced, as it must be replayed.
|
|
21
|
+
*
|
|
22
|
+
* `encrypted_content` is opaque ciphertext only the provider can read; the SDK never inspects it,
|
|
23
|
+
* never logs it, and never persists it. It exists to be handed straight back.
|
|
24
|
+
*/
|
|
25
|
+
interface ResponsesReasoningItem {
|
|
26
|
+
id: string;
|
|
27
|
+
encrypted_content: string;
|
|
28
|
+
}
|
|
29
|
+
/** Options that shape the request body beyond what an `LlmRequest` carries. */
|
|
30
|
+
export interface ResponsesBodyOptions {
|
|
31
|
+
/**
|
|
32
|
+
* usetheokit/theokit-sdk#383 — when `true`, add `include: ["reasoning.encrypted_content"]` and
|
|
33
|
+
* `reasoning.context: "all_turns"`, and replay the reasoning items captured from earlier rounds.
|
|
34
|
+
*
|
|
35
|
+
* **What it buys.** With `store: false` the provider keeps nothing between requests, so a model
|
|
36
|
+
* that reasoned its way to a tool call in round 1 starts round 2 with no memory of that reasoning
|
|
37
|
+
* and derives it again — paid for again, every round. `include` asks the provider to return the
|
|
38
|
+
* reasoning as ciphertext; replaying that ciphertext on the next request hands the chain of
|
|
39
|
+
* thought back. Codex does exactly this against the same endpoint (issue #383 captured the
|
|
40
|
+
* request), which is the evidence that the backend accepts both fields.
|
|
41
|
+
*
|
|
42
|
+
* **Why opt-in and not on for every `responses_api` provider.** `include` is a documented
|
|
43
|
+
* Responses-API field, but `reasoning.context` is not part of the public Responses API surface —
|
|
44
|
+
* it was observed on the ChatGPT Codex backend. A provider that validates its input strictly
|
|
45
|
+
* answers an unknown key with `400`, which turns a cost optimisation into a total outage for that
|
|
46
|
+
* provider. Scoping it to profiles that DECLARE support keeps every other provider's request
|
|
47
|
+
* byte-identical to what it was, and makes enabling it a statement someone made about a specific
|
|
48
|
+
* backend rather than a hope about all of them.
|
|
49
|
+
*/
|
|
50
|
+
encryptedReasoning?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* usetheokit/theokit-sdk#383 — reasoning items captured from earlier rounds, keyed by the
|
|
53
|
+
* `call_id` of the tool call each batch preceded.
|
|
54
|
+
*
|
|
55
|
+
* Keying on `call_id` is what keeps the replay ORDERED and self-correcting. The provider requires
|
|
56
|
+
* a reasoning item to sit immediately before the output it produced, and the conversation history
|
|
57
|
+
* the loop replays is the authority on which tool calls survived and in what order — so emitting
|
|
58
|
+
* each batch just before its own `function_call` reproduces the original sequence without the
|
|
59
|
+
* transport having to track conversation positions. A batch whose tool call is no longer in
|
|
60
|
+
* history is simply never emitted.
|
|
61
|
+
*/
|
|
62
|
+
reasoningByCallId?: ReadonlyMap<string, readonly ResponsesReasoningItem[]>;
|
|
11
63
|
}
|
|
12
64
|
/** Build the Responses-API request body from an `LlmRequest`. */
|
|
13
|
-
export declare function buildResponsesBody(request: LlmRequest): Record<string, unknown>;
|
|
65
|
+
export declare function buildResponsesBody(request: LlmRequest, options?: ResponsesBodyOptions): Record<string, unknown>;
|
|
14
66
|
export declare class ResponsesApiClient implements LlmClient {
|
|
15
67
|
private readonly options;
|
|
16
68
|
readonly name: string;
|
|
17
69
|
private readonly baseUrl;
|
|
18
70
|
private readonly fetchImpl;
|
|
71
|
+
/**
|
|
72
|
+
* usetheokit/theokit-sdk#383 — reasoning ciphertext captured from earlier rounds, keyed by the
|
|
73
|
+
* `call_id` it preceded. Held on the CLIENT rather than threaded through `LlmRequest` because a
|
|
74
|
+
* round's reasoning is provider-shaped ciphertext with a provider-shaped ordering rule; the agent
|
|
75
|
+
* loop has no use for it and the same client instance serves every round of a turn. Insertion
|
|
76
|
+
* order is the eviction order (see {@link MAX_REMEMBERED_REASONING_CALLS}).
|
|
77
|
+
*/
|
|
78
|
+
private readonly reasoningByCallId;
|
|
19
79
|
constructor(options: ResponsesApiClientOptions);
|
|
80
|
+
/**
|
|
81
|
+
* usetheokit/theokit-sdk#383 — bind a batch of reasoning ciphertext to the tool call it produced,
|
|
82
|
+
* evicting the oldest binding once the cap is reached.
|
|
83
|
+
*/
|
|
84
|
+
private rememberReasoning;
|
|
20
85
|
stream(request: LlmRequest, signal: AbortSignal): AsyncGenerator<LlmEvent, LlmFinish, void>;
|
|
21
86
|
}
|
|
87
|
+
export {};
|
|
@@ -149,6 +149,21 @@ export interface LlmRequest {
|
|
|
149
149
|
* is still forced to produce a closing summary.
|
|
150
150
|
*/
|
|
151
151
|
toolChoice?: "auto" | "none" | "required";
|
|
152
|
+
/**
|
|
153
|
+
* usetheokit/theokit-sdk#383 — an opaque key identifying the conversation whose prompt prefix the
|
|
154
|
+
* provider may reuse across requests. Maps to the Responses-API `prompt_cache_key`.
|
|
155
|
+
*
|
|
156
|
+
* Set by the agent loop from the run's session identity and derived through
|
|
157
|
+
* `derivePromptCacheKey`, so it is STABLE across every round of a turn and every turn of a
|
|
158
|
+
* session, and DISTINCT between unrelated sessions. Both halves matter: a key that changes per
|
|
159
|
+
* round caches nothing, and a key shared across sessions asks the provider to match one
|
|
160
|
+
* conversation's prefix against another's.
|
|
161
|
+
*
|
|
162
|
+
* Absent ⇒ the field is omitted from the wire body (the pre-#383 request, byte for byte). It is
|
|
163
|
+
* a request-shaping hint only: no provider behaviour depends on its presence except the billing
|
|
164
|
+
* of the cached prefix.
|
|
165
|
+
*/
|
|
166
|
+
promptCacheKey?: string;
|
|
152
167
|
}
|
|
153
168
|
/**
|
|
154
169
|
* What a provider stream reports WHILE it is running. Tool calls are deliberately absent.
|
|
@@ -10,18 +10,29 @@
|
|
|
10
10
|
*
|
|
11
11
|
* @internal
|
|
12
12
|
*/
|
|
13
|
-
import type { AgentDefinition, AgentOptions, CustomTool, ModelSelection } from "../../types/agent.js";
|
|
13
|
+
import type { AgentDefinition, AgentOptions, BuiltinToolName, CustomTool, ModelSelection } from "../../types/agent.js";
|
|
14
14
|
import type { CustomToolSpec } from "../agent-loop/loop-types.js";
|
|
15
15
|
/**
|
|
16
|
-
* Resolve the
|
|
16
|
+
* Resolve the tool-catalog slice of `AgentLoopInputs` for this run: which custom tools the loop
|
|
17
|
+
* declares, and which SDK builtins it must NOT.
|
|
17
18
|
*
|
|
18
|
-
* Precedence (matches the mcpServers semantics — "fully replaces, not merged"):
|
|
19
|
+
* Precedence for the custom half (matches the mcpServers semantics — "fully replaces, not merged"):
|
|
19
20
|
* - `sendOptions.tools === undefined` → fall back to `agentOptions.tools`
|
|
20
21
|
* - `sendOptions.tools = []` → explicitly clear (no custom tools)
|
|
21
22
|
* - `sendOptions.tools = [t1, ...]` → use exactly these for this run
|
|
23
|
+
*
|
|
24
|
+
* usetheokit/theokit-sdk#381 added the builtin half, and it is why this is no longer named for
|
|
25
|
+
* custom tools alone. It rides here rather than at the call site because the withhold list is
|
|
26
|
+
* part of the same answer — what this run declares to the model — and because a run that
|
|
27
|
+
* withholds nothing must produce the same `AgentLoopInputs` it produced before the option existed,
|
|
28
|
+
* which is easiest to guarantee where the rest of the catalog is already assembled.
|
|
29
|
+
*
|
|
30
|
+
* Note the two halves are independent: an agent with no custom tools at all can still withhold a
|
|
31
|
+
* builtin, so the "no tools" early return carries the withhold list out with it.
|
|
22
32
|
*/
|
|
23
|
-
export declare function
|
|
33
|
+
export declare function buildRunToolCatalogInput(agentOptions: AgentOptions, sendOptions: {
|
|
24
34
|
tools?: CustomTool[];
|
|
25
35
|
} | undefined, pluginManager: import("../plugins/manager.js").PluginManager | undefined, personalityToolWhitelist: ReadonlyArray<string> | undefined, agentId: string, personalityName: string | undefined, subagents: Record<string, AgentDefinition> | undefined, effectiveModel: ModelSelection | undefined): {
|
|
26
|
-
customTools
|
|
27
|
-
|
|
36
|
+
customTools?: ReadonlyArray<CustomToolSpec>;
|
|
37
|
+
withheldBuiltinTools?: ReadonlyArray<BuiltinToolName>;
|
|
38
|
+
};
|
|
@@ -2,9 +2,21 @@ import { type MemoryConfig, type MemoryFact } from "../types.js";
|
|
|
2
2
|
export declare function memoryDir(cwd: string): string;
|
|
3
3
|
export declare function memoryMdPath(cwd: string): string;
|
|
4
4
|
export declare function notesDir(cwd: string): string;
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* Every memory in the store: the per-memory files, plus any legacy `## Facts` bullets still in
|
|
7
|
+
* `MEMORY.md`. Returns `[]` when the directory does not exist.
|
|
8
|
+
*
|
|
9
|
+
* Reading both is not transitional politeness. Those bullets are already on disk in consumers'
|
|
10
|
+
* repositories, and the store's own header invites editing them by hand — a converged writer that
|
|
11
|
+
* stopped reading them would delete what someone recorded, which is worse than the format it fixes.
|
|
12
|
+
*/
|
|
6
13
|
export declare function readFactsFromMarkdown(cwd: string): Promise<MemoryFact[]>;
|
|
7
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* Write a fact as its own memory file and point the `MEMORY.md` index at it. Atomic + serialized.
|
|
16
|
+
*
|
|
17
|
+
* `modified` is stamped HERE and never read from `fact`: a timestamp a caller can set is a
|
|
18
|
+
* timestamp that can lie about when something was learned, and weighing recency is the point.
|
|
19
|
+
*/
|
|
8
20
|
export declare function appendFactToMarkdown(cwd: string, fact: MemoryFact): Promise<void>;
|
|
9
21
|
/** Configuration-aware accessors honoring the existing MemoryConfig contract. */
|
|
10
22
|
export declare function readFacts(cwd: string, config: MemoryConfig): Promise<MemoryFact[]>;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One memory as a file, in the shape the Claude Code CLI reads.
|
|
3
|
+
*
|
|
4
|
+
* `@theokit/sdk` already writes native Claude Code `.jsonl` sessions — the README's differentiator
|
|
5
|
+
* is "point `local.sessionDir` at `~/.claude` and the Claude Code CLI can `--continue` a session
|
|
6
|
+
* your agent wrote". Memory had no such convergence: a fact was a bullet under `## Facts` with its
|
|
7
|
+
* kind in an HTML comment (#389), which that CLI reads as prose. Pointing a memory directory at
|
|
8
|
+
* `~/.claude/projects/<project>/memory/` produced nothing it could open.
|
|
9
|
+
*
|
|
10
|
+
* The contract here was measured against a real store rather than inferred from documentation. Of
|
|
11
|
+
* nine files, all nine carry `name`, `description` and `metadata.type`; six also carry
|
|
12
|
+
* `node_type`, `originSessionId` and `modified`, which the runtime stamps on write. So the minimum
|
|
13
|
+
* a reader must accept is the first three — refusing the rest would refuse memories the CLI itself
|
|
14
|
+
* accepts.
|
|
15
|
+
*
|
|
16
|
+
* `originSessionId` is deliberately not written. It identifies the session that learned the fact,
|
|
17
|
+
* and the append path has no session in scope; inventing one would be worse than omitting a field
|
|
18
|
+
* the format already treats as optional.
|
|
19
|
+
*
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
import { type MemoryKind } from "../types.js";
|
|
23
|
+
/** The fields one memory file carries. */
|
|
24
|
+
export interface MemoryFileFields {
|
|
25
|
+
/** Slug, and the file's basename. */
|
|
26
|
+
readonly name: string;
|
|
27
|
+
/** One-line summary — what the index shows and what recall ranks. */
|
|
28
|
+
readonly description: string;
|
|
29
|
+
/** `metadata.type`, absent when the file does not declare one this contract admits. */
|
|
30
|
+
readonly kind?: MemoryKind;
|
|
31
|
+
/** `metadata.modified`, an ISO 8601 instant stamped by whoever wrote the file. */
|
|
32
|
+
readonly modified?: string;
|
|
33
|
+
/** The markdown after the frontmatter. */
|
|
34
|
+
readonly body: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* A readable, filesystem-safe slug for `text`.
|
|
38
|
+
*
|
|
39
|
+
* Readability is the goal — a directory of `h-3f2a…` files is a directory nobody browses — but it
|
|
40
|
+
* is not the floor. The text comes from whatever a caller learned, so anything that fails the safe
|
|
41
|
+
* grammar falls back to {@link safeFilenameForId}, which is total and always yields a valid
|
|
42
|
+
* component.
|
|
43
|
+
*/
|
|
44
|
+
export declare function slugForFact(text: string): string;
|
|
45
|
+
/** Render one memory file. `description` is quoted so a colon in the text cannot break the block. */
|
|
46
|
+
export declare function renderMemoryFile(fields: MemoryFileFields): string;
|
|
47
|
+
/**
|
|
48
|
+
* Read one memory file, or `undefined` when the content is not one.
|
|
49
|
+
*
|
|
50
|
+
* `undefined` rather than a throw, and rather than a best-effort object: the directory holds
|
|
51
|
+
* hand-written notes and a `MEMORY.md` index alongside the memories, and turning any of those into
|
|
52
|
+
* a fact would put text into recall that nobody recorded as one.
|
|
53
|
+
*/
|
|
54
|
+
export declare function parseMemoryFile(raw: string): MemoryFileFields | undefined;
|
|
@@ -5,8 +5,36 @@ export interface MemoryConfig {
|
|
|
5
5
|
scope?: "agent" | "user" | "team";
|
|
6
6
|
storePath?: string;
|
|
7
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* What a fact IS, which is what decides whether it ages (#389).
|
|
10
|
+
*
|
|
11
|
+
* The four are the distinctions that matter for retention and recall: a preference stays true until
|
|
12
|
+
* the user changes their mind, a project fact goes stale when the code moves, a reference either
|
|
13
|
+
* resolves or 404s, and feedback records a correction that was given. Without them, recall ranks one
|
|
14
|
+
* undifferentiated corpus and pruning has no basis to prefer a durable fact over a transient one.
|
|
15
|
+
*
|
|
16
|
+
* A kind is never INFERRED. A wrong kind is worse than none, because it makes retention and recall
|
|
17
|
+
* confident about the wrong thing — so a fact whose author did not say stays untyped.
|
|
18
|
+
*/
|
|
19
|
+
export type MemoryKind = "user" | "feedback" | "project" | "reference";
|
|
20
|
+
/** The four values {@link MemoryKind} admits, for runtime validation at the storage boundary. */
|
|
21
|
+
export declare const MEMORY_KINDS: readonly MemoryKind[];
|
|
8
22
|
export interface MemoryFact {
|
|
9
23
|
text: string;
|
|
24
|
+
/**
|
|
25
|
+
* What this fact is (#389). Absent means untyped, which is what a hand-written bullet under
|
|
26
|
+
* `## Facts` stays — those files are already on disk in consumers' repositories and the store's
|
|
27
|
+
* own header invites editing them.
|
|
28
|
+
*/
|
|
29
|
+
kind?: MemoryKind;
|
|
30
|
+
/**
|
|
31
|
+
* ISO 8601 instant this fact was last written, stamped BY THE SDK.
|
|
32
|
+
*
|
|
33
|
+
* Supplying it does nothing: a timestamp a caller can set is a timestamp that can lie about when
|
|
34
|
+
* something was learned, and the whole point is to weigh a note from this morning against one
|
|
35
|
+
* from four months ago. Absent on a fact written before this existed, or hand-added.
|
|
36
|
+
*/
|
|
37
|
+
modified?: string;
|
|
10
38
|
}
|
|
11
39
|
export { redactSecrets } from "../security/index.js";
|
|
12
40
|
/**
|
package/dist/models.cjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var chunkHY57ULY2_cjs = require('./chunk-HY57ULY2.cjs');
|
|
4
4
|
var chunk3EE6LVWT_cjs = require('./chunk-3EE6LVWT.cjs');
|
|
5
|
-
var
|
|
5
|
+
var chunkNIRE5CNO_cjs = require('./chunk-NIRE5CNO.cjs');
|
|
6
6
|
require('./chunk-5USCYPPI.cjs');
|
|
7
7
|
require('./chunk-BVZW2B5V.cjs');
|
|
8
8
|
require('./chunk-52NKC5HT.cjs');
|
|
@@ -36,11 +36,11 @@ function capsFromCatalog(m) {
|
|
|
36
36
|
}
|
|
37
37
|
function resolveModelCapabilities(modelId) {
|
|
38
38
|
const bare = stripVariantSuffix(stripRoutingPrefix(modelId));
|
|
39
|
-
const fromIndex =
|
|
39
|
+
const fromIndex = chunkNIRE5CNO_cjs.getCatalogModelInfo(bare);
|
|
40
40
|
if (fromIndex !== void 0) return capsFromCatalog(fromIndex);
|
|
41
41
|
const withVendor = inferVendorPrefix(bare);
|
|
42
42
|
if (withVendor !== bare) {
|
|
43
|
-
const vendored =
|
|
43
|
+
const vendored = chunkNIRE5CNO_cjs.getCatalogModelInfo(withVendor);
|
|
44
44
|
if (vendored !== void 0) return capsFromCatalog(vendored);
|
|
45
45
|
}
|
|
46
46
|
return CONSERVATIVE_DEFAULTS;
|
|
@@ -132,7 +132,7 @@ function catalogTargets() {
|
|
|
132
132
|
if (_catalogTargets !== void 0) return _catalogTargets;
|
|
133
133
|
_catalogTargets = /* @__PURE__ */ new Map();
|
|
134
134
|
try {
|
|
135
|
-
for (const entry of Object.values(
|
|
135
|
+
for (const entry of Object.values(chunkNIRE5CNO_cjs.loadProviderCatalog())) {
|
|
136
136
|
const keys = [entry.id, ...entry.aliases ?? []];
|
|
137
137
|
for (const k of keys) {
|
|
138
138
|
if (!_catalogTargets.has(k)) _catalogTargets.set(k, { keys });
|
|
@@ -146,7 +146,7 @@ function resolvePatchKeys(externalId) {
|
|
|
146
146
|
const mapped = MODELS_DEV_ID_MAP[externalId] ?? externalId;
|
|
147
147
|
const fromCatalog = catalogTargets().get(mapped);
|
|
148
148
|
if (fromCatalog !== void 0) return fromCatalog.keys;
|
|
149
|
-
const profile =
|
|
149
|
+
const profile = chunkNIRE5CNO_cjs.getProviderProfile(mapped);
|
|
150
150
|
if (profile !== void 0) return [profile.name, ...profile.aliases ?? []];
|
|
151
151
|
return void 0;
|
|
152
152
|
}
|
|
@@ -163,9 +163,9 @@ function patchIndexFromApiJson(raw) {
|
|
|
163
163
|
continue;
|
|
164
164
|
}
|
|
165
165
|
for (const [modelId, rawModel] of Object.entries(models)) {
|
|
166
|
-
const parsed =
|
|
166
|
+
const parsed = chunkNIRE5CNO_cjs.catalogModelSchema.safeParse(rawModel);
|
|
167
167
|
if (!parsed.success) continue;
|
|
168
|
-
for (const key of keys)
|
|
168
|
+
for (const key of keys) chunkNIRE5CNO_cjs.patchModelInfo(`${key}/${modelId}`, parsed.data);
|
|
169
169
|
patched++;
|
|
170
170
|
}
|
|
171
171
|
}
|
|
@@ -206,7 +206,7 @@ function loadCacheIntoIndex(url = DEFAULT_URL) {
|
|
|
206
206
|
}
|
|
207
207
|
}
|
|
208
208
|
async function refreshModelCatalog(opts = {}) {
|
|
209
|
-
|
|
209
|
+
chunkNIRE5CNO_cjs.registerBuiltins();
|
|
210
210
|
const kill = process.env.THEOKIT_DISABLE_MODELS_FETCH;
|
|
211
211
|
if (kill !== void 0 && kill !== "" && kill !== "0" && kill.toLowerCase() !== "false") {
|
|
212
212
|
return { source: "skipped", models: 0 };
|
|
@@ -269,7 +269,7 @@ async function refreshModelCatalog(opts = {}) {
|
|
|
269
269
|
}
|
|
270
270
|
}
|
|
271
271
|
function getModelInfo(modelId) {
|
|
272
|
-
return
|
|
272
|
+
return chunkNIRE5CNO_cjs.getCatalogModelInfo(modelId);
|
|
273
273
|
}
|
|
274
274
|
|
|
275
275
|
Object.defineProperty(exports, "parseModelId", {
|
package/dist/models.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Retry } from './chunk-NLTVXLGT.js';
|
|
2
2
|
import { parseModelId } from './chunk-R7WIIPUR.js';
|
|
3
3
|
export { parseModelId } from './chunk-R7WIIPUR.js';
|
|
4
|
-
import { getCatalogModelInfo, registerBuiltins, catalogModelSchema, patchModelInfo, getProviderProfile, loadProviderCatalog } from './chunk-
|
|
4
|
+
import { getCatalogModelInfo, registerBuiltins, catalogModelSchema, patchModelInfo, getProviderProfile, loadProviderCatalog } from './chunk-Q4CMI2LP.js';
|
|
5
5
|
import './chunk-44MBDIHG.js';
|
|
6
6
|
import './chunk-UQGQFBRL.js';
|
|
7
7
|
import './chunk-3OR54XG4.js';
|
package/dist/providers.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('./chunk-
|
|
3
|
+
var chunk6HTXPPHK_cjs = require('./chunk-6HTXPPHK.cjs');
|
|
4
|
+
require('./chunk-NIRE5CNO.cjs');
|
|
5
5
|
require('./chunk-5USCYPPI.cjs');
|
|
6
6
|
require('./chunk-BVZW2B5V.cjs');
|
|
7
7
|
require('./chunk-52NKC5HT.cjs');
|
|
@@ -13,11 +13,11 @@ require('./chunk-NUKRL3I6.cjs');
|
|
|
13
13
|
|
|
14
14
|
Object.defineProperty(exports, "getProviderProfile", {
|
|
15
15
|
enumerable: true,
|
|
16
|
-
get: function () { return
|
|
16
|
+
get: function () { return chunk6HTXPPHK_cjs.getProviderProfile; }
|
|
17
17
|
});
|
|
18
18
|
Object.defineProperty(exports, "listProviders", {
|
|
19
19
|
enumerable: true,
|
|
20
|
-
get: function () { return
|
|
20
|
+
get: function () { return chunk6HTXPPHK_cjs.listProviders; }
|
|
21
21
|
});
|
|
22
22
|
//# sourceMappingURL=providers.cjs.map
|
|
23
23
|
//# sourceMappingURL=providers.cjs.map
|
package/dist/providers.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { getProviderProfile, listProviders } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
export { getProviderProfile, listProviders } from './chunk-2BDH744Z.js';
|
|
2
|
+
import './chunk-Q4CMI2LP.js';
|
|
3
3
|
import './chunk-44MBDIHG.js';
|
|
4
4
|
import './chunk-UQGQFBRL.js';
|
|
5
5
|
import './chunk-3OR54XG4.js';
|
package/dist/sandbox/index.cjs
CHANGED
|
@@ -154,7 +154,7 @@ var RET_EPERM = SECCOMP_RET_ERRNO | EPERM & 65535;
|
|
|
154
154
|
var SECCOMP_RET_KILL_PROCESS = 2147483648;
|
|
155
155
|
var AF_UNIX = 1;
|
|
156
156
|
var ALWAYS_DENIED = [101, 310, 311, 425, 426, 427];
|
|
157
|
-
var NETWORK_DENIED = [42, 43, 288, 49, 50,
|
|
157
|
+
var NETWORK_DENIED = [42, 43, 288, 49, 50, 48, 44, 307, 299];
|
|
158
158
|
var SOCKET_SYSCALLS = [41, 53];
|
|
159
159
|
var stmt = (code, k) => ({ code, jt: 0, jf: 0, k });
|
|
160
160
|
var jmp = (code, k, jt, jf) => ({ code, jt, jf, k });
|