@vm0/cli 9.222.12 → 9.223.0

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 (82) hide show
  1. package/{agent-XNVQRMKI.js → agent-ZYBFKGZD.js} +4 -4
  2. package/{banking-QBTNNOCQ.js → banking-5GSHA6MQ.js} +2 -2
  3. package/{chat-ELAJKQXT.js → chat-D4WIQV73.js} +2 -2
  4. package/{chunk-LOEUF572.js → chunk-3RHMXHVV.js} +3 -3
  5. package/{chunk-SBLYEOJF.js → chunk-6OSJ34QC.js} +26 -17
  6. package/{chunk-SBLYEOJF.js.map → chunk-6OSJ34QC.js.map} +1 -1
  7. package/{chunk-JOOQB7W3.js → chunk-CP7DUCZX.js} +2 -2
  8. package/{chunk-VTG6TDYL.js → chunk-JK2FKDJA.js} +2 -2
  9. package/{chunk-QYSUVI4Z.js → chunk-R4UO2IJL.js} +3 -3
  10. package/{chunk-KBDCWC3F.js → chunk-T4KQF7JE.js} +129 -1
  11. package/chunk-T4KQF7JE.js.map +1 -0
  12. package/{chunk-Y4YHS5UO.js → chunk-UEP6QOTD.js} +2 -2
  13. package/{chunk-7ZJOZZXZ.js → chunk-UVNA7OIV.js} +2 -2
  14. package/{chunk-F774K6TY.js → chunk-X43ZEB2I.js} +2 -2
  15. package/{computer-use-XXPDTJSQ.js → computer-use-PKNPWMMH.js} +2 -2
  16. package/{connector-PWDJ3R6G.js → connector-LYITOPC7.js} +2 -2
  17. package/{credit-MYBUWRHP.js → credit-N6K3UPJI.js} +2 -2
  18. package/{developer-support-65OQ2RK4.js → developer-support-AAIH6JKB.js} +2 -2
  19. package/{doctor-2U4HK4AX.js → doctor-7QULTHB2.js} +5 -5
  20. package/{generate-UEDRCAKX.js → generate-ZGGB4VRQ.js} +2 -2
  21. package/{github-R6JKL74U.js → github-WKH4K6AO.js} +2 -2
  22. package/{goal-BG47S2RP.js → goal-BDCQT2KB.js} +2 -2
  23. package/{host-2VS2KOZQ.js → host-7SYB4J6N.js} +2 -2
  24. package/index.js +13 -13
  25. package/index.js.map +1 -1
  26. package/{logs-P4ECN3YI.js → logs-7222H6Z2.js} +6 -6
  27. package/{maps-ZBULOEZW.js → maps-FC4F3FKH.js} +2 -2
  28. package/{model-BFHGQJ5U.js → model-COXJNPG4.js} +3 -3
  29. package/{model-provider-OUSOKSWW.js → model-provider-JVNBJOH7.js} +3 -3
  30. package/{org-RI2EYUW7.js → org-47H2J7JE.js} +2 -2
  31. package/package.json +1 -1
  32. package/{phone-SNLGLD3J.js → phone-K25UXZHC.js} +2 -2
  33. package/{preference-XDSQRZWM.js → preference-LGHDHJZM.js} +2 -2
  34. package/relationship-BAUULK6G.js +188 -0
  35. package/relationship-BAUULK6G.js.map +1 -0
  36. package/{resource-BA4FQCNQ.js → resource-PJQX5QDW.js} +2 -2
  37. package/{search-FMA3IDHQ.js → search-MIJ7EYQZ.js} +6 -6
  38. package/{secret-NFJQKUPS.js → secret-CHWXYJSQ.js} +3 -3
  39. package/{slack-JPM5WVX6.js → slack-RMYGICYB.js} +2 -2
  40. package/{telegram-BNX4UZTT.js → telegram-7AXM2K2U.js} +2 -2
  41. package/{variable-IAIPAH3T.js → variable-Z44R6AF3.js} +2 -2
  42. package/{web-3TJGHZNA.js → web-UTOHAAUX.js} +2 -2
  43. package/{whoami-OVIXXMRR.js → whoami-HRV7WG4C.js} +4 -4
  44. package/{workflow-WWMTJDLF.js → workflow-HTAA3KWV.js} +2 -2
  45. package/zero.js +38 -30
  46. package/zero.js.map +1 -1
  47. package/chunk-KBDCWC3F.js.map +0 -1
  48. /package/{agent-XNVQRMKI.js.map → agent-ZYBFKGZD.js.map} +0 -0
  49. /package/{banking-QBTNNOCQ.js.map → banking-5GSHA6MQ.js.map} +0 -0
  50. /package/{chat-ELAJKQXT.js.map → chat-D4WIQV73.js.map} +0 -0
  51. /package/{chunk-LOEUF572.js.map → chunk-3RHMXHVV.js.map} +0 -0
  52. /package/{chunk-JOOQB7W3.js.map → chunk-CP7DUCZX.js.map} +0 -0
  53. /package/{chunk-VTG6TDYL.js.map → chunk-JK2FKDJA.js.map} +0 -0
  54. /package/{chunk-QYSUVI4Z.js.map → chunk-R4UO2IJL.js.map} +0 -0
  55. /package/{chunk-Y4YHS5UO.js.map → chunk-UEP6QOTD.js.map} +0 -0
  56. /package/{chunk-7ZJOZZXZ.js.map → chunk-UVNA7OIV.js.map} +0 -0
  57. /package/{chunk-F774K6TY.js.map → chunk-X43ZEB2I.js.map} +0 -0
  58. /package/{computer-use-XXPDTJSQ.js.map → computer-use-PKNPWMMH.js.map} +0 -0
  59. /package/{connector-PWDJ3R6G.js.map → connector-LYITOPC7.js.map} +0 -0
  60. /package/{credit-MYBUWRHP.js.map → credit-N6K3UPJI.js.map} +0 -0
  61. /package/{developer-support-65OQ2RK4.js.map → developer-support-AAIH6JKB.js.map} +0 -0
  62. /package/{doctor-2U4HK4AX.js.map → doctor-7QULTHB2.js.map} +0 -0
  63. /package/{generate-UEDRCAKX.js.map → generate-ZGGB4VRQ.js.map} +0 -0
  64. /package/{github-R6JKL74U.js.map → github-WKH4K6AO.js.map} +0 -0
  65. /package/{goal-BG47S2RP.js.map → goal-BDCQT2KB.js.map} +0 -0
  66. /package/{host-2VS2KOZQ.js.map → host-7SYB4J6N.js.map} +0 -0
  67. /package/{logs-P4ECN3YI.js.map → logs-7222H6Z2.js.map} +0 -0
  68. /package/{maps-ZBULOEZW.js.map → maps-FC4F3FKH.js.map} +0 -0
  69. /package/{model-BFHGQJ5U.js.map → model-COXJNPG4.js.map} +0 -0
  70. /package/{model-provider-OUSOKSWW.js.map → model-provider-JVNBJOH7.js.map} +0 -0
  71. /package/{org-RI2EYUW7.js.map → org-47H2J7JE.js.map} +0 -0
  72. /package/{phone-SNLGLD3J.js.map → phone-K25UXZHC.js.map} +0 -0
  73. /package/{preference-XDSQRZWM.js.map → preference-LGHDHJZM.js.map} +0 -0
  74. /package/{resource-BA4FQCNQ.js.map → resource-PJQX5QDW.js.map} +0 -0
  75. /package/{search-FMA3IDHQ.js.map → search-MIJ7EYQZ.js.map} +0 -0
  76. /package/{secret-NFJQKUPS.js.map → secret-CHWXYJSQ.js.map} +0 -0
  77. /package/{slack-JPM5WVX6.js.map → slack-RMYGICYB.js.map} +0 -0
  78. /package/{telegram-BNX4UZTT.js.map → telegram-7AXM2K2U.js.map} +0 -0
  79. /package/{variable-IAIPAH3T.js.map → variable-Z44R6AF3.js.map} +0 -0
  80. /package/{web-3TJGHZNA.js.map → web-UTOHAAUX.js.map} +0 -0
  81. /package/{whoami-OVIXXMRR.js.map → whoami-HRV7WG4C.js.map} +0 -0
  82. /package/{workflow-WWMTJDLF.js.map → workflow-HTAA3KWV.js.map} +0 -0
