@integrity-labs/agt-cli 0.28.812 → 0.28.814
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-GBSP65E7.js → chunk-IABI5AX5.js} +6 -6
- package/dist/chunk-IABI5AX5.js.map +1 -0
- package/dist/{chunk-SBRKT2AV.js → chunk-Y33QUAGQ.js} +3 -3
- package/dist/{chunk-SBRKT2AV.js.map → chunk-Y33QUAGQ.js.map} +1 -1
- package/dist/{chunk-NKFM5VY3.js → chunk-ZBKYMWD4.js} +5 -5
- package/dist/chunk-ZBKYMWD4.js.map +1 -0
- package/dist/{claude-pair-runtime-WAXQINIW.js → claude-pair-runtime-HFNDYS4V.js} +2 -2
- package/dist/lib/manager-worker.js +71 -57
- package/dist/lib/manager-worker.js.map +1 -1
- package/dist/mcp/augmented-support.js +4 -4
- package/dist/mcp/direct-chat-channel.js +1 -1
- package/dist/mcp/index.js +4 -4
- package/dist/mcp/slack-channel.js +8 -8
- package/dist/mcp/telegram-channel.js +3 -3
- package/dist/{persistent-session-LYJCGKH3.js → persistent-session-5XVEPXBT.js} +3 -3
- package/dist/{responsiveness-probe-XRSACVMN.js → responsiveness-probe-7LZMXEWA.js} +3 -3
- package/dist/{session-auth-dead-Y6MASYWN.js → session-auth-dead-CDFUCZPH.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-GBSP65E7.js.map +0 -1
- package/dist/chunk-NKFM5VY3.js.map +0 -1
- /package/dist/{claude-pair-runtime-WAXQINIW.js.map → claude-pair-runtime-HFNDYS4V.js.map} +0 -0
- /package/dist/{persistent-session-LYJCGKH3.js.map → persistent-session-5XVEPXBT.js.map} +0 -0
- /package/dist/{responsiveness-probe-XRSACVMN.js.map → responsiveness-probe-7LZMXEWA.js.map} +0 -0
- /package/dist/{session-auth-dead-Y6MASYWN.js.map → session-auth-dead-CDFUCZPH.js.map} +0 -0
|
@@ -21173,10 +21173,10 @@ var fileRequestSchema = external_exports.object({
|
|
|
21173
21173
|
description: external_exports.string().min(1).describe("Full detail: what happened / what is wanted, and any reproduction steps."),
|
|
21174
21174
|
provider: external_exports.string().optional().describe('Optional provider/service name when asking for a new integration (e.g. "notion").'),
|
|
21175
21175
|
requester_email: external_exports.string().email().max(320).optional().describe(
|
|
21176
|
-
"The email of the person this request is for, so
|
|
21176
|
+
"The email of the person this request is for, so Ninjafy can email them when it's resolved. Only include an email they gave you and agreed to be contacted at - do NOT guess one."
|
|
21177
21177
|
),
|
|
21178
21178
|
requester_user_id: external_exports.string().uuid().optional().describe(
|
|
21179
|
-
"Optional
|
|
21179
|
+
"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
21180
|
)
|
|
21181
21181
|
});
|
|
21182
21182
|
var searchKbSchema = external_exports.object({
|
|
@@ -21387,7 +21387,7 @@ server.tool(
|
|
|
21387
21387
|
);
|
|
21388
21388
|
server.tool(
|
|
21389
21389
|
"support_file_support_request",
|
|
21390
|
-
"File a BUG report to
|
|
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.",
|
|
21391
21391
|
fileRequestSchema.shape,
|
|
21392
21392
|
async (args) => {
|
|
21393
21393
|
try {
|
|
@@ -21399,7 +21399,7 @@ server.tool(
|
|
|
21399
21399
|
);
|
|
21400
21400
|
server.tool(
|
|
21401
21401
|
"support_file_feature_request",
|
|
21402
|
-
'File a FEATURE or new-integration request to Augmented Team
|
|
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 }.',
|
|
21403
21403
|
fileRequestSchema.shape,
|
|
21404
21404
|
async (args) => {
|
|
21405
21405
|
try {
|
|
@@ -38819,7 +38819,7 @@ function createKanbanCardActiveClient(args) {
|
|
|
38819
38819
|
|
|
38820
38820
|
// src/maintenance-mode.ts
|
|
38821
38821
|
var FLAG_KEY = "platform-maintenance-mode";
|
|
38822
|
-
var MAINTENANCE_OFFLINE_MESSAGE = "The
|
|
38822
|
+
var MAINTENANCE_OFFLINE_MESSAGE = "The Ninjafy platform is offline for scheduled maintenance right now, so I can't pick this up \u2014 please try again shortly.";
|
|
38823
38823
|
function isMaintenanceModeActive(opts) {
|
|
38824
38824
|
return resolveHostBooleanFlag({
|
|
38825
38825
|
key: FLAG_KEY,
|
package/dist/mcp/index.js
CHANGED
|
@@ -44658,7 +44658,7 @@ var FEATURE_REQUEST_TYPES = [
|
|
|
44658
44658
|
function describeFeatureRequestResult(resp) {
|
|
44659
44659
|
if (resp.status === "created") {
|
|
44660
44660
|
return {
|
|
44661
|
-
text: "Feature request submitted to
|
|
44661
|
+
text: "Feature request submitted to Ninjafy support.",
|
|
44662
44662
|
isError: false
|
|
44663
44663
|
};
|
|
44664
44664
|
}
|
|
@@ -46351,7 +46351,7 @@ server.tool(
|
|
|
46351
46351
|
);
|
|
46352
46352
|
server.tool(
|
|
46353
46353
|
"request_feature",
|
|
46354
|
-
'Send a feature request to Augmented Team
|
|
46354
|
+
'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. If the request came from a specific end user, you can pass their requester_email (only with their consent) so Ninjafy can email them directly when it is resolved.',
|
|
46355
46355
|
{
|
|
46356
46356
|
feature_type: external_exports.enum(FEATURE_REQUEST_TYPES).describe(
|
|
46357
46357
|
'What kind of request this is. Use "integration" to ask for a new third-party integration/toolkit; otherwise: tool, channel, capability, bug, or other.'
|
|
@@ -46367,10 +46367,10 @@ server.tool(
|
|
|
46367
46367
|
"ENG-9246. Leave this unset on a first attempt. If your request is declined because Augmented already sells the capability, the reply names the integration and the request_integration_access call to make instead \u2014 do that. Only set this to true, and say why in the description, when the customer genuinely needs a DIFFERENT vendor rather than the capability itself. It does not make a stronger case; it just records that you checked."
|
|
46368
46368
|
),
|
|
46369
46369
|
requester_email: external_exports.string().email().max(320).optional().describe(
|
|
46370
|
-
"The email address of the end user who asked for this, so
|
|
46370
|
+
"The email address of the end user who asked for this, so Ninjafy can email them when it is resolved. Only include an email the user has given you and agreed to be contacted at - do NOT guess or invent one. Omit if you don't have their consent or an address."
|
|
46371
46371
|
),
|
|
46372
46372
|
requester_user_id: external_exports.string().uuid().optional().describe(
|
|
46373
|
-
"Optional
|
|
46373
|
+
"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."
|
|
46374
46374
|
)
|
|
46375
46375
|
},
|
|
46376
46376
|
async (params) => {
|
|
@@ -30691,7 +30691,7 @@ function resolveSlackScheduledChannelGuardMode(opts) {
|
|
|
30691
30691
|
|
|
30692
30692
|
// src/maintenance-mode.ts
|
|
30693
30693
|
var FLAG_KEY = "platform-maintenance-mode";
|
|
30694
|
-
var MAINTENANCE_OFFLINE_MESSAGE = "The
|
|
30694
|
+
var MAINTENANCE_OFFLINE_MESSAGE = "The Ninjafy platform is offline for scheduled maintenance right now, so I can't pick this up \u2014 please try again shortly.";
|
|
30695
30695
|
function isMaintenanceModeActive(opts) {
|
|
30696
30696
|
return resolveHostBooleanFlag({
|
|
30697
30697
|
key: FLAG_KEY,
|
|
@@ -41439,7 +41439,7 @@ function resolveSlackInboundDir(codeName) {
|
|
|
41439
41439
|
function explainSlackFileAccessError(stage, detail) {
|
|
41440
41440
|
if (stage === "files.info") {
|
|
41441
41441
|
if (detail === "missing_scope") {
|
|
41442
|
-
return "the bot token lacks the files:read OAuth scope; add it to the Slack app (
|
|
41442
|
+
return "the bot token lacks the files:read OAuth scope; add it to the Slack app (Ninjafy installs include it by default) and reinstall the app";
|
|
41443
41443
|
}
|
|
41444
41444
|
if (detail === "file_not_found" || detail === "not_visible" || detail === "access_denied") {
|
|
41445
41445
|
return "Slack reports this for files the bot token cannot access, not only for deleted files. If the file was uploaded by another (peer) agent, verify this bot has the files:read scope and is a member of the conversation where the file was shared";
|
|
@@ -42505,11 +42505,11 @@ function parseTeamPeerUserIdsEnv(raw) {
|
|
|
42505
42505
|
function reasonGuidance(reason) {
|
|
42506
42506
|
switch (reason) {
|
|
42507
42507
|
case "mode_off":
|
|
42508
|
-
return "Peer collaboration is off for this agent (peer_agent_mode). Enable it in the
|
|
42508
|
+
return "Peer collaboration is off for this agent (peer_agent_mode). Enable it in the Ninjafy console: Agent > Channels > Slack > Advanced > Multi-agent collaboration (set mode to listen/respond and add this channel to the allowed channels), then declare the peer under CHARTER multi_agent.slack_peers.";
|
|
42509
42509
|
case "chat_not_allowed":
|
|
42510
|
-
return "Peer collaboration is on but this channel is not in peer_group_ids. Add it in the
|
|
42510
|
+
return "Peer collaboration is on but this channel is not in peer_group_ids. Add it in the Ninjafy console: Agent > Channels > Slack > Advanced > Multi-agent collaboration > allowed channels.";
|
|
42511
42511
|
case "unknown_peer":
|
|
42512
|
-
return "Peer collaboration is on but this sender is not a declared peer. Declare it under CHARTER multi_agent.slack_peers (Agent > Charter in the
|
|
42512
|
+
return "Peer collaboration is on but this sender is not a declared peer. Declare it under CHARTER multi_agent.slack_peers (Agent > Charter in the Ninjafy console) with the peer agent's code_name and bot_user_id.";
|
|
42513
42513
|
default:
|
|
42514
42514
|
return "";
|
|
42515
42515
|
}
|
|
@@ -42521,7 +42521,7 @@ function maybePeerEnablementHint(args) {
|
|
|
42521
42521
|
const key2 = `${channel}:${senderUserId}`;
|
|
42522
42522
|
if (seen.has(key2)) return null;
|
|
42523
42523
|
seen.add(key2);
|
|
42524
|
-
return `slack-channel(${agentCodeName}): [peer-hint] dropped a message from same-team agent ${senderUserId} (reason=${reason}) in channel ${channelHash}. Another
|
|
42524
|
+
return `slack-channel(${agentCodeName}): [peer-hint] dropped a message from same-team agent ${senderUserId} (reason=${reason}) in channel ${channelHash}. Another Ninjafy managed agent is posting in this channel, but this agent cannot see it. ${reasonGuidance(reason)} This hint is logged once per channel/peer.`;
|
|
42525
42525
|
}
|
|
42526
42526
|
|
|
42527
42527
|
// src/cross-team-peer-audit-client.ts
|
|
@@ -45230,7 +45230,7 @@ async function handleNotifyCommand(payload, codeName) {
|
|
|
45230
45230
|
`);
|
|
45231
45231
|
await postEphemeralViaResponseUrl(
|
|
45232
45232
|
responseUrl,
|
|
45233
|
-
`\u{1F6AB} \`/notify\` is limited to \`${codeName}\`'s team and the person it reports to. If that's you, link your Slack in your
|
|
45233
|
+
`\u{1F6AB} \`/notify\` is limited to \`${codeName}\`'s team and the person it reports to. If that's you, link your Slack in your Ninjafy contact preferences and wait for the next refresh.`,
|
|
45234
45234
|
codeName
|
|
45235
45235
|
);
|
|
45236
45236
|
return;
|
|
@@ -45673,7 +45673,7 @@ async function handleSlashCommandEnvelope(payload) {
|
|
|
45673
45673
|
);
|
|
45674
45674
|
await postEphemeralViaResponseUrl(
|
|
45675
45675
|
responseUrl,
|
|
45676
|
-
`\u{1F6AB} \`/ping\` is limited to \`${codeName}\`'s team and the person it reports to. If that's you, link your Slack in your
|
|
45676
|
+
`\u{1F6AB} \`/ping\` is limited to \`${codeName}\`'s team and the person it reports to. If that's you, link your Slack in your Ninjafy contact preferences and wait for the next refresh.`,
|
|
45677
45677
|
codeName
|
|
45678
45678
|
);
|
|
45679
45679
|
return;
|
|
@@ -30829,7 +30829,7 @@ function resolveGhostReplyMode(opts) {
|
|
|
30829
30829
|
|
|
30830
30830
|
// src/maintenance-mode.ts
|
|
30831
30831
|
var FLAG_KEY = "platform-maintenance-mode";
|
|
30832
|
-
var MAINTENANCE_OFFLINE_MESSAGE = "The
|
|
30832
|
+
var MAINTENANCE_OFFLINE_MESSAGE = "The Ninjafy platform is offline for scheduled maintenance right now, so I can't pick this up \u2014 please try again shortly.";
|
|
30833
30833
|
function isMaintenanceModeActive(opts) {
|
|
30834
30834
|
return resolveHostBooleanFlag({
|
|
30835
30835
|
key: FLAG_KEY,
|
|
@@ -42723,7 +42723,7 @@ async function handleInvestigateCommand(opts) {
|
|
|
42723
42723
|
`denied reason=${verdict.reason} sender=${opts.senderId ? redactId(opts.senderId) : "unknown"}`
|
|
42724
42724
|
);
|
|
42725
42725
|
emitAudit("denied", verdict.reason);
|
|
42726
|
-
const denialText = verdict.reason === "not-dm" ? `\u26A0\uFE0F \`${investigateCmd}\` only works in a direct message with \`${AGENT_CODE_NAME}\` \u2014 it shows the agent's raw terminal, so it stays 1:1. Open a DM with the bot and run it there.` : verdict.reason === "allowlist-empty" ? `\u{1F6AB} \`${investigateCmd}\` is disabled for \`${AGENT_CODE_NAME}\` \u2014 no diagnostic allowlist reached this host. It is derived from team owners/admins and the agent's reports-to person; if that's you, link your Telegram in your
|
|
42726
|
+
const denialText = verdict.reason === "not-dm" ? `\u26A0\uFE0F \`${investigateCmd}\` only works in a direct message with \`${AGENT_CODE_NAME}\` \u2014 it shows the agent's raw terminal, so it stays 1:1. Open a DM with the bot and run it there.` : verdict.reason === "allowlist-empty" ? `\u{1F6AB} \`${investigateCmd}\` is disabled for \`${AGENT_CODE_NAME}\` \u2014 no diagnostic allowlist reached this host. It is derived from team owners/admins and the agent's reports-to person; if that's you, link your Telegram in your Ninjafy contact preferences and wait for the next refresh.` : `\u{1F6AB} \`${investigateCmd}\` denied \u2014 it's limited to team owners/admins and the person this agent reports to. If that's you, link your Telegram in your Ninjafy contact preferences and wait for the next refresh.`;
|
|
42727
42727
|
await sendInvestigateReply(opts.chatId, opts.messageId, denialText);
|
|
42728
42728
|
return;
|
|
42729
42729
|
}
|
|
@@ -45293,7 +45293,7 @@ async function pollLoop() {
|
|
|
45293
45293
|
"sendMessage",
|
|
45294
45294
|
{
|
|
45295
45295
|
chat_id: chatId,
|
|
45296
|
-
text: `\u{1F6AB} /ping is limited to ${AGENT_CODE_NAME}'s team and the person it reports to. If that's you, link your Telegram in your
|
|
45296
|
+
text: `\u{1F6AB} /ping is limited to ${AGENT_CODE_NAME}'s team and the person it reports to. If that's you, link your Telegram in your Ninjafy contact preferences and wait for the next refresh.`,
|
|
45297
45297
|
reply_to_message_id: Number(msg.message_id)
|
|
45298
45298
|
},
|
|
45299
45299
|
1e4
|
|
@@ -49,8 +49,8 @@ import {
|
|
|
49
49
|
writeDirectChatSessionState,
|
|
50
50
|
writeEgressAllowlist,
|
|
51
51
|
writePersistentClaudeWrapper
|
|
52
|
-
} from "./chunk-
|
|
53
|
-
import "./chunk-
|
|
52
|
+
} from "./chunk-Y33QUAGQ.js";
|
|
53
|
+
import "./chunk-IABI5AX5.js";
|
|
54
54
|
import "./chunk-XWVM4KPK.js";
|
|
55
55
|
export {
|
|
56
56
|
EGRESS_BASELINE_DOMAINS,
|
|
@@ -104,4 +104,4 @@ export {
|
|
|
104
104
|
writeEgressAllowlist,
|
|
105
105
|
writePersistentClaudeWrapper
|
|
106
106
|
};
|
|
107
|
-
//# sourceMappingURL=persistent-session-
|
|
107
|
+
//# sourceMappingURL=persistent-session-5XVEPXBT.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
paneLogPath
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-Y33QUAGQ.js";
|
|
4
|
+
import "./chunk-IABI5AX5.js";
|
|
5
5
|
import "./chunk-XWVM4KPK.js";
|
|
6
6
|
|
|
7
7
|
// src/lib/responsiveness-probe.ts
|
|
@@ -745,4 +745,4 @@ export {
|
|
|
745
745
|
readAndResetSlackReplyBindingClassifications,
|
|
746
746
|
readAndResetSlackReplyTargetClassifications
|
|
747
747
|
};
|
|
748
|
-
//# sourceMappingURL=responsiveness-probe-
|
|
748
|
+
//# sourceMappingURL=responsiveness-probe-7LZMXEWA.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
sessionTranscriptDir
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-IABI5AX5.js";
|
|
4
4
|
|
|
5
5
|
// src/lib/session-auth-dead.ts
|
|
6
6
|
import { closeSync, openSync, readSync, readdirSync, statSync } from "fs";
|
|
@@ -203,4 +203,4 @@ export {
|
|
|
203
203
|
decideSessionAuthState,
|
|
204
204
|
probeSessionAuth
|
|
205
205
|
};
|
|
206
|
-
//# sourceMappingURL=session-auth-dead-
|
|
206
|
+
//# sourceMappingURL=session-auth-dead-CDFUCZPH.js.map
|