photon-msg 0.0.0-stage → 0.1.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 (87) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +275 -2
  3. package/dist/args.d.ts +63 -0
  4. package/dist/args.d.ts.map +1 -0
  5. package/dist/args.js +68 -0
  6. package/dist/args.js.map +1 -0
  7. package/dist/bin.d.ts +3 -0
  8. package/dist/bin.d.ts.map +1 -0
  9. package/dist/bin.js +9 -0
  10. package/dist/bin.js.map +1 -0
  11. package/dist/cli.d.ts +13 -0
  12. package/dist/cli.d.ts.map +1 -0
  13. package/dist/cli.js +163 -0
  14. package/dist/cli.js.map +1 -0
  15. package/dist/client.d.ts +37 -0
  16. package/dist/client.d.ts.map +1 -0
  17. package/dist/client.js +68 -0
  18. package/dist/client.js.map +1 -0
  19. package/dist/commands/attachments.d.ts +25 -0
  20. package/dist/commands/attachments.d.ts.map +1 -0
  21. package/dist/commands/attachments.js +78 -0
  22. package/dist/commands/attachments.js.map +1 -0
  23. package/dist/commands/doctor.d.ts +9 -0
  24. package/dist/commands/doctor.d.ts.map +1 -0
  25. package/dist/commands/doctor.js +54 -0
  26. package/dist/commands/doctor.js.map +1 -0
  27. package/dist/commands/line.d.ts +51 -0
  28. package/dist/commands/line.d.ts.map +1 -0
  29. package/dist/commands/line.js +117 -0
  30. package/dist/commands/line.js.map +1 -0
  31. package/dist/commands/messages.d.ts +82 -0
  32. package/dist/commands/messages.d.ts.map +1 -0
  33. package/dist/commands/messages.js +163 -0
  34. package/dist/commands/messages.js.map +1 -0
  35. package/dist/commands/misc.d.ts +33 -0
  36. package/dist/commands/misc.d.ts.map +1 -0
  37. package/dist/commands/misc.js +61 -0
  38. package/dist/commands/misc.js.map +1 -0
  39. package/dist/commands/send.d.ts +107 -0
  40. package/dist/commands/send.d.ts.map +1 -0
  41. package/dist/commands/send.js +104 -0
  42. package/dist/commands/send.js.map +1 -0
  43. package/dist/commands/spaces.d.ts +56 -0
  44. package/dist/commands/spaces.d.ts.map +1 -0
  45. package/dist/commands/spaces.js +118 -0
  46. package/dist/commands/spaces.js.map +1 -0
  47. package/dist/commands/users.d.ts +34 -0
  48. package/dist/commands/users.d.ts.map +1 -0
  49. package/dist/commands/users.js +82 -0
  50. package/dist/commands/users.js.map +1 -0
  51. package/dist/config.d.ts +47 -0
  52. package/dist/config.d.ts.map +1 -0
  53. package/dist/config.js +77 -0
  54. package/dist/config.js.map +1 -0
  55. package/dist/content.d.ts +33 -0
  56. package/dist/content.d.ts.map +1 -0
  57. package/dist/content.js +287 -0
  58. package/dist/content.js.map +1 -0
  59. package/dist/errors.d.ts +62 -0
  60. package/dist/errors.d.ts.map +1 -0
  61. package/dist/errors.js +95 -0
  62. package/dist/errors.js.map +1 -0
  63. package/dist/help.d.ts +8 -0
  64. package/dist/help.d.ts.map +1 -0
  65. package/dist/help.js +177 -0
  66. package/dist/help.js.map +1 -0
  67. package/dist/index.d.ts +21 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +13 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/output.d.ts +35 -0
  72. package/dist/output.d.ts.map +1 -0
  73. package/dist/output.js +121 -0
  74. package/dist/output.js.map +1 -0
  75. package/dist/target.d.ts +34 -0
  76. package/dist/target.d.ts.map +1 -0
  77. package/dist/target.js +75 -0
  78. package/dist/target.js.map +1 -0
  79. package/dist/types.d.ts +200 -0
  80. package/dist/types.d.ts.map +1 -0
  81. package/dist/types.js +8 -0
  82. package/dist/types.js.map +1 -0
  83. package/dist/upload.d.ts +33 -0
  84. package/dist/upload.d.ts.map +1 -0
  85. package/dist/upload.js +119 -0
  86. package/dist/upload.js.map +1 -0
  87. package/package.json +49 -4
