@hyperline/cli 0.1.0-build.1.1c690da → 0.1.0-build.1.1cac073

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.
@@ -38483,7 +38483,7 @@ Examples:
38483
38483
  queryParamKeys: []
38484
38484
  });
38485
38485
  });
38486
- resource.command("delete-ledger").description(`Delete an unused accounting ledger.`).requiredOption("--id <value>", `id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
38486
+ resource.command("delete-ledger").description(`Permanently delete a ledger with its accounts, rules, journal entries and revenue recognition schedules, and unlink the suppliers, supplier contracts and accounting settings that reference it.`).requiredOption("--id <value>", `id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
38487
38487
  Examples:
38488
38488
  hyperline accounting-ledgers delete-ledger --id <id>
38489
38489
  hyperline accounting-ledgers delete-ledger --id <id> --output json`).action(async (opts) => {
@@ -39524,7 +39524,7 @@ Examples:
39524
39524
 
39525
39525
  // build/commands/generated/ai-billing.js
39526
39526
  function registerAi_BillingCommands(parent) {
39527
- const resource = parent.command("ai-billing").description("Manage ai billing");
39527
+ const resource = parent.command("ai-billing").description("Manage ai > billing");
39528
39528
  resource.command("list-agent-plans").description(`List AI agent billing plans: workspace-level offers carrying a billing mode (wallet/credits/windows), rate card, allowance windows, markups and per-seat credit grants. Filter by mode; paginated with take/skip.`).option("--mode <value>", `Billing mode.
39529
39529
 
39530
39530
  - wallet: Charges a monetary wallet.
@@ -39547,7 +39547,7 @@ Examples:
39547
39547
  args.skip = Number(opts.skip);
39548
39548
  await ctx.execute({
39549
39549
  method: "GET",
39550
- path: "/v1/ai-billing/plans",
39550
+ path: "/v1/ai/billing/plans",
39551
39551
  args,
39552
39552
  queryParamKeys: ["mode", "take", "skip"]
39553
39553
  });
@@ -39598,7 +39598,7 @@ Examples:
39598
39598
  args.windows = JSON.parse(opts.windows);
39599
39599
  await ctx.execute({
39600
39600
  method: "POST",
39601
- path: "/v1/ai-billing/plans",
39601
+ path: "/v1/ai/billing/plans",
39602
39602
  args,
39603
39603
  queryParamKeys: []
39604
39604
  });
@@ -39616,7 +39616,7 @@ Examples:
39616
39616
  args.plan_id = opts.planId;
39617
39617
  await ctx.execute({
39618
39618
  method: "GET",
39619
- path: "/v1/ai-billing/plans/{plan_id}",
39619
+ path: "/v1/ai/billing/plans/{plan_id}",
39620
39620
  args,
39621
39621
  queryParamKeys: []
39622
39622
  });
@@ -39663,7 +39663,7 @@ Examples:
39663
39663
  args.windows = JSON.parse(opts.windows);
39664
39664
  await ctx.execute({
39665
39665
  method: "PUT",
39666
- path: "/v1/ai-billing/plans/{plan_id}",
39666
+ path: "/v1/ai/billing/plans/{plan_id}",
39667
39667
  args,
39668
39668
  queryParamKeys: []
39669
39669
  });
@@ -39689,7 +39689,7 @@ Examples:
39689
39689
  }
39690
39690
  await ctx.execute({
39691
39691
  method: "DELETE",
39692
- path: "/v1/ai-billing/plans/{plan_id}",
39692
+ path: "/v1/ai/billing/plans/{plan_id}",
39693
39693
  args,
39694
39694
  queryParamKeys: []
39695
39695
  });
@@ -39705,7 +39705,7 @@ Examples:
39705
39705
  const args = {};
39706
39706
  await ctx.execute({
39707
39707
  method: "GET",
39708
- path: "/v1/ai-billing/default-plan",
39708
+ path: "/v1/ai/billing/default-plan",
39709
39709
  args,
39710
39710
  queryParamKeys: []
39711
39711
  });
