@integrity-labs/agt-cli 0.28.1083 → 0.28.1085

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.
Files changed (24) hide show
  1. package/dist/bin/agt.js +5 -5
  2. package/dist/{chunk-ELRALWJ7.js → chunk-36PNRFZD.js} +168 -27
  3. package/dist/chunk-36PNRFZD.js.map +1 -0
  4. package/dist/{chunk-44254DEU.js → chunk-672WJ7K3.js} +2 -2
  5. package/dist/{chunk-BIR5WVM4.js → chunk-QJHOJMYV.js} +4 -4
  6. package/dist/{claude-pair-runtime-U6LVU5CI.js → claude-pair-runtime-P5RI3SNT.js} +2 -2
  7. package/dist/lib/manager-worker.js +25 -17
  8. package/dist/lib/manager-worker.js.map +1 -1
  9. package/dist/mcp/direct-chat-channel.js +135 -1
  10. package/dist/mcp/index.js +135 -1
  11. package/dist/mcp/origami.js +135 -1
  12. package/dist/mcp/slack-channel.js +135 -1
  13. package/dist/mcp/telegram-channel.js +135 -1
  14. package/dist/{persistent-session-UHSU52GZ.js → persistent-session-V2TJ6HPL.js} +3 -3
  15. package/dist/{responsiveness-probe-PKMKC2VS.js → responsiveness-probe-2JSH5Y3H.js} +3 -3
  16. package/dist/{session-auth-dead-KOZOXQOP.js → session-auth-dead-WUMWF4GK.js} +2 -2
  17. package/package.json +1 -1
  18. package/dist/chunk-ELRALWJ7.js.map +0 -1
  19. /package/dist/{chunk-44254DEU.js.map → chunk-672WJ7K3.js.map} +0 -0
  20. /package/dist/{chunk-BIR5WVM4.js.map → chunk-QJHOJMYV.js.map} +0 -0
  21. /package/dist/{claude-pair-runtime-U6LVU5CI.js.map → claude-pair-runtime-P5RI3SNT.js.map} +0 -0
  22. /package/dist/{persistent-session-UHSU52GZ.js.map → persistent-session-V2TJ6HPL.js.map} +0 -0
  23. /package/dist/{responsiveness-probe-PKMKC2VS.js.map → responsiveness-probe-2JSH5Y3H.js.map} +0 -0
  24. /package/dist/{session-auth-dead-KOZOXQOP.js.map → session-auth-dead-WUMWF4GK.js.map} +0 -0
package/dist/bin/agt.js CHANGED
@@ -40,12 +40,12 @@ import {
40
40
  success,
41
41
  table,
42
42
  warn
43
- } from "../chunk-BIR5WVM4.js";
43
+ } from "../chunk-QJHOJMYV.js";
44
44
  import {
45
45
  getProjectDir,
46
46
  isSessionResumeDisabled,
47
47
  readDirectChatSessionState
48
- } from "../chunk-44254DEU.js";
48
+ } from "../chunk-672WJ7K3.js";
49
49
  import {
50
50
  AnchorSessionClient,
51
51
  CHANNEL_REGISTRY,
@@ -79,7 +79,7 @@ import {
79
79
  serializeManifestForSlackCli,
80
80
  sessionFileExists,
81
81
  sessionTranscriptDir
82
- } from "../chunk-ELRALWJ7.js";
82
+ } from "../chunk-36PNRFZD.js";
83
83
  import "../chunk-OCMJ5E6J.js";
84
84
  import "../chunk-XWVM4KPK.js";
85
85
  import "../chunk-EL5MWGGH.js";
@@ -5474,7 +5474,7 @@ import { execFileSync, execSync } from "child_process";
5474
5474
  import { existsSync as existsSync11, realpathSync as realpathSync2 } from "fs";
5475
5475
  import chalk18 from "chalk";
5476
5476
  import ora16 from "ora";
