@tokenrip/cli 1.1.8 → 1.2.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 (102) hide show
  1. package/AGENTS.md +9 -2
  2. package/README.md +31 -584
  3. package/SKILL.md +14 -2
  4. package/dist/cjs/client.js +9 -3
  5. package/dist/cjs/client.js.map +1 -1
  6. package/dist/cjs/commands/auth.js +2 -1
  7. package/dist/cjs/commands/auth.js.map +1 -1
  8. package/dist/cjs/commands/collection.js +4 -5
  9. package/dist/cjs/commands/collection.js.map +1 -1
  10. package/dist/cjs/commands/config.js +15 -0
  11. package/dist/cjs/commands/config.js.map +1 -1
  12. package/dist/cjs/commands/msg.js +2 -1
  13. package/dist/cjs/commands/msg.js.map +1 -1
  14. package/dist/cjs/commands/operator-link.js +75 -7
  15. package/dist/cjs/commands/operator-link.js.map +1 -1
  16. package/dist/cjs/commands/publish.js +56 -9
  17. package/dist/cjs/commands/publish.js.map +1 -1
  18. package/dist/cjs/commands/share.js +1 -1
  19. package/dist/cjs/commands/share.js.map +1 -1
  20. package/dist/cjs/commands/thread.js +19 -12
  21. package/dist/cjs/commands/thread.js.map +1 -1
  22. package/dist/cjs/commands/tour.js +60 -0
  23. package/dist/cjs/commands/tour.js.map +1 -0
  24. package/dist/cjs/commands/update.js +1 -1
  25. package/dist/cjs/commands/update.js.map +1 -1
  26. package/dist/cjs/commands/upload.js +3 -2
  27. package/dist/cjs/commands/upload.js.map +1 -1
  28. package/dist/cjs/config.js +18 -2
  29. package/dist/cjs/config.js.map +1 -1
  30. package/dist/cjs/formatters.js +22 -6
  31. package/dist/cjs/formatters.js.map +1 -1
  32. package/dist/cjs/json.js +30 -0
  33. package/dist/cjs/json.js.map +1 -0
  34. package/dist/cjs/output.js +15 -5
  35. package/dist/cjs/output.js.map +1 -1
  36. package/dist/cjs/refs.js +21 -0
  37. package/dist/cjs/refs.js.map +1 -0
  38. package/dist/cjs/state.js +1 -0
  39. package/dist/cjs/state.js.map +1 -1
  40. package/dist/cjs/tour/agent-script.js +34 -0
  41. package/dist/cjs/tour/agent-script.js.map +1 -0
  42. package/dist/cjs/tour/state.js +39 -0
  43. package/dist/cjs/tour/state.js.map +1 -0
  44. package/dist/cjs/tour/steps.js +132 -0
  45. package/dist/cjs/tour/steps.js.map +1 -0
  46. package/dist/cli.js +58 -21
  47. package/dist/cli.js.map +1 -1
  48. package/dist/client.js +9 -3
  49. package/dist/client.js.map +1 -1
  50. package/dist/commands/auth.js +2 -1
  51. package/dist/commands/auth.js.map +1 -1
  52. package/dist/commands/collection.js +4 -5
  53. package/dist/commands/collection.js.map +1 -1
  54. package/dist/commands/config.d.ts +1 -0
  55. package/dist/commands/config.js +15 -1
  56. package/dist/commands/config.js.map +1 -1
  57. package/dist/commands/msg.js +2 -1
  58. package/dist/commands/msg.js.map +1 -1
  59. package/dist/commands/operator-link.d.ts +10 -0
  60. package/dist/commands/operator-link.js +75 -9
  61. package/dist/commands/operator-link.js.map +1 -1
  62. package/dist/commands/publish.d.ts +2 -1
  63. package/dist/commands/publish.js +56 -9
  64. package/dist/commands/publish.js.map +1 -1
  65. package/dist/commands/share.js +2 -2
  66. package/dist/commands/share.js.map +1 -1
  67. package/dist/commands/thread.d.ts +3 -0
  68. package/dist/commands/thread.js +20 -13
  69. package/dist/commands/thread.js.map +1 -1
  70. package/dist/commands/tour.d.ts +5 -0
  71. package/dist/commands/tour.js +55 -0
  72. package/dist/commands/tour.js.map +1 -0
  73. package/dist/commands/update.js +1 -1
  74. package/dist/commands/update.js.map +1 -1
  75. package/dist/commands/upload.js +3 -2
  76. package/dist/commands/upload.js.map +1 -1
  77. package/dist/config.d.ts +2 -1
  78. package/dist/config.js +18 -2
  79. package/dist/config.js.map +1 -1
  80. package/dist/formatters.js +22 -6
  81. package/dist/formatters.js.map +1 -1
  82. package/dist/json.d.ts +3 -0
  83. package/dist/json.js +25 -0
  84. package/dist/json.js.map +1 -0
  85. package/dist/output.d.ts +1 -0
  86. package/dist/output.js +14 -5
  87. package/dist/output.js.map +1 -1
  88. package/dist/refs.d.ts +5 -0
  89. package/dist/refs.js +18 -0
  90. package/dist/refs.js.map +1 -0
  91. package/dist/state.js +1 -0
  92. package/dist/state.js.map +1 -1
  93. package/dist/tour/agent-script.d.ts +1 -0
  94. package/dist/tour/agent-script.js +31 -0
  95. package/dist/tour/agent-script.js.map +1 -0
  96. package/dist/tour/state.d.ts +10 -0
  97. package/dist/tour/state.js +30 -0
  98. package/dist/tour/state.js.map +1 -0
  99. package/dist/tour/steps.d.ts +21 -0
  100. package/dist/tour/steps.js +128 -0
  101. package/dist/tour/steps.js.map +1 -0
  102. package/package.json +4 -4