@@ -0,0 +1,163 @@
1
+ /**
2
+ * `messages` — list, fetch, and follow messages.
3
+ */
4
+ import { setTimeout as sleep } from "node:timers/promises";
5
+ import { handleOf, nextPageToken, pageItems } from "../client.js";
6
+ import { formatTime, summarizeContent } from "../output.js";
7
+ import { usageError } from "../errors.js";
8
+ /** Builds the SDK query object from list flags. */
9
+ const listQuery = (flags) => {
10
+ const query = {};
11
+ const map = [
12
+ ["platform", "platform"],
13
+ ["direction", "direction"],
14
+ ["order", "order"],
15
+ ["order-by", "orderBy"],
16
+ ["space", "spaceId"],
17
+ ["resource", "resourceId"],
18
+ ["perspective-user", "perspectiveUserId"],
19
+ ["created-since", "createdSince"],
20
+ ["created-before", "createdBefore"],
21
+ ["updated-since", "updatedSince"],
22
+ ["updated-before", "updatedBefore"],
23
+ ["exclude-content-types", "excludeContentTypes"],
24
+ ["page-token", "pageToken"],
25
+ ];
26
+ for (const [flag, key] of map) {
27
+ const value = flags[flag];
28
+ if (typeof value === "string")
29
+ query[key] = value;
30
+ }
31
+ if (flags["page-size"] !== undefined)
32
+ query.pageSize = Number(flags["page-size"]);
33
+ return query;
34
+ };
35
+ const columns = [
36
+ { header: "ID", value: (message) => message.id },
37
+ { header: "TIME", value: (message) => formatTime(message.createdAt) },
38
+ { header: "PLATFORM", value: (message) => message.platform },
39
+ { header: "DIRECTION", value: (message) => message.direction },
40
+ { header: "STATUS", value: (message) => message.status },
41
+ { header: "FROM", value: (message) => handleOf(message.sentBy) },
42
+ { header: "TO", value: (message) => handleOf(message.receivedBy) },
43
+ { header: "CONTENT", value: (message) => summarizeContent(message.content) },
44
+ ];
45
+ export const list = {
46
+ options: {
47
+ platform: { type: "string" },
48
+ direction: { type: "string" },
49
+ order: { type: "string" },
50
+ "order-by": { type: "string" },
51
+ space: { type: "string" },
52
+ resource: { type: "string" },
53
+ "perspective-user": { type: "string" },
54
+ "created-since": { type: "string" },
55
+ "created-before": { type: "string" },
56
+ "updated-since": { type: "string" },
57
+ "updated-before": { type: "string" },
58
+ "exclude-content-types": { type: "string" },
59
+ "page-size": { type: "string" },
60
+ "page-token": { type: "string" },
61
+ limit: { type: "string" },
62
+ },
63
+ async run({ client, projectId, flags, out }) {
64
+ const limit = flags.limit ? Number(flags.limit) : undefined;
65
+ if (limit !== undefined && (Number.isNaN(limit) || limit <= 0)) {
66
+ throw usageError("--limit must be a positive number.");
67
+ }
68
+ const collected = [];
69
+ let pageToken = flags["page-token"];
70
+ let pages = 0;
71
+ do {
72
+ const page = await client.projects.listMessages({
73
+ path: { id: projectId },
74
+ query: {
75
+ ...listQuery(flags),
76
+ ...(pageToken ? { pageToken } : {}),
77
+ ...(limit && !flags["page-size"] ? { pageSize: Math.min(limit, 200) } : {}),
78
+ },
79
+ });
80
+ collected.push(...pageItems(page));
81
+ pageToken = nextPageToken(page);
82
+ pages += 1;
83
+ if (limit && collected.length >= limit)
84
+ break;
85
+ if (pages >= 50)
86
+ break;
87
+ } while (pageToken);
88
+ const rows = limit ? collected.slice(0, limit) : collected;
89
+ out.data({ items: rows, count: rows.length, pages, nextPageToken: pageToken ?? null });
90
+ out.table(rows, columns);
91
+ if (!flags.quiet)
92
+ out.info(`${rows.length} message(s)`);
93
+ },
94
+ };
95
+ export const get = {
96
+ options: {},
97
+ async run({ client, projectId, positionals, out }) {
98
+ const messageId = positionals[0];
99
+ if (!messageId)
100
+ throw usageError("Usage: photon-msg messages get <messageId>");
101
+ const message = (await client.projects.getMessage({
102
+ path: { id: projectId, messageId },
103
+ }));
104
+ out.data(message);
105
+ out.heading(`message ${message.id}`);
106
+ out.keyValue([
107
+ ["platform", message.platform],
108
+ ["direction", message.direction],
109
+ ["status", message.status],
110
+ ["created", formatTime(message.createdAt)],
111
+ ["space", message.space?.id],
112
+ ["from", `${handleOf(message.sentBy) || "—"} (${message.sentBy?.kind ?? "?"})`],
113
+ ["to", `${handleOf(message.receivedBy) || "—"} (${message.receivedBy?.kind ?? "outbound"})`],
114
+ ["content", summarizeContent(message.content)],
115
+ ]);
116
+ },
117
+ };
118
+ export const watch = {
119
+ options: {
120
+ platform: { type: "string" },
121
+ space: { type: "string" },
122
+ direction: { type: "string" },
123
+ interval: { type: "string" },
124
+ for: { type: "string" },
125
+ since: { type: "string" },
126
+ },
127
+ async run({ client, projectId, flags, out }) {
128
+ const intervalMs = Math.max(1, Number(flags.interval ?? 2)) * 1000;
129
+ const durationMs = flags.for ? Number(flags.for) * 1000 : 0;
130
+ const createdSince = flags.since ? new Date(flags.since).toISOString() : new Date().toISOString();
131
+ const deadline = durationMs ? Date.now() + durationMs : Number.POSITIVE_INFINITY;
132
+ const seen = new Set();
133
+ if (!flags.quiet)
134
+ out.info(`watching from ${createdSince}, every ${intervalMs / 1000}s (ctrl-c to stop)`);
135
+ while (Date.now() < deadline) {
136
+ let pageToken;
137
+ do {
138
+ const page = await client.projects.listMessages({
139
+ path: { id: projectId },
140
+ query: {
141
+ createdSince,
142
+ direction: flags.direction ?? "received",
143
+ order: "asc",
144
+ pageSize: 100,
145
+ ...(flags.platform ? { platform: flags.platform } : {}),
146
+ ...(flags.space ? { spaceId: flags.space } : {}),
147
+ ...(pageToken ? { pageToken } : {}),
148
+ },
149
+ });
150
+ for (const message of pageItems(page)) {
151
+ if (seen.has(message.id))
152
+ continue;
153
+ seen.add(message.id);
154
+ // JSON lines so the output can be piped straight into another process.
155
+ process.stdout.write(`${JSON.stringify(message)}\n`);
156
+ }
157
+ pageToken = nextPageToken(page);
158
+ } while (pageToken);
159
+ await sleep(intervalMs);
160
+ }
161
+ },
162
+ };
163
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/commands/messages.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAoB,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,mDAAmD;AACnD,MAAM,SAAS,GAAG,CAAC,KAAY,EAAmC,EAAE;IAClE,MAAM,KAAK,GAAoC,EAAE,CAAC;IAClD,MAAM,GAAG,GAAiC;QACxC,CAAC,UAAU,EAAE,UAAU,CAAC;QACxB,CAAC,WAAW,EAAE,WAAW,CAAC;QAC1B,CAAC,OAAO,EAAE,OAAO,CAAC;QAClB,CAAC,UAAU,EAAE,SAAS,CAAC;QACvB,CAAC,OAAO,EAAE,SAAS,CAAC;QACpB,CAAC,UAAU,EAAE,YAAY,CAAC;QAC1B,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;QACzC,CAAC,eAAe,EAAE,cAAc,CAAC;QACjC,CAAC,gBAAgB,EAAE,eAAe,CAAC;QACnC,CAAC,eAAe,EAAE,cAAc,CAAC;QACjC,CAAC,gBAAgB,EAAE,eAAe,CAAC;QACnC,CAAC,uBAAuB,EAAE,qBAAqB,CAAC;QAChD,CAAC,YAAY,EAAE,WAAW,CAAC;KAC5B,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACpD,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,SAAS;QAAE,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IAClF,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,OAAO,GAAsC;IACjD,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;IAChD,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;IACrE,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE;IAC5D,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE;IAC9D,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE;IACxD,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;IAChE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;IAClE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;CAC7E,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,OAAO,EAAE;QACP,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC5B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC5B,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtC,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACnC,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACpC,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACnC,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACpC,uBAAuB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3C,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAChC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KACgB;IAE3C,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAkB;QACzD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5D,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;YAC/D,MAAM,UAAU,CAAC,oCAAoC,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,SAAS,GAAoB,EAAE,CAAC;QACtC,IAAI,SAAS,GAAuB,KAAK,CAAC,YAAY,CAAC,CAAC;QACxD,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,GAAG,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAC9C,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;gBACvB,KAAK,EAAE;oBACL,GAAG,SAAS,CAAC,KAAK,CAAC;oBACnB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnC,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC5E;aACF,CAAC,CAAC;YAEH,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAgB,IAAI,CAAC,CAAC,CAAC;YAClD,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YAChC,KAAK,IAAI,CAAC,CAAC;YACX,IAAI,KAAK,IAAI,SAAS,CAAC,MAAM,IAAI,KAAK;gBAAE,MAAM;YAC9C,IAAI,KAAK,IAAI,EAAE;gBAAE,MAAM;QACzB,CAAC,QAAQ,SAAS,EAAE;QAEpB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3D,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC;QACvF,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,KAAK;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,aAAa,CAAC,CAAC;IAC1D,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,OAAO,EAAE,EAA4C;IAErD,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAkB;QAC/D,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,SAAS;YAAE,MAAM,UAAU,CAAC,4CAA4C,CAAC,CAAC;QAE/E,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;YAChD,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE;SACnC,CAAC,CAA6B,CAAC;QAEhC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClB,GAAG,CAAC,OAAO,CAAC,WAAW,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACrC,GAAG,CAAC,QAAQ,CAAC;YACX,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC;YAC9B,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC;YAChC,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC;YAC1B,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC1C,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YAC5B,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,OAAO,CAAC,MAAM,EAAE,IAAI,IAAI,GAAG,GAAG,CAAC;YAC/E,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,GAAG,KAAK,OAAO,CAAC,UAAU,EAAE,IAAI,IAAI,UAAU,GAAG,CAAC;YAC5F,CAAC,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC/C,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,OAAO,EAAE;QACP,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC5B,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACvB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KACgB;IAE3C,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAkB;QACzD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACnE,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAClG,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAEjF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,KAAK;YAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB,YAAY,WAAW,UAAU,GAAG,IAAI,oBAAoB,CAAC,CAAC;QAE1G,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC7B,IAAI,SAA6B,CAAC;YAClC,GAAG,CAAC;gBACF,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;oBAC9C,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;oBACvB,KAAK,EAAE;wBACL,YAAY;wBACZ,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,UAAU;wBACxC,KAAK,EAAE,KAAK;wBACZ,QAAQ,EAAE,GAAG;wBACb,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACvD,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAChD,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACpC;iBACF,CAAC,CAAC;gBAEH,KAAK,MAAM,OAAO,IAAI,SAAS,CAAgB,IAAI,CAAC,EAAE,CAAC;oBACrD,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;wBAAE,SAAS;oBACnC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACrB,uEAAuE;oBACvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACvD,CAAC;gBACD,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC,QAAQ,SAAS,EAAE;YAEpB,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * `typing` and `read` — small conversation-state commands.
3
+ *
4
+ * Typing goes through its own endpoint (`setSpaceTyping`); the same signal can
5
+ * also travel as `space.typing.update` content via `send --typing`.
6
+ */
7
+ import type { CommandContext } from "../types.js";
8
+ export declare const typing: {
9
+ options: {
10
+ readonly space: {
11
+ readonly type: "string";
12
+ };
13
+ readonly as: {
14
+ readonly type: "string";
15
+ };
16
+ readonly on: {
17
+ readonly type: "boolean";
18
+ };
19
+ readonly off: {
20
+ readonly type: "boolean";
21
+ };
22
+ };
23
+ run({ client, projectId, flags, out, dryRun, config }: CommandContext): Promise<void>;
24
+ };
25
+ export declare const read: {
26
+ options: {
27
+ readonly "idempotency-key": {
28
+ readonly type: "string";
29
+ };
30
+ };
31
+ run({ client, projectId, flags, positionals, out, dryRun }: CommandContext): Promise<void>;
32
+ };
33
+ //# sourceMappingURL=misc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../src/commands/misc.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;2DAQ4C,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CA2B5F,CAAC;AAEF,eAAO,MAAM,IAAI;;;;;;gEAKmD,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAoBjG,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * `typing` and `read` — small conversation-state commands.
3
+ *
4
+ * Typing goes through its own endpoint (`setSpaceTyping`); the same signal can
5
+ * also travel as `space.typing.update` content via `send --typing`.
6
+ */
7
+ import { randomUUID } from "node:crypto";
8
+ import { usageError } from "../errors.js";
9
+ import { resolveTarget } from "../target.js";
10
+ export const typing = {
11
+ options: {
12
+ space: { type: "string" },
13
+ as: { type: "string" },
14
+ on: { type: "boolean" },
15
+ off: { type: "boolean" },
16
+ },
17
+ async run({ client, projectId, flags, out, dryRun, config }) {
18
+ if (!flags.space) {
19
+ throw usageError("Pass --space <spaceId> (using --to here would create a conversation, which typing should not do).");
20
+ }
21
+ if (flags.on === flags.off)
22
+ throw usageError("Pass exactly one of --on or --off.");
23
+ const typingState = flags.on === true;
24
+ if (dryRun) {
25
+ const sender = flags.as ?? config.agentHandle ?? "(agent)";
26
+ out.data({ dryRun: true, spaceId: flags.space, senderId: `${sender} (resolved at send time)`, typing: typingState });
27
+ out.line(`would set typing=${typingState} in ${flags.space}`);
28
+ return;
29
+ }
30
+ const target = await resolveTarget({ client, projectId, flags, defaultHandle: config.agentHandle });
31
+ await client.projects.setSpaceTyping({
32
+ path: { id: projectId, spaceId: flags.space },
33
+ body: { senderId: target.senderId, typing: typingState },
34
+ });
35
+ out.data({ spaceId: flags.space, senderId: target.senderId, typing: typingState });
36
+ out.success(`typing ${typingState ? "on" : "off"} in ${flags.space}`);
37
+ },
38
+ };
39
+ export const read = {
40
+ options: {
41
+ "idempotency-key": { type: "string" },
42
+ },
43
+ async run({ client, projectId, flags, positionals, out, dryRun }) {
44
+ const messageId = positionals[0];
45
+ if (!messageId)
46
+ throw usageError("Usage: photon-msg read <messageId>");
47
+ const idempotencyKey = flags["idempotency-key"] ?? randomUUID();
48
+ if (dryRun) {
49
+ out.data({ dryRun: true, messageId, idempotencyKey });
50
+ out.line(`would mark ${messageId} read`);
51
+ return;
52
+ }
53
+ await client.projects.markMessageRead({
54
+ path: { id: projectId, messageId },
55
+ headers: { "idempotency-key": idempotencyKey },
56
+ });
57
+ out.data({ messageId, read: true, idempotencyKey });
58
+ out.success(`marked ${messageId} read`);
59
+ },
60
+ };
61
+ //# sourceMappingURL=misc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc.js","sourceRoot":"","sources":["../../src/commands/misc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * `send` — the core command.
3
+ *
4
+ * One command covers every outbound content type because the API takes a
5
+ * polymorphic content object rather than an endpoint per action.
6
+ */
7
+ import type { CommandContext } from "../types.js";
8
+ export declare const options: {
9
+ readonly to: {
10
+ readonly type: "string";
11
+ };
12
+ readonly space: {
13
+ readonly type: "string";
14
+ };
15
+ readonly as: {
16
+ readonly type: "string";
17
+ };
18
+ readonly platform: {
19
+ readonly type: "string";
20
+ };
21
+ readonly text: {
22
+ readonly type: "string";
23
+ readonly multiple: true;
24
+ };
25
+ readonly "text-file": {
26
+ readonly type: "string";
27
+ };
28
+ readonly format: {
29
+ readonly type: "string";
30
+ };
31
+ readonly image: {
32
+ readonly type: "string";
33
+ readonly multiple: true;
34
+ };
35
+ readonly file: {
36
+ readonly type: "string";
37
+ readonly multiple: true;
38
+ };
39
+ readonly caption: {
40
+ readonly type: "string";
41
+ };
42
+ readonly voice: {
43
+ readonly type: "string";
44
+ };
45
+ readonly reaction: {
46
+ readonly type: "string";
47
+ };
48
+ readonly "reaction-action": {
49
+ readonly type: "string";
50
+ };
51
+ readonly poll: {
52
+ readonly type: "string";
53
+ };
54
+ readonly "poll-option": {
55
+ readonly type: "string";
56
+ readonly multiple: true;
57
+ };
58
+ readonly "poll-mode": {
59
+ readonly type: "string";
60
+ };
61
+ readonly edit: {
62
+ readonly type: "string";
63
+ };
64
+ readonly delete: {
65
+ readonly type: "string";
66
+ };
67
+ readonly reason: {
68
+ readonly type: "string";
69
+ };
70
+ readonly read: {
71
+ readonly type: "boolean";
72
+ };
73
+ readonly typing: {
74
+ readonly type: "string";
75
+ };
76
+ readonly "participants-add": {
77
+ readonly type: "string";
78
+ readonly multiple: true;
79
+ };
80
+ readonly "participants-remove": {
81
+ readonly type: "string";
82
+ readonly multiple: true;
83
+ };
84
+ readonly group: {
85
+ readonly type: "boolean";
86
+ };
87
+ readonly "reply-to": {
88
+ readonly type: "string";
89
+ };
90
+ readonly "idempotency-key": {
91
+ readonly type: "string";
92
+ };
93
+ readonly subject: {
94
+ readonly type: "string";
95
+ };
96
+ readonly cc: {
97
+ readonly type: "string";
98
+ readonly multiple: true;
99
+ };
100
+ readonly bcc: {
101
+ readonly type: "string";
102
+ readonly multiple: true;
103
+ };
104
+ };
105
+ /** Sends (or, with --dry-run, describes) one message. */
106
+ export declare function run({ flags, projectId, client, out, dryRun, upload, config }: CommandContext): Promise<void>;
107
+ //# sourceMappingURL=send.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EAAE,cAAc,EAAqB,MAAM,aAAa,CAAC;AAErE,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCuB,CAAC;AAI5C,yDAAyD;AACzD,wBAAsB,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAuElH"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * `send` — the core command.
3
+ *
4
+ * One command covers every outbound content type because the API takes a
5
+ * polymorphic content object rather than an endpoint per action.
6
+ */
7
+ import { randomUUID } from "node:crypto";
8
+ import { buildMessage, describeContent } from "../content.js";
9
+ import { resolveTarget } from "../target.js";
10
+ import { usageError } from "../errors.js";
11
+ export const options = {
12
+ to: { type: "string" },
13
+ space: { type: "string" },
14
+ as: { type: "string" },
15
+ platform: { type: "string" },
16
+ text: { type: "string", multiple: true },
17
+ "text-file": { type: "string" },
18
+ format: { type: "string" },
19
+ image: { type: "string", multiple: true },
20
+ file: { type: "string", multiple: true },
21
+ caption: { type: "string" },
22
+ voice: { type: "string" },
23
+ reaction: { type: "string" },
24
+ "reaction-action": { type: "string" },
25
+ poll: { type: "string" },
26
+ "poll-option": { type: "string", multiple: true },
27
+ "poll-mode": { type: "string" },
28
+ edit: { type: "string" },
29
+ delete: { type: "string" },
30
+ reason: { type: "string" },
31
+ read: { type: "boolean" },
32
+ typing: { type: "string" },
33
+ "participants-add": { type: "string", multiple: true },
34
+ "participants-remove": { type: "string", multiple: true },
35
+ group: { type: "boolean" },
36
+ "reply-to": { type: "string" },
37
+ "idempotency-key": { type: "string" },
38
+ subject: { type: "string" },
39
+ cc: { type: "string", multiple: true },
40
+ bcc: { type: "string", multiple: true },
41
+ };
42
+ const UPLOAD_FLAGS = ["image", "file", "voice"];
43
+ /** Sends (or, with --dry-run, describes) one message. */
44
+ export async function run({ flags, projectId, client, out, dryRun, upload, config }) {
45
+ if (dryRun && UPLOAD_FLAGS.some((flag) => flags[flag] !== undefined)) {
46
+ throw usageError("--dry-run cannot include attachments, because uploading them is a network write.");
47
+ }
48
+ const message = await buildMessage({
49
+ flags,
50
+ upload,
51
+ getUsers: async (ids) => Promise.all(ids.map(async (userId) => {
52
+ const user = await client.projects.getUser({ path: { id: projectId, userId } });
53
+ return user;
54
+ })),
55
+ });
56
+ const idempotencyKey = flags["idempotency-key"] ?? randomUUID();
57
+ if (dryRun) {
58
+ const spaceId = flags.space ?? "(resolved from --to)";
59
+ const senderId = flags.as ?? config.agentHandle;
60
+ const request = {
61
+ spaceId,
62
+ senderId: senderId ? `${senderId} (resolved at send time)` : "(agent)",
63
+ ...(message.parentMessageId ? { parentMessageId: message.parentMessageId } : {}),
64
+ content: message.content,
65
+ ...(message.email ? { email: message.email } : {}),
66
+ };
67
+ out.data({ dryRun: true, idempotencyKey, request });
68
+ out.line(`would send ${describeContent(message.content)}`);
69
+ out.keyValue([
70
+ ["space", request.spaceId],
71
+ ["sender", request.senderId],
72
+ ["idempotency key", idempotencyKey],
73
+ ]);
74
+ return;
75
+ }
76
+ const target = await resolveTarget({ client, projectId, flags, defaultHandle: config.agentHandle });
77
+ const request = {
78
+ spaceId: target.spaceId,
79
+ senderId: target.senderId,
80
+ ...(message.parentMessageId ? { parentMessageId: message.parentMessageId } : {}),
81
+ content: message.content,
82
+ ...(message.email ? { email: message.email } : {}),
83
+ };
84
+ const sent = await client.projects.sendMessage({
85
+ path: { id: projectId },
86
+ headers: { "idempotency-key": idempotencyKey },
87
+ body: request,
88
+ });
89
+ const sentRecord = sent;
90
+ out.data({
91
+ messageId: sentRecord.id,
92
+ status: sentRecord.status,
93
+ spaceId: request.spaceId,
94
+ senderId: request.senderId,
95
+ idempotencyKey,
96
+ content: request.content,
97
+ });
98
+ if (!flags.quiet) {
99
+ out.success(`sent ${sentRecord.id} (${sentRecord.status ?? "accepted"})`);
100
+ out.info(`space ${request.spaceId} · idempotency ${idempotencyKey}`);
101
+ out.info("acceptance is asynchronous; delivery is reported later on the message resource");
102
+ }
103
+ }
104
+ //# sourceMappingURL=send.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * `spaces` — conversations. `create` is idempotent: it reuses an exact match.
3
+ */
4
+ import type { CommandContext } from "../types.js";
5
+ export declare const list: {
6
+ options: {
7
+ readonly platform: {
8
+ readonly type: "string";
9
+ };
10
+ readonly participant: {
11
+ readonly type: "string";
12
+ };
13
+ readonly "participant-handle": {
14
+ readonly type: "string";
15
+ };
16
+ readonly order: {
17
+ readonly type: "string";
18
+ };
19
+ readonly "order-by": {
20
+ readonly type: "string";
21
+ };
22
+ readonly "created-since": {
23
+ readonly type: "string";
24
+ };
25
+ readonly "created-before": {
26
+ readonly type: "string";
27
+ };
28
+ readonly "page-size": {
29
+ readonly type: "string";
30
+ };
31
+ readonly "page-token": {
32
+ readonly type: "string";
33
+ };
34
+ };
35
+ run({ client, projectId, flags, out }: CommandContext): Promise<void>;
36
+ };
37
+ export declare const get: {
38
+ options: {};
39
+ run({ client, projectId, positionals, out }: CommandContext): Promise<void>;
40
+ };
41
+ export declare const create: {
42
+ options: {
43
+ readonly platform: {
44
+ readonly type: "string";
45
+ };
46
+ readonly participant: {
47
+ readonly type: "string";
48
+ readonly multiple: true;
49
+ };
50
+ readonly "idempotency-key": {
51
+ readonly type: "string";
52
+ };
53
+ };
54
+ run({ client, projectId, flags, out, dryRun }: CommandContext): Promise<void>;
55
+ };
56
+ //# sourceMappingURL=spaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spaces.d.ts","sourceRoot":"","sources":["../../src/commands/spaces.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,aAAa,CAAC;AAE/D,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAa8B,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CA2B5E,CAAC;AAEF,eAAO,MAAM,GAAG;;iDAGqC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBlF,CAAC;AAEF,eAAO,MAAM,MAAM;;;;;;;;;;;;;mDAOoC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CA2CpF,CAAC"}