5477
- var cliVersion = true ? "0.28.1083" : "dev";
5477
+ var cliVersion = true ? "0.28.1085" : "dev";
5478
5478
  async function fetchLatestVersion() {
5479
5479
  const host2 = getHost();
5480
5480
  if (!host2) return null;
@@ -6734,7 +6734,7 @@ function handleError(err) {
6734
6734
  }
6735
6735
 
6736
6736
  // src/bin/agt.ts
6737
- var cliVersion2 = true ? "0.28.1083" : "dev";
6737
+ var cliVersion2 = true ? "0.28.1085" : "dev";
6738
6738
  var program = new Command();
6739
6739
  program.name("agt").description("Augmented CLI \u2014 agent provisioning and management").version(cliVersion2).option("--json", "Emit machine-readable JSON output (suppress spinners and colors)").option("--skip-update-check", "Skip the automatic update check on startup");
6740
6740
  program.hook("preAction", async (thisCommand, actionCommand) => {
@@ -2545,6 +2545,136 @@ var INTEGRATION_REGISTRY = [
2545
2545
  // `registryRemoteMcpKeys`, which would strand the `.mcp.json` entry on
2546
2546
  // every host that installed the MCP variant.
2547
2547
  },
2548
+ {
2549
+ // Quiver (api.quiver.ai) — AI vector graphics: draw an SVG from a prompt,
2550
+ // redraw one from an instruction, trace a raster, add animation.
2551
+ //
2552
+ // PREMIUM (ADR-0031, epic ENG-6920). Ninjafy holds ONE Quiver account whose
2553
+ // key (`QUIVER_ACCOUNT_KEY`) every customer's drawing bills back to, so the
2554
+ // credential is a single platform-held secret and never a per-install one.
2555
+ // `auth_type: 'none'` on the catalog row and `credential_source:
2556
+ // 'platform_env'` on every runtime scope, so `resolveBrokerToken` reads the
2557
+ // env var and skips the install-row lookup entirely.
2558
+ //
2559
+ // Ships DARK: until the secret is set the resolver fails closed with
2560
+ // `platform_credential_missing` and every drawing errors clearly.
2561
+ // Installable but inert, by design — the same posture x-search shipped with.
2562
+ //
2563
+ // WHY IT STOPPED BEING BYO. It launched bring-your-own-key. Premium means WE
2564
+ // pay the vendor, so a customer key would defeat the point: there would be
2565
+ // nothing to meter and nothing to bill. The flip cost nothing because Quiver
2566
+ // had never deployed — zero installs, so none of the origami free→premium
2567
+ // grandfathering applies (there is no cohort whose `credential_source`
2568
+ // default would misclassify them as billed and take the integration dark).
2569
+ // A later BYO tier is possible (ADR-0055, the Firecrawl shape) and would
2570
+ // need its own entitlement gate; it is deliberately not offered now, because
2571
+ // offering two auth types renders a connect picker that does not check
2572
+ // `plans.byo_credentials` (ENG-9236).
2573
+ //
2574
+ // WHY TWO METERS, when the vendor bills in one unit. `credits` is Quiver's
2575
+ // own billing unit and the response carries it per call, so metering it
2576
+ // makes our margin a constant multiple no matter which model an agent picks
2577
+ // — `arrow-1.1-max` costs materially more than `arrow-1.1`, which a flat
2578
+ // per-call price would silently eat. But `credits` is documented as
2579
+ // "omitted for token-priced models, whose measured totals are returned in
2580
+ // `usage`", so a credits-only meter bills those calls at ZERO: free to the
2581
+ // customer, invisible to the budget gate, and with nothing in the ledger to
2582
+ // notice it by. `svg_operation` is the floor that closes that hole — it
2583
+ // fires ONLY when `credits` is absent, so the two can never double-bill the
2584
+ // same call. See `lib/quiver-metering.ts`.
2585
+ id: "quiver",
2586
+ name: "Quiver",
2587
+ category: "media",
2588
+ description: "AI vector graphics \u2014 draw an SVG from a description, redraw an existing one, trace a photo or screenshot into vector shapes, and add animation. Ninjafy manages the Quiver account for you; there is no key to enter.",
2589
+ supported_auth_types: ["none"],
2590
+ docs_url: "https://docs.quiver.ai/developers",
2591
+ capabilities: [
2592
+ {
2593
+ id: "quiver:create",
2594
+ name: "Create and change vector graphics",
2595
+ description: "Draw, redraw, trace and animate SVG artwork. Billed per Quiver credit consumed.",
2596
+ access: "write"
2597
+ },
2598
+ {
2599
+ id: "quiver:read",
2600
+ name: "Read models",
2601
+ description: "List the available drawing models and their per-call credit cost. Free.",
2602
+ access: "read"
2603
+ }
2604
+ ],
2605
+ beta: true,
2606
+ // No `installable` on purpose: quiver is a seed integration
2607
+ // (integration-definitions.json), so the seed catalog already makes it
2608
+ // picker-visible. This entry exists to carry the `premium` descriptor that
2609
+ // `isPremiumDefinition` reads — which arms the per-org opt-in gate, the
2610
+ // priced acknowledgement modal and the admin pricing tab. Same reasoning as
2611
+ // social-scraping above.
2612
+ premium: {
2613
+ pricing: "usage",
2614
+ note: "Billed per Quiver credit consumed. Listing models is free; drawing, editing, tracing and animating each debit credits.",
2615
+ meters: [
2616
+ { event_type: "svg_credits", unit: "credit" },
2617
+ { event_type: "svg_operation", unit: "operation" }
2618
+ ]
2619
+ }
2620
+ },
2621
+ {
2622
+ // theSVG (thesvg.org) — 6,500+ REAL brand marks as SVG, so an agent building
2623
+ // a page can use the actual Stripe/Slack/AWS logo instead of asking a
2624
+ // drawing model for one. That distinction is the whole point of the
2625
+ // integration: an AI-generated "Stripe logo" is a plausible fake, wrong in
2626
+ // the way a customer notices and a trademark owner minds. Original artwork
2627
+ // is Quiver's job; existing marks are this one's.
2628
+ //
2629
+ // WHY A LOCAL STDIO MCP AND NOT THE DIRECT-HTTP LANE. thesvg.org is a
2630
+ // STATIC SITE — its own CLI says so in as many words ("there is no dynamic
2631
+ // API"). The only two endpoints are `/api/registry.json`, the entire
2632
+ // 2.97 MB / 6,523-entry manifest, and `/icons/{slug}/{variant}.svg`. Search
2633
+ // is client-side filtering over that manifest, which the Direct-HTTP broker
2634
+ // cannot do: it forwards the vendor's whole response body to the agent, so
2635
+ // a `search_icons` descriptor would put 2.97 MB of registry into the
2636
+ // agent's context on every call. The vendor's own MCP server bundles the
2637
+ // registry and searches it in-process, which is precisely the shape the
2638
+ // missing API leaves you needing.
2639
+ //
2640
+ // WHY THE VERSION IS PINNED and AWS's is `@latest`: this server's registry
2641
+ // is baked in at BUILD time, so the pin is what decides which icons exist
2642
+ // AND what markup lands on a customer's published page. Bumping it is a
2643
+ // deliberate act that also refreshes the icon set — not a silent
2644
+ // third-party update to artwork we are about to publish under a customer's
2645
+ // domain.
2646
+ //
2647
+ // No credential anywhere: the registry and the jsDelivr CDN the server
2648
+ // fetches SVG from are both public, so `auth_types: ['none']` is the honest
2649
+ // classification rather than the ENG-8440 kind of lie Hard Rule 17 warns
2650
+ // about — there genuinely is no key to enter and the install IS live
2651
+ // immediately.
2652
+ id: "thesvg",
2653
+ name: "theSVG",
2654
+ category: "media",
2655
+ description: "Brand logos and icons as real SVG \u2014 search 6,500+ marks by name and pull the exact artwork, in mono, colour, light, dark or wordmark variants",
2656
+ supported_auth_types: ["none"],
2657
+ docs_url: "https://thesvg.org",
2658
+ capabilities: [
2659
+ {
2660
+ id: "thesvg:read",
2661
+ name: "Find and fetch brand icons",
2662
+ description: "Search the icon library, list an icon's variants and categories, and fetch its SVG markup or CDN URL",
2663
+ access: "read"
2664
+ }
2665
+ ],
2666
+ installable: { category: "Media", authTypes: ["none"] },
2667
+ beta: true,
2668
+ // ENG-5815 data-driven path — no buildMcpJson edit, same as AWS.
2669
+ nativeMcp: {
2670
+ command: "npx",
2671
+ args: ["-y", "@thesvg/mcp-server@0.8.2"],
2672
+ env: {
2673
+ PATH: "{{process_env.PATH}}",
2674
+ HOME: "{{process_env.HOME}}"
2675
+ }
2676
+ }
2677
+ },
2548
2678
  {
2549
2679
  id: "qmd",
2550
2680
  name: "QMD Memory Search",
@@ -5060,6 +5190,10 @@ var NOTICE_KIND_AUDIENCE = {
5060
5190
  // "Your `<verb>` approval request (`<uuid>`) EXPIRED at …" — in the report,
5061
5191
  // uuid and all.
5062
5192
  approval_expired: "agent",
5193
+ // ENG-11334: canvas.publish_public approved / denied / approved-but-not-applied.
5194
+ // Second-person instructions to the agent ("Tell the user...", "do not
5195
+ // republish"); the user learns the outcome from the agent, not this row.
5196
+ canvas_public_approval_resolved: "agent",
5063
5197
  // A routine fired; the agent picks the work up.
5064
5198
  routine_firing_result: "agent",
5065
5199
  // Live-advisor wake: "Call `live_read` with escalation_id …" — a literal tool
@@ -5624,6 +5758,37 @@ function encodeClaudeProjectPath(projectDir) {
5624
5758
  var KANBAN_CHECK_COMMAND = "kanban_list \u2014 pick up any actionable items if you are free.";
5625
5759
  var KANBAN_NUDGE_ACTIONABLE_STATUSES = ["todo", "in_progress"];
5626
5760
 
5761
+ // ../../packages/core/dist/kanban/assign-gate.js
5762
+ var DEFAULT_CROSS_TEAM_PEER_INTRA_ORG = "consent_required";
5763
+ function resolveCrossTeamPeerIntraOrg(raw) {
5764
+ return raw === "unrestricted" || raw === "consent_required" ? raw : DEFAULT_CROSS_TEAM_PEER_INTRA_ORG;
5765
+ }
5766
+
5767
+ // ../../packages/core/dist/kanban/state-machine.js
5768
+ var KANBAN_STATUSES = [
5769
+ "backlog",
5770
+ "todo",
5771
+ "in_progress",
5772
+ "done",
5773
+ "failed",
5774
+ "cancelled",
5775
+ "needs_attention",
5776
+ "waiting"
5777
+ ];
5778
+ var KANBAN_STATUS_SET = new Set(KANBAN_STATUSES);
5779
+
5780
+ // ../../packages/core/dist/kanban/waiting.js
5781
+ var WAITING_KINDS = [
5782
+ "pr-review",
5783
+ "pr-merged",
5784
+ "human",
5785
+ "external",
5786
+ "other",
5787
+ "approval",
5788
+ "agent"
5789
+ ];
5790
+ var WAITING_KIND_SET = new Set(WAITING_KINDS);
5791
+
5627
5792
  // ../../packages/core/dist/feature-flags/registry.js
5628
5793
  var FLAG_REGISTRY = [
5629
5794
  {
@@ -7213,7 +7378,7 @@ var FLAG_REGISTRY = [
7213
7378
  },
7214
7379
  {
7215
7380
  key: "approval-unified-authority",
7216
- description: "One authority check for every approval ingress (ENG-11207, ADR-0124 Phase 0b): canDecide() runs inside tryDispatchApprovalCore for console, Slack (channel, alerts, Socket Mode, which also carries Telegram) and Direct Chat taps alike. off = not computed. shadow = compute the verdict and log approval_authority_would_reject (ingress, verb, org, reason) for every tap it would refuse, then decide exactly as today. enforce = reserved for the per-(org, verb) allowlist slice; until that ships it behaves as shadow. Evaluated per-org. Ships dark.",
7381
+ description: "One authority check for every approval ingress (ENG-11207, ADR-0124 Phase 0b): canDecide() runs inside tryDispatchApprovalCore for console, Slack (channel, alerts, Socket Mode, which also carries Telegram) and Direct Chat taps alike. off = not computed. shadow = compute the verdict, including the verb's declared approver boundary (ENG-11337), and log approval_authority_would_reject (ingress, verb, org, reason, boundary) for every tap it would refuse and approval_authority_would_admit (ingress, verb, org, basis, boundary) for every tap it would admit, then decide exactly as today. enforce = reserved for the per-(org, verb) allowlist slice; until that ships it behaves as shadow. Evaluated per-org. Ships dark.",
7217
7382
  flagType: "enum",
7218
7383
  allowedValues: ["off", "shadow", "enforce"],
7219
7384
  // Safe/default value is `off` (no computation, no extra reads on the tap path). A flag-DB read
@@ -15402,31 +15567,6 @@ function serializeAccountEnforcementMarker(level, text) {
15402
15567
  return JSON.stringify(marker);
15403
15568
  }
15404
15569
 
15405
- // ../../packages/core/dist/kanban/state-machine.js
15406
- var KANBAN_STATUSES = [
15407
- "backlog",
15408
- "todo",
15409
- "in_progress",
15410
- "done",
15411
- "failed",
15412
- "cancelled",
15413
- "needs_attention",
15414
- "waiting"
15415
- ];
15416
- var KANBAN_STATUS_SET = new Set(KANBAN_STATUSES);
15417
-
15418
- // ../../packages/core/dist/kanban/waiting.js
15419
- var WAITING_KINDS = [
15420
- "pr-review",
15421
- "pr-merged",
15422
- "human",
15423
- "external",
15424
- "other",
15425
- "approval",
15426
- "agent"
15427
- ];
15428
- var WAITING_KIND_SET = new Set(WAITING_KINDS);
15429
-
15430
15570
  // ../../packages/core/dist/alerts/age.js
15431
15571
  var MINUTE_MS = 6e4;
15432
15572
  var HOUR_MS = 60 * MINUTE_MS;
@@ -16196,6 +16336,7 @@ export {
16196
16336
  serializeAccountEnforcementMarker,
16197
16337
  KANBAN_CHECK_COMMAND,
16198
16338
  KANBAN_NUDGE_ACTIONABLE_STATUSES,
16339
+ resolveCrossTeamPeerIntraOrg,
16199
16340
  isSystemInjectedContent,
16200
16341
  isBareAck,
16201
16342
  CONVERSATION_FAILURE_CATEGORIES,
@@ -16236,4 +16377,4 @@ export {
16236
16377
  peekCurrentSession,
16237
16378
  readDailySessionPin
16238
16379
  };
16239
- //# sourceMappingURL=chunk-ELRALWJ7.js.map
16380
+ //# sourceMappingURL=chunk-36PNRFZD.js.map