@@ -39727,7 +39727,7 @@ Examples:
39727
39727
  args.auto_apply = true;
39728
39728
  await ctx.execute({
39729
39729
  method: "PUT",
39730
- path: "/v1/ai-billing/default-plan",
39730
+ path: "/v1/ai/billing/default-plan",
39731
39731
  args,
39732
39732
  queryParamKeys: []
39733
39733
  });
@@ -39751,7 +39751,7 @@ Examples:
39751
39751
  }
39752
39752
  await ctx.execute({
39753
39753
  method: "DELETE",
39754
- path: "/v1/ai-billing/default-plan",
39754
+ path: "/v1/ai/billing/default-plan",
39755
39755
  args,
39756
39756
  queryParamKeys: []
39757
39757
  });
@@ -39782,7 +39782,7 @@ Examples:
39782
39782
  args.skip = Number(opts.skip);
39783
39783
  await ctx.execute({
39784
39784
  method: "GET",
39785
- path: "/v1/ai-billing/rate-cards",
39785
+ path: "/v1/ai/billing/rate-cards",
39786
39786
  args,
39787
39787
  queryParamKeys: ["denomination", "currency", "search", "take", "skip"]
39788
39788
  });
@@ -39814,7 +39814,7 @@ Examples:
39814
39814
  args.rows = JSON.parse(opts.rows);
39815
39815
  await ctx.execute({
39816
39816
  method: "POST",
39817
- path: "/v1/ai-billing/rate-cards",
39817
+ path: "/v1/ai/billing/rate-cards",
39818
39818
  args,
39819
39819
  queryParamKeys: []
39820
39820
  });
@@ -39832,7 +39832,7 @@ Examples:
39832
39832
  args.rate_card_id = opts.rateCardId;
39833
39833
  await ctx.execute({
39834
39834
  method: "GET",
39835
- path: "/v1/ai-billing/rate-cards/{rate_card_id}",
39835
+ path: "/v1/ai/billing/rate-cards/{rate_card_id}",
39836
39836
  args,
39837
39837
  queryParamKeys: []
39838
39838
  });
@@ -39858,7 +39858,7 @@ Examples:
39858
39858
  args.rows = JSON.parse(opts.rows);
39859
39859
  await ctx.execute({
39860
39860
  method: "PUT",
39861
- path: "/v1/ai-billing/rate-cards/{rate_card_id}",
39861
+ path: "/v1/ai/billing/rate-cards/{rate_card_id}",
39862
39862
  args,
39863
39863
  queryParamKeys: []
39864
39864
  });
@@ -39884,7 +39884,7 @@ Examples:
39884
39884
  }
39885
39885
  await ctx.execute({
39886
39886
  method: "DELETE",
39887
- path: "/v1/ai-billing/rate-cards/{rate_card_id}",
39887
+ path: "/v1/ai/billing/rate-cards/{rate_card_id}",
39888
39888
  args,
39889
39889
  queryParamKeys: []
39890
39890
  });
@@ -39900,7 +39900,7 @@ Examples:
39900
39900
  const args = {};
39901
39901
  await ctx.execute({
39902
39902
  method: "GET",
39903
- path: "/v1/ai-billing/credit-products",
39903
+ path: "/v1/ai/billing/credit-products",
39904
39904
  args,
39905
39905
  queryParamKeys: []
39906
39906
  });
@@ -39919,7 +39919,7 @@ Examples:
39919
39919
  args.enabled_only = opts.enabledOnly;
39920
39920
  await ctx.execute({
39921
39921
  method: "GET",
39922
- path: "/v1/ai-billing/cost-catalog",
39922
+ path: "/v1/ai/billing/cost-catalog",
39923
39923
  args,
39924
39924
  queryParamKeys: ["enabled_only"]
39925
39925
  });