@@ -3,7 +3,7 @@ import { createRequire as __createRequire } from "node:module";
3
3
  const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  searchCommand
6
- } from "./chunk-QYSUVI4Z.js";
6
+ } from "./chunk-R4UO2IJL.js";
7
7
  import {
8
8
  EventRenderer,
9
9
  EventStreamNormalizer,
@@ -14,15 +14,15 @@ import {
14
14
  parseBoundedLogCount,
15
15
  parsePositiveLogCount,
16
16
  parseTime
17
- } from "./chunk-SBLYEOJF.js";
17
+ } from "./chunk-6OSJ34QC.js";
18
18
  import "./chunk-I23JUVHS.js";
19
- import "./chunk-F774K6TY.js";
20
- import "./chunk-Y4YHS5UO.js";
19
+ import "./chunk-X43ZEB2I.js";
20
+ import "./chunk-UEP6QOTD.js";
21
21
  import "./chunk-LTDQISD7.js";
22
22
  import {
23
23
  getZeroRunAgentEvents,
24
24
  listZeroLogs
25
- } from "./chunk-KBDCWC3F.js";
25
+ } from "./chunk-T4KQF7JE.js";
26
26
  import {
27
27
  withErrorHandler
28
28
  } from "./chunk-3F4RFLPX.js";
