@indigoai-us/hq-cloud 6.14.12 → 6.14.13

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 (78) hide show
  1. package/.claude/policies/hq-cloud-strip-types-no-parameter-properties.md +22 -0
  2. package/dist/bin/sync-runner-company.d.ts.map +1 -1
  3. package/dist/bin/sync-runner-company.js +6 -0
  4. package/dist/bin/sync-runner-company.js.map +1 -1
  5. package/dist/bin/sync-runner-planning.d.ts.map +1 -1
  6. package/dist/bin/sync-runner-planning.js +3 -1
  7. package/dist/bin/sync-runner-planning.js.map +1 -1
  8. package/dist/bin/sync-runner-watch-loop.d.ts +1 -0
  9. package/dist/bin/sync-runner-watch-loop.d.ts.map +1 -1
  10. package/dist/bin/sync-runner-watch-loop.js +7 -1
  11. package/dist/bin/sync-runner-watch-loop.js.map +1 -1
  12. package/dist/bin/sync-runner-watch-routes.d.ts +1 -0
  13. package/dist/bin/sync-runner-watch-routes.d.ts.map +1 -1
  14. package/dist/bin/sync-runner-watch-routes.js +3 -0
  15. package/dist/bin/sync-runner-watch-routes.js.map +1 -1
  16. package/dist/bin/sync-runner.d.ts +10 -0
  17. package/dist/bin/sync-runner.d.ts.map +1 -1
  18. package/dist/bin/sync-runner.js +83 -33
  19. package/dist/bin/sync-runner.js.map +1 -1
  20. package/dist/bin/sync-runner.test.js +93 -5
  21. package/dist/bin/sync-runner.test.js.map +1 -1
  22. package/dist/cli/reindex.d.ts.map +1 -1
  23. package/dist/cli/reindex.js +23 -60
  24. package/dist/cli/reindex.js.map +1 -1
  25. package/dist/cli/reindex.test.d.ts +2 -2
  26. package/dist/cli/reindex.test.js +60 -109
  27. package/dist/cli/reindex.test.js.map +1 -1
  28. package/dist/cli/rescue.reindex.test.js +3 -2
  29. package/dist/cli/rescue.reindex.test.js.map +1 -1
  30. package/dist/cli/share.d.ts.map +1 -1
  31. package/dist/cli/share.js +12 -1
  32. package/dist/cli/share.js.map +1 -1
  33. package/dist/cli/share.test.js +14 -0
  34. package/dist/cli/share.test.js.map +1 -1
  35. package/dist/cli/sync.d.ts.map +1 -1
  36. package/dist/cli/sync.js +9 -1
  37. package/dist/cli/sync.js.map +1 -1
  38. package/dist/cli/sync.test.js +8 -0
  39. package/dist/cli/sync.test.js.map +1 -1
  40. package/dist/cognito-auth.d.ts +44 -12
  41. package/dist/cognito-auth.d.ts.map +1 -1
  42. package/dist/cognito-auth.js +440 -76
  43. package/dist/cognito-auth.js.map +1 -1
  44. package/dist/cognito-auth.test.js +174 -0
  45. package/dist/cognito-auth.test.js.map +1 -1
  46. package/dist/index.d.ts +1 -1
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +3 -2
  49. package/dist/index.js.map +1 -1
  50. package/dist/machine-auth.test.js +683 -5
  51. package/dist/machine-auth.test.js.map +1 -1
  52. package/dist/vault-client.d.ts +2 -1
  53. package/dist/vault-client.d.ts.map +1 -1
  54. package/dist/vault-client.js +45 -9
  55. package/dist/vault-client.js.map +1 -1
  56. package/dist/vault-client.test.js +77 -7
  57. package/dist/vault-client.test.js.map +1 -1
  58. package/package.json +2 -1
  59. package/src/bin/sync-runner-company.ts +5 -0
  60. package/src/bin/sync-runner-planning.ts +2 -1
  61. package/src/bin/sync-runner-watch-loop.ts +7 -1
  62. package/src/bin/sync-runner-watch-routes.ts +2 -0
  63. package/src/bin/sync-runner.test.ts +122 -4
  64. package/src/bin/sync-runner.ts +92 -32
  65. package/src/cli/reindex.test.ts +63 -120
  66. package/src/cli/reindex.ts +23 -62
  67. package/src/cli/rescue.reindex.test.ts +3 -2
  68. package/src/cli/share.test.ts +20 -0
  69. package/src/cli/share.ts +7 -1
  70. package/src/cli/sync.test.ts +14 -0
  71. package/src/cli/sync.ts +5 -1
  72. package/src/cognito-auth.test.ts +227 -0
  73. package/src/cognito-auth.ts +533 -71
  74. package/src/index.ts +5 -1
  75. package/src/machine-auth.test.ts +808 -5
  76. package/src/vault-client.test.ts +100 -11
  77. package/src/vault-client.ts +55 -10
  78. package/test/share-sync.integration.test.ts +12 -9
