@integrity-labs/agt-cli 0.28.296 → 0.28.298
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 +4 -4
- package/dist/{chunk-QXU5FMXN.js → chunk-5LUVY4P6.js} +40 -2
- package/dist/{chunk-QXU5FMXN.js.map → chunk-5LUVY4P6.js.map} +1 -1
- package/dist/{chunk-DZLBOAQ2.js → chunk-EF42DMMK.js} +3 -3
- package/dist/{claude-pair-runtime-BIBIVB7I.js → claude-pair-runtime-UTQO3G5A.js} +2 -2
- package/dist/lib/manager-worker.js +14 -12
- package/dist/lib/manager-worker.js.map +1 -1
- package/dist/mcp/index.js +4 -0
- package/dist/mcp/origami.js +39 -1
- package/dist/mcp/slack-channel.js +58 -2
- package/dist/{persistent-session-A5N7BYS3.js → persistent-session-ZQUFIWLK.js} +2 -2
- package/dist/{responsiveness-probe-OZP2HO2F.js → responsiveness-probe-BFB2G333.js} +2 -2
- package/package.json +1 -1
- /package/dist/{chunk-DZLBOAQ2.js.map → chunk-EF42DMMK.js.map} +0 -0
- /package/dist/{claude-pair-runtime-BIBIVB7I.js.map → claude-pair-runtime-UTQO3G5A.js.map} +0 -0
- /package/dist/{persistent-session-A5N7BYS3.js.map → persistent-session-ZQUFIWLK.js.map} +0 -0
- /package/dist/{responsiveness-probe-OZP2HO2F.js.map → responsiveness-probe-BFB2G333.js.map} +0 -0
package/dist/mcp/index.js
CHANGED
|
@@ -22533,6 +22533,9 @@ server.tool(
|
|
|
22533
22533
|
"Short form title (max 24 chars - the Slack modal title limit), shown on the button and as the modal heading. Put longer context in intro."
|
|
22534
22534
|
),
|
|
22535
22535
|
intro: external_exports.string().max(1e3).optional().describe("Optional context shown above the button and inside the modal (what you are asking and why)."),
|
|
22536
|
+
button_label: external_exports.string().min(1).max(75).optional().describe(
|
|
22537
|
+
'Optional label for the button that opens the form (max 75 chars). Defaults to "Fill out form". Use a specific call-to-action so the person knows what they are opening, e.g. "Start intake", "Give feedback", "Book a slot", "Submit your update".'
|
|
22538
|
+
),
|
|
22536
22539
|
schema: external_exports.record(external_exports.unknown()).describe(
|
|
22537
22540
|
'The form definition as a constrained JSON Schema: { "type": "object", "properties": { "<field>": { "type": "string|number|integer|boolean|array", "enum"?: [...], "format"?: "date|time|date-time|email|uri", ... } }, "required": ["..."] }. Flat only - no nested objects or oneOf/anyOf/allOf.'
|
|
22538
22541
|
),
|
|
@@ -22555,6 +22558,7 @@ server.tool(
|
|
|
22555
22558
|
...params.thread_ts ? { thread_ts: params.thread_ts } : {},
|
|
22556
22559
|
title: params.title,
|
|
22557
22560
|
...params.intro ? { intro: params.intro } : {},
|
|
22561
|
+
...params.button_label ? { button_label: params.button_label } : {},
|
|
22558
22562
|
schema: params.schema,
|
|
22559
22563
|
...params.request_id ? { request_id: params.request_id } : {}
|
|
22560
22564
|
});
|
package/dist/mcp/origami.js
CHANGED
|
@@ -38842,7 +38842,10 @@ var INTEGRATION_REGISTRY = [
|
|
|
38842
38842
|
note: "Billed per second of generated video; the rate depends on the resolution.",
|
|
38843
38843
|
meters: [
|
|
38844
38844
|
{ event_type: "grok_imagine_video_1_5_480p", unit: "second" },
|
|
38845
|
-
{ event_type: "grok_imagine_video_1_5_720p", unit: "second" }
|
|
38845
|
+
{ event_type: "grok_imagine_video_1_5_720p", unit: "second" },
|
|
38846
|
+
// 1080p is image-to-video only (xAI restriction); metered when the
|
|
38847
|
+
// agent supplies image_url (ENG-7675).
|
|
38848
|
+
{ event_type: "grok_imagine_video_1_5_1080p", unit: "second" }
|
|
38846
38849
|
]
|
|
38847
38850
|
}
|
|
38848
38851
|
},
|
|
@@ -40115,6 +40118,41 @@ var FLAG_REGISTRY = [
|
|
|
40115
40118
|
// safety control, so mutations require explicit confirmation.
|
|
40116
40119
|
sensitive: true
|
|
40117
40120
|
},
|
|
40121
|
+
{
|
|
40122
|
+
key: "composio-hitl-mode",
|
|
40123
|
+
description: "Composio managed-toolkits HITL gate (ENG-6027): off = kill switch, shadow = resolve + audit the tier decision but never block, enforce = block write_high_risk+ calls (routed to approval when hitl-approval-routing is on). Per-org rollout from the admin Feature Flags page; ENG-7672 migrated this off the fleet-wide COMPOSIO_HITL_MODE env var.",
|
|
40124
|
+
flagType: "enum",
|
|
40125
|
+
allowedValues: ["off", "shadow", "enforce"],
|
|
40126
|
+
// Declared safe value is `shadow` (resolve + audit, never block) — NOT `off`.
|
|
40127
|
+
// shadow keeps the control evaluating + producing enforce-flip evidence while
|
|
40128
|
+
// staying non-blocking, and matches the pre-flag compiled default so migrating
|
|
40129
|
+
// onto the flag (ENG-7672) preserves fleet behaviour. A flag-DB read error
|
|
40130
|
+
// degrades here. `enforce` is the deliberate, audited flip.
|
|
40131
|
+
defaultValue: "shadow",
|
|
40132
|
+
// Migration override (ADR-0022): the pre-flags env gate stays the
|
|
40133
|
+
// highest-precedence operator override. It is only injected onto the Lambdas
|
|
40134
|
+
// when an operator explicitly sets it (sst.config.ts) — otherwise this flag governs.
|
|
40135
|
+
envVar: "COMPOSIO_HITL_MODE",
|
|
40136
|
+
// enforce blocks prod tool calls, so weakening it (enforce → shadow/off) drops a
|
|
40137
|
+
// safety control — mutations require explicit confirmation.
|
|
40138
|
+
sensitive: true
|
|
40139
|
+
},
|
|
40140
|
+
{
|
|
40141
|
+
key: "hitl-approval-routing",
|
|
40142
|
+
description: "Routing for HITL-blocked integration calls (ENG-6028): off = blocked calls return the terminal block, on = route them into the approval-core flow (approval_requests row + Slack approval card). Needs a block first (composio-hitl-mode=enforce, or the always-on Direct-HTTP lane). Per-org rollout; ENG-7672 migrated this off the fleet-wide HITL_APPROVAL_ROUTING env var.",
|
|
40143
|
+
flagType: "enum",
|
|
40144
|
+
allowedValues: ["off", "on"],
|
|
40145
|
+
// Declared safe value is `off` (terminal block, no new side effects) — the
|
|
40146
|
+
// most-restrictive-known state, matching the pre-flag default. A flag-DB read
|
|
40147
|
+
// error degrades here.
|
|
40148
|
+
defaultValue: "off",
|
|
40149
|
+
// Migration override (ADR-0022): only injected onto the Lambdas when an operator
|
|
40150
|
+
// explicitly sets it (sst.config.ts) — otherwise this flag governs.
|
|
40151
|
+
envVar: "HITL_APPROVAL_ROUTING",
|
|
40152
|
+
// Turning routing on starts minting approval cards / approval_requests rows — an
|
|
40153
|
+
// egress + workflow change worth an explicit confirm.
|
|
40154
|
+
sensitive: true
|
|
40155
|
+
},
|
|
40118
40156
|
{
|
|
40119
40157
|
key: "slack-reply-binding",
|
|
40120
40158
|
description: "Slack reply-target binding (ENG-7396 / WS2, cross-thread reply routing): the model names which inbound it answers (inbound_id) and the server resolves the destination from its own verified record. shadow = classify + count only, routing unchanged; warn = same routing plus a tool-result note so the model self-corrects; enforce = route a bound reply to the registry thread and REJECT a reply whose target matches no inbound this process delivered. The channel server can't evaluate flags, so the manager materializes the resolved value into the AGT_SLACK_REPLY_BINDING spawn env (the operator/canary override, ADR-0022). Ships shadow.",
|
|
@@ -15629,7 +15629,8 @@ var SLACK_EGRESS_TOOLS = /* @__PURE__ */ new Set([
|
|
|
15629
15629
|
"slack.react",
|
|
15630
15630
|
"slack.send_structured",
|
|
15631
15631
|
"slack.ask_user",
|
|
15632
|
-
"slack.upload_file"
|
|
15632
|
+
"slack.upload_file",
|
|
15633
|
+
"slack.update"
|
|
15633
15634
|
]);
|
|
15634
15635
|
|
|
15635
15636
|
// src/strip-repost-preamble.ts
|
|
@@ -20417,6 +20418,25 @@ mcp.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
|
20417
20418
|
required: ["channel", "timestamp", "emoji"]
|
|
20418
20419
|
}
|
|
20419
20420
|
},
|
|
20421
|
+
{
|
|
20422
|
+
name: "slack.update",
|
|
20423
|
+
description: 'Edit the text of a Slack message YOU already sent (Slack chat.update). Pass the channel and the message\'s ts (slack.reply returns it as `(ts=\u2026)` on a successful send) plus the new text. You can only edit your OWN messages. This REPLACES the message text - any block layout on the original is cleared - so use it to correct a typo or update a message in place instead of posting a new one. NOTE: editing an interim "On it\u2026" into the final answer does NOT clear the pending-reply obligation - your final answer must still be a separate slack.reply (interim omitted). Common Slack errors: message_not_found (wrong ts/channel), cant_update_message (not your message), edit_window_closed.',
|
|
20424
|
+
inputSchema: {
|
|
20425
|
+
type: "object",
|
|
20426
|
+
properties: {
|
|
20427
|
+
channel: {
|
|
20428
|
+
type: "string",
|
|
20429
|
+
description: "Slack channel ID the message is in (the same channel you sent it to)."
|
|
20430
|
+
},
|
|
20431
|
+
ts: {
|
|
20432
|
+
type: "string",
|
|
20433
|
+
description: 'Timestamp of the message to edit - the `ts` value slack.reply returned when you sent it (e.g. "1783902864.258519"). Must be a message the bot itself sent.'
|
|
20434
|
+
},
|
|
20435
|
+
text: { type: "string", description: "The new message text. Replaces the existing text." }
|
|
20436
|
+
},
|
|
20437
|
+
required: ["channel", "ts", "text"]
|
|
20438
|
+
}
|
|
20439
|
+
},
|
|
20420
20440
|
{
|
|
20421
20441
|
name: "slack.read_thread",
|
|
20422
20442
|
description: "Read the full message history of a Slack thread. Inbound thread replies already carry the surrounding thread inline as the <channel> tag's thread_context attribute \u2014 ground your reply in that first, and only call this tool when you need MORE history than thread_context shows (it is capped to recent messages) or to catch up on an auto-followed thread.",
|
|
@@ -20820,8 +20840,10 @@ mcp.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
|
20820
20840
|
}
|
|
20821
20841
|
})();
|
|
20822
20842
|
}
|
|
20843
|
+
const base = bindingFeedback ? `sent. ${bindingFeedback}` : "sent";
|
|
20844
|
+
const sentTs = typeof data.ts === "string" ? data.ts : void 0;
|
|
20823
20845
|
return {
|
|
20824
|
-
content: [{ type: "text", text:
|
|
20846
|
+
content: [{ type: "text", text: sentTs ? `${base} (ts=${sentTs})` : base }]
|
|
20825
20847
|
};
|
|
20826
20848
|
} catch (err) {
|
|
20827
20849
|
return {
|
|
@@ -20868,6 +20890,40 @@ mcp.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
|
20868
20890
|
};
|
|
20869
20891
|
}
|
|
20870
20892
|
}
|
|
20893
|
+
if (name === "slack.update") {
|
|
20894
|
+
const { channel, ts, text } = args;
|
|
20895
|
+
if (!channel || !ts || typeof text !== "string") {
|
|
20896
|
+
return {
|
|
20897
|
+
content: [{ type: "text", text: "slack.update requires channel, ts and text" }],
|
|
20898
|
+
isError: true
|
|
20899
|
+
};
|
|
20900
|
+
}
|
|
20901
|
+
try {
|
|
20902
|
+
const res = await fetch("https://slack.com/api/chat.update", {
|
|
20903
|
+
method: "POST",
|
|
20904
|
+
headers: {
|
|
20905
|
+
"Content-Type": "application/json; charset=utf-8",
|
|
20906
|
+
Authorization: `Bearer ${BOT_TOKEN}`
|
|
20907
|
+
},
|
|
20908
|
+
// text only: chat.update replaces the message, clearing any prior blocks.
|
|
20909
|
+
body: JSON.stringify({ channel, ts, text }),
|
|
20910
|
+
signal: AbortSignal.timeout(8e3)
|
|
20911
|
+
});
|
|
20912
|
+
const data = await res.json();
|
|
20913
|
+
if (!data.ok) {
|
|
20914
|
+
return {
|
|
20915
|
+
content: [{ type: "text", text: `Slack error: ${data.error}` }],
|
|
20916
|
+
isError: true
|
|
20917
|
+
};
|
|
20918
|
+
}
|
|
20919
|
+
return { content: [{ type: "text", text: "updated" }] };
|
|
20920
|
+
} catch (err) {
|
|
20921
|
+
return {
|
|
20922
|
+
content: [{ type: "text", text: `Failed: ${err.message}` }],
|
|
20923
|
+
isError: true
|
|
20924
|
+
};
|
|
20925
|
+
}
|
|
20926
|
+
}
|
|
20871
20927
|
if (name === "slack.read_thread") {
|
|
20872
20928
|
const { channel, thread_ts, limit: rawLimit } = args;
|
|
20873
20929
|
const limit = Math.min(Math.max(rawLimit ?? 50, 1), 200);
|
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
writeDirectChatSessionState,
|
|
37
37
|
writeEgressAllowlist,
|
|
38
38
|
writePersistentClaudeWrapper
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-5LUVY4P6.js";
|
|
40
40
|
import "./chunk-XWVM4KPK.js";
|
|
41
41
|
export {
|
|
42
42
|
EGRESS_BASELINE_DOMAINS,
|
|
@@ -77,4 +77,4 @@ export {
|
|
|
77
77
|
writeEgressAllowlist,
|
|
78
78
|
writePersistentClaudeWrapper
|
|
79
79
|
};
|
|
80
|
-
//# sourceMappingURL=persistent-session-
|
|
80
|
+
//# sourceMappingURL=persistent-session-ZQUFIWLK.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
paneLogPath
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-5LUVY4P6.js";
|
|
4
4
|
import "./chunk-XWVM4KPK.js";
|
|
5
5
|
|
|
6
6
|
// src/lib/responsiveness-probe.ts
|
|
@@ -418,4 +418,4 @@ export {
|
|
|
418
418
|
readAndResetSlackReplyBindingClassifications,
|
|
419
419
|
readAndResetSlackReplyTargetClassifications
|
|
420
420
|
};
|
|
421
|
-
//# sourceMappingURL=responsiveness-probe-
|
|
421
|
+
//# sourceMappingURL=responsiveness-probe-BFB2G333.js.map
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|