@@ -274,4 +274,4 @@ Examples:
274
274
  export {
275
275
  zeroLogsCommand
276
276
  };
277
- //# sourceMappingURL=logs-P4ECN3YI.js.map
277
+ //# sourceMappingURL=logs-7222H6Z2.js.map
@@ -4,7 +4,7 @@ const require = __createRequire(import.meta.url);
4
4
  import "./chunk-LTDQISD7.js";
5
5
  import {
6
6
  callZeroMaps
7
- } from "./chunk-KBDCWC3F.js";
7
+ } from "./chunk-T4KQF7JE.js";
8
8
  import {
9
9
  withErrorHandler
10
10
  } from "./chunk-3F4RFLPX.js";
@@ -484,4 +484,4 @@ Notes:
484
484
  export {
485
485
  zeroMapsCommand
486
486
  };
487
- //# sourceMappingURL=maps-ZBULOEZW.js.map
487
+ //# sourceMappingURL=maps-FC4F3FKH.js.map
@@ -5,12 +5,12 @@ import {
5
5
  formatModelPolicyStatus,
6
6
  formatModelProviderRoute,
7
7
  getModelProviderRouteKind
8
- } from "./chunk-VTG6TDYL.js";
8
+ } from "./chunk-JK2FKDJA.js";
9
9
  import "./chunk-LTDQISD7.js";
10
10
  import {
11
11
  getVm0ModelPriceTier,
12
12
  listZeroModelPolicies
13
- } from "./chunk-KBDCWC3F.js";
13
+ } from "./chunk-T4KQF7JE.js";
14
14
  import {
15
15
  withErrorHandler
16
16
  } from "./chunk-3F4RFLPX.js";
@@ -90,4 +90,4 @@ export {
90
90
  switchCommand,
91
91
  zeroModelCommand
92
92
  };
93
- //# sourceMappingURL=model-BFHGQJ5U.js.map
93
+ //# sourceMappingURL=model-COXJNPG4.js.map
@@ -5,11 +5,11 @@ import {
5
5
  formatModelPolicyStatus,
6
6
  getModelProviderRouteKind,
7
7
  getModelProviderTypeLabel
8
- } from "./chunk-VTG6TDYL.js";
8
+ } from "./chunk-JK2FKDJA.js";
9
9
  import "./chunk-LTDQISD7.js";
10
10
  import {
11
11
  listZeroModelPolicies
12
- } from "./chunk-KBDCWC3F.js";
12
+ } from "./chunk-T4KQF7JE.js";
13
13
  import {
14
14
  withErrorHandler
15
15
  } from "./chunk-3F4RFLPX.js";
@@ -74,4 +74,4 @@ export {
74
74
  setCommand,
75
75
  zeroModelProviderCommand
76
76
  };
