@skrr-ai/cli 0.1.98 → 0.1.100

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 (71) hide show
  1. package/dist/base-command.d.ts +7 -0
  2. package/dist/base-command.js +10 -1
  3. package/dist/commands/agents/create.js +3 -3
  4. package/dist/commands/commitments/create.js +29 -8
  5. package/dist/commands/commitments/observations.js +3 -1
  6. package/dist/commands/commitments/preflight.js +20 -0
  7. package/dist/commands/commitments/update.js +69 -14
  8. package/dist/commands/memory/mounts/resolve.js +8 -2
  9. package/dist/commands/memory/stores/list.js +5 -1
  10. package/dist/commands/proposals/list.js +2 -0
  11. package/dist/commands/signals/monitors/create.d.ts +2 -2
  12. package/dist/commands/signals/monitors/create.js +2 -2
  13. package/dist/commands/signals/monitors/list.d.ts +2 -2
  14. package/dist/commands/signals/monitors/list.js +2 -2
  15. package/dist/commands/signals/monitors/pause.d.ts +2 -2
  16. package/dist/commands/signals/monitors/pause.js +2 -2
  17. package/dist/commands/signals/monitors/resume.d.ts +2 -2
  18. package/dist/commands/signals/monitors/resume.js +2 -2
  19. package/dist/commands/signals/monitors/revise.d.ts +2 -2
  20. package/dist/commands/signals/monitors/revise.js +2 -2
  21. package/dist/commands/signals/monitors/show.d.ts +2 -2
  22. package/dist/commands/signals/monitors/show.js +2 -2
  23. package/dist/commands/signals/monitors/test.d.ts +2 -2
  24. package/dist/commands/signals/monitors/test.js +2 -2
  25. package/dist/commands/signals/monitors/transitions.d.ts +2 -2
  26. package/dist/commands/signals/monitors/transitions.js +2 -2
  27. package/dist/commands/signals/monitors/validate.d.ts +2 -2
  28. package/dist/commands/signals/monitors/validate.js +2 -2
  29. package/dist/commands/signals/schemas/list.d.ts +2 -2
  30. package/dist/commands/signals/schemas/list.js +2 -2
  31. package/dist/commands/signals/schemas/show.d.ts +2 -2
  32. package/dist/commands/signals/schemas/show.js +2 -2
  33. package/dist/commands/signals/sources/list.d.ts +2 -2
  34. package/dist/commands/signals/sources/list.js +2 -2
  35. package/dist/commands/signals/sources/receipts.d.ts +2 -2
  36. package/dist/commands/signals/sources/receipts.js +2 -2
  37. package/dist/commands/signals/sources/show.d.ts +2 -2
  38. package/dist/commands/signals/sources/show.js +2 -2
  39. package/dist/commands/spaces/workflows/create.js +1 -1
  40. package/dist/commands/spaces/workflows/node-types.d.ts +45 -0
  41. package/dist/commands/spaces/workflows/node-types.js +86 -0
  42. package/dist/commands/spaces/workflows/update.js +5 -3
  43. package/dist/commands/tasks/assign.js +3 -4
  44. package/dist/commands/tasks/complete.d.ts +1 -0
  45. package/dist/commands/tasks/complete.js +1 -0
  46. package/dist/commands/tasks/create.js +4 -2
  47. package/dist/commands/tasks/deliverable/add.d.ts +1 -0
  48. package/dist/commands/tasks/deliverable/add.js +1 -0
  49. package/dist/commands/tasks/result/submit.d.ts +1 -0
  50. package/dist/commands/tasks/result/submit.js +1 -0
  51. package/dist/commands/tasks/resume/save.d.ts +1 -0
  52. package/dist/commands/tasks/resume/save.js +1 -0
  53. package/dist/commands/tasks/retry.js +38 -6
  54. package/dist/commands/tasks/schedule.js +3 -3
  55. package/dist/commands/tasks/show.js +3 -1
  56. package/dist/commands/tasks/update.js +31 -4
  57. package/dist/commands/tasks/updates/add.d.ts +1 -0
  58. package/dist/commands/tasks/updates/add.js +1 -0
  59. package/dist/lib/commitment-terms.js +1 -1
  60. package/dist/lib/commitments.js +34 -2
  61. package/dist/lib/dedicated-machines.d.ts +5 -7
  62. package/dist/lib/dedicated-machines.js +16 -10
  63. package/dist/lib/scoped-memory-command.d.ts +7 -0
  64. package/dist/lib/scoped-memory-command.js +36 -0
  65. package/dist/lib/signals.js +22 -13
  66. package/dist/lib/space-usage.js +1 -1
  67. package/dist/node_modules/@skrr-ai/data-provider/index.js +35 -19
  68. package/dist/signal-command.d.ts +11 -0
  69. package/dist/signal-command.js +15 -0
  70. package/oclif.manifest.json +1355 -32
  71. package/package.json +1 -1