@@ -50,9 +50,33 @@ export interface CognitoTokens {
50
50
  export declare class CognitoAuthError extends Error {
51
51
  constructor(message: string);
52
52
  }
53
+ /**
54
+ * A failed refresh attempt with enough classification for callers to decide
55
+ * whether the cached session is still worth preserving. Network/5xx/429
56
+ * failures remain recoverable; an invalid/expired refresh token means the
57
+ * stored session can no longer make progress and should be cleared.
58
+ */
59
+ export declare class CognitoRefreshError extends CognitoAuthError {
60
+ readonly requiresReauth: boolean;
61
+ readonly statusCode?: number;
62
+ readonly sessionFingerprint?: string;
63
+ constructor(message: string, requiresReauth: boolean, statusCode?: number, sessionFingerprint?: string);
64
+ }
65
+ /** Stable, non-secret identity for one access-token generation. */
66
+ export declare function accessTokenFingerprint(accessToken: string): string;
67
+ /**
68
+ * Mark only the rejected token generation unusable. Automatic auth failures
69
+ * must not unlink the shared cache: another process may have completed a
70
+ * refresh or login after the failing request started.
71
+ */
72
+ export declare function invalidateCachedTokensByFingerprint(fingerprint: string | undefined): void;
53
73
  export declare function loadCachedTokens(): CognitoTokens | null;
54
74
  export declare function saveCachedTokens(tokens: CognitoTokens): void;
55
75
  export declare function clearCachedTokens(): void;
76
+ /** Thrown when the refresh lock can't be acquired within the deadline. */
77
+ export declare class RefreshLockTimeoutError extends Error {
78
+ constructor();
79
+ }
56
80
  /** True when the token expires within the given buffer (default 60s). */
57
81
  export declare function isExpiring(tokens: CognitoTokens, bufferSeconds?: number): boolean;
58
82
  /**
@@ -70,7 +94,7 @@ export declare function isExpiring(tokens: CognitoTokens, bufferSeconds?: number
70
94
  */
71
95
  export declare function decodeAccessTokenClientId(accessToken: string): string | null;
72
96
  export interface MachineCreds {
73
- /** Cognito username (live boxes: "agt-<ulid>@agents.getindigo.ai"). */
97
+ /** Cognito username for the machine user. */
74
98
  username: string;
75
99
  /** Long-lived machine secret (USER_PASSWORD_AUTH password). */
76
100
  secret: string;
@@ -79,6 +103,10 @@ export interface MachineCreds {
79
103
  clientId?: string;
80
104
  /** Cognito region for the mint endpoint; falls back to config. */
81
105
  region?: string;
106
+ /** Expected machine kind carried in the ID token's custom:entityType claim. */
107
+ entityType?: "agent" | "outpost";
108
+ /** Exact expected machine uid carried in custom:entityUid. */
109
+ entityUid?: string;
82
110
  }
83
111
  /** Resolve the machine-creds file path (HQ_MACHINE_CREDS_FILE overrides). */
84
112
  export declare function machineCredsFilePath(): string;
@@ -100,14 +128,9 @@ export interface MintRetryOptions {
100
128
  maxDelayMs?: number;
101
129
  }
102
130
  /**
103
- * Mint a fresh session for the machine identity via USER_PASSWORD_AUTH
104
- * against the Cognito IDP endpoint (plain unsigned HTTP no AWS SDK
105
- * dependency). Caches BOTH tokens with correct field semantics and returns
106
- * them.
107
- *
108
- * Retries on a `TooManyRequestsException` throttle with exponential backoff +
109
- * full jitter (transient, per-user rate limit); every other non-OK response
110
- * (bad creds, disabled flow) is a hard error surfaced immediately.
131
+ * Mint and persist a fresh machine session while holding the process-shared
132
+ * token lock. The unlocked implementation is private so public callers cannot
133
+ * race another process's cache write.
111
134
  */
112
135
  export declare function mintMachineTokens(config: CognitoAuthConfig, creds?: MachineCreds, retry?: MintRetryOptions): Promise<CognitoTokens>;
113
136
  /**
@@ -125,10 +148,19 @@ export declare function getValidMachineTokens(config: CognitoAuthConfig): Promis
125
148
  export declare function browserLogin(config: CognitoAuthConfig): Promise<CognitoTokens>;
126
149
  /**
127
150
  * Use the refresh token to obtain a fresh access token without user interaction.
128
- * The refresh token itself is NOT rotated by Cognito on the refresh grant, so
129
- * we preserve the existing one in the result.
151
+ *
152
+ * Concurrency-safe. Several hq processes on a box refresh the same cached
153
+ * session at once, so the whole read→refresh→save cycle runs under a
154
+ * cross-process lock, and inside the lock we (a) reuse a token another refresher
155
+ * just produced if it's still fresh, and (b) otherwise refresh with the FRESHEST
156
+ * token on disk rather than the caller's snapshot. This keeps the shared cache
157
+ * consistent, and stays correct if the app client uses single-use (rotated)
158
+ * tokens — a stale snapshot would otherwise be an already-consumed token
159
+ * (`invalid_grant`). NOTE: rotation is NOT how boxes stay signed in — a rotated
160
+ * token inherits the original's remaining lifetime, so it does not extend the
161
+ * session (AWS). Durable never-log-out is per-box machine identity (ADR-0009).
130
162
  */
131
- export declare function refreshTokens(config: CognitoAuthConfig, currentRefreshToken: string): Promise<CognitoTokens>;
163
+ export declare function refreshTokens(config: CognitoAuthConfig, currentRefreshToken: string, currentAccessToken?: string): Promise<CognitoTokens>;
132
164
  /**
133
165
  * High-level helper: return a non-expired access token, refreshing or
134
166
  * launching browser login as needed.
@@ -1 +1 @@
1
- {"version":3,"file":"cognito-auth.d.ts","sourceRoot":"","sources":["../src/cognito-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAaH,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,cAAc,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,+KAA+K;IAC/K,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,SAAS,EAAE,QAAQ,CAAC;CACrB;AAED,qFAAqF;AACrF,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM;CAI5B;AASD,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,IAAI,CAQvD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAO5D;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAiBD,yEAAyE;AACzE,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,SAAK,GAAG,OAAO,CAI7E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG5E;AAyFD,MAAM,WAAW,YAAY;IAC3B,uEAAuE;IACvE,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf;4EACwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,6EAA6E;AAC7E,wBAAgB,oBAAoB,IAAI,MAAM,CAK7C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,GAAG,IAAI,CA+BtD;AAED,iFAAiF;AACjF,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAcD;+EAC+E;AAC/E,MAAM,WAAW,gBAAgB;IAC/B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAkCD;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,iBAAiB,EACzB,KAAK,CAAC,EAAE,YAAY,EACpB,KAAK,CAAC,EAAE,gBAAgB,GACvB,OAAO,CAAC,aAAa,CAAC,CAwExB;AAsBD;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,aAAa,CAAC,CAoCxB;AAsCD;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,aAAa,CAAC,CA2GxB;AAsDD;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,iBAAiB,EACzB,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC,aAAa,CAAC,CA4BxB;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACtC,OAAO,CAAC,MAAM,CAAC,CAsDjB"}
1
+ {"version":3,"file":"cognito-auth.d.ts","sourceRoot":"","sources":["../src/cognito-auth.ts"],"names":[],"mappings":"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"}