@integrity-labs/agt-cli 0.28.1080 → 0.28.1082
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/agt.js +5 -5
- package/dist/{chunk-SREQF7XT.js → chunk-FLFTBRLE.js} +2 -2
- package/dist/{chunk-W4NEUOMU.js → chunk-OHLUDXM5.js} +4 -4
- package/dist/{chunk-7F2UFKYG.js → chunk-Z67TJFO3.js} +1 -1
- package/dist/chunk-Z67TJFO3.js.map +1 -0
- package/dist/{claude-pair-runtime-JCCZH6OO.js → claude-pair-runtime-YJCJQQNE.js} +2 -2
- package/dist/lib/manager-worker.js +16 -16
- package/dist/mcp/augmented-support.js +25 -3
- package/dist/mcp/index.js +25 -2
- package/dist/{persistent-session-HC2M4YIE.js → persistent-session-FMOFWGZX.js} +3 -3
- package/dist/{responsiveness-probe-FU36EGNL.js → responsiveness-probe-ZTKCVELK.js} +3 -3
- package/dist/{session-auth-dead-W6E555FY.js → session-auth-dead-IYV2MKPS.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-7F2UFKYG.js.map +0 -1
- /package/dist/{chunk-SREQF7XT.js.map → chunk-FLFTBRLE.js.map} +0 -0
- /package/dist/{chunk-W4NEUOMU.js.map → chunk-OHLUDXM5.js.map} +0 -0
- /package/dist/{claude-pair-runtime-JCCZH6OO.js.map → claude-pair-runtime-YJCJQQNE.js.map} +0 -0
- /package/dist/{persistent-session-HC2M4YIE.js.map → persistent-session-FMOFWGZX.js.map} +0 -0
- /package/dist/{responsiveness-probe-FU36EGNL.js.map → responsiveness-probe-ZTKCVELK.js.map} +0 -0
- /package/dist/{session-auth-dead-W6E555FY.js.map → session-auth-dead-IYV2MKPS.js.map} +0 -0
|
@@ -266,7 +266,7 @@ async function spawnPairSession(session) {
|
|
|
266
266
|
return { ok: true };
|
|
267
267
|
} catch {
|
|
268
268
|
}
|
|
269
|
-
const { resolveClaudeBinary } = await import("./persistent-session-
|
|
269
|
+
const { resolveClaudeBinary } = await import("./persistent-session-FMOFWGZX.js");
|
|
270
270
|
const claudeBin = resolveClaudeBinary();
|
|
271
271
|
const pairEnv = {
|
|
272
272
|
...process.env,
|
|
@@ -734,4 +734,4 @@ export {
|
|
|
734
734
|
startClaudePair,
|
|
735
735
|
submitClaudePairCode
|
|
736
736
|
};
|
|
737
|
-
//# sourceMappingURL=claude-pair-runtime-
|
|
737
|
+
//# sourceMappingURL=claude-pair-runtime-YJCJQQNE.js.map
|
|
@@ -67,7 +67,7 @@ import {
|
|
|
67
67
|
safeWriteJsonAtomic,
|
|
68
68
|
setConfigHash,
|
|
69
69
|
tripClass
|
|
70
|
-
} from "../chunk-
|
|
70
|
+
} from "../chunk-OHLUDXM5.js";
|
|
71
71
|
import {
|
|
72
72
|
getProjectDir as getProjectDir2,
|
|
73
73
|
getReadyTasks,
|
|
@@ -154,7 +154,7 @@ import {
|
|
|
154
154
|
webFetchBaselineValue,
|
|
155
155
|
webFetchRestartNeeded,
|
|
156
156
|
writeEgressAllowlist
|
|
157
|
-
} from "../chunk-
|
|
157
|
+
} from "../chunk-FLFTBRLE.js";
|
|
158
158
|
import {
|
|
159
159
|
ACCOUNT_ENFORCEMENT_MARKER_FILENAME,
|
|
160
160
|
AnchorSessionClient,
|
|
@@ -263,7 +263,7 @@ import {
|
|
|
263
263
|
subagentActivityAgeSeconds,
|
|
264
264
|
sumTranscriptUsageInWindow,
|
|
265
265
|
transcriptActivityAgeSeconds
|
|
266
|
-
} from "../chunk-
|
|
266
|
+
} from "../chunk-Z67TJFO3.js";
|
|
267
267
|
import {
|
|
268
268
|
classifyUnanswerablePane,
|
|
269
269
|
paneRemedy
|
|
@@ -14141,7 +14141,7 @@ var pendingDayRolloverReset = /* @__PURE__ */ new Set();
|
|
|
14141
14141
|
var dayRolloverInboundHold = /* @__PURE__ */ new Map();
|
|
14142
14142
|
var INBOUND_HOLD_EPISODE_GAP_MS = 12e4;
|
|
14143
14143
|
async function channelInboundActivityAgeSecondsFor(codeName) {
|
|
14144
|
-
const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-
|
|
14144
|
+
const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-ZTKCVELK.js");
|
|
14145
14145
|
const newest = newestPendingInboundActivityMtimeMs(dirname11(paneLogPath(codeName)));
|
|
14146
14146
|
if (newest === null) return null;
|
|
14147
14147
|
return Math.max(0, Math.floor((Date.now() - newest) / 1e3));
|
|
@@ -14899,7 +14899,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
14899
14899
|
var lastVersionCheckAt = 0;
|
|
14900
14900
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
14901
14901
|
var lastResponsivenessProbeAt = 0;
|
|
14902
|
-
var agtCliVersion = true ? "0.28.
|
|
14902
|
+
var agtCliVersion = true ? "0.28.1082" : "dev";
|
|
14903
14903
|
function resolveBrewPath(execFileSync3) {
|
|
14904
14904
|
try {
|
|
14905
14905
|
const out = execFileSync3("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -16516,7 +16516,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
|
|
|
16516
16516
|
if (codeNames.length === 0) return;
|
|
16517
16517
|
void (async () => {
|
|
16518
16518
|
try {
|
|
16519
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
16519
|
+
const { collectDiagnostics } = await import("../persistent-session-FMOFWGZX.js");
|
|
16520
16520
|
await api.post("/host/heartbeat", {
|
|
16521
16521
|
host_id: hostId,
|
|
16522
16522
|
agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor)
|
|
@@ -16658,7 +16658,7 @@ async function pollCycleInner() {
|
|
|
16658
16658
|
}
|
|
16659
16659
|
try {
|
|
16660
16660
|
const { detectHostSecurity } = await import("../host-security-KQYYZZVW.js");
|
|
16661
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
16661
|
+
const { collectDiagnostics } = await import("../persistent-session-FMOFWGZX.js");
|
|
16662
16662
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
16663
16663
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor) : void 0;
|
|
16664
16664
|
let tailscaleHostname;
|
|
@@ -16866,7 +16866,7 @@ async function pollCycleInner() {
|
|
|
16866
16866
|
collectPanelessActivityProbes,
|
|
16867
16867
|
getResponsivenessIntervalMs,
|
|
16868
16868
|
occupancyQualificationClassifications
|
|
16869
|
-
} = await import("../responsiveness-probe-
|
|
16869
|
+
} = await import("../responsiveness-probe-ZTKCVELK.js");
|
|
16870
16870
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
16871
16871
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
16872
16872
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -16983,7 +16983,7 @@ async function pollCycleInner() {
|
|
|
16983
16983
|
collectResponsivenessProbes,
|
|
16984
16984
|
livePendingInboundOldestAgeSeconds,
|
|
16985
16985
|
parkPendingInbound
|
|
16986
|
-
} = await import("../responsiveness-probe-
|
|
16986
|
+
} = await import("../responsiveness-probe-ZTKCVELK.js");
|
|
16987
16987
|
const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-M6AFZWNU.js");
|
|
16988
16988
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
16989
16989
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -17269,7 +17269,7 @@ async function pollCycleInner() {
|
|
|
17269
17269
|
}
|
|
17270
17270
|
}
|
|
17271
17271
|
);
|
|
17272
|
-
const { parkPendingInbound } = await import("../responsiveness-probe-
|
|
17272
|
+
const { parkPendingInbound } = await import("../responsiveness-probe-ZTKCVELK.js");
|
|
17273
17273
|
const { parked, deadLettered } = parkPendingInbound(codeName, new Date(fatalNowMs));
|
|
17274
17274
|
paneFatalStreak.delete(codeName);
|
|
17275
17275
|
paneFatalRestarts.set(codeName, [...history, fatalNowMs]);
|
|
@@ -17300,7 +17300,7 @@ async function pollCycleInner() {
|
|
|
17300
17300
|
TRANSCRIPT_MOUNT_ESCALATION_REFRESH_MS,
|
|
17301
17301
|
bindSourceEscalations
|
|
17302
17302
|
} = await import("../transcript-mount-health-OHE6IVJV.js");
|
|
17303
|
-
const { transcriptBindSourcesFor, ensureTranscriptBindSources } = await import("../persistent-session-
|
|
17303
|
+
const { transcriptBindSourcesFor, ensureTranscriptBindSources } = await import("../persistent-session-FMOFWGZX.js");
|
|
17304
17304
|
const mountConfig = resolveTranscriptMountConfig();
|
|
17305
17305
|
const liveAgents = agentState.persistentSessionAgents;
|
|
17306
17306
|
for (const tracked of [
|
|
@@ -17465,7 +17465,7 @@ async function pollCycleInner() {
|
|
|
17465
17465
|
}
|
|
17466
17466
|
try {
|
|
17467
17467
|
const { scrapeMcpFailedBannerCount } = await import("../pane-mcp-banner-scraper-VR5QGP3J.js");
|
|
17468
|
-
const { probeSessionAuth } = await import("../session-auth-dead-
|
|
17468
|
+
const { probeSessionAuth } = await import("../session-auth-dead-IYV2MKPS.js");
|
|
17469
17469
|
const observations = [];
|
|
17470
17470
|
const pendingCacheCommits = [];
|
|
17471
17471
|
const modelApiErrorReportingOn = hostFlagStore().getBoolean("model-api-error-reporting");
|
|
@@ -22030,7 +22030,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
22030
22030
|
try {
|
|
22031
22031
|
const freshId = rotateSessionForWedge(codeName);
|
|
22032
22032
|
consecutiveWedgeCycles.delete(codeName);
|
|
22033
|
-
const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-
|
|
22033
|
+
const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-ZTKCVELK.js");
|
|
22034
22034
|
const { parked, deadLettered } = parkForRestart(codeName, /* @__PURE__ */ new Date());
|
|
22035
22035
|
const parkNote = parked > 0 ? `, ${parked} inbound parked` : "";
|
|
22036
22036
|
const deadNote = deadLettered > 0 ? `, ${deadLettered} undeliverable dead-lettered` : "";
|
|
@@ -22073,7 +22073,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
22073
22073
|
void api.post("/host/restart-ack", { host_id: hostId, agent_id: agentId, restart_requested_at: requestedAt }).catch((err) => log(`[restart-lane] ack failed for '${codeName}': ${err.message}`));
|
|
22074
22074
|
void (async () => {
|
|
22075
22075
|
try {
|
|
22076
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
22076
|
+
const { collectDiagnostics } = await import("../persistent-session-FMOFWGZX.js");
|
|
22077
22077
|
await api.post("/host/heartbeat", {
|
|
22078
22078
|
host_id: hostId,
|
|
22079
22079
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor)
|
|
@@ -22124,7 +22124,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
|
|
|
22124
22124
|
}
|
|
22125
22125
|
try {
|
|
22126
22126
|
const hostId = await getHostId();
|
|
22127
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
22127
|
+
const { collectDiagnostics } = await import("../persistent-session-FMOFWGZX.js");
|
|
22128
22128
|
await api.post("/host/heartbeat", {
|
|
22129
22129
|
host_id: hostId,
|
|
22130
22130
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor)
|
|
@@ -22796,7 +22796,7 @@ async function processClaudePairSessions(agents) {
|
|
|
22796
22796
|
// cannot take it for itself — by the time it runs, the write it is looking
|
|
22797
22797
|
// for may already have happened.
|
|
22798
22798
|
snapshotPairConfig
|
|
22799
|
-
} = await import("../claude-pair-runtime-
|
|
22799
|
+
} = await import("../claude-pair-runtime-YJCJQQNE.js");
|
|
22800
22800
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
22801
22801
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
22802
22802
|
const killed = await killPairSession(pairTmuxSession(pairId));
|
|
@@ -21168,6 +21168,23 @@ var SupportClient = class _SupportClient {
|
|
|
21168
21168
|
var listSchema = external_exports.object({
|
|
21169
21169
|
limit: external_exports.number().int().positive().optional().describe("Max rows to return (page size, clamped server-side). Not a scope - reads are always your own org.")
|
|
21170
21170
|
});
|
|
21171
|
+
var NO_REQUESTER_REASONS = [
|
|
21172
|
+
"agent_initiated",
|
|
21173
|
+
"requester_declined_contact",
|
|
21174
|
+
"no_identifiable_user"
|
|
21175
|
+
];
|
|
21176
|
+
var NO_REQUESTER_REASON_DESCRIPTION = 'Required when you pass neither requester_email nor requester_user_id: say why there is no requester. "agent_initiated" = you are filing this on your own initiative, no person asked; "requester_declined_contact" = a person asked but did not agree to be contacted; "no_identifiable_user" = a person asked but you cannot tell who. Never pass this together with a requester.';
|
|
21177
|
+
function requesterChoiceError(args) {
|
|
21178
|
+
const hasRequester = Boolean(args.requester_email?.trim() || args.requester_user_id?.trim());
|
|
21179
|
+
const hasReason = Boolean(args.no_requester_reason);
|
|
21180
|
+
if (hasRequester && hasReason) {
|
|
21181
|
+
return "Not sent: pass either a requester (requester_email or requester_user_id) or no_requester_reason, not both.";
|
|
21182
|
+
}
|
|
21183
|
+
if (!hasRequester && !hasReason) {
|
|
21184
|
+
return `Not sent: say who this request is for. Pass requester_email (only with that person's consent) or requester_user_id, so Ninjafy can reply to them. If there is no one to reply to, pass no_requester_reason: "agent_initiated" (nobody asked, you are filing it yourself), "requester_declined_contact" (they asked but did not agree to be contacted) or "no_identifiable_user" (you cannot tell who asked). Then call this again.`;
|
|
21185
|
+
}
|
|
21186
|
+
return null;
|
|
21187
|
+
}
|
|
21171
21188
|
var fileRequestSchema = external_exports.object({
|
|
21172
21189
|
title: external_exports.string().min(1).describe("Short summary of the bug or request."),
|
|
21173
21190
|
description: external_exports.string().min(1).describe("Full detail: what happened / what is wanted, and any reproduction steps."),
|
|
@@ -21177,7 +21194,8 @@ var fileRequestSchema = external_exports.object({
|
|
|
21177
21194
|
),
|
|
21178
21195
|
requester_user_id: external_exports.string().uuid().optional().describe(
|
|
21179
21196
|
"Optional Ninjafy user id (UUID) of the requester, used to look up their email for the resolved-notification when you have an id but not an address."
|
|
21180
|
-
)
|
|
21197
|
+
),
|
|
21198
|
+
no_requester_reason: external_exports.enum(NO_REQUESTER_REASONS).optional().describe(NO_REQUESTER_REASON_DESCRIPTION)
|
|
21181
21199
|
});
|
|
21182
21200
|
var searchKbSchema = external_exports.object({
|
|
21183
21201
|
query: external_exports.string().trim().min(1).describe('What to look up in the knowledge base (e.g. "agent keeps restarting", "connect Slack").'),
|
|
@@ -21387,9 +21405,11 @@ server.tool(
|
|
|
21387
21405
|
);
|
|
21388
21406
|
server.tool(
|
|
21389
21407
|
"support_file_support_request",
|
|
21390
|
-
"File a BUG report to Ninjafy support when you hit a platform problem you cannot resolve from your own org (Ninjafy was formerly Augmented Team; either name means this platform). It goes to the Ninjafy support queue, not your org. Pass { title, description }. Returns { ok, status } - relay the outcome to the user.",
|
|
21408
|
+
"File a BUG report to Ninjafy support when you hit a platform problem you cannot resolve from your own org (Ninjafy was formerly Augmented Team; either name means this platform). It goes to the Ninjafy support queue, not your org. Pass { title, description } plus EITHER the requester (requester_email, only with their consent, or requester_user_id) OR no_requester_reason saying why there is none. Returns { ok, status } - relay the outcome to the user.",
|
|
21391
21409
|
fileRequestSchema.shape,
|
|
21392
21410
|
async (args) => {
|
|
21411
|
+
const choiceError = requesterChoiceError(args);
|
|
21412
|
+
if (choiceError) return { content: [{ type: "text", text: choiceError }], isError: true };
|
|
21393
21413
|
try {
|
|
21394
21414
|
return ok(await client.fileSupportRequest(args));
|
|
21395
21415
|
} catch (err) {
|
|
@@ -21399,9 +21419,11 @@ server.tool(
|
|
|
21399
21419
|
);
|
|
21400
21420
|
server.tool(
|
|
21401
21421
|
"support_file_feature_request",
|
|
21402
|
-
'File a FEATURE or new-integration request to Ninjafy support, formerly Augmented Team (goes to the support queue, not your org). Use `provider` for an integration ask (e.g. "notion"). Pass { title, description, provider? }. Returns { ok, status }.',
|
|
21422
|
+
'File a FEATURE or new-integration request to Ninjafy support, formerly Augmented Team (goes to the support queue, not your org). Use `provider` for an integration ask (e.g. "notion"). Pass { title, description, provider? } plus EITHER the requester (requester_email, only with their consent, or requester_user_id) OR no_requester_reason saying why there is none. Returns { ok, status }.',
|
|
21403
21423
|
fileRequestSchema.shape,
|
|
21404
21424
|
async (args) => {
|
|
21425
|
+
const choiceError = requesterChoiceError(args);
|
|
21426
|
+
if (choiceError) return { content: [{ type: "text", text: choiceError }], isError: true };
|
|
21405
21427
|
try {
|
|
21406
21428
|
return ok(await client.fileFeatureRequest(args));
|
|
21407
21429
|
} catch (err) {
|
package/dist/mcp/index.js
CHANGED
|
@@ -46685,6 +46685,23 @@ var FEATURE_REQUEST_TYPES = [
|
|
|
46685
46685
|
"bug",
|
|
46686
46686
|
"other"
|
|
46687
46687
|
];
|
|
46688
|
+
var NO_REQUESTER_REASONS = [
|
|
46689
|
+
"agent_initiated",
|
|
46690
|
+
"requester_declined_contact",
|
|
46691
|
+
"no_identifiable_user"
|
|
46692
|
+
];
|
|
46693
|
+
var NO_REQUESTER_REASON_DESCRIPTION = 'Required when you pass neither requester_email nor requester_user_id: say why there is no requester. "agent_initiated" = you are filing this on your own initiative, no person asked; "requester_declined_contact" = a person asked but did not agree to be contacted; "no_identifiable_user" = a person asked but you cannot tell who. Never pass this together with a requester.';
|
|
46694
|
+
function requesterChoiceError(args) {
|
|
46695
|
+
const hasRequester = Boolean(args.requester_email?.trim() || args.requester_user_id?.trim());
|
|
46696
|
+
const hasReason = Boolean(args.no_requester_reason);
|
|
46697
|
+
if (hasRequester && hasReason) {
|
|
46698
|
+
return "Not sent: pass either a requester (requester_email or requester_user_id) or no_requester_reason, not both.";
|
|
46699
|
+
}
|
|
46700
|
+
if (!hasRequester && !hasReason) {
|
|
46701
|
+
return `Not sent: say who this request is for. Pass requester_email (only with that person's consent) or requester_user_id, so Ninjafy can reply to them. If there is no one to reply to, pass no_requester_reason: "agent_initiated" (nobody asked, you are filing it yourself), "requester_declined_contact" (they asked but did not agree to be contacted) or "no_identifiable_user" (you cannot tell who asked). Then call this again.`;
|
|
46702
|
+
}
|
|
46703
|
+
return null;
|
|
46704
|
+
}
|
|
46688
46705
|
function describeFeatureRequestResult(resp) {
|
|
46689
46706
|
if (resp.status === "created") {
|
|
46690
46707
|
return {
|
|
@@ -48627,7 +48644,7 @@ server.tool(
|
|
|
48627
48644
|
);
|
|
48628
48645
|
server.tool(
|
|
48629
48646
|
"request_feature",
|
|
48630
|
-
'Send a feature request to Ninjafy support (formerly Augmented Team \u2014 the same platform either way, so use this whichever name the user says) \u2014 most often to ask for a NEW third-party integration that is not in your toolkit yet (set feature_type="integration" and put the service name in provider). Also accepts general product feedback (other feature_type values). Use this when a user needs a capability you do not have and that you cannot configure yourself. Do not use it for things you can already do or set up.
|
|
48647
|
+
'Send a feature request to Ninjafy support (formerly Augmented Team \u2014 the same platform either way, so use this whichever name the user says) \u2014 most often to ask for a NEW third-party integration that is not in your toolkit yet (set feature_type="integration" and put the service name in provider). Also accepts general product feedback (other feature_type values). Use this when a user needs a capability you do not have and that you cannot configure yourself. Do not use it for things you can already do or set up. Say who the request is for: pass the requester_email of the person who asked (only with their consent) or their requester_user_id, so Ninjafy can reply to them; if there is no one to reply to, pass no_requester_reason instead. One of the two is required.',
|
|
48631
48648
|
{
|
|
48632
48649
|
feature_type: external_exports.enum(FEATURE_REQUEST_TYPES).describe(
|
|
48633
48650
|
'What kind of request this is. Use "integration" to ask for a new third-party integration/toolkit; otherwise: tool, channel, capability, bug, or other.'
|
|
@@ -48647,9 +48664,14 @@ server.tool(
|
|
|
48647
48664
|
),
|
|
48648
48665
|
requester_user_id: external_exports.string().uuid().optional().describe(
|
|
48649
48666
|
"Optional Ninjafy user id (UUID) of the requester, used to look up their email for the resolved-notification when you have an id but not an address. Omit unless you know the actual Ninjafy user id."
|
|
48650
|
-
)
|
|
48667
|
+
),
|
|
48668
|
+
no_requester_reason: external_exports.enum(NO_REQUESTER_REASONS).optional().describe(NO_REQUESTER_REASON_DESCRIPTION)
|
|
48651
48669
|
},
|
|
48652
48670
|
async (params) => {
|
|
48671
|
+
const choiceError = requesterChoiceError(params);
|
|
48672
|
+
if (choiceError) {
|
|
48673
|
+
return { content: [{ type: "text", text: choiceError }], isError: true };
|
|
48674
|
+
}
|
|
48653
48675
|
if (!AGT_AGENT_CODE_NAME) {
|
|
48654
48676
|
return {
|
|
48655
48677
|
content: [{ type: "text", text: "Error: AGT_AGENT_CODE_NAME not configured." }],
|
|
@@ -48666,6 +48688,7 @@ server.tool(
|
|
|
48666
48688
|
...params.provider ? { provider: params.provider } : {},
|
|
48667
48689
|
...params.requester_email ? { requester_email: params.requester_email } : {},
|
|
48668
48690
|
...params.requester_user_id ? { requester_user_id: params.requester_user_id } : {},
|
|
48691
|
+
...params.no_requester_reason ? { no_requester_reason: params.no_requester_reason } : {},
|
|
48669
48692
|
...params.acknowledged_catalogue_alternative ? { acknowledged_catalogue_alternative: true } : {}
|
|
48670
48693
|
});
|
|
48671
48694
|
} catch (err) {
|
|
@@ -68,8 +68,8 @@ import {
|
|
|
68
68
|
writeDirectChatSessionState,
|
|
69
69
|
writeEgressAllowlist,
|
|
70
70
|
writePersistentClaudeWrapper
|
|
71
|
-
} from "./chunk-
|
|
72
|
-
import "./chunk-
|
|
71
|
+
} from "./chunk-FLFTBRLE.js";
|
|
72
|
+
import "./chunk-Z67TJFO3.js";
|
|
73
73
|
import "./chunk-OCMJ5E6J.js";
|
|
74
74
|
import "./chunk-XWVM4KPK.js";
|
|
75
75
|
import "./chunk-EL5MWGGH.js";
|
|
@@ -145,4 +145,4 @@ export {
|
|
|
145
145
|
writeEgressAllowlist,
|
|
146
146
|
writePersistentClaudeWrapper
|
|
147
147
|
};
|
|
148
|
-
//# sourceMappingURL=persistent-session-
|
|
148
|
+
//# sourceMappingURL=persistent-session-FMOFWGZX.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
paneLogPath
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-FLFTBRLE.js";
|
|
4
|
+
import "./chunk-Z67TJFO3.js";
|
|
5
5
|
import "./chunk-OCMJ5E6J.js";
|
|
6
6
|
import "./chunk-XWVM4KPK.js";
|
|
7
7
|
import "./chunk-EL5MWGGH.js";
|
|
@@ -802,4 +802,4 @@ export {
|
|
|
802
802
|
readAndResetSlackReplyBindingClassifications,
|
|
803
803
|
readAndResetSlackReplyTargetClassifications
|
|
804
804
|
};
|
|
805
|
-
//# sourceMappingURL=responsiveness-probe-
|
|
805
|
+
//# sourceMappingURL=responsiveness-probe-ZTKCVELK.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
sessionTranscriptDir
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-Z67TJFO3.js";
|
|
4
4
|
import "./chunk-DGUM43GV.js";
|
|
5
5
|
|
|
6
6
|
// src/lib/session-auth-dead.ts
|
|
@@ -204,4 +204,4 @@ export {
|
|
|
204
204
|
decideSessionAuthState,
|
|
205
205
|
probeSessionAuth
|
|
206
206
|
};
|
|
207
|
-
//# sourceMappingURL=session-auth-dead-
|
|
207
|
+
//# sourceMappingURL=session-auth-dead-IYV2MKPS.js.map
|