@@ -39942,7 +39942,7 @@ Examples:
39942
39942
  args.dimensions = JSON.parse(opts.dimensions);
39943
39943
  await ctx.execute({
39944
39944
  method: "POST",
39945
- path: "/v1/ai-billing/cost-catalog/items",
39945
+ path: "/v1/ai/billing/cost-catalog/items",
39946
39946
  args,
39947
39947
  queryParamKeys: []
39948
39948
  });
@@ -39968,7 +39968,7 @@ Examples:
39968
39968
  }
39969
39969
  await ctx.execute({
39970
39970
  method: "DELETE",
39971
- path: "/v1/ai-billing/cost-catalog/items/{item_id}",
39971
+ path: "/v1/ai/billing/cost-catalog/items/{item_id}",
39972
39972
  args,
39973
39973
  queryParamKeys: []
39974
39974
  });
@@ -40000,7 +40000,7 @@ Examples:
40000
40000
  args.dimensions = JSON.parse(opts.dimensions);
40001
40001
  await ctx.execute({
40002
40002
  method: "PUT",
40003
- path: "/v1/ai-billing/cost-catalog/overrides",
40003
+ path: "/v1/ai/billing/cost-catalog/overrides",
40004
40004
  args,
40005
40005
  queryParamKeys: []
40006
40006
  });
@@ -40026,7 +40026,7 @@ Examples:
40026
40026
  }
40027
40027
  await ctx.execute({
40028
40028
  method: "DELETE",
40029
- path: "/v1/ai-billing/cost-catalog/overrides/{override_id}",
40029
+ path: "/v1/ai/billing/cost-catalog/overrides/{override_id}",
40030
40030
  args,
40031
40031
  queryParamKeys: []
40032
40032
  });
@@ -40044,7 +40044,7 @@ Examples:
40044
40044
  args.customer_id = opts.customerId;
40045
40045
  await ctx.execute({
40046
40046
  method: "GET",
40047
- path: "/v1/ai-billing/customers/{customer_id}/policies",
40047
+ path: "/v1/ai/billing/customers/{customer_id}/policies",
40048
40048
  args,
40049
40049
  queryParamKeys: []
40050
40050
  });
@@ -40065,7 +40065,7 @@ Examples:
40065
40065
  args.agent = opts.agent;
40066
40066
  await ctx.execute({
40067
40067
  method: "GET",
40068
- path: "/v1/ai-billing/customers/{customer_id}/policy",
40068
+ path: "/v1/ai/billing/customers/{customer_id}/policy",
40069
40069
  args,
40070
40070
  queryParamKeys: ["agent"]
40071
40071
  });
@@ -40128,7 +40128,7 @@ Examples:
40128
40128
  args.window_rates = JSON.parse(opts.windowRates);
40129
40129
  await ctx.execute({
40130
40130
  method: "PUT",
40131
- path: "/v1/ai-billing/customers/{customer_id}/policy",
40131
+ path: "/v1/ai/billing/customers/{customer_id}/policy",
40132
40132
  args,
40133
40133
  queryParamKeys: ["agent"]
40134
40134
  });
@@ -40157,7 +40157,7 @@ Examples:
40157
40157
  }
40158
40158
  await ctx.execute({
40159
40159
  method: "DELETE",
40160
- path: "/v1/ai-billing/customers/{customer_id}/policy",
40160
+ path: "/v1/ai/billing/customers/{customer_id}/policy",
40161
40161
  args,
40162
40162
  queryParamKeys: ["agent"]
40163
40163
  });
@@ -40176,7 +40176,7 @@ Examples:
40176
40176
  args.customer_id = opts.customerId;
40177
40177
  await ctx.execute({
40178
40178
  method: "POST",
40179
- path: "/v1/ai-billing/customers/{customer_id}/apply-default-plan",
40179
+ path: "/v1/ai/billing/customers/{customer_id}/apply-default-plan",
40180
40180
  args,
40181
40181
  queryParamKeys: []
40182
40182
  });
