@nexrall/code-core 1.4.71 → 1.4.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/agentRegistry.d.ts.map +1 -1
- package/dist/agent/agentRegistry.js +28 -10
- package/dist/agent/agentTypes.d.ts.map +1 -1
- package/dist/agent/agentTypes.js +159 -48
- package/dist/agent/askOnce.d.ts.map +1 -1
- package/dist/agent/askOnce.js +14 -5
- package/dist/agent/backgroundAgents.d.ts.map +1 -1
- package/dist/agent/backgroundAgents.js +22 -8
- package/dist/agent/claimEvidence.d.ts.map +1 -1
- package/dist/agent/claimEvidence.js +2 -1
- package/dist/agent/compaction.d.ts.map +1 -1
- package/dist/agent/compaction.js +31 -10
- package/dist/agent/crossProcessLock.d.ts.map +1 -1
- package/dist/agent/crossProcessLock.js +14 -6
- package/dist/agent/editCompleteness.d.ts.map +1 -1
- package/dist/agent/fileLocks.d.ts.map +1 -1
- package/dist/agent/fileLocks.js +14 -5
- package/dist/agent/flaky.d.ts.map +1 -1
- package/dist/agent/hooks.d.ts.map +1 -1
- package/dist/agent/hooks.js +284 -75
- package/dist/agent/iterationPolicy.d.ts.map +1 -1
- package/dist/agent/iterationPolicy.js +26 -23
- package/dist/agent/lifecycleHost.d.ts.map +1 -1
- package/dist/agent/lifecycleHost.js +35 -11
- package/dist/agent/loop.d.ts +22 -4
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +238 -51
- package/dist/agent/memory.d.ts.map +1 -1
- package/dist/agent/memory.js +13 -7
- package/dist/agent/modelCatalogue.d.ts.map +1 -1
- package/dist/agent/modelCatalogue.js +4 -1
- package/dist/agent/nestedInstructions.d.ts +122 -0
- package/dist/agent/nestedInstructions.d.ts.map +1 -0
- package/dist/agent/nestedInstructions.js +696 -0
- package/dist/agent/peerRegistry.d.ts.map +1 -1
- package/dist/agent/peerRegistry.js +44 -6
- package/dist/agent/peerTransport.d.ts.map +1 -1
- package/dist/agent/peerTransport.js +18 -6
- package/dist/agent/planMode.d.ts.map +1 -1
- package/dist/agent/planMode.js +194 -41
- package/dist/agent/readDedupe.d.ts.map +1 -1
- package/dist/agent/readDedupe.js +3 -1
- package/dist/agent/securityLint.d.ts.map +1 -1
- package/dist/agent/sharedTasks.d.ts.map +1 -1
- package/dist/agent/sharedTasks.js +20 -5
- package/dist/agent/skills.d.ts +79 -0
- package/dist/agent/skills.d.ts.map +1 -1
- package/dist/agent/skills.js +403 -14
- package/dist/agent/subAgentBudget.d.ts.map +1 -1
- package/dist/agent/subTask.d.ts.map +1 -1
- package/dist/agent/subTask.js +87 -37
- package/dist/agent/subTaskSupport.d.ts.map +1 -1
- package/dist/agent/subTaskSupport.js +43 -14
- package/dist/agent/testIntegrity.d.ts.map +1 -1
- package/dist/agent/testIntegrity.js +4 -2
- package/dist/agent/toolDescriptions.d.ts.map +1 -1
- package/dist/agent/toolPrefetch.d.ts.map +1 -1
- package/dist/agent/toolPrefetch.js +15 -11
- package/dist/agent/trust.d.ts.map +1 -1
- package/dist/agent/trust.js +6 -2
- package/dist/agent/worktree.d.ts.map +1 -1
- package/dist/agent/worktree.js +70 -16
- package/dist/agent/worktreeEnforcement.d.ts.map +1 -1
- package/dist/agent/worktreeEnforcement.js +9 -4
- package/dist/api/client.d.ts +6 -0
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +64 -31
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +3 -1
- package/dist/checkpoint/manager.d.ts.map +1 -1
- package/dist/checkpoint/manager.js +22 -7
- package/dist/commands/loader.d.ts.map +1 -1
- package/dist/commands/loader.js +6 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/mcp/client.d.ts +42 -0
- package/dist/mcp/client.d.ts.map +1 -1
- package/dist/mcp/client.js +89 -24
- package/dist/mcp/httpClient.d.ts +24 -1
- package/dist/mcp/httpClient.d.ts.map +1 -1
- package/dist/mcp/httpClient.js +80 -14
- package/dist/mcp/instructions.d.ts +11 -0
- package/dist/mcp/instructions.d.ts.map +1 -0
- package/dist/mcp/instructions.js +42 -0
- package/dist/mcp/manager.d.ts +35 -0
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +135 -24
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +48 -14
- package/dist/mcp/sseClient.d.ts +9 -1
- package/dist/mcp/sseClient.d.ts.map +1 -1
- package/dist/mcp/sseClient.js +43 -10
- package/dist/mcp/stats.d.ts.map +1 -1
- package/dist/permissions/bashClassify.d.ts.map +1 -1
- package/dist/permissions/bashClassify.js +25 -3
- package/dist/permissions/destructive.d.ts.map +1 -1
- package/dist/permissions/destructive.js +7 -2
- package/dist/permissions/destructiveTokens.d.ts.map +1 -1
- package/dist/permissions/destructiveTokens.js +104 -24
- package/dist/permissions/modePolicy.d.ts.map +1 -1
- package/dist/permissions/modePolicy.js +40 -17
- package/dist/permissions/rules.d.ts.map +1 -1
- package/dist/permissions/rules.js +7 -5
- package/dist/plugins/data.d.ts.map +1 -1
- package/dist/plugins/data.js +6 -2
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +18 -7
- package/dist/plugins/installer.d.ts.map +1 -1
- package/dist/plugins/installer.js +17 -10
- package/dist/plugins/sources.d.ts.map +1 -1
- package/dist/plugins/sources.js +9 -3
- package/dist/tools/executor.d.ts.map +1 -1
- package/dist/tools/executor.js +454 -168
- package/dist/tools/sandbox.d.ts.map +1 -1
- package/dist/tools/sandbox.js +5 -1
- package/dist/tools/symbols.d.ts.map +1 -1
- package/dist/tools/symbols.js +30 -8
- package/dist/tools/tsLangService.d.ts.map +1 -1
- package/dist/tools/tsLangService.js +12 -4
- package/dist/types.d.ts +17 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/util/frontmatter.d.ts.map +1 -1
- package/dist/util/miniYaml.d.ts.map +1 -1
- package/dist/util/miniYaml.js +3 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktreeEnforcement.d.ts","sourceRoot":"","sources":["../../src/agent/worktreeEnforcement.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,MAAM,WAAW,eAAe;IAC9B,MAAM,
|
|
1
|
+
{"version":3,"file":"worktreeEnforcement.d.ts","sourceRoot":"","sources":["../../src/agent/worktreeEnforcement.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,MAAM,WAAW,eAAe;IAC9B,MAAM,EACF,uBAAuB,GACvB,2BAA2B,GAC3B,+BAA+B,GAC/B,yBAAyB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB;AA+BD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,KAAK,EAAE,aAAa,GAAG,SAAS,EAChC,OAAO,CAAC,EAAE,MAAM,GACf,eAAe,GAAG,IAAI,CAuBxB;AA2BD,iBAAS,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAIlF;AAED,iBAAS,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,eAAe,GAAG,IAAI,CAyC/F;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAcjE;AAED,eAAO,MAAM,4BAA4B;;;CAAyD,CAAC"}
|
|
@@ -69,16 +69,21 @@ exports.worktreeInstructions = worktreeInstructions;
|
|
|
69
69
|
const path = __importStar(require("path"));
|
|
70
70
|
const worktree_1 = require("./worktree");
|
|
71
71
|
const EDIT_TOOLS = new Set([
|
|
72
|
-
'write_file',
|
|
73
|
-
'
|
|
72
|
+
'write_file',
|
|
73
|
+
'write_docx',
|
|
74
|
+
'write_xlsx',
|
|
75
|
+
'write_pptx',
|
|
76
|
+
'edit_file',
|
|
77
|
+
'multi_edit',
|
|
78
|
+
'delete_file',
|
|
79
|
+
'notebook_edit',
|
|
74
80
|
]);
|
|
75
81
|
// move_file/copy_file carry two paths (source/destination — see loop.ts's
|
|
76
82
|
// lockPathsFor, which handles the identical shape for the same reason).
|
|
77
83
|
const DUAL_PATH_TOOLS = new Set(['move_file', 'copy_file']);
|
|
78
84
|
function pathsFromInput(tool, input) {
|
|
79
85
|
if (DUAL_PATH_TOOLS.has(tool)) {
|
|
80
|
-
return [input.source, input.destination, input.dest]
|
|
81
|
-
.filter((p) => typeof p === 'string' && p.length > 0);
|
|
86
|
+
return [input.source, input.destination, input.dest].filter((p) => typeof p === 'string' && p.length > 0);
|
|
82
87
|
}
|
|
83
88
|
if (typeof input.path === 'string' && input.path)
|
|
84
89
|
return [input.path];
|
package/dist/api/client.d.ts
CHANGED
|
@@ -102,6 +102,12 @@ export interface StreamChatOptions {
|
|
|
102
102
|
* still enforces the allowlist either way; this only trims what is sent.
|
|
103
103
|
*/
|
|
104
104
|
toolAllowlist?: string[];
|
|
105
|
+
/**
|
|
106
|
+
* Servers whose mcp.json entry sets `alwaysLoad: true` (CC parity). The backend
|
|
107
|
+
* keeps their `<server>__*` tools out of both deferral paths (tool search and the
|
|
108
|
+
* tool-cap selector). Absent = nothing pinned; older backends ignore the field.
|
|
109
|
+
*/
|
|
110
|
+
alwaysLoadServers?: string[];
|
|
105
111
|
/**
|
|
106
112
|
* Opt in to restarting a turn that died AFTER partial output was rendered.
|
|
107
113
|
*
|
package/dist/api/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAA8B,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAiErH,eAAO,MAAM,QAAQ,QAAmB,CAAC;AAIzC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAC5D,OAAO,EAAE,CAAC,EAAE,EACZ,UAAU,EAAE,KAAK,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GACtD,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
package/dist/api/client.js
CHANGED
|
@@ -405,7 +405,7 @@ function sleep(ms) {
|
|
|
405
405
|
* the nested product (36) exists to bound pathological cases, not to be reached. */
|
|
406
406
|
const MAX_TOTAL_ATTEMPTS = (MAX_RETRIES + 1) * (MAX_RETRIES + 1);
|
|
407
407
|
async function streamChat(messages, options, onEvent) {
|
|
408
|
-
const { model, env, editorContext, nexrallMd, mode, effort, clientType, abortSignal, extraTools, agents, skills, allowRestartAfterRender, canWriteSharedMemory, hasOwnAgentStore, canSpawnSubAgents, canBrowseWeb, toolAllowlist } = options;
|
|
408
|
+
const { model, env, editorContext, nexrallMd, mode, effort, clientType, abortSignal, extraTools, agents, skills, allowRestartAfterRender, canWriteSharedMemory, hasOwnAgentStore, canSpawnSubAgents, canBrowseWeb, toolAllowlist, alwaysLoadServers, } = options;
|
|
409
409
|
// IDEMPOTENCY KEY for this logical turn, generated ONCE and reused by every retry
|
|
410
410
|
// below (that reuse is the entire point — a fresh id per attempt would be useless).
|
|
411
411
|
//
|
|
@@ -495,10 +495,31 @@ async function streamChat(messages, options, onEvent) {
|
|
|
495
495
|
const getChatBody = () => {
|
|
496
496
|
if (chatBody && chatBody.turnId === turnId)
|
|
497
497
|
return chatBody;
|
|
498
|
-
const json = JSON.stringify({
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
498
|
+
const json = JSON.stringify({
|
|
499
|
+
messages,
|
|
500
|
+
model,
|
|
501
|
+
env,
|
|
502
|
+
editorContext,
|
|
503
|
+
nexrallMd,
|
|
504
|
+
mode,
|
|
505
|
+
effort,
|
|
506
|
+
clientType,
|
|
507
|
+
extraTools,
|
|
508
|
+
agents,
|
|
509
|
+
skills,
|
|
510
|
+
turnId,
|
|
511
|
+
canWriteSharedMemory,
|
|
512
|
+
hasOwnAgentStore,
|
|
513
|
+
canSpawnSubAgents,
|
|
514
|
+
canBrowseWeb,
|
|
515
|
+
toolAllowlist,
|
|
516
|
+
alwaysLoadServers,
|
|
517
|
+
...billingOverrideFields(),
|
|
518
|
+
});
|
|
519
|
+
chatBody =
|
|
520
|
+
gzipRequestsEnabled() && json.length >= GZIP_MIN_BYTES
|
|
521
|
+
? { data: (0, zlib_1.gzipSync)(json, { level: 5 }), gzip: true, turnId }
|
|
522
|
+
: { data: json, gzip: false, turnId };
|
|
502
523
|
return chatBody;
|
|
503
524
|
};
|
|
504
525
|
const buildFetchArgs = () => {
|
|
@@ -566,7 +587,7 @@ async function streamChat(messages, options, onEvent) {
|
|
|
566
587
|
// precisely backwards. Measuring only time spent RECONNECTING keeps the guarantee
|
|
567
588
|
// meaningful: "at most 5 minutes of retrying before we tell you it's broken".
|
|
568
589
|
let retryDeadline = 0;
|
|
569
|
-
const retryBudgetLeft = () => retryDeadline === 0 ? MAX_TOTAL_RETRY_MS : retryDeadline - Date.now();
|
|
590
|
+
const retryBudgetLeft = () => (retryDeadline === 0 ? MAX_TOTAL_RETRY_MS : retryDeadline - Date.now());
|
|
570
591
|
// Require a MEANINGFUL remainder, not just "> 0". With a bare positive check, 1 ms of
|
|
571
592
|
// budget was enough to launch a whole fresh attempt — which can then sit in
|
|
572
593
|
// FIRST_EVENT_TIMEOUT_MS (300 s) of prompt-processing wait, blowing past the very
|
|
@@ -770,13 +791,15 @@ async function streamChat(messages, options, onEvent) {
|
|
|
770
791
|
// node-fetch body is single-use — calling .text() again yields '' and the
|
|
771
792
|
// upstream-forbidden shape would never be recognised, turning a retryable
|
|
772
793
|
// blip into an instant terminal failure.
|
|
773
|
-
const bodyText = errorBodyOverride ?? await response.text().catch(() => '');
|
|
794
|
+
const bodyText = errorBodyOverride ?? (await response.text().catch(() => ''));
|
|
774
795
|
let isUpstreamForbidden = false;
|
|
775
796
|
try {
|
|
776
797
|
const parsed = JSON.parse(bodyText);
|
|
777
798
|
isUpstreamForbidden = parsed?.error?.type === 'forbidden';
|
|
778
799
|
}
|
|
779
|
-
catch {
|
|
800
|
+
catch {
|
|
801
|
+
/* not JSON — not this shape, fall through as terminal below */
|
|
802
|
+
}
|
|
780
803
|
if (isUpstreamForbidden) {
|
|
781
804
|
if (attempt < FORBIDDEN_RETRY_LIMIT && canRetry()) {
|
|
782
805
|
reportRetry('Upstream rejected the request — retrying');
|
|
@@ -822,7 +845,7 @@ async function streamChat(messages, options, onEvent) {
|
|
|
822
845
|
if (resuming && response.status >= 400 && response.status < 500) {
|
|
823
846
|
// May already have been read by the token-expiry check above (401/403);
|
|
824
847
|
// node-fetch bodies are single-use, so reuse it rather than reading ''.
|
|
825
|
-
const body = errorBodyOverride ?? await response.text().catch(() => '');
|
|
848
|
+
const body = errorBodyOverride ?? (await response.text().catch(() => ''));
|
|
826
849
|
if (response.status === 410 || response.status === 404 || bodySaysNotResumable(body)) {
|
|
827
850
|
const canRestart = await prepareRestart('Connection lost too long to resume');
|
|
828
851
|
if (!canRestart) {
|
|
@@ -862,7 +885,9 @@ async function streamChat(messages, options, onEvent) {
|
|
|
862
885
|
try {
|
|
863
886
|
inFlight = JSON.parse(body)?.turnInFlight === true;
|
|
864
887
|
}
|
|
865
|
-
catch {
|
|
888
|
+
catch {
|
|
889
|
+
/* treat as terminal */
|
|
890
|
+
}
|
|
866
891
|
// A wait is NOT a failed attempt, so it must not consume the network-error
|
|
867
892
|
// budget: a real coding turn runs for minutes, and spending `MAX_RETRIES` on
|
|
868
893
|
// fixed short sleeps burned the whole allowance in ~10 s and hard-failed while
|
|
@@ -919,7 +944,7 @@ async function streamChat(messages, options, onEvent) {
|
|
|
919
944
|
if (!response)
|
|
920
945
|
throw lastErr ?? new Error('Request failed after max retries');
|
|
921
946
|
if (!response.ok) {
|
|
922
|
-
const errText = errorBodyOverride ?? await response.text();
|
|
947
|
+
const errText = errorBodyOverride ?? (await response.text());
|
|
923
948
|
let errMsg = `API error ${response.status}`;
|
|
924
949
|
let balance;
|
|
925
950
|
// code/remaining/teamId are the team-billing fields (migration 139). The
|
|
@@ -1340,7 +1365,9 @@ async function streamChat(messages, options, onEvent) {
|
|
|
1340
1365
|
usage: {
|
|
1341
1366
|
input_tokens: evt.input_tokens,
|
|
1342
1367
|
output_tokens: evt.output_tokens,
|
|
1343
|
-
cache_creation_input_tokens: typeof evt.cache_creation_input_tokens === 'number'
|
|
1368
|
+
cache_creation_input_tokens: typeof evt.cache_creation_input_tokens === 'number'
|
|
1369
|
+
? evt.cache_creation_input_tokens
|
|
1370
|
+
: undefined,
|
|
1344
1371
|
cache_read_input_tokens: typeof evt.cache_read_input_tokens === 'number' ? evt.cache_read_input_tokens : undefined,
|
|
1345
1372
|
},
|
|
1346
1373
|
});
|
|
@@ -1447,8 +1474,11 @@ async function streamChat(messages, options, onEvent) {
|
|
|
1447
1474
|
break;
|
|
1448
1475
|
}
|
|
1449
1476
|
case 'error': {
|
|
1450
|
-
const message = typeof evt.message === 'string'
|
|
1451
|
-
|
|
1477
|
+
const message = typeof evt.message === 'string'
|
|
1478
|
+
? evt.message
|
|
1479
|
+
: typeof evt.error === 'string'
|
|
1480
|
+
? evt.error
|
|
1481
|
+
: 'Unknown SSE error';
|
|
1452
1482
|
// The GET /chat/resume tail loop sends this when the turn's Redis frame
|
|
1453
1483
|
// buffer developed a gap (trimmed window, a swallowed flush error, or the
|
|
1454
1484
|
// owning pod died) or the turn is simply gone — see routes/code.js. Unlike
|
|
@@ -1495,7 +1525,8 @@ async function streamChat(messages, options, onEvent) {
|
|
|
1495
1525
|
stream.destroy?.();
|
|
1496
1526
|
reject(Object.assign(tagTransient(new Error(message)), { forceRestart: true }));
|
|
1497
1527
|
}
|
|
1498
|
-
else if ((serverSaysRetryable || isRetryableStreamMsg(message)) &&
|
|
1528
|
+
else if ((serverSaysRetryable || isRetryableStreamMsg(message)) &&
|
|
1529
|
+
(!emittedToCaller || allowRestartAfterRender)) {
|
|
1499
1530
|
clearInterval(heartbeatWatchdog);
|
|
1500
1531
|
stream.destroy?.();
|
|
1501
1532
|
reject(tagTransient(new Error(message)));
|
|
@@ -1756,7 +1787,7 @@ async function describeAttachment(kind, data, mediaType, name) {
|
|
|
1756
1787
|
// expired token during `/image` should not surface as a confusing raw 401.
|
|
1757
1788
|
if (response.status === 401 || response.status === 403) {
|
|
1758
1789
|
const body = await response.text().catch(() => '');
|
|
1759
|
-
if (isExpiredTokenResponse(response.status, body) && await refreshAccessToken()) {
|
|
1790
|
+
if (isExpiredTokenResponse(response.status, body) && (await refreshAccessToken())) {
|
|
1760
1791
|
response = await fetchOnce();
|
|
1761
1792
|
}
|
|
1762
1793
|
else {
|
|
@@ -1770,7 +1801,9 @@ async function describeAttachment(kind, data, mediaType, name) {
|
|
|
1770
1801
|
if (body?.error)
|
|
1771
1802
|
message = body.error;
|
|
1772
1803
|
}
|
|
1773
|
-
catch {
|
|
1804
|
+
catch {
|
|
1805
|
+
/* non-JSON error body — keep the generic message */
|
|
1806
|
+
}
|
|
1774
1807
|
throw new Error(message);
|
|
1775
1808
|
}
|
|
1776
1809
|
const json = (await response.json());
|
|
@@ -1789,7 +1822,7 @@ async function getBalance() {
|
|
|
1789
1822
|
// path quietly recovers is just confusing.
|
|
1790
1823
|
if (response.status === 401 || response.status === 403) {
|
|
1791
1824
|
const body = await response.text().catch(() => '');
|
|
1792
|
-
if (isExpiredTokenResponse(response.status, body) && await refreshAccessToken()) {
|
|
1825
|
+
if (isExpiredTokenResponse(response.status, body) && (await refreshAccessToken())) {
|
|
1793
1826
|
response = await fetchOnce();
|
|
1794
1827
|
}
|
|
1795
1828
|
else {
|
|
@@ -1839,7 +1872,9 @@ async function setBillingTarget(teamId) {
|
|
|
1839
1872
|
if (parsed.error)
|
|
1840
1873
|
message = parsed.error;
|
|
1841
1874
|
}
|
|
1842
|
-
catch {
|
|
1875
|
+
catch {
|
|
1876
|
+
/* non-JSON body — keep the status message */
|
|
1877
|
+
}
|
|
1843
1878
|
throw new Error(message);
|
|
1844
1879
|
}
|
|
1845
1880
|
}
|
|
@@ -1858,7 +1893,7 @@ async function getOrgs() {
|
|
|
1858
1893
|
// frequently the first call the panel makes.
|
|
1859
1894
|
if (response.status === 401 || response.status === 403) {
|
|
1860
1895
|
const body = await response.text().catch(() => '');
|
|
1861
|
-
if (isExpiredTokenResponse(response.status, body) && await refreshAccessToken()) {
|
|
1896
|
+
if (isExpiredTokenResponse(response.status, body) && (await refreshAccessToken())) {
|
|
1862
1897
|
response = await fetchOnce();
|
|
1863
1898
|
}
|
|
1864
1899
|
else {
|
|
@@ -1880,7 +1915,7 @@ async function getCodeModels() {
|
|
|
1880
1915
|
let response = await fetchOnce();
|
|
1881
1916
|
if (response.status === 401 || response.status === 403) {
|
|
1882
1917
|
const body = await response.text().catch(() => '');
|
|
1883
|
-
if (isExpiredTokenResponse(response.status, body) && await refreshAccessToken()) {
|
|
1918
|
+
if (isExpiredTokenResponse(response.status, body) && (await refreshAccessToken())) {
|
|
1884
1919
|
response = await fetchOnce();
|
|
1885
1920
|
}
|
|
1886
1921
|
else {
|
|
@@ -1907,7 +1942,7 @@ async function getUsageDaily(days = 30) {
|
|
|
1907
1942
|
let response = await fetchOnce();
|
|
1908
1943
|
if (response.status === 401 || response.status === 403) {
|
|
1909
1944
|
const body = await response.text().catch(() => '');
|
|
1910
|
-
if (isExpiredTokenResponse(response.status, body) && await refreshAccessToken()) {
|
|
1945
|
+
if (isExpiredTokenResponse(response.status, body) && (await refreshAccessToken())) {
|
|
1911
1946
|
response = await fetchOnce();
|
|
1912
1947
|
}
|
|
1913
1948
|
else {
|
|
@@ -1986,7 +2021,7 @@ async function getUserProfile() {
|
|
|
1986
2021
|
let response = await fetchOnce();
|
|
1987
2022
|
if (response.status === 401 || response.status === 403) {
|
|
1988
2023
|
const body = await response.text().catch(() => '');
|
|
1989
|
-
if (isExpiredTokenResponse(response.status, body) && await refreshAccessToken()) {
|
|
2024
|
+
if (isExpiredTokenResponse(response.status, body) && (await refreshAccessToken())) {
|
|
1990
2025
|
response = await fetchOnce();
|
|
1991
2026
|
}
|
|
1992
2027
|
else {
|
|
@@ -2073,7 +2108,9 @@ function apiErrorMessage(status, text) {
|
|
|
2073
2108
|
if (typeof j.error === 'string' && j.error)
|
|
2074
2109
|
return j.error;
|
|
2075
2110
|
}
|
|
2076
|
-
catch {
|
|
2111
|
+
catch {
|
|
2112
|
+
/* not JSON — fall through to the raw text */
|
|
2113
|
+
}
|
|
2077
2114
|
return `API error ${status}${text ? `: ${text}` : ''}`;
|
|
2078
2115
|
}
|
|
2079
2116
|
async function scheduleRequest(method, path, body) {
|
|
@@ -2087,7 +2124,7 @@ async function scheduleRequest(method, path, body) {
|
|
|
2087
2124
|
// first call of a session is the common case, not an error to surface.
|
|
2088
2125
|
if (response.status === 401 || response.status === 403) {
|
|
2089
2126
|
const text = await response.text().catch(() => '');
|
|
2090
|
-
if (isExpiredTokenResponse(response.status, text) && await refreshAccessToken()) {
|
|
2127
|
+
if (isExpiredTokenResponse(response.status, text) && (await refreshAccessToken())) {
|
|
2091
2128
|
response = await fetchOnce();
|
|
2092
2129
|
}
|
|
2093
2130
|
else {
|
|
@@ -2101,9 +2138,7 @@ async function scheduleRequest(method, path, body) {
|
|
|
2101
2138
|
}
|
|
2102
2139
|
async function listCloudSchedules() {
|
|
2103
2140
|
const json = (await scheduleRequest('GET', '/schedules'));
|
|
2104
|
-
return Array.isArray(json?.schedules)
|
|
2105
|
-
? json.schedules.map((r) => scheduleRow(r))
|
|
2106
|
-
: [];
|
|
2141
|
+
return Array.isArray(json?.schedules) ? json.schedules.map((r) => scheduleRow(r)) : [];
|
|
2107
2142
|
}
|
|
2108
2143
|
async function createCloudSchedule(input) {
|
|
2109
2144
|
const task = String(input.task ?? '').trim();
|
|
@@ -2160,8 +2195,6 @@ async function runCloudScheduleNow(id) {
|
|
|
2160
2195
|
}
|
|
2161
2196
|
async function getCloudScheduleRuns(id) {
|
|
2162
2197
|
const json = (await scheduleRequest('GET', `/schedules/${scheduleId(id)}/runs`));
|
|
2163
|
-
return Array.isArray(json?.runs)
|
|
2164
|
-
? json.runs.map((r) => scheduleRunRow(r))
|
|
2165
|
-
: [];
|
|
2198
|
+
return Array.isArray(json?.runs) ? json.runs.map((r) => scheduleRunRow(r)) : [];
|
|
2166
2199
|
}
|
|
2167
2200
|
//# sourceMappingURL=client.js.map
|
package/dist/auth/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAiB3C,wBAAgB,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAGjD;AAED,wBAAgB,QAAQ,IAAI,UAAU,GAAG,IAAI,CAwB5C;AAED,wBAAgB,SAAS,IAAI,IAAI,CAQhC;AAED,wBAAgB,eAAe,IAAI,OAAO,CAGzC;AAED,wBAAgB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAGxC;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAM/C;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAiB3C,wBAAgB,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAGjD;AAED,wBAAgB,QAAQ,IAAI,UAAU,GAAG,IAAI,CAwB5C;AAED,wBAAgB,SAAS,IAAI,IAAI,CAQhC;AAED,wBAAgB,eAAe,IAAI,OAAO,CAGzC;AAED,wBAAgB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAGxC;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAM/C;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAwBvE;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,CAiBlE"}
|
package/dist/auth/index.js
CHANGED
|
@@ -140,7 +140,9 @@ function updateTokens(token, refreshToken) {
|
|
|
140
140
|
existing = parsed;
|
|
141
141
|
}
|
|
142
142
|
}
|
|
143
|
-
catch {
|
|
143
|
+
catch {
|
|
144
|
+
/* corrupt or unreadable — start clean rather than refuse to save */
|
|
145
|
+
}
|
|
144
146
|
ensureConfigDir();
|
|
145
147
|
const next = {
|
|
146
148
|
...existing,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/checkpoint/manager.ts"],"names":[],"mappings":"AA+CA,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/checkpoint/manager.ts"],"names":[],"mappings":"AA+CA,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AASD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CASlE;AA4BD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,OAAO,EAAE,OAAO,CAAC;IACjB,8FAA8F;IAC9F,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,SAAS,EAAE,MAAM,CAAC;IAClB,sGAAsG;IACtG,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,kFAAkF;IAClF,YAAY,EAAE,MAAM,CAAC;IACrB,6FAA6F;IAC7F,SAAS,EAAE,MAAM,CAAC;IAClB,6FAA6F;IAC7F,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AA6BD,qBAAa,iBAAiB;IAY1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAX1B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC;;;;OAIG;gBAEgB,OAAO,EAAE,MAAM,EAChC,KAAK,CAAC,EAAE,MAAM;IAchB,OAAO,CAAC,OAAO;IAIf;;;OAGG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAcpD;;;;;OAKG;IACH,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IA8BxE;;;;;;;OAOG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQxC,OAAO,CAAC,iBAAiB;IAiBzB,0FAA0F;IAC1F,UAAU,IAAI,IAAI;IAWlB,IAAI,IAAI,iBAAiB,EAAE;IAY3B,cAAc,IAAI,OAAO;IAIzB;;;;;OAKG;IACH,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IA0BnD,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,WAAW;IAyBnB,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,KAAK;IAOb,OAAO,CAAC,YAAY;CAsCrB"}
|
|
@@ -92,7 +92,10 @@ function isPotentiallyMutatingBash(command) {
|
|
|
92
92
|
if (!cmd)
|
|
93
93
|
return false;
|
|
94
94
|
// Multi-line or chained commands: assume mutating unless every segment is read-only.
|
|
95
|
-
const segments = cmd
|
|
95
|
+
const segments = cmd
|
|
96
|
+
.split(/\n|&&|\|\||;/)
|
|
97
|
+
.map((s) => s.trim())
|
|
98
|
+
.filter(Boolean);
|
|
96
99
|
return segments.some((seg) => !READONLY_BASH.test(seg));
|
|
97
100
|
}
|
|
98
101
|
function str(v) {
|
|
@@ -303,7 +306,9 @@ class CheckpointManager {
|
|
|
303
306
|
try {
|
|
304
307
|
fs.rmdirSync(snap.absPath);
|
|
305
308
|
}
|
|
306
|
-
catch {
|
|
309
|
+
catch {
|
|
310
|
+
/* non-empty dir — leave it */
|
|
311
|
+
}
|
|
307
312
|
}
|
|
308
313
|
}
|
|
309
314
|
}
|
|
@@ -343,7 +348,9 @@ class CheckpointManager {
|
|
|
343
348
|
fs.writeFileSync(tmp, JSON.stringify(persisted));
|
|
344
349
|
fs.renameSync(tmp, this.turnFile(turn.id));
|
|
345
350
|
}
|
|
346
|
-
catch {
|
|
351
|
+
catch {
|
|
352
|
+
/* best-effort */
|
|
353
|
+
}
|
|
347
354
|
}
|
|
348
355
|
persistIndex() {
|
|
349
356
|
try {
|
|
@@ -358,13 +365,17 @@ class CheckpointManager {
|
|
|
358
365
|
fs.writeFileSync(tmp, JSON.stringify(index));
|
|
359
366
|
fs.renameSync(tmp, path.join(this.storeDir, 'index.json'));
|
|
360
367
|
}
|
|
361
|
-
catch {
|
|
368
|
+
catch {
|
|
369
|
+
/* best-effort */
|
|
370
|
+
}
|
|
362
371
|
}
|
|
363
372
|
deleteTurnFile(id) {
|
|
364
373
|
try {
|
|
365
374
|
fs.unlinkSync(this.turnFile(id));
|
|
366
375
|
}
|
|
367
|
-
catch {
|
|
376
|
+
catch {
|
|
377
|
+
/* already gone */
|
|
378
|
+
}
|
|
368
379
|
}
|
|
369
380
|
prune() {
|
|
370
381
|
while (this.turns.length > MAX_PERSISTED_TURNS) {
|
|
@@ -401,14 +412,18 @@ class CheckpointManager {
|
|
|
401
412
|
snapshots,
|
|
402
413
|
});
|
|
403
414
|
}
|
|
404
|
-
catch {
|
|
415
|
+
catch {
|
|
416
|
+
/* skip corrupt turn file */
|
|
417
|
+
}
|
|
405
418
|
}
|
|
406
419
|
// Guard against a stale index: nextId must exceed every loaded id.
|
|
407
420
|
const maxId = this.turns.reduce((m, t) => Math.max(m, t.id), 0);
|
|
408
421
|
if (this.nextId <= maxId)
|
|
409
422
|
this.nextId = maxId + 1;
|
|
410
423
|
}
|
|
411
|
-
catch {
|
|
424
|
+
catch {
|
|
425
|
+
/* no persisted state — fresh start */
|
|
426
|
+
}
|
|
412
427
|
}
|
|
413
428
|
}
|
|
414
429
|
exports.CheckpointManager = CheckpointManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/commands/loader.ts"],"names":[],"mappings":"AA+BA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;CACrD;AAsED,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CASjE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAG7F;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/commands/loader.ts"],"names":[],"mappings":"AA+BA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;CACrD;AAsED,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CASjE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAG7F;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA4CnF;AAED,4FAA4F;AAC5F,wBAAgB,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3F"}
|
package/dist/commands/loader.js
CHANGED
|
@@ -144,7 +144,12 @@ function expandBody(body, argString, workDir) {
|
|
|
144
144
|
// !`shell command` → captured stdout
|
|
145
145
|
out = out.replace(/!`([^`]+)`/g, (_m, c) => {
|
|
146
146
|
try {
|
|
147
|
-
const stdout = (0, child_process_1.execSync)(c, {
|
|
147
|
+
const stdout = (0, child_process_1.execSync)(c, {
|
|
148
|
+
cwd: workDir,
|
|
149
|
+
encoding: 'utf-8',
|
|
150
|
+
timeout: 15000,
|
|
151
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
152
|
+
});
|
|
148
153
|
return stdout.trim();
|
|
149
154
|
}
|
|
150
155
|
catch (err) {
|
package/dist/index.d.ts
CHANGED
|
@@ -15,8 +15,10 @@ export * from './agent/claimEvidence';
|
|
|
15
15
|
export * from './agent/audit';
|
|
16
16
|
export * from './agent/memory';
|
|
17
17
|
export * from './agent/skills';
|
|
18
|
+
export * from './agent/nestedInstructions';
|
|
18
19
|
export * from './mcp/client';
|
|
19
20
|
export * from './mcp/httpClient';
|
|
21
|
+
export * from './mcp/instructions';
|
|
20
22
|
export * from './mcp/manager';
|
|
21
23
|
export * from './mcp/server';
|
|
22
24
|
export * from './mcp/stats';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -31,8 +31,10 @@ __exportStar(require("./agent/claimEvidence"), exports);
|
|
|
31
31
|
__exportStar(require("./agent/audit"), exports);
|
|
32
32
|
__exportStar(require("./agent/memory"), exports);
|
|
33
33
|
__exportStar(require("./agent/skills"), exports);
|
|
34
|
+
__exportStar(require("./agent/nestedInstructions"), exports);
|
|
34
35
|
__exportStar(require("./mcp/client"), exports);
|
|
35
36
|
__exportStar(require("./mcp/httpClient"), exports);
|
|
37
|
+
__exportStar(require("./mcp/instructions"), exports);
|
|
36
38
|
__exportStar(require("./mcp/manager"), exports);
|
|
37
39
|
__exportStar(require("./mcp/server"), exports);
|
|
38
40
|
__exportStar(require("./mcp/stats"), exports);
|
package/dist/mcp/client.d.ts
CHANGED
|
@@ -15,6 +15,23 @@ export interface McpServerConfig {
|
|
|
15
15
|
env?: Record<string, string>;
|
|
16
16
|
url?: string;
|
|
17
17
|
headers?: Record<string, string>;
|
|
18
|
+
/**
|
|
19
|
+
* Pre-registered OAuth client for servers without Dynamic Client Registration
|
|
20
|
+
* (Slack et al). When `clientId` is set, `nex mcp login`/`/mcp auth` skip DCR
|
|
21
|
+
* and authenticate as this client; `clientSecret` is sent via
|
|
22
|
+
* `client_secret_post` at both the code exchange and refresh. CC parity:
|
|
23
|
+
* `claude mcp add --client-id/--client-secret` (changelog 6591).
|
|
24
|
+
*/
|
|
25
|
+
clientId?: string;
|
|
26
|
+
clientSecret?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Keep this server's tools out of the backend's tool cap and tool-search deferral
|
|
29
|
+
* (CC parity — Claude Code's per-server `alwaysLoad`). The agent loop names pinned
|
|
30
|
+
* servers per request (`alwaysLoadServers`) and the backend keeps their
|
|
31
|
+
* `<server>__*` tools in context even when the catalogue exceeds the model's tool
|
|
32
|
+
* budget. Absent = tools follow the normal deferral/selection rules.
|
|
33
|
+
*/
|
|
34
|
+
alwaysLoad?: boolean;
|
|
18
35
|
/**
|
|
19
36
|
* Advertise the bare `elicitation: {}` capability instead of `{form:{},url:{}}`.
|
|
20
37
|
* Claude Code's escape hatch with the same name: a server with a strict capability
|
|
@@ -80,6 +97,11 @@ export declare const MCP_ELICITATION_CAPABILITY: {
|
|
|
80
97
|
readonly url: {};
|
|
81
98
|
};
|
|
82
99
|
};
|
|
100
|
+
export declare const MCP_PROTOCOL_VERSIONS: readonly ["2025-11-25", "2025-06-18", "2025-03-26", "2024-11-05"];
|
|
101
|
+
/** What every transport sends as `protocolVersion` in `initialize`. */
|
|
102
|
+
export declare const MCP_PROTOCOL_VERSION: string;
|
|
103
|
+
/** A server→client JSON-RPC notification: no id, a method, optional params. */
|
|
104
|
+
export type McpNotificationHandler = (method: string, params?: Record<string, unknown>) => void;
|
|
83
105
|
/**
|
|
84
106
|
* The `capabilities` object for initialize. `bare` (the per-server
|
|
85
107
|
* `bareElicitationCapability` config) sends the older empty shape — the same escape
|
|
@@ -118,6 +140,14 @@ export interface McpTransport {
|
|
|
118
140
|
getPrompt(name: string, args: Record<string, string>): Promise<string>;
|
|
119
141
|
/** Server→client elicitation. null restores the default (auto-decline). */
|
|
120
142
|
setElicitationHandler(handler: McpElicitationHandler | null): void;
|
|
143
|
+
/** The revision the server agreed to in `initialize` (undefined before connect / when omitted). */
|
|
144
|
+
readonly protocolVersion?: string;
|
|
145
|
+
/** `initialize.instructions` — reference notes the server wants the conversation to have. */
|
|
146
|
+
readonly instructions?: string;
|
|
147
|
+
/** Re-fetch `tools/list`. Called when a server announces `notifications/tools/list_changed`. */
|
|
148
|
+
refreshTools(): Promise<void>;
|
|
149
|
+
/** Server→client notifications (list_changed, ...). null stops delivery. */
|
|
150
|
+
setNotificationHandler(handler: McpNotificationHandler | null): void;
|
|
121
151
|
disconnect(): void;
|
|
122
152
|
}
|
|
123
153
|
export declare class McpClient implements McpTransport {
|
|
@@ -128,11 +158,23 @@ export declare class McpClient implements McpTransport {
|
|
|
128
158
|
private _buf;
|
|
129
159
|
private _tools;
|
|
130
160
|
private _elicitationHandler;
|
|
161
|
+
private _notificationHandler;
|
|
162
|
+
private _protocolVersion;
|
|
163
|
+
private _instructions;
|
|
131
164
|
readonly name: string;
|
|
132
165
|
constructor(name: string, config: McpServerConfig);
|
|
133
166
|
get tools(): McpToolDefinition[];
|
|
167
|
+
get protocolVersion(): string | undefined;
|
|
168
|
+
get instructions(): string | undefined;
|
|
134
169
|
setElicitationHandler(handler: McpElicitationHandler | null): void;
|
|
170
|
+
setNotificationHandler(handler: McpNotificationHandler | null): void;
|
|
135
171
|
connect(): Promise<void>;
|
|
172
|
+
/**
|
|
173
|
+
* Re-fetch `tools/list`. Called by the manager when a server announces
|
|
174
|
+
* `notifications/tools/list_changed`; on failure the OLD table stays in place
|
|
175
|
+
* (a transient error must not empty the toolset).
|
|
176
|
+
*/
|
|
177
|
+
refreshTools(): Promise<void>;
|
|
136
178
|
listResources(): Promise<McpResource[]>;
|
|
137
179
|
readResource(uri: string): Promise<string>;
|
|
138
180
|
listPrompts(): Promise<McpPrompt[]>;
|
package/dist/mcp/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/mcp/client.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,oFAAoF;IACpF,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;IAEhC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,2GAA2G;AAC3G,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,SAAU,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/mcp/client.ts"],"names":[],"mappings":"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"}
|