77
- //# sourceMappingURL=model-provider-OUSOKSWW.js.map
77
+ //# sourceMappingURL=model-provider-JVNBJOH7.js.map
@@ -33,7 +33,7 @@ import {
33
33
  switchZeroOrg,
34
34
  updateZeroOrg,
35
35
  upsertZeroOrgModelProvider
36
- } from "./chunk-KBDCWC3F.js";
36
+ } from "./chunk-T4KQF7JE.js";
37
37
  import {
38
38
  ApiRequestError,
39
39
  getActiveOrg,
@@ -919,4 +919,4 @@ var zeroOrgCommand = new Command().name("org").description("Manage organization
919
919
  export {
920
920
  zeroOrgCommand
921
921
  };
922
- //# sourceMappingURL=org-RI2EYUW7.js.map
922
+ //# sourceMappingURL=org-47H2J7JE.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vm0/cli",
3
- "version": "9.222.12",
3
+ "version": "9.223.0",
4
4
  "description": "CLI application",
5
5
  "repository": {
6
6
  "type": "git",
@@ -7,7 +7,7 @@ import {
7
7
  downloadPhoneFile,
8
8
  initPhoneFileUpload,
9
9
  sendPhoneMessage
10
- } from "./chunk-KBDCWC3F.js";
10
+ } from "./chunk-T4KQF7JE.js";
11
11
  import {
12
12
  withErrorHandler
13
13
  } from "./chunk-3F4RFLPX.js";
@@ -201,4 +201,4 @@ Examples:
201
201
  export {
202
202
  zeroPhoneCommand
203
203
  };
204
- //# sourceMappingURL=phone-SNLGLD3J.js.map
204
+ //# sourceMappingURL=phone-K25UXZHC.js.map
@@ -9,7 +9,7 @@ import "./chunk-LTDQISD7.js";
9
9
  import {
10
10
  getZeroUserPreferences,
11
11
  updateZeroUserPreferences
12
- } from "./chunk-KBDCWC3F.js";
12
+ } from "./chunk-T4KQF7JE.js";
13
13
  import {
14
14
  withErrorHandler
15
15
  } from "./chunk-3F4RFLPX.js";
@@ -107,4 +107,4 @@ var zeroPreferenceCommand = new Command().name("preference").description("View o
107
107
  export {
108
108
  zeroPreferenceCommand
109
109
  };
110
- //# sourceMappingURL=preference-XDSQRZWM.js.map
110
+ //# sourceMappingURL=preference-LGHDHJZM.js.map
@@ -0,0 +1,188 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire as __createRequire } from "node:module";
3
+ const require = __createRequire(import.meta.url);
4
+ import "./chunk-LTDQISD7.js";
5
+ import {
6
+ resolveZeroRelationship,
7
+ searchZeroRelationships
8
+ } from "./chunk-T4KQF7JE.js";
9
+ import {
10
+ withErrorHandler
11
+ } from "./chunk-3F4RFLPX.js";
12
+ import {
13
+ source_default
14
+ } from "./chunk-JUTUEPIR.js";
15
+ import "./chunk-LRHXR7JT.js";
16
+ import {
17
+ Command
18
+ } from "./chunk-B3W2RUBP.js";
19
+ import {
20
+ init_esm_shims
21
+ } from "./chunk-DIRAZ3YX.js";
22
+
23
+ // src/commands/zero/relationship/index.ts
24
+ init_esm_shims();
25
+
26
+ // src/commands/zero/relationship/get.ts
27
+ init_esm_shims();
28
+
29
+ // src/commands/zero/relationship/format.ts
30
+ init_esm_shims();
31
+ function formatDate(value) {
32
+ if (!value) {
33
+ return "never";
34
+ }
35
+ return new Intl.DateTimeFormat(void 0, {
36
+ year: "numeric",
37
+ month: "short",
38
+ day: "numeric"
39
+ }).format(new Date(value));
40
+ }
41
+ function itemsOfKind(relationship, kind) {
42
+ return relationship.items.filter((item) => {
43
+ return item.kind === kind;
44
+ });
45
+ }
46
+ function printItems(title, items) {
47
+ if (items.length === 0) {
48
+ return;
49
+ }
50
+ console.log("");
51
+ console.log(source_default.bold(title));
52
+ for (const item of items) {
53
+ const source = item.sources[0];
54
+ const sourceText = source ? source_default.dim(` (${source.provider}, ${formatDate(source.occurredAt)})`) : "";
55
+ console.log(` - ${item.text}${sourceText}`);
56
+ }
57
+ }
58
+ function printRelationship(relationship) {
59
+ console.log(source_default.green("\u2713 Relationship loaded"));
60
+ console.log(source_default.bold(relationship.entity.displayName));
61
+ if (relationship.entity.primaryEmail) {
62
+ console.log(source_default.dim(` Email: ${relationship.entity.primaryEmail}`));
63
+ }
64
+ if (relationship.entity.domain) {
65
+ console.log(source_default.dim(` Domain: ${relationship.entity.domain}`));
66
+ }
67
+ console.log(source_default.dim(` Type: ${relationship.relationshipType}`));
68
+ console.log(source_default.dim(` Status: ${relationship.status}`));
69
+ console.log(
70
+ source_default.dim(` Last touch: ${formatDate(relationship.lastInteractionAt)}`)
71
+ );
72
+ if (relationship.summary) {
73
+ console.log("");
74
+ console.log(relationship.summary);
75
+ }
76
+ printItems("Key facts", itemsOfKind(relationship, "key_fact"));
77
+ printItems("Preferences", itemsOfKind(relationship, "preference"));
78
+ printItems("Open loops", itemsOfKind(relationship, "open_loop"));
79
+ }
80
+ function printRelationshipSearch(relationships) {
81
+ if (relationships.length === 0) {
82
+ console.log("No relationships found");
83
+ return;
84
+ }
85
+ console.log(source_default.green(`\u2713 Found ${relationships.length} relationships`));
86
+ for (const relationship of relationships) {
87
+ const primary = relationship.entity.primaryEmail ?? relationship.entity.domain ?? "";
88
+ const suffix = primary ? source_default.dim(` - ${primary}`) : "";
89
+ console.log(
90
+ `${relationship.entity.displayName}${suffix} ${source_default.dim(
91
+ `(${relationship.relationshipType}, ${formatDate(
92
+ relationship.lastInteractionAt
93
+ )})`
94
+ )}`
95
+ );
96
+ if (relationship.summary) {
97
+ console.log(source_default.dim(` ${relationship.summary}`));
98
+ }
99
+ }
100
+ }
101
+
102
+ // src/commands/zero/relationship/get.ts
103
+ function selectedLookupCount(options) {
104
+ return [options.id, options.email, options.domain].filter((value) => {
105
+ return Boolean(value);
106
+ }).length;
107
+ }
108
+ function printUsageError(message, hint) {
109
+ console.error(source_default.red(`\u2717 ${message}`));
110
+ console.error(source_default.dim(` ${hint}`));
111
+ process.exit(1);
112
+ }
113
+ var getCommand = new Command().name("get").description("Resolve a relationship by id, email, or domain").option("--id <id>", "Resolve by relationship id").option("--email <email>", "Resolve by primary email").option("--domain <domain>", "Resolve by domain").option("--json", "Print machine-readable JSON").addHelpText(
114
+ "after",
115
+ `
116
+ Examples:
117
+ Resolve by email: zero relationship get --email alice@acme.com
118
+ Resolve by domain: zero relationship get --domain acme.com
119
+ Resolve by id: zero relationship get --id <relationship-id>
120
+ Print JSON: zero relationship get --email alice@acme.com --json
121
+
122
+ Notes:
123
+ - Uses the authenticated user's active organization
124
+ - Does not support cross-organization lookup
125
+ - This command is read-only`
126
+ ).action(
127
+ withErrorHandler(async (options) => {
128
+ if (selectedLookupCount(options) !== 1) {
129
+ printUsageError(
130
+ "Choose exactly one lookup",
131
+ "Pass one of --id, --email, or --domain."
132
+ );
133
+ }
134
+ const response = await resolveZeroRelationship(
135
+ options.id ? { id: options.id } : options.email ? { email: options.email } : { domain: options.domain }
136
+ );
137
+ if (options.json) {
138
+ console.log(JSON.stringify(response));
139
+ return;
140
+ }
141
+ if (!response.relationship) {
142
+ console.log("No relationship found");
143
+ return;
144
+ }
145
+ printRelationship(response.relationship);
146
+ })
147
+ );
148
+
149
+ // src/commands/zero/relationship/search.ts
150
+ init_esm_shims();
151
+ function parseLimit(value) {
152
+ if (value === void 0) {
153
+ return void 0;
154
+ }
155
+ const parsed = Number(value);
156
+ return Number.isInteger(parsed) ? parsed : void 0;
157
+ }
158
+ var searchCommand = new Command().name("search").description("Search relationship memory").argument("<query>", "Search query").option("--limit <limit>", "Maximum relationships to return").option("--json", "Print machine-readable JSON").addHelpText(
159
+ "after",
160
+ `
161
+ Examples:
162
+ Search relationships: zero relationship search "acme pricing"
163
+ Print JSON: zero relationship search "security review" --json
164
+
165
+ Notes:
166
+ - Uses the authenticated user's active organization
167
+ - Does not support cross-organization search
168
+ - This command is read-only`
169
+ ).action(
170
+ withErrorHandler(async (query, options) => {
171
+ const response = await searchZeroRelationships({
172
+ q: query,
173
+ limit: parseLimit(options.limit)
174
+ });
175
+ if (options.json) {
176
+ console.log(JSON.stringify(response));
177
+ return;
178
+ }
179
+ printRelationshipSearch(response.relationships);
180
+ })
181
+ );
182
+
183
+ // src/commands/zero/relationship/index.ts
184
+ var zeroRelationshipCommand = new Command().name("relationship").description("Query relationship memory").addCommand(getCommand).addCommand(searchCommand);
185
+ export {
186
+ zeroRelationshipCommand
187
+ };
188
+ //# sourceMappingURL=relationship-BAUULK6G.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/zero/relationship/index.ts","../src/commands/zero/relationship/get.ts","../src/commands/zero/relationship/format.ts","../src/commands/zero/relationship/search.ts"],"sourcesContent":["import { Command } from \"commander\";\nimport { getCommand } from \"./get\";\nimport { searchCommand } from \"./search\";\n\nexport const zeroRelationshipCommand = new Command()\n .name(\"relationship\")\n .description(\"Query relationship memory\")\n .addCommand(getCommand)\n .addCommand(searchCommand);\n","import chalk from \"chalk\";\nimport { Command } from \"commander\";\n\nimport { resolveZeroRelationship } from \"../../../lib/api\";\nimport { withErrorHandler } from \"../../../lib/command\";\nimport { printRelationship } from \"./format\";\n\ninterface GetOptions {\n readonly id?: string;\n readonly email?: string;\n readonly domain?: string;\n readonly json?: boolean;\n}\n\nfunction selectedLookupCount(options: GetOptions): number {\n return [options.id, options.email, options.domain].filter((value) => {\n return Boolean(value);\n }).length;\n}\n\nfunction printUsageError(message: string, hint: string): never {\n console.error(chalk.red(`✗ ${message}`));\n console.error(chalk.dim(` ${hint}`));\n process.exit(1);\n}\n\nexport const getCommand = new Command()\n .name(\"get\")\n .description(\"Resolve a relationship by id, email, or domain\")\n .option(\"--id <id>\", \"Resolve by relationship id\")\n .option(\"--email <email>\", \"Resolve by primary email\")\n .option(\"--domain <domain>\", \"Resolve by domain\")\n .option(\"--json\", \"Print machine-readable JSON\")\n .addHelpText(\n \"after\",\n `\nExamples:\n Resolve by email: zero relationship get --email alice@acme.com\n Resolve by domain: zero relationship get --domain acme.com\n Resolve by id: zero relationship get --id <relationship-id>\n Print JSON: zero relationship get --email alice@acme.com --json\n\nNotes:\n - Uses the authenticated user's active organization\n - Does not support cross-organization lookup\n - This command is read-only`,\n )\n .action(\n withErrorHandler(async (options: GetOptions) => {\n if (selectedLookupCount(options) !== 1) {\n printUsageError(\n \"Choose exactly one lookup\",\n \"Pass one of --id, --email, or --domain.\",\n );\n }\n\n const response = await resolveZeroRelationship(\n options.id\n ? { id: options.id }\n : options.email\n ? { email: options.email }\n : { domain: options.domain! },\n );\n\n if (options.json) {\n console.log(JSON.stringify(response));\n return;\n }\n\n if (!response.relationship) {\n console.log(\"No relationship found\");\n return;\n }\n\n printRelationship(response.relationship);\n }),\n );\n","import chalk from \"chalk\";\nimport type { RelationshipRecord } from \"@vm0/api-contracts/contracts/zero-relationships\";\n\nfunction formatDate(value: string | null): string {\n if (!value) {\n return \"never\";\n }\n return new Intl.DateTimeFormat(undefined, {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(value));\n}\n\nfunction itemsOfKind(\n relationship: RelationshipRecord,\n kind: RelationshipRecord[\"items\"][number][\"kind\"],\n) {\n return relationship.items.filter((item) => {\n return item.kind === kind;\n });\n}\n\nfunction printItems(\n title: string,\n items: readonly RelationshipRecord[\"items\"][number][],\n): void {\n if (items.length === 0) {\n return;\n }\n console.log(\"\");\n console.log(chalk.bold(title));\n for (const item of items) {\n const source = item.sources[0];\n const sourceText = source\n ? chalk.dim(` (${source.provider}, ${formatDate(source.occurredAt)})`)\n : \"\";\n console.log(` - ${item.text}${sourceText}`);\n }\n}\n\nexport function printRelationship(relationship: RelationshipRecord): void {\n console.log(chalk.green(\"✓ Relationship loaded\"));\n console.log(chalk.bold(relationship.entity.displayName));\n if (relationship.entity.primaryEmail) {\n console.log(chalk.dim(` Email: ${relationship.entity.primaryEmail}`));\n }\n if (relationship.entity.domain) {\n console.log(chalk.dim(` Domain: ${relationship.entity.domain}`));\n }\n console.log(chalk.dim(` Type: ${relationship.relationshipType}`));\n console.log(chalk.dim(` Status: ${relationship.status}`));\n console.log(\n chalk.dim(` Last touch: ${formatDate(relationship.lastInteractionAt)}`),\n );\n\n if (relationship.summary) {\n console.log(\"\");\n console.log(relationship.summary);\n }\n\n printItems(\"Key facts\", itemsOfKind(relationship, \"key_fact\"));\n printItems(\"Preferences\", itemsOfKind(relationship, \"preference\"));\n printItems(\"Open loops\", itemsOfKind(relationship, \"open_loop\"));\n}\n\nexport function printRelationshipSearch(\n relationships: readonly RelationshipRecord[],\n): void {\n if (relationships.length === 0) {\n console.log(\"No relationships found\");\n return;\n }\n\n console.log(chalk.green(`✓ Found ${relationships.length} relationships`));\n for (const relationship of relationships) {\n const primary =\n relationship.entity.primaryEmail ?? relationship.entity.domain ?? \"\";\n const suffix = primary ? chalk.dim(` - ${primary}`) : \"\";\n console.log(\n `${relationship.entity.displayName}${suffix} ${chalk.dim(\n `(${relationship.relationshipType}, ${formatDate(\n relationship.lastInteractionAt,\n )})`,\n )}`,\n );\n if (relationship.summary) {\n console.log(chalk.dim(` ${relationship.summary}`));\n }\n }\n}\n","import { Command } from \"commander\";\n\nimport { searchZeroRelationships } from \"../../../lib/api\";\nimport { withErrorHandler } from \"../../../lib/command\";\nimport { printRelationshipSearch } from \"./format\";\n\ninterface SearchOptions {\n readonly json?: boolean;\n readonly limit?: string;\n}\n\nfunction parseLimit(value: string | undefined): number | undefined {\n if (value === undefined) {\n return undefined;\n }\n const parsed = Number(value);\n return Number.isInteger(parsed) ? parsed : undefined;\n}\n\nexport const searchCommand = new Command()\n .name(\"search\")\n .description(\"Search relationship memory\")\n .argument(\"<query>\", \"Search query\")\n .option(\"--limit <limit>\", \"Maximum relationships to return\")\n .option(\"--json\", \"Print machine-readable JSON\")\n .addHelpText(\n \"after\",\n `\nExamples:\n Search relationships: zero relationship search \"acme pricing\"\n Print JSON: zero relationship search \"security review\" --json\n\nNotes:\n - Uses the authenticated user's active organization\n - Does not support cross-organization search\n - This command is read-only`,\n )\n .action(\n withErrorHandler(async (query: string, options: SearchOptions) => {\n const response = await searchZeroRelationships({\n q: query,\n limit: parseLimit(options.limit),\n });\n\n if (options.json) {\n console.log(JSON.stringify(response));\n return;\n }\n\n printRelationshipSearch(response.relationships);\n }),\n );\n"],"mappings":"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","names":[]}
@@ -16,7 +16,7 @@ import {
16
16
  import "./chunk-LTDQISD7.js";
17
17
  import {
18
18
  getRegistryResourceDownload
19
- } from "./chunk-KBDCWC3F.js";
19
+ } from "./chunk-T4KQF7JE.js";
20
20
  import {
21
21
  withErrorHandler
22
22
  } from "./chunk-3F4RFLPX.js";
@@ -138,4 +138,4 @@ export {
138
138
  findRegistryResourceForPull,
139
139
  zeroResourceCommand
140
140
  };
141
- //# sourceMappingURL=resource-BA4FQCNQ.js.map
141
+ //# sourceMappingURL=resource-PJQX5QDW.js.map
@@ -3,21 +3,21 @@ import { createRequire as __createRequire } from "node:module";
3
3
  const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  runLogsSearch
6
- } from "./chunk-QYSUVI4Z.js";
6
+ } from "./chunk-R4UO2IJL.js";
7
7
  import {
8
8
  formatIsoTimestamp,
9
9
  isUUID,
10
10
  parseBoundedLogCount,
11
11
  parseSearchQuery,
12
12
  parseTime
13
- } from "./chunk-SBLYEOJF.js";
13
+ } from "./chunk-6OSJ34QC.js";
14
14
  import "./chunk-I23JUVHS.js";
