hanzoai 8.5.621 → 8.5.640

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 (168) hide show
  1. package/README.md +64 -9
  2. package/dist/answer.js +20 -10
  3. package/dist/api/ai-api.d.ts +280 -14
  4. package/dist/api/ai-api.js +315 -29
  5. package/dist/api/auto-api.d.ts +64 -0
  6. package/dist/api/auto-api.js +77 -0
  7. package/dist/api/billing-api.d.ts +4 -4
  8. package/dist/api/billing-api.js +4 -4
  9. package/dist/api/git-api.d.ts +30 -0
  10. package/dist/api/git-api.js +59 -0
  11. package/dist/api/task-api.d.ts +55 -0
  12. package/dist/api/task-api.js +71 -0
  13. package/dist/client.d.ts +3 -2
  14. package/dist/client.js +4 -3
  15. package/dist/esm/answer.js +20 -10
  16. package/dist/esm/api/ai-api.d.ts +280 -14
  17. package/dist/esm/api/ai-api.js +315 -29
  18. package/dist/esm/api/auto-api.d.ts +64 -0
  19. package/dist/esm/api/auto-api.js +77 -0
  20. package/dist/esm/api/billing-api.d.ts +4 -4
  21. package/dist/esm/api/billing-api.js +4 -4
  22. package/dist/esm/api/git-api.d.ts +30 -0
  23. package/dist/esm/api/git-api.js +59 -0
  24. package/dist/esm/api/task-api.d.ts +55 -0
  25. package/dist/esm/api/task-api.js +71 -0
  26. package/dist/esm/client.d.ts +3 -2
  27. package/dist/esm/client.js +3 -2
  28. package/dist/esm/hanzo.d.ts +3 -0
  29. package/dist/esm/hanzo.js +6 -0
  30. package/dist/esm/models/agent-target-view.d.ts +6 -0
  31. package/dist/esm/models/ai-chat-in.d.ts +42 -0
  32. package/dist/esm/models/ai-chat.d.ts +37 -0
  33. package/dist/esm/models/ai-decide-in.d.ts +50 -0
  34. package/dist/esm/models/ai-decide-in.js +14 -0
  35. package/dist/esm/models/ai-decision-sides.d.ts +4 -5
  36. package/dist/esm/models/{ai-decision-sides-false.d.ts → ai-decision.d.ts} +15 -2
  37. package/dist/esm/models/ai-decision.js +14 -0
  38. package/dist/esm/models/ai-decisions-answer.d.ts +2 -3
  39. package/dist/esm/models/ai-decisions-choice.d.ts +4 -8
  40. package/dist/esm/models/ai-decisions-noul.d.ts +2 -3
  41. package/dist/esm/models/ai-decisions-request.d.ts +2 -3
  42. package/dist/esm/models/ai-decisions-score.d.ts +4 -5
  43. package/dist/esm/models/ai-model.d.ts +73 -0
  44. package/dist/esm/models/ai-model.js +14 -0
  45. package/dist/esm/models/{ai-decisions-choice-criteria-value.d.ts → ai-models.d.ts} +15 -2
  46. package/dist/esm/models/ai-models.js +14 -0
  47. package/dist/esm/models/ai-price.d.ts +48 -0
  48. package/dist/esm/models/ai-price.js +14 -0
  49. package/dist/esm/models/ai-receipt.d.ts +60 -0
  50. package/dist/esm/models/ai-receipt.js +14 -0
  51. package/dist/esm/models/ai-routing-reward-request.d.ts +54 -0
  52. package/dist/esm/models/ai-routing-reward-request.js +24 -0
  53. package/dist/esm/models/auto-automation-in.d.ts +6 -0
  54. package/dist/esm/models/auto-automation-patch.d.ts +6 -0
  55. package/dist/esm/models/auto-automation-run.d.ts +14 -1
  56. package/dist/esm/models/auto-automation.d.ts +6 -0
  57. package/dist/esm/models/auto-post-result.d.ts +36 -0
  58. package/dist/esm/models/auto-post-result.js +14 -0
  59. package/dist/esm/models/auto-review-in.d.ts +36 -0
  60. package/dist/esm/models/auto-review-in.js +14 -0
  61. package/dist/esm/models/git-workspace-view.d.ts +36 -0
  62. package/dist/esm/models/git-workspace-view.js +14 -0
  63. package/dist/esm/models/iam-user.d.ts +1 -1
  64. package/dist/esm/models/index.d.ts +14 -2
  65. package/dist/esm/models/index.js +14 -2
  66. package/dist/esm/models/provider-github-import-out.d.ts +6 -0
  67. package/dist/esm/models/provider-github-repo-item.d.ts +6 -0
  68. package/dist/esm/models/task-comment-list.d.ts +31 -0
  69. package/dist/esm/models/task-comment-list.js +14 -0
  70. package/dist/esm/models/task-comment.d.ts +42 -0
  71. package/dist/esm/models/task-comment.js +14 -0
  72. package/dist/esm/transport.d.ts +4 -0
  73. package/dist/esm/transport.js +188 -0
  74. package/dist/esm/usage.d.ts +98 -0
  75. package/dist/esm/usage.js +161 -0
  76. package/dist/hanzo.d.ts +3 -0
  77. package/dist/hanzo.js +16 -1
  78. package/dist/models/agent-target-view.d.ts +6 -0
  79. package/dist/models/ai-chat-in.d.ts +42 -0
  80. package/dist/models/ai-chat.d.ts +37 -0
  81. package/dist/models/ai-decide-in.d.ts +50 -0
  82. package/dist/models/ai-decide-in.js +15 -0
  83. package/dist/models/ai-decision-sides.d.ts +4 -5
  84. package/dist/models/{ai-decision-sides-false.d.ts → ai-decision.d.ts} +15 -2
  85. package/dist/models/ai-decision.js +15 -0
  86. package/dist/models/ai-decisions-answer.d.ts +2 -3
  87. package/dist/models/ai-decisions-choice.d.ts +4 -8
  88. package/dist/models/ai-decisions-noul.d.ts +2 -3
  89. package/dist/models/ai-decisions-request.d.ts +2 -3
  90. package/dist/models/ai-decisions-score.d.ts +4 -5
  91. package/dist/models/ai-model.d.ts +73 -0
  92. package/dist/models/ai-model.js +15 -0
  93. package/dist/models/{ai-decisions-choice-criteria-value.d.ts → ai-models.d.ts} +15 -2
  94. package/dist/models/ai-models.js +15 -0
  95. package/dist/models/ai-price.d.ts +48 -0
  96. package/dist/models/ai-price.js +15 -0
  97. package/dist/models/ai-receipt.d.ts +60 -0
  98. package/dist/models/ai-receipt.js +15 -0
  99. package/dist/models/ai-routing-reward-request.d.ts +54 -0
  100. package/dist/models/ai-routing-reward-request.js +27 -0
  101. package/dist/models/auto-automation-in.d.ts +6 -0
  102. package/dist/models/auto-automation-patch.d.ts +6 -0
  103. package/dist/models/auto-automation-run.d.ts +14 -1
  104. package/dist/models/auto-automation.d.ts +6 -0
  105. package/dist/models/auto-post-result.d.ts +36 -0
  106. package/dist/models/auto-post-result.js +15 -0
  107. package/dist/models/auto-review-in.d.ts +36 -0
  108. package/dist/models/auto-review-in.js +15 -0
  109. package/dist/models/git-workspace-view.d.ts +36 -0
  110. package/dist/models/git-workspace-view.js +15 -0
  111. package/dist/models/iam-user.d.ts +1 -1
  112. package/dist/models/index.d.ts +14 -2
  113. package/dist/models/index.js +14 -2
  114. package/dist/models/provider-github-import-out.d.ts +6 -0
  115. package/dist/models/provider-github-repo-item.d.ts +6 -0
  116. package/dist/models/task-comment-list.d.ts +31 -0
  117. package/dist/models/task-comment-list.js +15 -0
  118. package/dist/models/task-comment.d.ts +42 -0
  119. package/dist/models/task-comment.js +15 -0
  120. package/dist/transport.d.ts +4 -0
  121. package/dist/transport.js +195 -0
  122. package/dist/usage.d.ts +98 -0
  123. package/dist/usage.js +174 -0
  124. package/package.json +1 -1
  125. package/src/answer.ts +23 -10
  126. package/src/api/ai-api.ts +503 -29
  127. package/src/api/auto-api.ts +117 -0
  128. package/src/api/billing-api.ts +4 -4
  129. package/src/api/git-api.ts +68 -0
  130. package/src/api/task-api.ts +101 -0
  131. package/src/client.ts +3 -2
  132. package/src/hanzo.ts +18 -0
  133. package/src/models/agent-target-view.ts +6 -0
  134. package/src/models/ai-chat-in.ts +48 -0
  135. package/src/models/ai-chat.ts +45 -0
  136. package/src/models/ai-decide-in.ts +54 -0
  137. package/src/models/ai-decision-sides.ts +4 -7
  138. package/src/models/{ai-decision-sides-false.ts → ai-decision.ts} +17 -2
  139. package/src/models/ai-decisions-answer.ts +2 -5
  140. package/src/models/ai-decisions-choice.ts +4 -10
  141. package/src/models/ai-decisions-noul.ts +2 -5
  142. package/src/models/ai-decisions-question.ts +0 -3
  143. package/src/models/ai-decisions-request.ts +2 -5
  144. package/src/models/ai-decisions-score.ts +4 -7
  145. package/src/models/ai-model.ts +81 -0
  146. package/src/models/{ai-decisions-choice-criteria-value.ts → ai-models.ts} +17 -2
  147. package/src/models/ai-price.ts +54 -0
  148. package/src/models/ai-receipt.ts +66 -0
  149. package/src/models/ai-routing-reward-request.ts +63 -0
  150. package/src/models/auto-automation-in.ts +6 -0
  151. package/src/models/auto-automation-patch.ts +6 -0
  152. package/src/models/auto-automation-run.ts +16 -1
  153. package/src/models/auto-automation.ts +6 -0
  154. package/src/models/auto-post-result.ts +42 -0
  155. package/src/models/auto-review-in.ts +42 -0
  156. package/src/models/git-workspace-view.ts +42 -0
  157. package/src/models/iam-user.ts +1 -1
  158. package/src/models/index.ts +14 -2
  159. package/src/models/provider-github-import-out.ts +6 -0
  160. package/src/models/provider-github-repo-item.ts +6 -0
  161. package/src/models/task-comment-list.ts +39 -0
  162. package/src/models/task-comment.ts +48 -0
  163. package/src/transport.ts +190 -0
  164. package/src/usage.ts +203 -0
  165. /package/dist/esm/models/{ai-decision-sides-false.js → ai-chat-in.js} +0 -0
  166. /package/dist/esm/models/{ai-decisions-choice-criteria-value.js → ai-chat.js} +0 -0
  167. /package/dist/models/{ai-decision-sides-false.js → ai-chat-in.js} +0 -0
  168. /package/dist/models/{ai-decisions-choice-criteria-value.js → ai-chat.js} +0 -0