@@ -673,15 +673,13 @@ function formatUsdCents(cents) {
673
673
  return `${sign}$${(Math.abs(cents) / 100).toFixed(2)}`;
674
674
  }
675
675
  /**
676
- * `$1.23 this month for machines of this type · $500.00 cap for this machine`,
677
- * or why that sentence cannot be written.
676
+ * Name the monthly total that the machine's configured cap is checked against.
678
677
  *
679
- * The two figures are different scopes and the sentence has to say so. The spend
680
- * is a shared pot the server computes for (owner, team, machineProduct), so every
678
+ * The spend is a shared pot the server computes for (owner, team, machineProduct), so every
681
679
  * lease of the same product reports the same number — a machine created minutes
682
- * ago with no active seconds still reports the month's total. The cap is this
683
- * lease's own. Printed as "$1.23 this month of $500.00 cap" the only available
684
- * reading was that this machine had spent it.
680
+ * ago with no active seconds still reports the month's total. The cap is set on
681
+ * this lease, but admission compares it against that shared projected total.
682
+ * An old response without spendScope cannot establish who owns the total.
685
683
  */
686
684
  function dedicatedSpendSummary(lease) {
687
685
  const billing = lease.billing;
@@ -690,14 +688,22 @@ function dedicatedSpendSummary(lease) {
690
688
  const cap = billing.monthlySpendLimitCents !== undefined
691
689
  ? billing.monthlySpendLimitCents
692
690
  : billing.spendingLimitCents;
691
+ const scope = billing.spendScope?.kind === 'owner_product'
692
+ ? 'your machines of this type'
693
+ : billing.spendScope?.kind === 'workspace_product'
694
+ ? "this workspace's machines of this type"
695
+ : 'reported machines (scope unavailable)';
696
+ const capSummary = cap === null
697
+ ? 'no monthly cap'
698
+ : `${formatUsdCents(cap)} cap for this machine, checked against the projected monthly total`;
693
699
  if (billing.spendStatusUnavailable) {
694
- return `spend unavailable right now · ${cap === null ? 'no monthly cap' : `cap ${formatUsdCents(cap)}`}`;
700
+ return `spend unavailable right now for ${scope} · ${capSummary}`;
695
701
  }
696
702
  const spent = billing.currentMonthSpendCents;
697
703
  const projected = billing.projectedCurrentMonthSpendCents;
698
704
  const parts = [
699
- `${formatUsdCents(spent)} this month for machines of this type`,
700
- cap === null ? 'no monthly cap' : `${formatUsdCents(cap)} cap for this machine`,
705
+ `${formatUsdCents(spent)} this month for ${scope}`,
706
+ capSummary,
701
707
  ];
702
708
  if (typeof projected === 'number' && projected !== spent) {
703
709
  parts.push(`projected ${formatUsdCents(projected)}`);
@@ -5,6 +5,13 @@ export type MemoryMount = SharedMemoryMount;
5
5
  export type MemoryStore = SharedMemoryStore & {
6
6
  mount: SharedMemoryMount;
7
7
  };
8
+ export type MemoryStoreResolution = {
9
+ storeId: string;
10
+ outcome: 'existing' | 'created' | 'adopted' | 'existing_after_race' | 'unconfirmed';
11
+ metadataChanged: boolean | null;
12
+ };
13
+ export declare function parseMemoryStoreResolutions(value: unknown): MemoryStoreResolution[] | undefined;
14
+ export declare function memoryStoreResolutionLines(resolutions?: MemoryStoreResolution[]): string[];
8
15
  export declare function parseMemoryMount(value: unknown): MemoryMount;
9
16
  export declare function parseMountedMemoryStore(value: unknown): MemoryStore;
10
17
  export declare const scopedMemoryFlags: {
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ScopedMemoryCommand = exports.versionedMutationFlags = exports.mutationFlags = exports.scopedMemoryFlags = void 0;
4
+ exports.parseMemoryStoreResolutions = parseMemoryStoreResolutions;
5
+ exports.memoryStoreResolutionLines = memoryStoreResolutionLines;
4
6
  exports.parseMemoryMount = parseMemoryMount;
5
7
  exports.parseMountedMemoryStore = parseMountedMemoryStore;
6
8
  exports.parseMemoryApiError = parseMemoryApiError;
@@ -8,6 +10,40 @@ const core_1 = require("@oclif/core");
8
10
  const node_crypto_1 = require("node:crypto");
9
11
  const base_command_1 = require("../base-command");
10
12
  const api_fetch_1 = require("./api-fetch");
13
+ function parseMemoryStoreResolutions(value) {
14
+ if (value === undefined)
15
+ return undefined;
16
+ if (!Array.isArray(value))
17
+ throw new Error('Invalid Memory Store resolution response from server');
18
+ return value.map((entry) => {
19
+ const resolution = entry;
20
+ const changed = resolution?.outcome === 'created' || resolution?.outcome === 'adopted';
21
+ const expectedChange = resolution?.outcome === 'unconfirmed' ? null : changed;
22
+ if (!resolution || typeof resolution.storeId !== 'string' || !resolution.storeId ||
23
+ !['existing', 'created', 'adopted', 'existing_after_race', 'unconfirmed']
24
+ .includes(String(resolution.outcome)) || resolution.metadataChanged !== expectedChange) {
25
+ throw new Error('Invalid Memory Store resolution response from server');
26
+ }
27
+ return {
28
+ storeId: resolution.storeId,
29
+ outcome: resolution.outcome,
30
+ metadataChanged: resolution.metadataChanged,
31
+ };
32
+ });
33
+ }
34
+ function memoryStoreResolutionLines(resolutions) {
35
+ if (!resolutions) {
36
+ return ['Store initialization outcome was not reported by this server; discovery may create default Store metadata or adopt a legacy Store into this workspace.'];
37
+ }
38
+ const labels = {
39
+ existing: 'Reused existing Store metadata',
40
+ created: 'Created default Store metadata',
41
+ adopted: 'Adopted legacy Store metadata into this workspace',
42
+ existing_after_race: 'Reused Store metadata from a concurrent creator',
43
+ unconfirmed: 'Store metadata initialization outcome is unconfirmed',
44
+ };
45
+ return resolutions.map((resolution) => `${labels[resolution.outcome]}: ${resolution.storeId}`);
46
+ }
11
47
  // The public CLI must not load the private data-schemas package at runtime.
12
48
  // The API validates the full wire contract; check the fields used by CLI commands
13
49
  // before treating a response as a mounted Store or mount.
@@ -2,23 +2,32 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.signalsApi = void 0;
4
4
  const data_provider_1 = require("@skrr-ai/data-provider");
5
+ const workspace_header_1 = require("./workspace-header");
6
+ function inSignalWorkspace(operation) {
7
+ if (!(0, workspace_header_1.withWorkspaceHeader)({})['X-Workspace-Id']) {
8
+ throw new Error(process.env.OVERSKY_AUTONOMOUS_SESSION === '1'
9
+ ? 'Signal commands require a workspace-bound session. This session has no canonical workspace; --workspace and local selections cannot change its scope. No Signal request was sent.'
10
+ : 'Signal commands require a selected workspace. Pass --workspace <workspace-id>, or run `skrr workspaces list --json` then `skrr workspaces use <workspace-id>`. No Signal request was sent.');
11
+ }
12
+ return operation();
13
+ }
5
14
  /**
6
15
  * Secret-free Signal lifecycle (`/api/signal-monitors`, read-only sources and schemas).
7
16
  * Source creation, credentials and schema review hand out one-display secrets and stay
8
17
  * in the reviewed UI until a headless secret-display contract is approved.
9
18
  */
10
19
  exports.signalsApi = {
11
- listMonitors: () => data_provider_1.request.get('/api/signal-monitors'),
12
- showMonitor: (id) => data_provider_1.request.get(`/api/signal-monitors/${encodeURIComponent(id)}`),
13
- validateMonitor: (body) => data_provider_1.request.post('/api/signal-monitors/validate', body),
14
- createMonitor: (body) => data_provider_1.request.post('/api/signal-monitors', body),
15
- testMonitor: (id, body) => data_provider_1.request.post(`/api/signal-monitors/${encodeURIComponent(id)}/test`, body),
16
- reviseMonitor: (id, body) => data_provider_1.request.post(`/api/signal-monitors/${encodeURIComponent(id)}/revisions`, body),
17
- setMonitorStatus: (id, status) => data_provider_1.request.patch(`/api/signal-monitors/${encodeURIComponent(id)}`, { status }),
18
- monitorTransitions: (id) => data_provider_1.request.get(`/api/signal-monitors/${encodeURIComponent(id)}/transitions`),
19
- listSources: () => data_provider_1.request.get('/api/signal-sources'),
20
- showSource: (id) => data_provider_1.request.get(`/api/signal-sources/${encodeURIComponent(id)}`),
21
- sourceReceipts: (id) => data_provider_1.request.get(`/api/signal-sources/${encodeURIComponent(id)}/receipts`),
22
- listSchemas: () => data_provider_1.request.get('/api/signal-schemas'),
23
- showSchema: (id) => data_provider_1.request.get(`/api/signal-schemas/${encodeURIComponent(id)}`),
20
+ listMonitors: () => inSignalWorkspace(() => data_provider_1.request.get('/api/signal-monitors')),
21
+ showMonitor: (id) => inSignalWorkspace(() => data_provider_1.request.get(`/api/signal-monitors/${encodeURIComponent(id)}`)),
22
+ validateMonitor: (body) => inSignalWorkspace(() => data_provider_1.request.post('/api/signal-monitors/validate', body)),
23
+ createMonitor: (body) => inSignalWorkspace(() => data_provider_1.request.post('/api/signal-monitors', body)),
24
+ testMonitor: (id, body) => inSignalWorkspace(() => data_provider_1.request.post(`/api/signal-monitors/${encodeURIComponent(id)}/test`, body)),
25
+ reviseMonitor: (id, body) => inSignalWorkspace(() => data_provider_1.request.post(`/api/signal-monitors/${encodeURIComponent(id)}/revisions`, body)),
26
+ setMonitorStatus: (id, status) => inSignalWorkspace(() => data_provider_1.request.patch(`/api/signal-monitors/${encodeURIComponent(id)}`, { status })),
27
+ monitorTransitions: (id) => inSignalWorkspace(() => data_provider_1.request.get(`/api/signal-monitors/${encodeURIComponent(id)}/transitions`)),
28
+ listSources: () => inSignalWorkspace(() => data_provider_1.request.get('/api/signal-sources')),
29
+ showSource: (id) => inSignalWorkspace(() => data_provider_1.request.get(`/api/signal-sources/${encodeURIComponent(id)}`)),
30
+ sourceReceipts: (id) => inSignalWorkspace(() => data_provider_1.request.get(`/api/signal-sources/${encodeURIComponent(id)}/receipts`)),
31
+ listSchemas: () => inSignalWorkspace(() => data_provider_1.request.get('/api/signal-schemas')),
32
+ showSchema: (id) => inSignalWorkspace(() => data_provider_1.request.get(`/api/signal-schemas/${encodeURIComponent(id)}`)),
24
33
  };
@@ -10,7 +10,7 @@ const usd = (amount) => amount > 0 && amount < 0.01 ? '<$0.01' : `$${amount.toFi
10
10
  function formatSpaceSpend(summary) {
11
11
  const attribution = `Attribution since: ${summary.coverage.attributionSince || 'not certified'}; not attributed: ${summary.coverage.notAttributed.join(', ')}`;
12
12
  if (summary.runCount === 0)
13
- return `No runs in window\n${attribution}`;
13
+ return `No attributed runs in window\n${attribution}`;
14
14
  const cost = summary.costUsd === null ? 'Not fully attributed' : usd(summary.costUsd);
15
15
  const known = summary.knownCostUsd === null ? 'unavailable' : usd(summary.knownCostUsd);
16
16
  return `${cost}; known subtotal ${known}; ${summary.runCount} cost records; ${summary.byCostStatus.unavailable} unavailable, ${summary.byCostStatus.partial} partial\n${attribution}`;
@@ -37532,10 +37532,21 @@ function C(t2) {
37532
37532
  var n2 = t2.keys;
37533
37533
  if (void 0 === n2) return [];
37534
37534
  var o2 = e.z.array(R).max(k.maxDeclaredKeys).safeParse(n2);
37535
- return o2.success ? [] : o2.error.issues.map(function(e3) {
37536
- return { path: I(["keys"], e3.path.map(function(e4) {
37535
+ return o2.success ? [] : o2.error.issues.flatMap(function(e3) {
37536
+ var t3 = I(["keys"], e3.path.map(function(e4) {
37537
37537
  return "number" == typeof e4 ? e4 : String(e4);
37538
- }), true), message: e3.message };
37538
+ }), true);
37539
+ if ("invalid_union" === e3.code && Array.isArray(n2) && "number" == typeof e3.path[0]) {
37540
+ var o3 = n2[e3.path[0]], r2 = "string" == typeof o3 ? R.options[0] : o3 && "object" == typeof o3 && !Array.isArray(o3) ? R.options[1] : void 0;
37541
+ if (!r2) return [{ path: t3, message: "Expected a key name string or declaration object." }];
37542
+ var a2 = r2.safeParse(o3);
37543
+ if (!a2.success) return a2.error.issues.map(function(e4) {
37544
+ return { path: I(I([], t3, true), e4.path.map(function(e5) {
37545
+ return "number" == typeof e5 ? e5 : String(e5);
37546
+ }), true), message: e4.message };
37547
+ });
37548
+ }
37549
+ return [{ path: t3, message: e3.message }];
37539
37550
  });
37540
37551
  }
37541
37552
  var P = { reviewTitlePrefix: "Review a proposed Commitment: ", draftTitlePrefix: "Create draft Commitment: ", defaultDescription: "The Agent found a possible continuing responsibility. Review its scope before creating a draft." };
@@ -37615,25 +37626,23 @@ function q(e3, t2) {
37615
37626
  }
37616
37627
  var V;
37617
37628
  var Y = 1e6;
37618
- function X() {
37619
- if (V) return V;
37620
- for (var e3 = /* @__PURE__ */ new Map(), t2 = 128; t2 <= 1114111; t2++) if (!(t2 >= 55296 && t2 <= 57343)) {
37621
- var n2 = String.fromCodePoint(t2), o2 = n2.normalize("NFKC").toUpperCase().toLowerCase().length - n2.length;
37622
- o2 > 0 && e3.set(t2, o2);
37623
- }
37624
- return V = e3;
37629
+ function X(e3) {
37630
+ var t2 = String.fromCodePoint(e3);
37631
+ return Math.max(0, t2.normalize("NFKC").toUpperCase().toLowerCase().length - t2.length);
37625
37632
  }
37626
37633
  function Q(e3, t2) {
37634
+ if (e3.budget.chars + t2.length > 4e5) return e3.unscannable = "size", false;
37627
37635
  var n2 = (function(e4, t3) {
37628
- for (var n3, o2, r2 = e4.length, a2 = 0; a2 < e4.length; a2++) if (!(e4.charCodeAt(a2) < 128)) {
37629
- null != o2 || (o2 = X());
37630
- var i2 = e4.codePointAt(a2);
37631
- if ((r2 += null !== (n3 = o2.get(i2)) && void 0 !== n3 ? n3 : 0) > t3) return r2;
37632
- i2 > 65535 && a2++;
37636
+ var n3 = e4.length;
37637
+ if (n3 > t3) return n3;
37638
+ for (var o2 = /* @__PURE__ */ new Map(), r2 = 0; r2 < e4.length; r2++) if (!(e4.charCodeAt(r2) < 128)) {
37639
+ var a2 = e4.codePointAt(r2), i2 = o2.get(a2);
37640
+ if (void 0 === i2 && (i2 = X(a2), o2.set(a2, i2)), (n3 += i2) > t3) return n3;
37641
+ a2 > 65535 && r2++;
37633
37642
  }
37634
- return r2;
37643
+ return n3;
37635
37644
  })(t2, Y - e3.budget.work);
37636
- return e3.budget.chars + t2.length > 4e5 || e3.budget.work + n2 > Y ? (e3.unscannable = "size", false) : (e3.budget.chars += t2.length, e3.budget.work += n2, true);
37645
+ return e3.budget.work + n2 > Y ? (e3.unscannable = "size", false) : (e3.budget.chars += t2.length, e3.budget.work += n2, true);
37637
37646
  }
37638
37647
  function Z(e3, t2, n2, o2) {
37639
37648
  if (void 0 === n2 && (n2 = 0), void 0 === o2 && (o2 = false), t2.unscannable) return t2;
@@ -41147,7 +41156,7 @@ var Ox = /(?:^|\.)(?:localhost|internal|local)$/;
41147
41156
  var Nx = /^[a-z0-9](?:[a-z0-9-]{0,37}[a-z0-9])?\/[a-z0-9._-]{1,100}$/;
41148
41157
  var Mx = Object.freeze(["name", "description", "instructions", "promptComposition", "avatar", "character3DId", "provider", "model", "model_parameters", "artifacts", "access_level", "recursion_limit", "tools", "tool_kwargs", "actions", "hide_sequential_outputs", "end_after_tools", "agent_ids", "network_mode", "network_agent_ids", "network_agent_release_pins", "network_include_public", "conversation_starters", "agentActions", "tool_resources", "category", "support_contact", "shareMode", "skills", "allowedCapabilities", "toolPolicy", "executionPolicy", "workingDirectory", "defaultPermissionMode", "todoWorkingHours", "welcomeMessage", "installFirstContact", "serviceDelivery", "proactiveInstall", "marketplaceMedia"]);
41149
41158
  var zx = Object.freeze(["executionPolicy", "workingDirectory", "defaultPermissionMode", "tool_resources", "marketplaceMedia"]);
41150
- var Lx = Object.freeze(["isAlwaysOn", "agentMailboxAdmissionEpoch", "alwaysOnControl", "defaultForHarness", "nativeRole", "marketplaceStoreSourceState", "marketplaceStoreSourceReleaseId", "network_shell_write_agent_ids", "installKind", "marketplaceSpaceId", "storeDemoOfAgentId", "storeDemoAgentId"]);
41159
+ var Lx = Object.freeze(["isAlwaysOn", "relationshipLoops", "agentMailboxAdmissionEpoch", "alwaysOnControl", "defaultForHarness", "nativeRole", "marketplaceStoreSourceState", "marketplaceStoreSourceReleaseId", "network_shell_write_agent_ids", "installKind", "marketplaceSpaceId", "storeDemoOfAgentId", "storeDemoAgentId"]);
41151
41160
  var Ux = Object.freeze(["_id", "id", "author", "authorName", "workspaceId", "createdAt", "updatedAt", "price", "rating", "ratingCount", "installCount", "is_listed", "is_promoted", "storeFeaturedPlacement", "is_banned", "banned_at", "banned_by", "delisted_at", "delisted_by", "versions", "latestReleaseId", "latestPublicReleaseId", "latestVersionLabel", "installedReleaseId", "forkedFrom", "forkedFromReleaseId", "forkedFromVersionLabel", "releasePolicy", "storeInstallState", "storeInstallReservationId", "storeInstallSourceAgentId", "storeInstallReleaseId", "storeInstallWorkspaceId", "storeInstallReservedAt", "storeInstallExpiresAt", "storeInstallCompletedAt", "storeInstallSharedMemoryDefault", "marketplaceEntitlementState", "marketplaceEntitlementEvidence", "marketplaceFulfillmentState", "marketplaceTeamOrderId", "learnedCapabilityProfile", "directModeRegret", "toneMode", "toneId", "toneNotes", "sceneBackground", "maxTurns", "maxConcurrentTaskExecutions", "projectIds", "isCollaborative", "is_onboarding", "mgmtVersion", "mgmtPublishedAt", "mgmtPublic", "mgmtEndpointEnabled", "mgmtEndpointEnabledAt"]);
41152
41161
  var Dx = Object.freeze(Mx.filter(function(e3) {
41153
41162
  return !zx.includes(e3);
@@ -53152,7 +53161,14 @@ exports.migrateEstimateToScale = function(e3, t2) {
53152
53161
  return t2 && 0 !== t2.size ? e3.slice().sort(function(e4, n2) {
53153
53162
  return pA(e4, n2, t2);
53154
53163
  }) : e3.slice();
53155
- }, exports.outcomeOf = FD, exports.ownerRuleExpansionTable = X, exports.pagination = Km, exports.paramEndpoints = $t, exports.paramSettings = bD, exports.parseAgentUsageCapDollars = function(e3) {
53164
+ }, exports.outcomeOf = FD, exports.ownerRuleExpansionTable = function() {
53165
+ if (V) return V;
53166
+ for (var e3 = /* @__PURE__ */ new Map(), t2 = 128; t2 <= 1114111; t2++) if (!(t2 >= 55296 && t2 <= 57343)) {
53167
+ var n2 = X(t2);
53168
+ n2 > 0 && e3.set(t2, n2);
53169
+ }
53170
+ return V = e3;
53171
+ }, exports.pagination = Km, exports.paramEndpoints = $t, exports.paramSettings = bD, exports.parseAgentUsageCapDollars = function(e3) {
53156
53172
  var t2 = String(null != e3 ? e3 : "").trim().replace(/^\$/, "");
53157
53173
  if (!/^\d+(\.\d{1,2})?$/.test(t2)) return null;
53158
53174
  var n2 = Math.round(1e6 * Number(t2));
@@ -0,0 +1,11 @@
1
+ import { BaseCommand } from './base-command';
2
+ /** Signals have no personal-workspace fallback. */
3
+ export declare abstract class SignalCommand extends BaseCommand {
4
+ static baseFlags: {
5
+ workspace: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
6
+ bare: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
7
+ token: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
8
+ profile: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
9
+ raw: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
10
+ };
11
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SignalCommand = void 0;
4
+ const core_1 = require("@oclif/core");
5
+ const base_command_1 = require("./base-command");
6
+ /** Signals have no personal-workspace fallback. */
7
+ class SignalCommand extends base_command_1.BaseCommand {
8
+ static baseFlags = {
9
+ ...base_command_1.BaseCommand.baseFlags,
10
+ workspace: core_1.Flags.string({
11
+ description: 'Workspace ID. Signals require this or a selection from `skrr workspaces use <id>`; managed sessions retain their bound workspace.',
12
+ }),
13
+ };
14
+ }
15
+ exports.SignalCommand = SignalCommand;