15
- import "./chunk-F774K6TY.js";
16
- import "./chunk-Y4YHS5UO.js";
15
+ import "./chunk-X43ZEB2I.js";
16
+ import "./chunk-UEP6QOTD.js";
17
17
  import "./chunk-LTDQISD7.js";
18
18
  import {
19
19
  searchZeroChat
20
- } from "./chunk-KBDCWC3F.js";
20
+ } from "./chunk-T4KQF7JE.js";
21
21
  import {
22
22
  withErrorHandler
23
23
  } from "./chunk-3F4RFLPX.js";
@@ -201,4 +201,4 @@ export {
201
201
  buildSlackRecipe,
202
202
  zeroSearchCommand
203
203
  };
204
- //# sourceMappingURL=search-FMA3IDHQ.js.map
204
+ //# sourceMappingURL=search-MIJ7EYQZ.js.map
@@ -3,7 +3,7 @@ import { createRequire as __createRequire } from "node:module";
3
3
  const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  getConnectorStoredSecretDisplayInfo
6
- } from "./chunk-Y4YHS5UO.js";
6
+ } from "./chunk-UEP6QOTD.js";
7
7
  import {
8
8
  isInteractive,
9
9
  promptConfirm,
@@ -14,7 +14,7 @@ import {
14
14
  deleteZeroSecret,
15
15
  listZeroSecrets,
16
16
  setZeroSecret
17
- } from "./chunk-KBDCWC3F.js";
17
+ } from "./chunk-T4KQF7JE.js";
18
18
  import {
19
19
  withErrorHandler
20
20
  } from "./chunk-3F4RFLPX.js";