@@ -30,6 +30,8 @@ import type { AutoAutomationPage } from '../models';
30
30
  // @ts-ignore
31
31
  import type { AutoAutomationPatch } from '../models';
32
32
  // @ts-ignore
33
+ import type { AutoAutomationRun } from '../models';
34
+ // @ts-ignore
33
35
  import type { AutoAutomationRunPage } from '../models';
34
36
  // @ts-ignore
35
37
  import type { AutoCatalog } from '../models';
@@ -50,6 +52,8 @@ import type { AutoPatchFlowIn } from '../models';
50
52
  // @ts-ignore
51
53
  import type { AutoPopulatedFlow } from '../models';
52
54
  // @ts-ignore
55
+ import type { AutoReviewIn } from '../models';
56
+ // @ts-ignore
53
57
  import type { AutoRunIn } from '../models';
54
58
  // @ts-ignore
55
59
  import type { AutoRunPage } from '../models';
@@ -706,6 +710,54 @@ export const AutoApiAxiosParamCreator = function (configuration?: Configuration)
706
710
  options: localVarRequestOptions,
707
711
  };
708
712
  },
713
+ /**
714
+ * Answers a run that holds a post for review, for the person the automation runs as or an admin of the org: `post` true posts it to the automation\'s accounts and answers the run while it posts; false discards it. A run not in review answers 409; one held longer than a day is not posted.
715
+ * @summary Answers a run that holds a post for review, for the person the automation runs as or an admin of the org: `post` true posts it to the automation\'s accounts and answers the run while it posts; false discards it.
716
+ * @param {string} id ID is the automation, and Run its run in review, from the path.
717
+ * @param {string} run
718
+ * @param {AutoReviewIn} autoReviewIn
719
+ * @param {*} [options] Override http request option.
720
+ * @throws {RequiredError}
721
+ */
722
+ postAutoAutomationsByIdRunsByRunReview: async (id: string, run: string, autoReviewIn: AutoReviewIn, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
723
+ // verify required parameter 'id' is not null or undefined
724
+ assertParamExists('postAutoAutomationsByIdRunsByRunReview', 'id', id)
725
+ // verify required parameter 'run' is not null or undefined
726
+ assertParamExists('postAutoAutomationsByIdRunsByRunReview', 'run', run)
727
+ // verify required parameter 'autoReviewIn' is not null or undefined
728
+ assertParamExists('postAutoAutomationsByIdRunsByRunReview', 'autoReviewIn', autoReviewIn)
729
+ const localVarPath = `/v1/auto/automations/{id}/runs/{run}/review`
730
+ .replace(`{${"id"}}`, encodeURIComponent(String(id)))
731
+ .replace(`{${"run"}}`, encodeURIComponent(String(run)));
732
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
733
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
734
+ let baseOptions;
735
+ if (configuration) {
736
+ baseOptions = configuration.baseOptions;
737
+ }
738
+
739
+ const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
740
+ const localVarHeaderParameter = {} as any;
741
+ const localVarQueryParameter = {} as any;
742
+
743
+ // authentication bearer required
744
+ // http bearer authentication required
745
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
746
+
747
+
748
+
749
+ localVarHeaderParameter['Content-Type'] = 'application/json';
750
+
751
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
752
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
753
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
754
+ localVarRequestOptions.data = serializeDataIfNeeded(autoReviewIn, localVarRequestOptions, configuration)
755
+
756
+ return {
757
+ url: toPathString(localVarUrlObj),
758
+ options: localVarRequestOptions,
759
+ };
760
+ },
709
761
  /**
710
762
  * Creates an automation and its initial DRAFT version in one call. The new flow is DISABLED — creating it does not arm its trigger; POST /v1/auto/flows/{id}/enable does that.
711
763
  * @summary Creates an automation and its initial DRAFT version in one call.
@@ -1288,6 +1340,21 @@ export const AutoApiFp = function(configuration?: Configuration) {
1288
1340
  const localVarOperationServerBasePath = operationServerMap['AutoApi.postAutoAutomationsByIdRun']?.[localVarOperationServerIndex]?.url;
1289
1341
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1290
1342
  },
1343
+ /**
1344
+ * Answers a run that holds a post for review, for the person the automation runs as or an admin of the org: `post` true posts it to the automation\'s accounts and answers the run while it posts; false discards it. A run not in review answers 409; one held longer than a day is not posted.
1345
+ * @summary Answers a run that holds a post for review, for the person the automation runs as or an admin of the org: `post` true posts it to the automation\'s accounts and answers the run while it posts; false discards it.
1346
+ * @param {string} id ID is the automation, and Run its run in review, from the path.
1347
+ * @param {string} run
1348
+ * @param {AutoReviewIn} autoReviewIn
1349
+ * @param {*} [options] Override http request option.
1350
+ * @throws {RequiredError}
1351
+ */
1352
+ async postAutoAutomationsByIdRunsByRunReview(id: string, run: string, autoReviewIn: AutoReviewIn, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AutoAutomationRun>> {
1353
+ const localVarAxiosArgs = await localVarAxiosParamCreator.postAutoAutomationsByIdRunsByRunReview(id, run, autoReviewIn, options);
1354
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
1355
+ const localVarOperationServerBasePath = operationServerMap['AutoApi.postAutoAutomationsByIdRunsByRunReview']?.[localVarOperationServerIndex]?.url;
1356
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1357
+ },
1291
1358
  /**
1292
1359
  * Creates an automation and its initial DRAFT version in one call. The new flow is DISABLED — creating it does not arm its trigger; POST /v1/auto/flows/{id}/enable does that.
1293
1360
  * @summary Creates an automation and its initial DRAFT version in one call.
@@ -1576,6 +1643,16 @@ export const AutoApiFactory = function (configuration?: Configuration, basePath?
1576
1643
  postAutoAutomationsByIdRun(requestParameters: AutoApiPostAutoAutomationsByIdRunRequest, options?: RawAxiosRequestConfig): AxiosPromise<AutoRunStarted> {
1577
1644
  return localVarFp.postAutoAutomationsByIdRun(requestParameters.id, options).then((request) => request(axios, basePath));
1578
1645
  },
1646
+ /**
1647
+ * Answers a run that holds a post for review, for the person the automation runs as or an admin of the org: `post` true posts it to the automation\'s accounts and answers the run while it posts; false discards it. A run not in review answers 409; one held longer than a day is not posted.
1648
+ * @summary Answers a run that holds a post for review, for the person the automation runs as or an admin of the org: `post` true posts it to the automation\'s accounts and answers the run while it posts; false discards it.
1649
+ * @param {AutoApiPostAutoAutomationsByIdRunsByRunReviewRequest} requestParameters Request parameters.
1650
+ * @param {*} [options] Override http request option.
1651
+ * @throws {RequiredError}
1652
+ */
1653
+ postAutoAutomationsByIdRunsByRunReview(requestParameters: AutoApiPostAutoAutomationsByIdRunsByRunReviewRequest, options?: RawAxiosRequestConfig): AxiosPromise<AutoAutomationRun> {
1654
+ return localVarFp.postAutoAutomationsByIdRunsByRunReview(requestParameters.id, requestParameters.run, requestParameters.autoReviewIn, options).then((request) => request(axios, basePath));
1655
+ },
1579
1656
  /**
1580
1657
  * Creates an automation and its initial DRAFT version in one call. The new flow is DISABLED — creating it does not arm its trigger; POST /v1/auto/flows/{id}/enable does that.
1581
1658
  * @summary Creates an automation and its initial DRAFT version in one call.
@@ -1907,6 +1984,34 @@ export interface AutoApiPostAutoAutomationsByIdRunRequest {
1907
1984
  readonly id: string
1908
1985
  }
1909
1986
 
1987
+ /**
1988
+ * Request parameters for postAutoAutomationsByIdRunsByRunReview operation in AutoApi.
1989
+ * @export
1990
+ * @interface AutoApiPostAutoAutomationsByIdRunsByRunReviewRequest
1991
+ */
1992
+ export interface AutoApiPostAutoAutomationsByIdRunsByRunReviewRequest {
1993
+ /**
1994
+ * ID is the automation, and Run its run in review, from the path.
1995
+ * @type {string}
1996
+ * @memberof AutoApiPostAutoAutomationsByIdRunsByRunReview
1997
+ */
1998
+ readonly id: string
1999
+
2000
+ /**
2001
+ *
2002
+ * @type {string}
2003
+ * @memberof AutoApiPostAutoAutomationsByIdRunsByRunReview
2004
+ */
2005
+ readonly run: string
2006
+
2007
+ /**
2008
+ *
2009
+ * @type {AutoReviewIn}
2010
+ * @memberof AutoApiPostAutoAutomationsByIdRunsByRunReview
2011
+ */
2012
+ readonly autoReviewIn: AutoReviewIn
2013
+ }
2014
+
1910
2015
  /**
1911
2016
  * Request parameters for postAutoFlows operation in AutoApi.
1912
2017
  * @export
@@ -2251,6 +2356,18 @@ export class AutoApi extends BaseAPI {
2251
2356
  return AutoApiFp(this.configuration).postAutoAutomationsByIdRun(requestParameters.id, options).then((request) => request(this.axios, this.basePath));
2252
2357
  }
2253
2358
 
2359
+ /**
2360
+ * Answers a run that holds a post for review, for the person the automation runs as or an admin of the org: `post` true posts it to the automation\'s accounts and answers the run while it posts; false discards it. A run not in review answers 409; one held longer than a day is not posted.
2361
+ * @summary Answers a run that holds a post for review, for the person the automation runs as or an admin of the org: `post` true posts it to the automation\'s accounts and answers the run while it posts; false discards it.
2362
+ * @param {AutoApiPostAutoAutomationsByIdRunsByRunReviewRequest} requestParameters Request parameters.
2363
+ * @param {*} [options] Override http request option.
2364
+ * @throws {RequiredError}
2365
+ * @memberof AutoApi
2366
+ */
2367
+ public postAutoAutomationsByIdRunsByRunReview(requestParameters: AutoApiPostAutoAutomationsByIdRunsByRunReviewRequest, options?: RawAxiosRequestConfig) {
2368
+ return AutoApiFp(this.configuration).postAutoAutomationsByIdRunsByRunReview(requestParameters.id, requestParameters.run, requestParameters.autoReviewIn, options).then((request) => request(this.axios, this.basePath));
2369
+ }
2370
+
2254
2371
  /**
2255
2372
  * Creates an automation and its initial DRAFT version in one call. The new flow is DISABLED — creating it does not arm its trigger; POST /v1/auto/flows/{id}/enable does that.
2256
2373
  * @summary Creates an automation and its initial DRAFT version in one call.
@@ -460,7 +460,7 @@ export const BillingApiAxiosParamCreator = function (configuration?: Configurati
460
460
  };
461
461
  },
462
462
  /**
463
- * Answers the spendable prepaid balance of the wallet this caller bills from — the same wallet the AI prepaid gate reads before admitting a paid request, the edge meter debits, and a top-up credits. The wallet is an ADDRESS, not an org: `account` echoes the key resolved within the ledger — the org\'s shared pool for a tenant org, a personal account for a member of the shared signup org. The echo is the point. A browser could only GUESS its own payer by decoding its own token, and a guess that disagrees with the server is how money lands in an account the gate never reads. `balance`, `holds` and `available` are whole USD cents, ROUNDED from the ledger\'s exact 18-decimal value. On the co-resident ledger `holds` is 0 and `available` equals `balance`: the gate\'s reservations live in its own pod and are never posted, so the settled balance IS the spendable one. `cash` and `credit` say where `available` came from, and add up to it. `cash` is money the customer paid — a settled card payment or a recorded wire. `credit` is money Hanzo minted: signup and promotional credit, admin grants. Both pay for any call, and every debit draws cash first. The ledger is the caller\'s own org, taken from the VALIDATED IAM owner claim and never from a client header. No validated principal is 401. A balance that cannot be READ is 502, never 0: unknown is not broke.
463
+ * Answers the spendable prepaid balance of the wallet this caller bills from — the same wallet the AI prepaid gate reads before admitting a paid request, the edge meter debits, and a top-up credits. The wallet is an ADDRESS, not an org: `account` echoes the key resolved within the ledger — the org\'s shared pool for a tenant org, a personal account for a member of the shared signup org. The echo is the point. A browser could only GUESS its own payer by decoding its own token, and a guess that disagrees with the server is how money lands in an account the gate never reads. `balance`, `holds` and `available` are whole USD cents, ROUNDED from the ledger\'s exact 18-decimal value. On the co-resident ledger `holds` is 0 and `available` equals `balance`: the gate\'s reservations live in its own pod and are never posted, so the settled balance IS the spendable one. `cash`, `line` and `credit` say where `available` came from, and add up to it. `cash` is money the customer paid — a settled card payment or a recorded wire. `credit` is money Hanzo minted: signup and promotional credit, admin grants. `line` is what is left of the org\'s postpaid credit line (`creditLimit`), and `due` what the account owes on it: usage the line paid for, invoiced, and paid down first by the next payment. A debit draws cash, then the line, then credit; granted credit never pays what is due. The three line fields are absent when the ledger did not report them. The ledger is the caller\'s own org, taken from the VALIDATED IAM owner claim and never from a client header. No validated principal is 401. A balance that cannot be READ is 502, never 0: unknown is not broke.
464
464
  * @summary Prepaid credit the caller\'s org can still spend
465
465
  * @param {*} [options] Override http request option.
466
466
  * @throws {RequiredError}
@@ -2094,7 +2094,7 @@ export const BillingApiFp = function(configuration?: Configuration) {
2094
2094
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2095
2095
  },
2096
2096
  /**
2097
- * Answers the spendable prepaid balance of the wallet this caller bills from — the same wallet the AI prepaid gate reads before admitting a paid request, the edge meter debits, and a top-up credits. The wallet is an ADDRESS, not an org: `account` echoes the key resolved within the ledger — the org\'s shared pool for a tenant org, a personal account for a member of the shared signup org. The echo is the point. A browser could only GUESS its own payer by decoding its own token, and a guess that disagrees with the server is how money lands in an account the gate never reads. `balance`, `holds` and `available` are whole USD cents, ROUNDED from the ledger\'s exact 18-decimal value. On the co-resident ledger `holds` is 0 and `available` equals `balance`: the gate\'s reservations live in its own pod and are never posted, so the settled balance IS the spendable one. `cash` and `credit` say where `available` came from, and add up to it. `cash` is money the customer paid — a settled card payment or a recorded wire. `credit` is money Hanzo minted: signup and promotional credit, admin grants. Both pay for any call, and every debit draws cash first. The ledger is the caller\'s own org, taken from the VALIDATED IAM owner claim and never from a client header. No validated principal is 401. A balance that cannot be READ is 502, never 0: unknown is not broke.
2097
+ * Answers the spendable prepaid balance of the wallet this caller bills from — the same wallet the AI prepaid gate reads before admitting a paid request, the edge meter debits, and a top-up credits. The wallet is an ADDRESS, not an org: `account` echoes the key resolved within the ledger — the org\'s shared pool for a tenant org, a personal account for a member of the shared signup org. The echo is the point. A browser could only GUESS its own payer by decoding its own token, and a guess that disagrees with the server is how money lands in an account the gate never reads. `balance`, `holds` and `available` are whole USD cents, ROUNDED from the ledger\'s exact 18-decimal value. On the co-resident ledger `holds` is 0 and `available` equals `balance`: the gate\'s reservations live in its own pod and are never posted, so the settled balance IS the spendable one. `cash`, `line` and `credit` say where `available` came from, and add up to it. `cash` is money the customer paid — a settled card payment or a recorded wire. `credit` is money Hanzo minted: signup and promotional credit, admin grants. `line` is what is left of the org\'s postpaid credit line (`creditLimit`), and `due` what the account owes on it: usage the line paid for, invoiced, and paid down first by the next payment. A debit draws cash, then the line, then credit; granted credit never pays what is due. The three line fields are absent when the ledger did not report them. The ledger is the caller\'s own org, taken from the VALIDATED IAM owner claim and never from a client header. No validated principal is 401. A balance that cannot be READ is 502, never 0: unknown is not broke.
2098
2098
  * @summary Prepaid credit the caller\'s org can still spend
2099
2099
  * @param {*} [options] Override http request option.
2100
2100
  * @throws {RequiredError}
@@ -2701,7 +2701,7 @@ export const BillingApiFactory = function (configuration?: Configuration, basePa
2701
2701
  return localVarFp.getBillingAlertsAuthorize(requestParameters.project, requestParameters.service, requestParameters.amount, requestParameters.pv, options).then((request) => request(axios, basePath));
2702
2702
  },
2703
2703
  /**
2704
- * Answers the spendable prepaid balance of the wallet this caller bills from — the same wallet the AI prepaid gate reads before admitting a paid request, the edge meter debits, and a top-up credits. The wallet is an ADDRESS, not an org: `account` echoes the key resolved within the ledger — the org\'s shared pool for a tenant org, a personal account for a member of the shared signup org. The echo is the point. A browser could only GUESS its own payer by decoding its own token, and a guess that disagrees with the server is how money lands in an account the gate never reads. `balance`, `holds` and `available` are whole USD cents, ROUNDED from the ledger\'s exact 18-decimal value. On the co-resident ledger `holds` is 0 and `available` equals `balance`: the gate\'s reservations live in its own pod and are never posted, so the settled balance IS the spendable one. `cash` and `credit` say where `available` came from, and add up to it. `cash` is money the customer paid — a settled card payment or a recorded wire. `credit` is money Hanzo minted: signup and promotional credit, admin grants. Both pay for any call, and every debit draws cash first. The ledger is the caller\'s own org, taken from the VALIDATED IAM owner claim and never from a client header. No validated principal is 401. A balance that cannot be READ is 502, never 0: unknown is not broke.
2704
+ * Answers the spendable prepaid balance of the wallet this caller bills from — the same wallet the AI prepaid gate reads before admitting a paid request, the edge meter debits, and a top-up credits. The wallet is an ADDRESS, not an org: `account` echoes the key resolved within the ledger — the org\'s shared pool for a tenant org, a personal account for a member of the shared signup org. The echo is the point. A browser could only GUESS its own payer by decoding its own token, and a guess that disagrees with the server is how money lands in an account the gate never reads. `balance`, `holds` and `available` are whole USD cents, ROUNDED from the ledger\'s exact 18-decimal value. On the co-resident ledger `holds` is 0 and `available` equals `balance`: the gate\'s reservations live in its own pod and are never posted, so the settled balance IS the spendable one. `cash`, `line` and `credit` say where `available` came from, and add up to it. `cash` is money the customer paid — a settled card payment or a recorded wire. `credit` is money Hanzo minted: signup and promotional credit, admin grants. `line` is what is left of the org\'s postpaid credit line (`creditLimit`), and `due` what the account owes on it: usage the line paid for, invoiced, and paid down first by the next payment. A debit draws cash, then the line, then credit; granted credit never pays what is due. The three line fields are absent when the ledger did not report them. The ledger is the caller\'s own org, taken from the VALIDATED IAM owner claim and never from a client header. No validated principal is 401. A balance that cannot be READ is 502, never 0: unknown is not broke.
2705
2705
  * @summary Prepaid credit the caller\'s org can still spend
2706
2706
  * @param {*} [options] Override http request option.
2707
2707
  * @throws {RequiredError}
@@ -3658,7 +3658,7 @@ export class BillingApi extends BaseAPI {
3658
3658
  }
3659
3659
 
3660
3660
  /**
3661
- * Answers the spendable prepaid balance of the wallet this caller bills from — the same wallet the AI prepaid gate reads before admitting a paid request, the edge meter debits, and a top-up credits. The wallet is an ADDRESS, not an org: `account` echoes the key resolved within the ledger — the org\'s shared pool for a tenant org, a personal account for a member of the shared signup org. The echo is the point. A browser could only GUESS its own payer by decoding its own token, and a guess that disagrees with the server is how money lands in an account the gate never reads. `balance`, `holds` and `available` are whole USD cents, ROUNDED from the ledger\'s exact 18-decimal value. On the co-resident ledger `holds` is 0 and `available` equals `balance`: the gate\'s reservations live in its own pod and are never posted, so the settled balance IS the spendable one. `cash` and `credit` say where `available` came from, and add up to it. `cash` is money the customer paid — a settled card payment or a recorded wire. `credit` is money Hanzo minted: signup and promotional credit, admin grants. Both pay for any call, and every debit draws cash first. The ledger is the caller\'s own org, taken from the VALIDATED IAM owner claim and never from a client header. No validated principal is 401. A balance that cannot be READ is 502, never 0: unknown is not broke.
3661
+ * Answers the spendable prepaid balance of the wallet this caller bills from — the same wallet the AI prepaid gate reads before admitting a paid request, the edge meter debits, and a top-up credits. The wallet is an ADDRESS, not an org: `account` echoes the key resolved within the ledger — the org\'s shared pool for a tenant org, a personal account for a member of the shared signup org. The echo is the point. A browser could only GUESS its own payer by decoding its own token, and a guess that disagrees with the server is how money lands in an account the gate never reads. `balance`, `holds` and `available` are whole USD cents, ROUNDED from the ledger\'s exact 18-decimal value. On the co-resident ledger `holds` is 0 and `available` equals `balance`: the gate\'s reservations live in its own pod and are never posted, so the settled balance IS the spendable one. `cash`, `line` and `credit` say where `available` came from, and add up to it. `cash` is money the customer paid — a settled card payment or a recorded wire. `credit` is money Hanzo minted: signup and promotional credit, admin grants. `line` is what is left of the org\'s postpaid credit line (`creditLimit`), and `due` what the account owes on it: usage the line paid for, invoiced, and paid down first by the next payment. A debit draws cash, then the line, then credit; granted credit never pays what is due. The three line fields are absent when the ledger did not report them. The ledger is the caller\'s own org, taken from the VALIDATED IAM owner claim and never from a client header. No validated principal is 401. A balance that cannot be READ is 502, never 0: unknown is not broke.
3662
3662
  * @summary Prepaid credit the caller\'s org can still spend
3663
3663
  * @param {*} [options] Override http request option.
3664
3664
  * @throws {RequiredError}
@@ -92,6 +92,8 @@ import type { GitWorkflowRun } from '../models';
92
92
  // @ts-ignore
93
93
  import type { GitWorkflowRuns } from '../models';
94
94
  // @ts-ignore
95
+ import type { GitWorkspaceView } from '../models';
96
+ // @ts-ignore
95
97
  import type { ProblemDetails } from '../models';
96
98
  // @ts-ignore
97
99
  import type { RunnerDeclareIn } from '../models';
@@ -2013,6 +2015,40 @@ export const GitApiAxiosParamCreator = function (configuration?: Configuration)
2013
2015
 
2014
2016
 
2015
2017
 
2018
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
2019
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2020
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
2021
+
2022
+ return {
2023
+ url: toPathString(localVarUrlObj),
2024
+ options: localVarRequestOptions,
2025
+ };
2026
+ },
2027
+ /**
2028
+ * Sets the org\'s code workspace up for the caller and answers it: the namespace, made when the org has none, and the caller\'s forge account and seat there. Idempotent. The estate\'s namespace is answered from the closed table and nobody is enrolled in it. A seat is a person\'s: an API key or an application is refused, and a SuperAdmin acting in another org reads the workspace as it is and makes nothing.
2029
+ * @summary Sets the org\'s code workspace up for the caller and answers it: the namespace, made when the org has none, and the caller\'s forge account and seat there.
2030
+ * @param {*} [options] Override http request option.
2031
+ * @throws {RequiredError}
2032
+ */
2033
+ postGitWorkspace: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
2034
+ const localVarPath = `/v1/git/workspace`;
2035
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2036
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
2037
+ let baseOptions;
2038
+ if (configuration) {
2039
+ baseOptions = configuration.baseOptions;
2040
+ }
2041
+
2042
+ const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
2043
+ const localVarHeaderParameter = {} as any;
2044
+ const localVarQueryParameter = {} as any;
2045
+
2046
+ // authentication bearer required
2047
+ // http bearer authentication required
2048
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
2049
+
2050
+
2051
+
2016
2052
  setSearchParams(localVarUrlObj, localVarQueryParameter);
2017
2053
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2018
2054
  localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
@@ -2892,6 +2928,18 @@ export const GitApiFp = function(configuration?: Configuration) {
2892
2928
  const localVarOperationServerBasePath = operationServerMap['GitApi.postGitWebhook']?.[localVarOperationServerIndex]?.url;
2893
2929
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2894
2930
  },
2931
+ /**
2932
+ * Sets the org\'s code workspace up for the caller and answers it: the namespace, made when the org has none, and the caller\'s forge account and seat there. Idempotent. The estate\'s namespace is answered from the closed table and nobody is enrolled in it. A seat is a person\'s: an API key or an application is refused, and a SuperAdmin acting in another org reads the workspace as it is and makes nothing.
2933
+ * @summary Sets the org\'s code workspace up for the caller and answers it: the namespace, made when the org has none, and the caller\'s forge account and seat there.
2934
+ * @param {*} [options] Override http request option.
2935
+ * @throws {RequiredError}
2936
+ */
2937
+ async postGitWorkspace(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GitWorkspaceView>> {
2938
+ const localVarAxiosArgs = await localVarAxiosParamCreator.postGitWorkspace(options);
2939
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
2940
+ const localVarOperationServerBasePath = operationServerMap['GitApi.postGitWorkspace']?.[localVarOperationServerIndex]?.url;
2941
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2942
+ },
2895
2943
  /**
2896
2944
  * Republishes what a registered runner can do, and answers with what this side understands, so the two learn about each other from one exchange.
2897
2945
  * @summary Republishes what a registered runner can do, and answers with what this side understands, so the two learn about each other from one exchange.
@@ -3427,6 +3475,15 @@ export const GitApiFactory = function (configuration?: Configuration, basePath?:
3427
3475
  postGitWebhook(options?: RawAxiosRequestConfig): AxiosPromise<void> {
3428
3476
  return localVarFp.postGitWebhook(options).then((request) => request(axios, basePath));
3429
3477
  },
3478
+ /**
3479
+ * Sets the org\'s code workspace up for the caller and answers it: the namespace, made when the org has none, and the caller\'s forge account and seat there. Idempotent. The estate\'s namespace is answered from the closed table and nobody is enrolled in it. A seat is a person\'s: an API key or an application is refused, and a SuperAdmin acting in another org reads the workspace as it is and makes nothing.
3480
+ * @summary Sets the org\'s code workspace up for the caller and answers it: the namespace, made when the org has none, and the caller\'s forge account and seat there.
3481
+ * @param {*} [options] Override http request option.
3482
+ * @throws {RequiredError}
3483
+ */
3484
+ postGitWorkspace(options?: RawAxiosRequestConfig): AxiosPromise<GitWorkspaceView> {
3485
+ return localVarFp.postGitWorkspace(options).then((request) => request(axios, basePath));
3486
+ },
3430
3487
  /**
3431
3488
  * Republishes what a registered runner can do, and answers with what this side understands, so the two learn about each other from one exchange.
3432
3489
  * @summary Republishes what a registered runner can do, and answers with what this side understands, so the two learn about each other from one exchange.
@@ -4955,6 +5012,17 @@ export class GitApi extends BaseAPI {
4955
5012
  return GitApiFp(this.configuration).postGitWebhook(options).then((request) => request(this.axios, this.basePath));
4956
5013
  }
4957
5014
 
5015
+ /**
5016
+ * Sets the org\'s code workspace up for the caller and answers it: the namespace, made when the org has none, and the caller\'s forge account and seat there. Idempotent. The estate\'s namespace is answered from the closed table and nobody is enrolled in it. A seat is a person\'s: an API key or an application is refused, and a SuperAdmin acting in another org reads the workspace as it is and makes nothing.
5017
+ * @summary Sets the org\'s code workspace up for the caller and answers it: the namespace, made when the org has none, and the caller\'s forge account and seat there.
5018
+ * @param {*} [options] Override http request option.
5019
+ * @throws {RequiredError}
5020
+ * @memberof GitApi
5021
+ */
5022
+ public postGitWorkspace(options?: RawAxiosRequestConfig) {
5023
+ return GitApiFp(this.configuration).postGitWorkspace(options).then((request) => request(this.axios, this.basePath));
5024
+ }
5025
+
4958
5026
  /**
4959
5027
  * Republishes what a registered runner can do, and answers with what this side understands, so the two learn about each other from one exchange.
4960
5028
  * @summary Republishes what a registered runner can do, and answers with what this side understands, so the two learn about each other from one exchange.
@@ -26,6 +26,8 @@ import type { ProblemDetails } from '../models';
26
26
  // @ts-ignore
27
27
  import type { TaskBoardView } from '../models';
28
28
  // @ts-ignore
29
+ import type { TaskCommentList } from '../models';
30
+ // @ts-ignore
29
31
  import type { TaskIssueEdit } from '../models';
30
32
  // @ts-ignore
31
33
  import type { TaskIssueHit } from '../models';
@@ -402,6 +404,48 @@ export const TaskApiAxiosParamCreator = function (configuration?: Configuration)
402
404
 
403
405
 
404
406
 
407
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
408
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
409
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
410
+
411
+ return {
412
+ url: toPathString(localVarUrlObj),
413
+ options: localVarRequestOptions,
414
+ };
415
+ },
416
+ /**
417
+ * Is one issue\'s conversation, oldest first, read as the caller. An issue that lives on GitHub names its home and is read there.
418
+ * @summary Is one issue\'s conversation, oldest first, read as the caller.
419
+ * @param {string} key Key is the board — the repository name, or an index board\&#39;s key.
420
+ * @param {number} num Num is the issue\&#39;s number on that board.
421
+ * @param {*} [options] Override http request option.
422
+ * @throws {RequiredError}
423
+ */
424
+ getTaskProjectsByKeyIssuesByNumComments: async (key: string, num: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
425
+ // verify required parameter 'key' is not null or undefined
426
+ assertParamExists('getTaskProjectsByKeyIssuesByNumComments', 'key', key)
427
+ // verify required parameter 'num' is not null or undefined
428
+ assertParamExists('getTaskProjectsByKeyIssuesByNumComments', 'num', num)
429
+ const localVarPath = `/v1/task/projects/{key}/issues/{num}/comments`
430
+ .replace(`{${"key"}}`, encodeURIComponent(String(key)))
431
+ .replace(`{${"num"}}`, encodeURIComponent(String(num)));
432
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
433
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
434
+ let baseOptions;
435
+ if (configuration) {
436
+ baseOptions = configuration.baseOptions;
437
+ }
438
+
439
+ const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
440
+ const localVarHeaderParameter = {} as any;
441
+ const localVarQueryParameter = {} as any;
442
+
443
+ // authentication bearer required
444
+ // http bearer authentication required
445
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
446
+
447
+
448
+
405
449
  setSearchParams(localVarUrlObj, localVarQueryParameter);
406
450
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
407
451
  localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
@@ -776,6 +820,20 @@ export const TaskApiFp = function(configuration?: Configuration) {
776
820
  const localVarOperationServerBasePath = operationServerMap['TaskApi.getTaskProjectsByKeyIssuesByNum']?.[localVarOperationServerIndex]?.url;
777
821
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
778
822
  },
823
+ /**
824
+ * Is one issue\'s conversation, oldest first, read as the caller. An issue that lives on GitHub names its home and is read there.
825
+ * @summary Is one issue\'s conversation, oldest first, read as the caller.
826
+ * @param {string} key Key is the board — the repository name, or an index board\&#39;s key.
827
+ * @param {number} num Num is the issue\&#39;s number on that board.
828
+ * @param {*} [options] Override http request option.
829
+ * @throws {RequiredError}
830
+ */
831
+ async getTaskProjectsByKeyIssuesByNumComments(key: string, num: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<TaskCommentList>> {
832
+ const localVarAxiosArgs = await localVarAxiosParamCreator.getTaskProjectsByKeyIssuesByNumComments(key, num, options);
833
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
834
+ const localVarOperationServerBasePath = operationServerMap['TaskApi.getTaskProjectsByKeyIssuesByNumComments']?.[localVarOperationServerIndex]?.url;
835
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
836
+ },
779
837
  /**
780
838
  * Summarises one room\'s work. The room is opaque here and is deliberately not resolved: this package cannot say whether a room exists — apps/team owns that document — so an unknown room answers an EMPTY board rather than a 404. That is the honest answer and the useful one: a channel that has never had an item filed in it and a channel id that was mistyped both have no work, and inventing a distinction would require this surface to hold a second copy of the room list (HIP-0523 §2 forbids it, and it would drift the first time a room was renamed). Tenancy is the validated principal\'s org and nothing else, so a caller cannot read another tenant\'s channel by naming its room.
781
839
  * @summary Summarises one room\'s work.
@@ -936,6 +994,16 @@ export const TaskApiFactory = function (configuration?: Configuration, basePath?
936
994
  getTaskProjectsByKeyIssuesByNum(requestParameters: TaskApiGetTaskProjectsByKeyIssuesByNumRequest, options?: RawAxiosRequestConfig): AxiosPromise<TaskIssueView> {
937
995
  return localVarFp.getTaskProjectsByKeyIssuesByNum(requestParameters.key, requestParameters.num, options).then((request) => request(axios, basePath));
938
996
  },
997
+ /**
998
+ * Is one issue\'s conversation, oldest first, read as the caller. An issue that lives on GitHub names its home and is read there.
999
+ * @summary Is one issue\'s conversation, oldest first, read as the caller.
1000
+ * @param {TaskApiGetTaskProjectsByKeyIssuesByNumCommentsRequest} requestParameters Request parameters.
1001
+ * @param {*} [options] Override http request option.
1002
+ * @throws {RequiredError}
1003
+ */
1004
+ getTaskProjectsByKeyIssuesByNumComments(requestParameters: TaskApiGetTaskProjectsByKeyIssuesByNumCommentsRequest, options?: RawAxiosRequestConfig): AxiosPromise<TaskCommentList> {
1005
+ return localVarFp.getTaskProjectsByKeyIssuesByNumComments(requestParameters.key, requestParameters.num, options).then((request) => request(axios, basePath));
1006
+ },
939
1007
  /**
940
1008
  * Summarises one room\'s work. The room is opaque here and is deliberately not resolved: this package cannot say whether a room exists — apps/team owns that document — so an unknown room answers an EMPTY board rather than a 404. That is the honest answer and the useful one: a channel that has never had an item filed in it and a channel id that was mistyped both have no work, and inventing a distinction would require this surface to hold a second copy of the room list (HIP-0523 §2 forbids it, and it would drift the first time a room was renamed). Tenancy is the validated principal\'s org and nothing else, so a caller cannot read another tenant\'s channel by naming its room.
941
1009
  * @summary Summarises one room\'s work.
@@ -1229,6 +1297,27 @@ export interface TaskApiGetTaskProjectsByKeyIssuesByNumRequest {
1229
1297
  readonly num: number
1230
1298
  }
1231
1299
 
1300
+ /**
1301
+ * Request parameters for getTaskProjectsByKeyIssuesByNumComments operation in TaskApi.
1302
+ * @export
1303
+ * @interface TaskApiGetTaskProjectsByKeyIssuesByNumCommentsRequest
1304
+ */
1305
+ export interface TaskApiGetTaskProjectsByKeyIssuesByNumCommentsRequest {
1306
+ /**
1307
+ * Key is the board — the repository name, or an index board\&#39;s key.
1308
+ * @type {string}
1309
+ * @memberof TaskApiGetTaskProjectsByKeyIssuesByNumComments
1310
+ */
1311
+ readonly key: string
1312
+
1313
+ /**
1314
+ * Num is the issue\&#39;s number on that board.
1315
+ * @type {number}
1316
+ * @memberof TaskApiGetTaskProjectsByKeyIssuesByNumComments
1317
+ */
1318
+ readonly num: number
1319
+ }
1320
+
1232
1321
  /**
1233
1322
  * Request parameters for getTaskRoomsByRoom operation in TaskApi.
1234
1323
  * @export
@@ -1417,6 +1506,18 @@ export class TaskApi extends BaseAPI {
1417
1506
  return TaskApiFp(this.configuration).getTaskProjectsByKeyIssuesByNum(requestParameters.key, requestParameters.num, options).then((request) => request(this.axios, this.basePath));
1418
1507
  }
1419
1508
 
1509
+ /**
1510
+ * Is one issue\'s conversation, oldest first, read as the caller. An issue that lives on GitHub names its home and is read there.
1511
+ * @summary Is one issue\'s conversation, oldest first, read as the caller.
1512
+ * @param {TaskApiGetTaskProjectsByKeyIssuesByNumCommentsRequest} requestParameters Request parameters.
1513
+ * @param {*} [options] Override http request option.
1514
+ * @throws {RequiredError}
1515
+ * @memberof TaskApi
1516
+ */
1517
+ public getTaskProjectsByKeyIssuesByNumComments(requestParameters: TaskApiGetTaskProjectsByKeyIssuesByNumCommentsRequest, options?: RawAxiosRequestConfig) {
1518
+ return TaskApiFp(this.configuration).getTaskProjectsByKeyIssuesByNumComments(requestParameters.key, requestParameters.num, options).then((request) => request(this.axios, this.basePath));
1519
+ }
1520
+
1420
1521
  /**
1421
1522
  * Summarises one room\'s work. The room is opaque here and is deliberately not resolved: this package cannot say whether a room exists — apps/team owns that document — so an unknown room answers an EMPTY board rather than a 404. That is the honest answer and the useful one: a channel that has never had an item filed in it and a channel id that was mistyped both have no work, and inventing a distinction would require this surface to hold a second copy of the room list (HIP-0523 §2 forbids it, and it would drift the first time a room was renamed). Tenancy is the validated principal\'s org and nothing else, so a caller cannot read another tenant\'s channel by naming its room.
1422
1523
  * @summary Summarises one room\'s work.
package/src/client.ts CHANGED
@@ -13,7 +13,7 @@
13
13
  // `client.configuration` and construct one with the same identity.
14
14
 
15
15
  import { Fault, type Call, type Query, type Reply } from './answer';
16
- import { Configuration } from './configuration';
16
+ import { Configuration } from './transport';
17
17
  import { Audit } from './audit';
18
18
  import { Budget } from './budget';
19
19
  import { Graph } from './graph';
@@ -120,7 +120,8 @@ export class Client {
120
120
  /**
121
121
  * A Configuration carrying this client's identity, for the generated *Api
122
122
  * classes. The `accessToken` reader is a function, so every generated call
123
- * mints or re-uses through the same cache the six use.
123
+ * mints or re-uses through the same cache the six use, and a usage refusal
124
+ * arrives as its typed error (transport.ts).
124
125
  */
125
126
  get configuration(): Configuration {
126
127
  return new Configuration({ basePath: this.base, accessToken: () => this.token() });
package/src/hanzo.ts CHANGED
@@ -23,9 +23,27 @@
23
23
 
24
24
  export * from './index';
25
25
 
26
+ // The generated Configuration, plus typed usage refusals on every *Api call
27
+ // made with it. Named here, it shadows the one `./index` exports.
28
+ export { Configuration } from './transport';
29
+
26
30
  export { Client } from './client';
27
31
  export type { Options } from './client';
28
32
 
33
+ // What a priced answer's headers say, and the six refusals a caller can act on —
34
+ // the same names as the Python and Go SDKs.
35
+ export {
36
+ readUsage,
37
+ UsageLimitError,
38
+ PlanAllowanceUsedError,
39
+ PaidPlanRequiredError,
40
+ FreePlanCapError,
41
+ ModelCapError,
42
+ UsageCapExceededError,
43
+ InsufficientBalanceError,
44
+ } from './usage';
45
+ export type { Usage, UsageAction, HeaderSource } from './usage';
46
+
29
47
  export * as answer from './answer';
30
48
  export * as budget from './budget';
31
49
  export * as policy from './policy';
@@ -80,6 +80,12 @@ export interface AgentTargetView {
80
80
  * @memberof AgentTargetView
81
81
  */
82
82
  'running'?: number;
83
+ /**
84
+ * Serving says whether a run the caller sends here now would be taken: the machine is the caller\'s (or the caller is an org admin), and it is online with a runner that polled for work within the last 90 seconds — the online and runner half is what dispatch checks (TargetDispatchable). A heartbeat alone keeps a machine online, not serving, and a colleague\'s machine never serves the caller.
85
+ * @type {boolean}
86
+ * @memberof AgentTargetView
87
+ */
88
+ 'serving'?: boolean;
83
89
  /**
84
90
  * Sessions is how many of the org\'s sessions are mapped to this machine, by target id OR by matching Host. All of them, whatever their status.
85
91
  * @type {number}
@@ -0,0 +1,48 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Hanzo Cloud API
5
+ * The Hanzo Cloud API as a customer calls it: every operation under /v1/ except the operator\'s admin product, relay routes, legacy spellings and capabilities still reached by flag. Tagged by product: the first path segment after /v1/.
6
+ *
7
+ * The version of the OpenAPI document: v1
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+
16
+
17
+ /**
18
+ *
19
+ * @export
20
+ * @interface AiChatIn
21
+ */
22
+ export interface AiChatIn {
23
+ /**
24
+ * MaxTokens bounds the answer in tokens; 0 leaves it to the model.
25
+ * @type {number}
26
+ * @memberof AiChatIn
27
+ */
28
+ 'max_tokens'?: number;
29
+ /**
30
+ * Model is the model to answer, by id (zen5, enso, kai, anthropic/claude-sonnet-4.5 — aiModels lists them). Empty asks the deployment\'s default Hanzo model.
31
+ * @type {string}
32
+ * @memberof AiChatIn
33
+ */
34
+ 'model'?: string;
35
+ /**
36
+ * Prompt is what to ask.
37
+ * @type {string}
38
+ * @memberof AiChatIn
39
+ */
40
+ 'prompt'?: string;
41
+ /**
42
+ * System is the system message ahead of the prompt, when set.
43
+ * @type {string}
44
+ * @memberof AiChatIn
45
+ */
46
+ 'system'?: string;
47
+ }
48
+
@@ -0,0 +1,45 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Hanzo Cloud API
5
+ * The Hanzo Cloud API as a customer calls it: every operation under /v1/ except the operator\'s admin product, relay routes, legacy spellings and capabilities still reached by flag. Tagged by product: the first path segment after /v1/.
6
+ *
7
+ * The version of the OpenAPI document: v1
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+
16
+ // May contain unused imports in some cases
17
+ // @ts-ignore
18
+ import type { AiReceipt } from './ai-receipt';
19
+
20
+ /**
21
+ *
22
+ * @export
23
+ * @interface AiChat
24
+ */
25
+ export interface AiChat {
26
+ /**
27
+ * Answer is the model\'s reply.
28
+ * @type {string}
29
+ * @memberof AiChat
30
+ */
31
+ 'answer'?: string;
32
+ /**
33
+ * Model is the model asked: the caller\'s, or the default when it named none.
34
+ * @type {string}
35
+ * @memberof AiChat
36
+ */
37
+ 'model'?: string;
38
+ /**
39
+ * Receipt says which model served the reply and who paid for it.
40
+ * @type {AiReceipt}
41
+ * @memberof AiChat
42
+ */
43
+ 'receipt'?: AiReceipt;
44
+ }
45
+