@@ -1,3 +1,13 @@
1
+ import { createHttpClient } from '../client.js';
2
+ export interface OperatorLinkIssue {
3
+ code: string;
4
+ message: string;
5
+ }
1
6
  export declare function operatorLink(options: {
2
7
  expires?: string;
3
8
  }): Promise<void>;
9
+ export declare function shouldRecoverLinkCodeError(error: unknown): boolean;
10
+ export declare function recoverAuthClient(agentId: string, secretKey: string, apiUrl: string): Promise<{
11
+ client: ReturnType<typeof createHttpClient>;
12
+ warning: OperatorLinkIssue | null;
13
+ }>;
@@ -1,18 +1,20 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import { loadIdentity } from '../identity.js';
3
3
  import { signPayload } from '../crypto.js';
4
- import { getFrontendUrl } from '../config.js';
4
+ import { getFrontendUrl, loadConfig, saveConfig } from '../config.js';
5
5
  import { requireAuthClient } from '../auth-client.js';
6
- import { CliError } from '../errors.js';
6
+ import { CliError, toCliError } from '../errors.js';
7
7
  import { outputSuccess } from '../output.js';
8
+ import { createHttpClient } from '../client.js';
8
9
  import { parseDuration } from './share.js';
9
10
  export async function operatorLink(options) {
10
11
  const identity = loadIdentity();
11
12
  if (!identity) {
12
13
  throw new CliError('NO_IDENTITY', 'No agent identity found. Run `rip auth register` first.');
13
14
  }
14
- const { client } = requireAuthClient();
15
- const frontendUrl = getFrontendUrl();
15
+ const auth = requireAuthClient();
16
+ let client = auth.client;
17
+ const frontendUrl = getFrontendUrl(auth.config);
16
18
  // Generate signed link (local, no server call)
17
19
  const exp = options.expires
18
20
  ? parseDuration(options.expires)
@@ -21,23 +23,41 @@ export async function operatorLink(options) {
21
23
  const url = `${frontendUrl}/operator/auth?token=${encodeURIComponent(token)}`;
22
24
  // Generate short code (server call, for MCP auth / cross-device)
23
25
  let code = null;
24
- let codeExpiresAt = null;
26
+ let codeError = null;
27
+ let warning = null;
25
28
  try {
26
- const { data } = await client.post('/v0/auth/link-code');
29
+ const { data } = await createLinkCode(client);
27
30
  code = data.data.code;
28
- codeExpiresAt = data.data.expires_at;
29
31
  }
30
- catch {
31
- // Short code is optional — signed link still works without it
32
+ catch (initialError) {
33
+ if (shouldRecoverLinkCodeError(initialError)) {
34
+ try {
35
+ const recovered = await recoverAuthClient(identity.agentId, identity.secretKey, auth.apiUrl);
36
+ client = recovered.client;
37
+ warning = recovered.warning;
38
+ const { data } = await createLinkCode(client);
39
+ code = data.data.code;
40
+ }
41
+ catch (retryError) {
42
+ codeError = getErrorDetails(retryError);
43
+ }
44
+ }
45
+ else {
46
+ codeError = getErrorDetails(initialError);
47
+ }
32
48
  }
33
49
  const expiresAt = new Date(exp * 1000).toISOString();
34
50
  outputSuccess({
35
51
  url,
36
52
  code,
53
+ code_error: codeError,
54
+ warning,
37
55
  agent_id: identity.agentId,
38
56
  expires_at: expiresAt,
39
57
  ...(code && { link_page: `${frontendUrl}/link` }),
40
58
  }, (data) => {
59
+ const codeError = data.code_error;
60
+ const warning = data.warning;
41
61
  const lines = [
42
62
  '',
43
63
  `Operator link for ${data.agent_id}:`,
@@ -50,9 +70,55 @@ export async function operatorLink(options) {
50
70
  lines.push(`Enter at ${data.link_page} — expires in 10 minutes`);
51
71
  lines.push('');
52
72
  }
73
+ else if (codeError?.message) {
74
+ lines.push(`Link code unavailable: ${codeError.message}`);
75
+ lines.push('');
76
+ }
77
+ if (warning?.message) {
78
+ lines.push(`Warning: ${warning.message}`);
79
+ lines.push('');
80
+ }
53
81
  lines.push(`Expires: ${data.expires_at}`);
54
82
  lines.push('');
55
83
  return lines.join('\n');
56
84
  });
57
85
  }
86
+ async function createLinkCode(client) {
87
+ return client.post('/v0/auth/link-code');
88
+ }
89
+ export function shouldRecoverLinkCodeError(error) {
90
+ const cliError = toCliError(error);
91
+ return cliError.code === 'UNAUTHORIZED';
92
+ }
93
+ export async function recoverAuthClient(agentId, secretKey, apiUrl) {
94
+ const exp = Math.floor(Date.now() / 1000) + 300;
95
+ const token = signPayload({ sub: 'key-recovery', iss: agentId, exp, jti: randomUUID() }, secretKey);
96
+ const recoveryClient = createHttpClient({ baseUrl: apiUrl });
97
+ const { data } = await recoveryClient.post('/v0/agents/recover-key', { token });
98
+ const apiKey = data.data.api_key;
99
+ let warning = null;
100
+ try {
101
+ const config = loadConfig();
102
+ config.apiKey = apiKey;
103
+ saveConfig(config);
104
+ }
105
+ catch (error) {
106
+ const details = error instanceof Error ? error.message : String(error);
107
+ warning = {
108
+ code: 'KEY_SAVE_FAILED',
109
+ message: `Recovered a replacement API key but could not save it locally (${details}).`,
110
+ };
111
+ }
112
+ return {
113
+ client: createHttpClient({ baseUrl: apiUrl, apiKey }),
114
+ warning,
115
+ };
116
+ }
117
+ function getErrorDetails(error) {
118
+ const cliError = toCliError(error);
119
+ return {
120
+ code: cliError.code || 'UNKNOWN_ERROR',
121
+ message: cliError.message,
122
+ };
123
+ }
58
124
  //# sourceMappingURL=operator-link.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"operator-link.js","sourceRoot":"","sources":["../../src/commands/operator-link.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operator-link.js","sourceRoot":"","sources":["../../src/commands/operator-link.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- export declare function publish(filePath: string, options: {
1
+ export declare function publish(filePath: string | undefined, options: {
2
2
  type: string;
3
3
  title?: string;
4
+ content?: string;
4
5
  parent?: string;
5
6
  context?: string;
6
7
  refs?: string;
@@ -4,11 +4,58 @@ import { requireAuthClient } from '../auth-client.js';
4
4
  import { CliError } from '../errors.js';
5
5
  import { outputSuccess } from '../output.js';
6
6
  import { formatAssetCreated } from '../formatters.js';
7
+ import { parseJsonOption } from '../json.js';
8
+ import { getFrontendUrl } from '../config.js';
7
9
  const VALID_TYPES = ['markdown', 'html', 'chart', 'code', 'text', 'json', 'collection', 'csv'];
8
10
  export async function publish(filePath, options) {
9
11
  if (!VALID_TYPES.includes(options.type)) {
10
12
  throw new CliError('INVALID_TYPE', `Type must be one of: ${VALID_TYPES.join(', ')}`);
11
13
  }
14
+ // Validate: exactly one of {filePath, --content}. We treat empty string the
15
+ // same as missing so `publish('', ...)` behaves like the no-arg case.
16
+ const hasFile = filePath !== undefined && filePath !== '';
17
+ const hasContent = options.content !== undefined;
18
+ if (hasFile && hasContent) {
19
+ throw new CliError('INVALID_ARGS', 'Provide either a file or --content, not both.');
20
+ }
21
+ if (!hasFile && !hasContent) {
22
+ throw new CliError('INVALID_ARGS', 'Provide either a file or --content.');
23
+ }
24
+ // Inline content path: skip all filesystem reads and send the string directly.
25
+ // Collections / CSV import still need a file, so this branch is text-like types only.
26
+ if (hasContent) {
27
+ if (!options.title) {
28
+ throw new CliError('INVALID_ARGS', '--title is required when using --content.');
29
+ }
30
+ if (options.dryRun) {
31
+ outputSuccess({
32
+ dryRun: true,
33
+ action: 'would publish inline',
34
+ title: options.title,
35
+ type: options.type,
36
+ size: options.content.length,
37
+ }, formatAssetCreated);
38
+ return;
39
+ }
40
+ const { client, config } = requireAuthClient();
41
+ const body = {
42
+ type: options.type,
43
+ content: options.content,
44
+ title: options.title,
45
+ };
46
+ if (options.alias)
47
+ body.alias = options.alias;
48
+ if (options.parent)
49
+ body.parentAssetId = options.parent;
50
+ if (options.context)
51
+ body.creatorContext = options.context;
52
+ if (options.refs)
53
+ body.inputReferences = options.refs.split(',').map((r) => r.trim());
54
+ const { data } = await client.post('/v0/assets', body);
55
+ const url = data.data.url || `${getFrontendUrl(config)}/s/${data.data.id}`;
56
+ outputSuccess({ id: data.data.id, url, title: data.data.title, type: data.data.type }, formatAssetCreated);
57
+ return;
58
+ }
12
59
  // Collection → CSV import path: single-command creation of a collection from a CSV file
13
60
  if (options.type === 'collection' && options.fromCsv) {
14
61
  const absPath = path.resolve(filePath);
@@ -30,7 +77,7 @@ export async function publish(filePath, options) {
30
77
  if (options.headers)
31
78
  body.headers = true;
32
79
  if (options.schema)
33
- body.schema = JSON.parse(options.schema);
80
+ body.schema = parseJsonOption(options.schema, '--schema');
34
81
  if (options.alias)
35
82
  body.alias = options.alias;
36
83
  if (options.parent)
@@ -39,9 +86,9 @@ export async function publish(filePath, options) {
39
86
  body.creatorContext = options.context;
40
87
  if (options.refs)
41
88
  body.inputReferences = options.refs.split(',').map((r) => r.trim());
42
- const { client } = requireAuthClient();
89
+ const { client, config } = requireAuthClient();
43
90
  const { data } = await client.post('/v0/assets', body);
44
- const url = data.data.url || `https://tokenrip.com/s/${data.data.id}`;
91
+ const url = data.data.url || `${getFrontendUrl(config)}/s/${data.data.id}`;
45
92
  outputSuccess({ id: data.data.id, url, title: data.data.title, type: data.data.type }, formatAssetCreated);
46
93
  return;
47
94
  }
@@ -49,21 +96,21 @@ export async function publish(filePath, options) {
49
96
  if (options.type === 'collection') {
50
97
  let schema;
51
98
  if (options.schema) {
52
- schema = JSON.parse(options.schema);
99
+ schema = parseJsonOption(options.schema, '--schema');
53
100
  }
54
101
  else {
55
102
  const absPath = path.resolve(filePath);
56
103
  if (!fs.existsSync(absPath)) {
57
104
  throw new CliError('FILE_NOT_FOUND', `File not found: ${absPath}`);
58
105
  }
59
- schema = JSON.parse(fs.readFileSync(absPath, 'utf-8'));
106
+ schema = parseJsonOption(fs.readFileSync(absPath, 'utf-8'), filePath);
60
107
  }
61
108
  const title = options.title || 'Untitled Collection';
62
109
  if (options.dryRun) {
63
110
  outputSuccess({ dryRun: true, action: 'would create collection', title, schema }, formatAssetCreated);
64
111
  return;
65
112
  }
66
- const { client } = requireAuthClient();
113
+ const { client, config } = requireAuthClient();
67
114
  const body = { type: 'collection', title, schema };
68
115
  if (options.alias)
69
116
  body.alias = options.alias;
@@ -74,7 +121,7 @@ export async function publish(filePath, options) {
74
121
  if (options.refs)
75
122
  body.inputReferences = options.refs.split(',').map((r) => r.trim());
76
123
  const { data } = await client.post('/v0/assets', body);
77
- const url = data.data.url || `https://tokenrip.com/s/${data.data.id}`;
124
+ const url = data.data.url || `${getFrontendUrl(config)}/s/${data.data.id}`;
78
125
  outputSuccess({ id: data.data.id, url, title: data.data.title, type: data.data.type }, formatAssetCreated);
79
126
  return;
80
127
  }
@@ -88,7 +135,7 @@ export async function publish(filePath, options) {
88
135
  outputSuccess({ dryRun: true, action: 'would publish', file: absPath, title, type: options.type, size }, formatAssetCreated);
89
136
  return;
90
137
  }
91
- const { client } = requireAuthClient();
138
+ const { client, config } = requireAuthClient();
92
139
  const content = fs.readFileSync(absPath, 'utf-8');
93
140
  const body = {
94
141
  type: options.type,
@@ -104,7 +151,7 @@ export async function publish(filePath, options) {
104
151
  if (options.refs)
105
152
  body.inputReferences = options.refs.split(',').map((r) => r.trim());
106
153
  const { data } = await client.post('/v0/assets', body);
107
- const url = data.data.url || `https://tokenrip.com/s/${data.data.id}`;
154
+ const url = data.data.url || `${getFrontendUrl(config)}/s/${data.data.id}`;
108
155
  outputSuccess({
109
156
  id: data.data.id,
110
157
  url,
@@ -1 +1 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { loadIdentity } from '../identity.js';
2
2
  import { createCapabilityToken } from '../crypto.js';
3
- import { getFrontendUrl } from '../config.js';
3
+ import { getFrontendUrl, loadConfig } from '../config.js';
4
4
  import { CliError } from '../errors.js';
5
5
  import { outputSuccess } from '../output.js';
6
6
  import { formatShareLink } from '../formatters.js';
@@ -22,7 +22,7 @@ export async function share(assetId, options) {
22
22
  const exp = options.expires ? parseDuration(options.expires) : undefined;
23
23
  const aud = options.for || undefined;
24
24
  const token = createCapabilityToken({ sub: `asset:${assetId}`, iss: identity.agentId, perm, exp, aud }, identity.secretKey);
25
- const frontendUrl = getFrontendUrl();
25
+ const frontendUrl = getFrontendUrl(loadConfig());
26
26
  const url = `${frontendUrl}/s/${assetId}?cap=${encodeURIComponent(token)}`;
27
27
  outputSuccess({ url, token, assetId, perm, exp: exp ?? null, aud: aud ?? null }, formatShareLink);
28
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"share.js","sourceRoot":"","sources":["../../src/commands/share.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,UAAU,aAAa,CAAC,CAAS;IACrC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,wBAAwB,CAAC,CAAC;IACnG,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,WAAW,GAA2B,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IAC/E,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,OAAe,EACf,OAAkE;IAElE,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,QAAQ,CAAC,aAAa,EAAE,yDAAyD,CAAC,CAAC;IAC/F,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAC/E,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,SAAS,CAAC;IAErC,MAAM,KAAK,GAAG,qBAAqB,CACjC,EAAE,GAAG,EAAE,SAAS,OAAO,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAClE,QAAQ,CAAC,SAAS,CACnB,CAAC;IAEF,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,GAAG,GAAG,GAAG,WAAW,MAAM,OAAO,QAAQ,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;IAE3E,aAAa,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,eAAe,CAAC,CAAC;AACpG,CAAC"}
1
+ {"version":3,"file":"share.js","sourceRoot":"","sources":["../../src/commands/share.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,UAAU,aAAa,CAAC,CAAS;IACrC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,wBAAwB,CAAC,CAAC;IACnG,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,WAAW,GAA2B,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IAC/E,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,OAAe,EACf,OAAkE;IAElE,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,QAAQ,CAAC,aAAa,EAAE,yDAAyD,CAAC,CAAC;IAC/F,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAC/E,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,SAAS,CAAC;IAErC,MAAM,KAAK,GAAG,qBAAqB,CACjC,EAAE,GAAG,EAAE,SAAS,OAAO,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAClE,QAAQ,CAAC,SAAS,CACnB,CAAC;IAEF,MAAM,WAAW,GAAG,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,GAAG,WAAW,MAAM,OAAO,QAAQ,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;IAE3E,aAAa,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,eAAe,CAAC,CAAC;AACpG,CAAC"}
@@ -6,6 +6,9 @@ export declare function threadCreate(options: {
6
6
  participants?: string;
7
7
  message?: string;
8
8
  refs?: string;
9
+ asset?: string;
10
+ title?: string;
11
+ tourWelcome?: boolean;
9
12
  }): Promise<void>;
10
13
  export declare function threadShare(threadId: string, options: {
11
14
  expires?: string;
@@ -1,12 +1,13 @@
1
1
  import { requireAuthClient } from '../auth-client.js';
2
2
  import { loadIdentity } from '../identity.js';
3
3
  import { createCapabilityToken } from '../crypto.js';
4
- import { getFrontendUrl } from '../config.js';
4
+ import { getFrontendUrl, loadConfig } from '../config.js';
5
5
  import { CliError } from '../errors.js';
6
6
  import { outputSuccess } from '../output.js';
7
7
  import { formatThreadCreated, formatThreadList, formatShareLink, formatThreadDetails, formatThreadClosed, formatParticipantAdded, formatRefsAdded, formatRefRemoved } from '../formatters.js';
8
8
  import { resolveRecipient, resolveRecipients } from '../contacts.js';
9
9
  import { parseDuration } from './share.js';
10
+ import { parseRefList } from '../refs.js';
10
11
  export async function threadList(options) {
11
12
  const { client } = requireAuthClient();
12
13
  const params = {};
@@ -18,22 +19,31 @@ export async function threadList(options) {
18
19
  outputSuccess(data.data, formatThreadList);
19
20
  }
20
21
  export async function threadCreate(options) {
21
- const { client } = requireAuthClient();
22
+ const { client, config } = requireAuthClient();
22
23
  const payload = {};
24
+ const metadata = {};
23
25
  if (options.participants) {
24
26
  payload.participants = resolveRecipients(options.participants.split(',').map((p) => p.trim()));
25
27
  }
26
28
  if (options.refs) {
27
- payload.refs = options.refs.split(',').map((r) => {
28
- const v = r.trim();
29
- return { type: 'url', target_id: v };
30
- });
29
+ payload.refs = parseRefList(options.refs);
30
+ }
31
+ else if (options.asset) {
32
+ payload.refs = [{ type: 'asset', target_id: options.asset }];
31
33
  }
32
34
  if (options.message) {
33
35
  payload.message = { body: options.message };
34
36
  }
37
+ if (options.title)
38
+ metadata.title = options.title;
39
+ if (options.tourWelcome)
40
+ metadata.tour_welcome = true;
41
+ if (Object.keys(metadata).length > 0)
42
+ payload.metadata = metadata;
35
43
  const { data } = await client.post('/v0/threads', payload);
36
- outputSuccess(data.data, formatThreadCreated);
44
+ const frontendUrl = getFrontendUrl(config);
45
+ const thread = data.data;
46
+ outputSuccess({ ...thread, url: `${frontendUrl}/operator/threads/${thread.id}` }, formatThreadCreated);
37
47
  }
38
48
  export async function threadShare(threadId, options) {
39
49
  const identity = loadIdentity();
@@ -44,7 +54,7 @@ export async function threadShare(threadId, options) {
44
54
  const exp = options.expires ? parseDuration(options.expires) : undefined;
45
55
  const aud = options.for || undefined;
46
56
  const token = createCapabilityToken({ sub: `thread:${threadId}`, iss: identity.agentId, perm, exp, aud }, identity.secretKey);
47
- const frontendUrl = getFrontendUrl();
57
+ const frontendUrl = getFrontendUrl(loadConfig());
48
58
  const url = `${frontendUrl}/threads/${threadId}?cap=${encodeURIComponent(token)}`;
49
59
  outputSuccess({ url, token, threadId, perm, exp: exp ?? null, aud: aud ?? null }, formatShareLink);
50
60
  }
@@ -58,7 +68,7 @@ export async function threadClose(threadId, options) {
58
68
  const resolution = { closed: true };
59
69
  if (options.resolution)
60
70
  resolution.message = options.resolution;
61
- const { data } = await client.patch(`/v0/threads/${threadId}`, { resolution });
71
+ const { data } = await client.patch(`/v0/threads/${threadId}`, { state: 'closed', resolution });
62
72
  outputSuccess(data.data, formatThreadClosed);
63
73
  }
64
74
  export async function threadAddParticipant(threadId, agent) {
@@ -69,10 +79,7 @@ export async function threadAddParticipant(threadId, agent) {
69
79
  }
70
80
  export async function threadAddRefs(threadId, refs) {
71
81
  const { client } = requireAuthClient();
72
- const refList = refs.split(',').map((r) => {
73
- const v = r.trim();
74
- return { type: 'url', target_id: v };
75
- });
82
+ const refList = parseRefList(refs);
76
83
  const { data } = await client.post(`/v0/threads/${threadId}/refs`, { refs: refList });
77
84
  outputSuccess(data.data, formatRefsAdded);
78
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"thread.js","sourceRoot":"","sources":["../../src/commands/thread.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thread.js","sourceRoot":"","sources":["../../src/commands/thread.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function tour(options: {
2
+ agent?: boolean;
3
+ }): Promise<void>;
4
+ export declare function tourNext(id: string | undefined): Promise<void>;
5
+ export declare function tourRestart(): Promise<void>;
@@ -0,0 +1,55 @@
1
+ import { CliError } from '../errors.js';
2
+ import { loadTourState, saveTourState, clearTourState } from '../tour/state.js';
3
+ import { STEPS, TOTAL_STEPS, renderCurrentStep } from '../tour/steps.js';
4
+ import { AGENT_SCRIPT } from '../tour/agent-script.js';
5
+ export async function tour(options) {
6
+ if (options.agent) {
7
+ process.stdout.write(AGENT_SCRIPT);
8
+ process.stdout.write('\n');
9
+ return;
10
+ }
11
+ let state = loadTourState();
12
+ if (!state) {
13
+ state = {
14
+ step: 1,
15
+ assetId: null,
16
+ threadId: null,
17
+ startedAt: new Date().toISOString(),
18
+ };
19
+ saveTourState(state);
20
+ process.stdout.write(`Welcome to Tokenrip. Let's take the tour — ${TOTAL_STEPS} steps, about 2 minutes.\n\n`);
21
+ }
22
+ process.stdout.write(renderCurrentStep(state));
23
+ process.stdout.write('\n');
24
+ }
25
+ export async function tourNext(id) {
26
+ const state = loadTourState();
27
+ if (!state) {
28
+ throw new CliError('NO_TOUR', 'No tour in progress. Run `rip tour` to start.');
29
+ }
30
+ const currentStep = STEPS[state.step - 1];
31
+ if (!currentStep) {
32
+ throw new CliError('INVALID_STATE', `Unexpected step number: ${state.step}`);
33
+ }
34
+ if (currentStep.expectsIdOnNext && !id) {
35
+ const label = currentStep.collectsAs === 'assetId' ? 'asset id' : 'thread id';
36
+ throw new CliError('MISSING_ID', `This step needs the ${label} from the previous command. Run: rip tour next <${label.replace(' ', '-')}>`);
37
+ }
38
+ if (currentStep.collectsAs && id) {
39
+ state[currentStep.collectsAs] = id;
40
+ }
41
+ if (state.step >= TOTAL_STEPS) {
42
+ clearTourState();
43
+ process.stdout.write("You've reached the end of the tour. Run `rip tour` again any time.\n");
44
+ return;
45
+ }
46
+ state.step += 1;
47
+ saveTourState(state);
48
+ process.stdout.write(renderCurrentStep(state));
49
+ process.stdout.write('\n');
50
+ }
51
+ export async function tourRestart() {
52
+ clearTourState();
53
+ await tour({});
54
+ }
55
+ //# sourceMappingURL=tour.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tour.js","sourceRoot":"","sources":["../../src/commands/tour.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAkB,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAA4B;IACrD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO;IACT,CAAC;IAED,IAAI,KAAK,GAAG,aAAa,EAAE,CAAC;IAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG;YACN,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QACF,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,WAAW,8BAA8B,CAAC,CAAC;IAChH,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,EAAsB;IACnD,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE,+CAA+C,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAC1C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,QAAQ,CAAC,eAAe,EAAE,2BAA2B,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,IAAI,WAAW,CAAC,eAAe,IAAI,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;QAC9E,MAAM,IAAI,QAAQ,CAChB,YAAY,EACZ,uBAAuB,KAAK,mDAAmD,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAC1G,CAAC;IACJ,CAAC;IAED,IAAI,WAAW,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;QACjC,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;IACrC,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC;QAC9B,cAAc,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;QAC7F,OAAO;IACT,CAAC;IAED,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;IAChB,aAAa,CAAC,KAAK,CAAC,CAAC;IAErB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,cAAc,EAAE,CAAC;IACjB,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;AACjB,CAAC"}
@@ -5,7 +5,7 @@ import { requireAuthClient } from '../auth-client.js';
5
5
  import { CliError } from '../errors.js';
6
6
  import { outputSuccess } from '../output.js';
7
7
  import { formatVersionCreated } from '../formatters.js';
8
- const VALID_TYPES = ['markdown', 'html', 'chart', 'code', 'text'];
8
+ const VALID_TYPES = ['markdown', 'html', 'chart', 'code', 'text', 'json', 'csv'];
9
9
  export async function update(uuid, filePath, options) {
10
10
  const absPath = path.resolve(filePath);
11
11
  if (!fs.existsSync(absPath)) {
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { requireAuthClient } from '../auth-client.js';
6
6
  import { CliError } from '../errors.js';
7
7
  import { outputSuccess } from '../output.js';
8
8
  import { formatAssetCreated } from '../formatters.js';
9
+ import { getFrontendUrl } from '../config.js';
9
10
  export async function upload(filePath, options) {
10
11
  const absPath = path.resolve(filePath);
11
12
  if (!fs.existsSync(absPath)) {
@@ -18,7 +19,7 @@ export async function upload(filePath, options) {
18
19
  outputSuccess({ dryRun: true, action: 'would upload', file: absPath, title, mimeType, size }, formatAssetCreated);
19
20
  return;
20
21
  }
21
- const { client } = requireAuthClient();
22
+ const { client, config } = requireAuthClient();
22
23
  const form = new FormData();
23
24
  form.append('file', fs.createReadStream(absPath));
24
25
  form.append('type', 'file');
@@ -35,7 +36,7 @@ export async function upload(filePath, options) {
35
36
  maxContentLength: Infinity,
36
37
  maxBodyLength: Infinity,
37
38
  });
38
- const url = data.data.url || `https://tokenrip.com/s/${data.data.id}`;
39
+ const url = data.data.url || `${getFrontendUrl(config)}/s/${data.data.id}`;
39
40
  outputSuccess({
40
41
  id: data.data.id,
41
42
  url,
@@ -1 +1 @@
1
- {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/commands/upload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/commands/upload.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -3,10 +3,11 @@ export interface TokenripConfig {
3
3
  configVersion?: number;
4
4
  apiKey?: string;
5
5
  apiUrl?: string;
6
+ frontendUrl?: string;
6
7
  preferences: Record<string, unknown>;
7
8
  }
8
9
  export declare function loadConfig(): TokenripConfig;
9
10
  export declare function saveConfig(config: TokenripConfig): void;
10
11
  export declare function getApiUrl(config: TokenripConfig): string;
11
12
  export declare function getApiKey(config: TokenripConfig): string | undefined;
12
- export declare function getFrontendUrl(): string;
13
+ export declare function getFrontendUrl(config?: TokenripConfig): string;