@@ -160,4 +160,4 @@ var zeroSecretCommand = new Command().name("secret").description("Read or write
160
160
  export {
161
161
  zeroSecretCommand
162
162
  };
163
- //# sourceMappingURL=secret-NFJQKUPS.js.map
163
+ //# sourceMappingURL=secret-CHWXYJSQ.js.map
@@ -7,7 +7,7 @@ import {
7
7
  downloadSlackFile,
8
8
  initSlackFileUpload,
9
9
  sendSlackMessage
10
- } from "./chunk-KBDCWC3F.js";
10
+ } from "./chunk-T4KQF7JE.js";
11
11
  import {
12
12
  withErrorHandler
13
13
  } from "./chunk-3F4RFLPX.js";
@@ -220,4 +220,4 @@ Examples:
220
220
  export {
221
221
  zeroSlackCommand
222
222
  };
223
- //# sourceMappingURL=slack-JPM5WVX6.js.map
223
+ //# sourceMappingURL=slack-RMYGICYB.js.map
@@ -8,7 +8,7 @@ import {
8
8
  initTelegramFileUpload,
9
9
  listTelegramBots,
10
10
  sendTelegramMessage
11
- } from "./chunk-KBDCWC3F.js";
11
+ } from "./chunk-T4KQF7JE.js";
12
12
  import {
13
13
  withErrorHandler
14
14
  } from "./chunk-3F4RFLPX.js";
