@integrity-labs/agt-cli 0.28.1040 → 0.28.1042

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.
@@ -11260,10 +11260,45 @@ var OAUTH_PROVIDERS = {
11260
11260
  // bill at creation time. Read-only would force a follow-up manual
11261
11261
  // upload in Xero; write closes the loop.
11262
11262
  "accounting.attachments",
11263
- // accounting.transactions.read → granular read-only replacements
11264
- // for the surfaces we don't yet need write access on.
11265
- "accounting.payments.read",
11266
- "accounting.banktransactions.read",
11263
+ // payments: write (CS-1845) enables `xero.payment.create`, which does
11264
+ // PUT /Payments. These two were `.read` only, described as "surfaces we
11265
+ // don't yet need write access on" — but the xero-broker had ALREADY
11266
+ // registered write verbs against both, so the claim was false when it was
11267
+ // written and the verbs could never succeed. A live approval of AUD
11268
+ // 57,748.35 against INV-0407 was approved by a human and then failed with
11269
+ // Xero `401 {Title: Unauthorized, Detail: AuthorizationUnsuccessful}`,
11270
+ // AFTER the handler's single 401 refresh-retry — which is what rules out
11271
+ // an expired token: a freshly refreshed token still 401s when the GRANT
11272
+ // never carried the scope.
11273
+ //
11274
+ // banktransactions: write for the same reason — `xero.bank_transaction.delete`
11275
+ // is registered and would have failed identically the first time anyone
11276
+ // approved one. It is a DESTRUCTIVE verb, so it was one approval away from
11277
+ // being the more alarming report.
11278
+ //
11279
+ // The variant without `.read` is the read+write granular scope, so the
11280
+ // `.read` entries are gone from THIS list.
11281
+ //
11282
+ // That is not the same as "consent asks for them once" (Obi Wan
11283
+ // `167f3932fcdf` on #6564 corrected an earlier version of this comment,
11284
+ // which claimed it was). The authorize route unions `defaultScopes` with
11285
+ // `listAgentRequiredOAuthScopes` (lib/agent-oauth-scope-deficit.ts, called
11286
+ // from routes/integrations-oauth.ts), and the catalog's `xero:read` defined
11287
+ // scope still lists `accounting.payments.read` and
11288
+ // `accounting.banktransactions.read` in its `oauth_scopes` — so an agent
11289
+ // with xero:read installed requests the `.read` variants alongside these.
11290
+ // Harmless, because write implies read, but do not write comments here that
11291
+ // describe the consent string as though this array were all of it.
11292
+ //
11293
+ // DO NOT substitute the broad `accounting.transactions`: Xero rejects the
11294
+ // manifest for apps created after 2026-03-02 (see the note above).
11295
+ //
11296
+ // RECONNECT REQUIRED, same as `accounting.manualjournals` below: the broker
11297
+ // posts with the agent's own OAuth access_token, so every existing install
11298
+ // keeps failing until it reconnects and re-consents. Shipping this scope is
11299
+ // necessary and NOT sufficient.
11300
+ "accounting.payments",
11301
+ "accounting.banktransactions",
11267
11302
  // manualjournals: write (CS-1439) enables the xero-broker to post
11268
11303
  // manual journals (reclasses, accruals, corrections) on approval. The
11269
11304
  // variant without `.read` is the read+write granular scope. Note: an
@@ -15648,4 +15683,4 @@ export {
15648
15683
  peekCurrentSession,
15649
15684
  readDailySessionPin
15650
15685
  };
15651
- //# sourceMappingURL=chunk-UB2HLH5P.js.map
15686
+ //# sourceMappingURL=chunk-TXRZFABA.js.map