@@ -40197,7 +40197,7 @@ Examples:
40197
40197
  args.agent = opts.agent;
40198
40198
  await ctx.execute({
40199
40199
  method: "GET",
40200
- path: "/v1/ai-billing/customers/{customer_id}/balance",
40200
+ path: "/v1/ai/billing/customers/{customer_id}/balance",
40201
40201
  args,
40202
40202
  queryParamKeys: ["agent"]
40203
40203
  });
@@ -40219,7 +40219,7 @@ Examples:
40219
40219
  args.agent = opts.agent;
40220
40220
  await ctx.execute({
40221
40221
  method: "POST",
40222
- path: "/v1/ai-billing/customers/{customer_id}/windows/reset",
40222
+ path: "/v1/ai/billing/customers/{customer_id}/windows/reset",
40223
40223
  args,
40224
40224
  queryParamKeys: ["agent"]
40225
40225
  });
@@ -40250,7 +40250,7 @@ Examples:
40250
40250
  args.skip = Number(opts.skip);
40251
40251
  await ctx.execute({
40252
40252
  method: "GET",
40253
- path: "/v1/ai-billing/customers/{customer_id}/consumption",
40253
+ path: "/v1/ai/billing/customers/{customer_id}/consumption",
40254
40254
  args,
40255
40255
  queryParamKeys: ["agent", "overage", "from", "to", "take", "skip"]
40256
40256
  });
@@ -40268,7 +40268,7 @@ Examples:
40268
40268
  args.customer_id = opts.customerId;
40269
40269
  await ctx.execute({
40270
40270
  method: "GET",
40271
- path: "/v1/ai-billing/customers/{customer_id}/overview",
40271
+ path: "/v1/ai/billing/customers/{customer_id}/overview",
40272
40272
  args,
40273
40273
  queryParamKeys: []
40274
40274
  });
@@ -43713,6 +43713,68 @@ Examples:
43713
43713
  });
43714
43714
  }
43715
43715
 