@@ -335,4 +335,4 @@ Examples:
335
335
  export {
336
336
  zeroTelegramCommand
337
337
  };
338
- //# sourceMappingURL=telegram-BNX4UZTT.js.map
338
+ //# sourceMappingURL=telegram-7AXM2K2U.js.map
@@ -10,7 +10,7 @@ import {
10
10
  deleteZeroVariable,
11
11
  listZeroVariables,
12
12
  setZeroVariable
13
- } from "./chunk-KBDCWC3F.js";
13
+ } from "./chunk-T4KQF7JE.js";
14
14
  import {
15
15
  withErrorHandler
16
16
  } from "./chunk-3F4RFLPX.js";
@@ -117,4 +117,4 @@ var zeroVariableCommand = new Command().name("variable").description("Read or wr
117
117
  export {
118
118
  zeroVariableCommand
119
119
  };
120
- //# sourceMappingURL=variable-IAIPAH3T.js.map
120
+ //# sourceMappingURL=variable-Z44R6AF3.js.map
@@ -2,7 +2,7 @@
2
2
  import { createRequire as __createRequire } from "node:module";
3
3
  const require = __createRequire(import.meta.url);
4
4
  import "./chunk-LTDQISD7.js";
5
- import "./chunk-KBDCWC3F.js";
5
+ import "./chunk-T4KQF7JE.js";
6
6
  import {
7
7
  downloadWebFile,
8
8
  uploadWebFile,
@@ -106,4 +106,4 @@ Examples:
106
106
  export {
107
107
  zeroWebCommand
108
108
  };
109
- //# sourceMappingURL=web-3TJGHZNA.js.map
109
+ //# sourceMappingURL=web-UTOHAAUX.js.map
@@ -4,16 +4,16 @@ const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  loadConnectorPermissionInfos,
6
6
  policyIcon
7
- } from "./chunk-JOOQB7W3.js";
7
+ } from "./chunk-CP7DUCZX.js";
8
8
  import {
9
9
  permissionGrantsToFirewallPolicies
10
- } from "./chunk-7ZJOZZXZ.js";
10
+ } from "./chunk-UVNA7OIV.js";
11
11
  import "./chunk-LTDQISD7.js";
12
12
  import {
13
13
  getZeroAgentUserConnectors,
14
14
  listZeroConnectors,
15
15
  listZeroUserPermissionGrants
16
- } from "./chunk-KBDCWC3F.js";
16
+ } from "./chunk-T4KQF7JE.js";
17
17
  import {
18
18
  getActiveOrg,
19
19
  getApiUrl,
@@ -192,4 +192,4 @@ Notes:
192
192
  export {
193
193
  zeroWhoamiCommand
194
194
  };
195
- //# sourceMappingURL=whoami-OVIXXMRR.js.map
195
+ //# sourceMappingURL=whoami-HRV7WG4C.js.map
@@ -20,7 +20,7 @@ import {
20
20
  listWorkflows,
21
21
  updateWorkflow,
22
22
  updateWorkflowTrigger
23
- } from "./chunk-KBDCWC3F.js";
23
+ } from "./chunk-T4KQF7JE.js";
24
24
  import {
25
25
  withErrorHandler
26
26
  } from "./chunk-3F4RFLPX.js";
@@ -1579,4 +1579,4 @@ Examples:
1579
1579
  export {
1580
1580
  zeroWorkflowCommand
1581
1581
  };
1582
- //# sourceMappingURL=workflow-WWMTJDLF.js.map
1582
+ //# sourceMappingURL=workflow-HTAA3KWV.js.map