43716
+ // build/commands/generated/monitoring.js
43717
+ function registerMonitoringCommands(parent) {
43718
+ const resource = parent.command("monitoring").description("Manage monitoring");
43719
+ resource.command("list-monitoring-analyses").description(`List customer health analyses from the monitoring agent, newest first: health score (0-100), tier, summary, per-dimension scores, risk factors and positive signals. Filter by customer (Hyperline or external ID) with limit=1 to get a customer's current health score. Only completed analyses unless status is set.`).option("--limit <number>", `Maximum number of items to return (1-100).`).option("--cursor <value>", `Opaque cursor returned in the previous response's \`next_cursor\`. Omit to fetch the first page.`).option("--include-total <value>", `Set to \`true\` to include \`total\` in the response.`).option("--customer-id <value>", `Return only analyses of this customer. Accepts the Hyperline ID or your own external ID.`).option("--status <value>", `Return only analyses with this status. Defaults to \`completed\`, the analyses that carry a score.`).option("--created-at.gte <value>", `Return only analyses created at or after this date.`).option("--created-at.lte <value>", `Return only analyses created at or before this date.`).addHelpText("after", `
43720
+ Examples:
43721
+ hyperline monitoring list-monitoring-analyses
43722
+ hyperline monitoring list-monitoring-analyses --limit <limit> --cursor <cursor>`).action(async (opts) => {
43723
+ const ctx = resource.parent?.opts()._ctx;
43724
+ if (!ctx) {
43725
+ process.stderr.write("Error: Not authenticated\n");
43726
+ process.exit(1);
43727
+ }
43728
+ const args = {};
43729
+ if (opts.cursor !== void 0)
43730
+ args.cursor = opts.cursor;
43731
+ if (opts.includeTotal !== void 0)
43732
+ args.include_total = opts.includeTotal;
43733
+ if (opts.customerId !== void 0)
43734
+ args.customer_id = opts.customerId;
43735
+ if (opts.status !== void 0)
43736
+ args.status = opts.status;
43737
+ if (opts["createdAt.gte"] !== void 0)
43738
+ args.created_at__gte = opts["createdAt.gte"];
43739
+ if (opts["createdAt.lte"] !== void 0)
43740
+ args.created_at__lte = opts["createdAt.lte"];
43741
+ if (opts.limit !== void 0)
43742
+ args.limit = Number(opts.limit);
43743
+ await ctx.execute({
43744
+ method: "GET",
43745
+ path: "/v1/agents/monitoring/analyses",
43746
+ args,
43747
+ queryParamKeys: [
43748
+ "limit",
43749
+ "cursor",
43750
+ "include_total",
43751
+ "customer_id",
43752
+ "status",
43753
+ "created_at__gte",
43754
+ "created_at__lte"
43755
+ ]
43756
+ });
43757
+ });
43758
+ resource.command("get-monitoring-analysis").description(`Get one customer health analysis by ID: health score (0-100), tier, summary, per-dimension scores, risk factors and positive signals.`).requiredOption("--analysis-id <value>", `analysis_id parameter`).addHelpText("after", `
43759
+ Examples:
43760
+ hyperline monitoring get-monitoring-analysis --analysis-id <analysis_id>`).action(async (opts) => {
43761
+ const ctx = resource.parent?.opts()._ctx;
43762
+ if (!ctx) {
43763
+ process.stderr.write("Error: Not authenticated\n");
43764
+ process.exit(1);
43765
+ }
43766
+ const args = {};
43767
+ if (opts.analysisId !== void 0)
43768
+ args.analysis_id = opts.analysisId;
43769
+ await ctx.execute({
43770
+ method: "GET",
43771
+ path: "/v1/agents/monitoring/analyses/{analysis_id}",
43772
+ args,
43773
+ queryParamKeys: []
43774
+ });
43775
+ });
43776
+ }
43777
+
43716
43778
  // build/commands/generated/organisations.js
43717
43779
  function registerOrganisationsCommands(parent) {
43718
43780
  const resource = parent.command("organisations").description("Manage organisations");
@@ -44869,11 +44931,11 @@ Examples:
44869
44931
  queryParamKeys: []
44870
44932
  });
44871
44933
  });
44872
- resource.command("send").description(`Send a quote by email for customer signature. Requires the quote to be approved first.`).requiredOption("--id <value>", `id parameter`).requiredOption("--email <value>", `Email address to which the quote will be sent for signature.`).option("--message <value>", `Custom message used in the email content.`).addHelpText("after", `
44934
+ resource.command("send").description(`Send a quote by email for customer signature. Requires the quote to be approved first.`).requiredOption("--id <value>", `id parameter`).option("--email <value>", `Email address to which the quote will be sent for signature. Required unless the quote has signers, in which case the email goes to the signers of the current step and this field is ignored.`).option("--message <value>", `Custom message used in the email content.`).addHelpText("after", `
44873
44935
  Examples:
44874
- hyperline quotes send --id <id> --email <email>
44936
+ hyperline quotes send --id <id>
44875
44937
  hyperline quotes send --id <id> --email <email> --message <message>
44876
- hyperline quotes send --id <id> --email <email> --output json`).action(async (opts) => {
44938
+ hyperline quotes send --id <id> --output json`).action(async (opts) => {
44877
44939
  const ctx = resource.parent?.opts()._ctx;
44878
44940
  if (!ctx) {
44879
44941
  process.stderr.write("Error: Not authenticated\n");
@@ -44893,6 +44955,51 @@ Examples:
44893
44955
  queryParamKeys: []
44894
44956
  });
44895
44957
  });
44958
+ resource.command("list-quote-signers").description(`List the signers of a quote in signing order, with each signer's status (pending, notified, viewed, signed, declined). An empty list means the quote uses the single-signer flow of \`send_quote\`.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
44959
+ Examples:
44960
+ hyperline quotes list-quote-signers --id <id>`).action(async (opts) => {
44961
+ const ctx = resource.parent?.opts()._ctx;
44962
+ if (!ctx) {
44963
+ process.stderr.write("Error: Not authenticated\n");
44964
+ process.exit(1);
44965
+ }
44966
+ const args = {};
44967
+ if (opts.id !== void 0)
44968
+ args.id = opts.id;
44969
+ await ctx.execute({
44970
+ method: "GET",
44971
+ path: "/v1/quotes/{id}/signers",
44972
+ args,
44973
+ queryParamKeys: []
44974
+ });
44975
+ });
44976
+ resource.command("set-quote-signers").description(`Replace the full list of signers of a quote. Signers with the same \`step_order\` sign in parallel; steps sign in ascending order. Requires at least one \`external\` signer, and a \`countersigner\` must sign after an external step. Set signers before calling \`send_quote\`, which then emails the signers of the first step and no longer needs \`email\`. Pass an empty list to go back to the single-signer flow.`).requiredOption("--id <value>", `id parameter`).requiredOption("--signers <json>", `
44977
+ Signature workflow of the quote, replaced as a whole.
44978
+
44979
+ Signers sign step by step, in ascending \`step_order\`. Signers sharing a step sign in parallel, and the next step opens once all of them have signed. The workflow needs at least one \`external\` signer, and a \`countersigner\` must sign after the first external step.
44980
+
44981
+ Signers who already signed cannot be removed or moved. Once the quote is out for signature at an electronic signature provider, the workflow can no longer be changed.
44982
+ `).addHelpText("after", `
44983
+ Examples:
44984
+ hyperline quotes set-quote-signers --id <id> --signers <signers>
44985
+ hyperline quotes set-quote-signers --id <id> --signers <signers> --output json`).action(async (opts) => {
44986
+ const ctx = resource.parent?.opts()._ctx;
44987
+ if (!ctx) {
44988
+ process.stderr.write("Error: Not authenticated\n");
44989
+ process.exit(1);
44990
+ }
44991
+ const args = {};
44992
+ if (opts.id !== void 0)
44993
+ args.id = opts.id;
44994
+ if (opts.signers !== void 0)
44995
+ args.signers = JSON.parse(opts.signers);
44996
+ await ctx.execute({
44997
+ method: "PUT",
44998
+ path: "/v1/quotes/{id}/signers",
44999
+ args,
45000
+ queryParamKeys: []
45001
+ });
45002
+ });
44896
45003
  resource.command("sign").description(`Manually mark a quote as signed externally. Optionally upload a signed PDF. Bypasses the built-in Hyperline signature flow.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
44897
45004
  Examples:
44898
45005
  hyperline quotes sign --id <id>
@@ -45175,7 +45282,7 @@ Examples:
45175
45282
  queryParamKeys: []
45176
45283
  });
45177
45284
  });
45178
- resource.command("cancel").description(`Cancel a subscription. Supports immediate or end-of-period cancellation. Optionally specify a cancellation reason.`).requiredOption("--id <value>", `id parameter`).option("--cancel-at <value>", `Subscription cancel date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--reason <value>", `Reason for the cancellation.`).option("--pro-rata", `Indicates if the cancel should refund the customer using a pro rata strategy.`).option("--refund-method <value>", `Override the refund destination for the resulting credit note. When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).addHelpText("after", `
45285
+ resource.command("cancel").description(`Cancel a subscription. Supports immediate or end-of-period cancellation. Optionally specify a cancellation reason. On a cancelled subscription with a scheduled reinstatement, call it with an empty body to remove that reinstatement; the subscription stays cancelled.`).requiredOption("--id <value>", `id parameter`).option("--cancel-at <value>", `Subscription cancel date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--reason <value>", `Reason for the cancellation.`).option("--pro-rata", `Indicates if the cancel should refund the customer using a pro rata strategy.`).option("--refund-method <value>", `Override the refund destination for the resulting credit note. When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).addHelpText("after", `
45179
45286
  Examples:
45180
45287
  hyperline subscriptions cancel --id <id>
45181
45288
  hyperline subscriptions cancel --id <id> --cancel-at <cancel_at> --reason <reason>
@@ -45203,7 +45310,7 @@ Examples:
45203
45310
  queryParamKeys: []
45204
45311
  });
45205
45312
  });
45206
- resource.command("reinstate").description(`Reinstate a subscription, reverting it to active status. Works for a subscription scheduled for cancellation and for a fully-cancelled one. For a fully-cancelled subscription, optionally pass reactivate_at and invoicing_mode (or charge_line_items for a custom charge) to control how the cancelled gap is invoiced.`).requiredOption("--id <value>", `id parameter`).option("--reactivate-at <value>", `Date a fully-cancelled subscription resumes from. Defaults to now. Ignored for scheduled-cancellation reinstatement.`).option("--invoicing-mode <value>", `How the paused/cancelled gap is invoiced when the subscription resumes. \`charge_full_period\`: bill the frozen periods as if never paused. \`prorate_remaining_period\`: skip the gap and bill the prorated remainder from the resume date. \`resume_at_next_cycle\` (default): skip the gap with no catch-up invoice.`).option("--charge-line-items <json>", `Custom charge: bill exactly these lines on an immediate resume instead of applying \`invoicing_mode\`. The lines cover the stopped period (pause or cancellation date to resume date). Requires the \`invoices_create\` permission. Fully-cancelled subscriptions only.`).addHelpText("after", `
45313
+ resource.command("reinstate").description(`Reinstate a subscription, reverting it to active status. Works for a subscription scheduled for cancellation and for a fully-cancelled one. For a fully-cancelled subscription, optionally pass reactivate_at (may be in the past, after the cancellation date; a future date schedules it) and invoicing_mode (or charge_line_items for a custom charge) to control how the cancelled gap is invoiced.`).requiredOption("--id <value>", `id parameter`).option("--reactivate-at <value>", `Date a fully-cancelled subscription resumes from. May be in the past (after the cancellation date). Defaults to now. A future date schedules the reinstatement; calling again with another date reschedules it, and cancelling the subscription removes it. Ignored for scheduled-cancellation reinstatement.`).option("--invoicing-mode <value>", `How the paused/cancelled gap is invoiced when the subscription resumes. \`charge_full_period\`: bill the frozen periods as if never paused. \`prorate_remaining_period\`: skip the gap and bill the prorated remainder from the resume date. \`resume_at_next_cycle\` (default): skip the gap with no catch-up invoice.`).option("--charge-line-items <json>", `Custom charge: bill exactly these lines on an immediate resume instead of applying \`invoicing_mode\`. The lines cover the stopped period (pause or cancellation date to resume date). Requires the \`invoices_create\` permission. Fully-cancelled subscriptions only. Not allowed with a future \`reactivate_at\`.`).addHelpText("after", `
45207
45314
  Examples:
45208
45315
  hyperline subscriptions reinstate --id <id>
45209
45316
  hyperline subscriptions reinstate --id <id> --reactivate-at <reactivate_at> --invoicing-mode <invoicing_mode>
@@ -46894,6 +47001,7 @@ function registerAllCommands(program2) {
46894
47001
  registerInvoicesCommands(program2);
46895
47002
  registerInvoices_TransactionsCommands(program2);
46896
47003
  registerInvoicing_EntitiesCommands(program2);
47004
+ registerMonitoringCommands(program2);
46897
47005
  registerPaymentsCommands(program2);
46898
47006
  registerProductsCommands(program2);
46899
47007
  registerPrice_ConfigurationsCommands(program2);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperline/cli",
3
- "version": "0.1.0-build.1.1c690da",
3
+ "version": "0.1.0-build.1.1cac073",
4
4
  "description": "Agent-first CLI for Hyperline API",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",