@ginkoai/cli 1.8.0 → 2.0.0-beta.3

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 (89) hide show
  1. package/dist/commands/assign.d.ts +19 -0
  2. package/dist/commands/assign.d.ts.map +1 -0
  3. package/dist/commands/assign.js +200 -0
  4. package/dist/commands/assign.js.map +1 -0
  5. package/dist/commands/epic.d.ts.map +1 -1
  6. package/dist/commands/epic.js +48 -23
  7. package/dist/commands/epic.js.map +1 -1
  8. package/dist/commands/graph/api-client.d.ts +1 -0
  9. package/dist/commands/graph/api-client.d.ts.map +1 -1
  10. package/dist/commands/graph/api-client.js.map +1 -1
  11. package/dist/commands/insights/insights-command.d.ts.map +1 -1
  12. package/dist/commands/insights/insights-command.js +51 -13
  13. package/dist/commands/insights/insights-command.js.map +1 -1
  14. package/dist/commands/invite/index.d.ts +22 -0
  15. package/dist/commands/invite/index.d.ts.map +1 -0
  16. package/dist/commands/invite/index.js +192 -0
  17. package/dist/commands/invite/index.js.map +1 -0
  18. package/dist/commands/join/index.d.ts +22 -0
  19. package/dist/commands/join/index.d.ts.map +1 -0
  20. package/dist/commands/join/index.js +177 -0
  21. package/dist/commands/join/index.js.map +1 -0
  22. package/dist/commands/principles/seed.d.ts +26 -0
  23. package/dist/commands/principles/seed.d.ts.map +1 -0
  24. package/dist/commands/principles/seed.js +150 -0
  25. package/dist/commands/principles/seed.js.map +1 -0
  26. package/dist/commands/start/start-reflection.d.ts +11 -0
  27. package/dist/commands/start/start-reflection.d.ts.map +1 -1
  28. package/dist/commands/start/start-reflection.js +99 -3
  29. package/dist/commands/start/start-reflection.js.map +1 -1
  30. package/dist/commands/sync/index.d.ts +22 -0
  31. package/dist/commands/sync/index.d.ts.map +1 -0
  32. package/dist/commands/sync/index.js +43 -0
  33. package/dist/commands/sync/index.js.map +1 -0
  34. package/dist/commands/sync/node-syncer.d.ts +58 -0
  35. package/dist/commands/sync/node-syncer.d.ts.map +1 -0
  36. package/dist/commands/sync/node-syncer.js +192 -0
  37. package/dist/commands/sync/node-syncer.js.map +1 -0
  38. package/dist/commands/sync/sprint-syncer.d.ts +42 -0
  39. package/dist/commands/sync/sprint-syncer.d.ts.map +1 -0
  40. package/dist/commands/sync/sprint-syncer.js +274 -0
  41. package/dist/commands/sync/sprint-syncer.js.map +1 -0
  42. package/dist/commands/sync/sync-command.d.ts +16 -0
  43. package/dist/commands/sync/sync-command.d.ts.map +1 -0
  44. package/dist/commands/sync/sync-command.js +458 -0
  45. package/dist/commands/sync/sync-command.js.map +1 -0
  46. package/dist/commands/sync/team-sync.d.ts +32 -0
  47. package/dist/commands/sync/team-sync.d.ts.map +1 -0
  48. package/dist/commands/sync/team-sync.js +194 -0
  49. package/dist/commands/sync/team-sync.js.map +1 -0
  50. package/dist/commands/sync/types.d.ts +120 -0
  51. package/dist/commands/sync/types.d.ts.map +1 -0
  52. package/dist/commands/sync/types.js +12 -0
  53. package/dist/commands/sync/types.js.map +1 -0
  54. package/dist/core/session-log-manager.d.ts +3 -1
  55. package/dist/core/session-log-manager.d.ts.map +1 -1
  56. package/dist/core/session-log-manager.js +5 -3
  57. package/dist/core/session-log-manager.js.map +1 -1
  58. package/dist/data/standard-principles.d.ts +43 -0
  59. package/dist/data/standard-principles.d.ts.map +1 -0
  60. package/dist/data/standard-principles.js +323 -0
  61. package/dist/data/standard-principles.js.map +1 -0
  62. package/dist/index.js +29 -1
  63. package/dist/index.js.map +1 -1
  64. package/dist/lib/insights/analyzers/anti-patterns.js +2 -2
  65. package/dist/lib/insights/analyzers/anti-patterns.js.map +1 -1
  66. package/dist/lib/insights/analyzers/efficiency.js +2 -2
  67. package/dist/lib/insights/analyzers/efficiency.js.map +1 -1
  68. package/dist/lib/insights/analyzers/patterns.d.ts.map +1 -1
  69. package/dist/lib/insights/analyzers/patterns.js +16 -6
  70. package/dist/lib/insights/analyzers/patterns.js.map +1 -1
  71. package/dist/lib/insights/analyzers/quality.d.ts.map +1 -1
  72. package/dist/lib/insights/analyzers/quality.js +14 -9
  73. package/dist/lib/insights/analyzers/quality.js.map +1 -1
  74. package/dist/lib/insights/data-collector.d.ts.map +1 -1
  75. package/dist/lib/insights/data-collector.js +60 -13
  76. package/dist/lib/insights/data-collector.js.map +1 -1
  77. package/dist/lib/insights/scheduler.d.ts +71 -0
  78. package/dist/lib/insights/scheduler.d.ts.map +1 -0
  79. package/dist/lib/insights/scheduler.js +126 -0
  80. package/dist/lib/insights/scheduler.js.map +1 -0
  81. package/dist/utils/api-client.d.ts +1 -1
  82. package/dist/utils/api-client.d.ts.map +1 -1
  83. package/dist/utils/api-client.js +2 -2
  84. package/dist/utils/api-client.js.map +1 -1
  85. package/package.json +1 -1
  86. package/dist/lib/__tests__/task-timeout.test.d.ts +0 -12
  87. package/dist/lib/__tests__/task-timeout.test.d.ts.map +0 -1
  88. package/dist/lib/__tests__/task-timeout.test.js +0 -278
  89. package/dist/lib/__tests__/task-timeout.test.js.map +0 -1
@@ -283,19 +283,57 @@ function outputJson(report) {
283
283
  // Supabase Sync
284
284
  // ============================================================================
285
285
  async function syncToSupabase(report) {
286
- console.log(chalk.dim('\nSyncing to Supabase...'));
287
- // TODO: Implement Supabase sync when API is ready
288
- // This would POST to the dashboard API endpoint:
289
- // POST /api/v1/insights/sync
290
- // {
291
- // userId: report.userId,
292
- // projectId: report.projectId,
293
- // overallScore: report.overallScore,
294
- // categoryScores: report.categoryScores,
295
- // insights: report.insights,
296
- // }
297
- console.log(chalk.yellow('Supabase sync not yet implemented (requires API endpoint)'));
298
- console.log(chalk.dim('Results saved locally only'));
286
+ console.log(chalk.dim('\nSyncing to dashboard...'));
287
+ // Load auth token
288
+ const { loadAuthSession } = await import('../../utils/auth-storage.js');
289
+ const { loadGraphConfig } = await import('../graph/config.js');
290
+ const session = await loadAuthSession();
291
+ const token = session?.api_key || null;
292
+ if (!token) {
293
+ console.log(chalk.yellow('⚠ Not authenticated. Run `ginko login` to sync insights.'));
294
+ console.log(chalk.dim('Results saved locally only'));
295
+ return;
296
+ }
297
+ // Get API URL from graph config or environment
298
+ const graphConfig = await loadGraphConfig();
299
+ const apiUrl = graphConfig?.apiEndpoint || process.env.GINKO_API_URL || 'https://app.ginkoai.com';
300
+ // Prepare request payload
301
+ const payload = {
302
+ userId: report.userId,
303
+ projectId: report.projectId,
304
+ graphId: graphConfig?.graphId,
305
+ overallScore: report.overallScore,
306
+ categoryScores: report.categoryScores,
307
+ insights: report.insights,
308
+ summary: report.summary,
309
+ period: {
310
+ start: report.period.start.toISOString(),
311
+ end: report.period.end.toISOString(),
312
+ days: report.period.days,
313
+ },
314
+ };
315
+ try {
316
+ const response = await fetch(`${apiUrl}/api/v1/insights/sync`, {
317
+ method: 'POST',
318
+ headers: {
319
+ 'Content-Type': 'application/json',
320
+ 'Authorization': `Bearer ${token}`,
321
+ },
322
+ body: JSON.stringify(payload),
323
+ });
324
+ if (!response.ok) {
325
+ const errorData = await response.json().catch(() => ({}));
326
+ throw new Error(errorData.error || `HTTP ${response.status}`);
327
+ }
328
+ const result = await response.json();
329
+ console.log(chalk.green('✓ Insights synced to dashboard'));
330
+ console.log(chalk.dim(` Run ID: ${result.runId}`));
331
+ console.log(chalk.dim(` Insights: ${result.insightCount} | Trends: ${result.trendCount}`));
332
+ }
333
+ catch (error) {
334
+ console.log(chalk.yellow(`⚠ Sync failed: ${error instanceof Error ? error.message : String(error)}`));
335
+ console.log(chalk.dim('Results saved locally only'));
336
+ }
299
337
  }
300
338
  // ============================================================================
301
339
  // Helper Functions
@@ -1 +1 @@
1
- {"version":3,"file":"insights-command.js","sourceRoot":"","sources":["../../../src/commands/insights/insights-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"insights-command.js","sourceRoot":"","sources":["../../../src/commands/insights/insights-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @fileType: command
3
+ * @status: current
4
+ * @updated: 2026-01-03
5
+ * @tags: [invite, team, collaboration, epic-008]
6
+ * @related: [../join/index.ts, ../team/index.ts]
7
+ * @priority: high
8
+ * @complexity: medium
9
+ * @dependencies: [commander, chalk, ora]
10
+ */
11
+ /**
12
+ * Invite Command (EPIC-008 Sprint 1)
13
+ *
14
+ * CLI command for team owners/admins to invite members via email
15
+ */
16
+ import { Command } from 'commander';
17
+ /**
18
+ * Main invite command with subcommands
19
+ */
20
+ export declare function inviteCommand(): Command;
21
+ export default inviteCommand;
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/invite/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8LpC;;GAEG;AACH,wBAAgB,aAAa,YA2C5B;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,192 @@
1
+ /**
2
+ * @fileType: command
3
+ * @status: current
4
+ * @updated: 2026-01-03
5
+ * @tags: [invite, team, collaboration, epic-008]
6
+ * @related: [../join/index.ts, ../team/index.ts]
7
+ * @priority: high
8
+ * @complexity: medium
9
+ * @dependencies: [commander, chalk, ora]
10
+ */
11
+ /**
12
+ * Invite Command (EPIC-008 Sprint 1)
13
+ *
14
+ * CLI command for team owners/admins to invite members via email
15
+ */
16
+ import { Command } from 'commander';
17
+ import chalk from 'chalk';
18
+ import ora from 'ora';
19
+ import Table from 'cli-table3';
20
+ import { api } from '../../utils/api-client.js';
21
+ /**
22
+ * Send invitation to join a team
23
+ */
24
+ async function sendInvite(email, options) {
25
+ const spinner = ora('Sending invitation...').start();
26
+ try {
27
+ // Get team ID - if not provided, use current project's default team
28
+ let teamId = options.team;
29
+ if (!teamId) {
30
+ // Try to get team from current project context
31
+ const teamsResponse = await api.get('/api/v1/teams?limit=1');
32
+ if (teamsResponse.error || !teamsResponse.data?.teams?.length) {
33
+ spinner.fail(chalk.red('No team specified and no default team found'));
34
+ console.log('');
35
+ console.log(chalk.dim('Usage: ginko invite <email> --team <team-id>'));
36
+ console.log(chalk.dim(' ginko teams list # to see available teams'));
37
+ process.exit(1);
38
+ }
39
+ teamId = teamsResponse.data.teams[0].id;
40
+ }
41
+ const response = await api.post('/api/v1/team/invite', {
42
+ team_id: teamId,
43
+ email: email.toLowerCase(),
44
+ role: options.role || 'member',
45
+ });
46
+ if (response.error) {
47
+ spinner.fail(chalk.red('Failed to send invitation'));
48
+ console.error(chalk.red(` ${response.error}`));
49
+ process.exit(1);
50
+ }
51
+ const invitation = response.data.invitation;
52
+ spinner.succeed(chalk.green('Invitation sent'));
53
+ console.log('');
54
+ console.log(chalk.bold(` Invited: ${invitation.email}`));
55
+ console.log(chalk.dim(` Team: ${invitation.team_name}`));
56
+ console.log(chalk.dim(` Role: ${invitation.role}`));
57
+ console.log(chalk.dim(` Expires: ${new Date(invitation.expires_at).toLocaleDateString()}`));
58
+ console.log('');
59
+ console.log(chalk.cyan(` Invite code: ${invitation.code}`));
60
+ console.log('');
61
+ console.log(chalk.dim('Share this code with the invitee to join:'));
62
+ console.log(chalk.green(` ginko join ${invitation.code}`));
63
+ }
64
+ catch (error) {
65
+ spinner.fail(chalk.red('Failed to send invitation'));
66
+ console.error(chalk.red(` ${error.message}`));
67
+ process.exit(1);
68
+ }
69
+ }
70
+ /**
71
+ * List pending invitations for a team
72
+ */
73
+ async function listInvites(options) {
74
+ const spinner = ora('Loading invitations...').start();
75
+ try {
76
+ let teamId = options.team;
77
+ if (!teamId) {
78
+ // Get first team
79
+ const teamsResponse = await api.get('/api/v1/teams?limit=1');
80
+ if (teamsResponse.error || !teamsResponse.data?.teams?.length) {
81
+ spinner.fail(chalk.red('No team specified and no default team found'));
82
+ process.exit(1);
83
+ }
84
+ teamId = teamsResponse.data.teams[0].id;
85
+ }
86
+ const response = await api.get(`/api/v1/team/invite?team_id=${teamId}`);
87
+ if (response.error) {
88
+ spinner.fail(chalk.red('Failed to load invitations'));
89
+ console.error(chalk.red(` ${response.error}`));
90
+ process.exit(1);
91
+ }
92
+ const invitations = response.data.invitations;
93
+ if (invitations.length === 0) {
94
+ spinner.succeed(chalk.yellow('No pending invitations'));
95
+ return;
96
+ }
97
+ spinner.succeed(chalk.green(`Found ${invitations.length} pending invitation(s)`));
98
+ console.log('');
99
+ const table = new Table({
100
+ head: [
101
+ chalk.cyan('Email'),
102
+ chalk.cyan('Role'),
103
+ chalk.cyan('Code'),
104
+ chalk.cyan('Expires'),
105
+ ],
106
+ colWidths: [30, 10, 15, 15],
107
+ wordWrap: true,
108
+ });
109
+ invitations.forEach((inv) => {
110
+ table.push([
111
+ inv.email,
112
+ inv.role,
113
+ inv.code,
114
+ new Date(inv.expires_at).toLocaleDateString(),
115
+ ]);
116
+ });
117
+ console.log(table.toString());
118
+ }
119
+ catch (error) {
120
+ spinner.fail(chalk.red('Failed to load invitations'));
121
+ console.error(chalk.red(` ${error.message}`));
122
+ process.exit(1);
123
+ }
124
+ }
125
+ /**
126
+ * Revoke a pending invitation
127
+ */
128
+ async function revokeInvite(code) {
129
+ const spinner = ora('Revoking invitation...').start();
130
+ try {
131
+ const response = await api.delete('/api/v1/team/invite', { code });
132
+ if (response.error) {
133
+ spinner.fail(chalk.red('Failed to revoke invitation'));
134
+ console.error(chalk.red(` ${response.error}`));
135
+ process.exit(1);
136
+ }
137
+ spinner.succeed(chalk.green('Invitation revoked'));
138
+ }
139
+ catch (error) {
140
+ spinner.fail(chalk.red('Failed to revoke invitation'));
141
+ console.error(chalk.red(` ${error.message}`));
142
+ process.exit(1);
143
+ }
144
+ }
145
+ /**
146
+ * Main invite command with subcommands
147
+ */
148
+ export function inviteCommand() {
149
+ const invite = new Command('invite')
150
+ .description('Invite collaborators to join your team')
151
+ .showHelpAfterError('(use --help for additional information)')
152
+ .addHelpText('after', `
153
+ ${chalk.gray('Quick Start:')}
154
+ ${chalk.green('ginko invite')} user@example.com ${chalk.gray('# Invite as member')}
155
+ ${chalk.green('ginko invite')} user@example.com --role owner ${chalk.gray('# Invite as owner')}
156
+
157
+ ${chalk.gray('Management:')}
158
+ ${chalk.green('ginko invite --list')} ${chalk.gray('# List pending invitations')}
159
+ ${chalk.green('ginko invite --revoke')} <code> ${chalk.gray('# Cancel invitation')}
160
+
161
+ ${chalk.gray('Options:')}
162
+ --team <id> ${chalk.dim('Team to invite to (defaults to your first team)')}
163
+ --role <role> ${chalk.dim('Role to assign: owner, admin, member (default: member)')}
164
+
165
+ ${chalk.gray('Workflow:')}
166
+ 1. ${chalk.green('ginko invite')} collaborator@example.com
167
+ 2. Share the invite code with them
168
+ 3. They run: ${chalk.green('ginko join')} <code>
169
+ `)
170
+ .argument('[email]', 'Email address to invite')
171
+ .option('-t, --team <id>', 'Team ID to invite to')
172
+ .option('-r, --role <role>', 'Role to assign (owner|admin|member)', 'member')
173
+ .option('-l, --list', 'List pending invitations')
174
+ .option('--revoke <code>', 'Revoke an invitation by code')
175
+ .action(async (email, options) => {
176
+ if (options.list) {
177
+ await listInvites({ team: options.team });
178
+ }
179
+ else if (options.revoke) {
180
+ await revokeInvite(options.revoke);
181
+ }
182
+ else if (email) {
183
+ await sendInvite(email, { team: options.team, role: options.role });
184
+ }
185
+ else {
186
+ invite.help({ error: false });
187
+ }
188
+ });
189
+ return invite;
190
+ }
191
+ export default inviteCommand;
192
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/invite/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @fileType: command
3
+ * @status: current
4
+ * @updated: 2026-01-03
5
+ * @tags: [join, team, collaboration, epic-008]
6
+ * @related: [../invite/index.ts, ../team/index.ts]
7
+ * @priority: high
8
+ * @complexity: medium
9
+ * @dependencies: [commander, chalk, ora, prompts]
10
+ */
11
+ /**
12
+ * Join Command (EPIC-008 Sprint 1)
13
+ *
14
+ * CLI command for users to join a team via invitation code
15
+ */
16
+ import { Command } from 'commander';
17
+ /**
18
+ * Main join command
19
+ */
20
+ export declare function joinCommand(): Command;
21
+ export default joinCommand;
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/join/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgLpC;;GAEG;AACH,wBAAgB,WAAW,YAqC1B;AAED,eAAe,WAAW,CAAC"}
@@ -0,0 +1,177 @@
1
+ /**
2
+ * @fileType: command
3
+ * @status: current
4
+ * @updated: 2026-01-03
5
+ * @tags: [join, team, collaboration, epic-008]
6
+ * @related: [../invite/index.ts, ../team/index.ts]
7
+ * @priority: high
8
+ * @complexity: medium
9
+ * @dependencies: [commander, chalk, ora, prompts]
10
+ */
11
+ /**
12
+ * Join Command (EPIC-008 Sprint 1)
13
+ *
14
+ * CLI command for users to join a team via invitation code
15
+ */
16
+ import { Command } from 'commander';
17
+ import chalk from 'chalk';
18
+ import ora from 'ora';
19
+ import prompts from 'prompts';
20
+ import { api } from '../../utils/api-client.js';
21
+ /**
22
+ * Validate and preview invitation
23
+ */
24
+ async function previewInvitation(code) {
25
+ const spinner = ora('Validating invitation code...').start();
26
+ try {
27
+ const response = await api.get(`/api/v1/team/join?code=${code}`);
28
+ if (response.error) {
29
+ spinner.fail(chalk.red('Invalid invitation code'));
30
+ console.error(chalk.red(` ${response.error}`));
31
+ return null;
32
+ }
33
+ spinner.succeed(chalk.green('Invitation valid'));
34
+ return response.data;
35
+ }
36
+ catch (error) {
37
+ spinner.fail(chalk.red('Failed to validate invitation'));
38
+ console.error(chalk.red(` ${error.message}`));
39
+ return null;
40
+ }
41
+ }
42
+ /**
43
+ * Accept invitation and join team
44
+ */
45
+ async function acceptInvitation(code) {
46
+ const spinner = ora('Joining team...').start();
47
+ try {
48
+ const response = await api.post('/api/v1/team/join', { code });
49
+ if (response.error) {
50
+ spinner.fail(chalk.red('Failed to join team'));
51
+ console.error(chalk.red(` ${response.error}`));
52
+ process.exit(1);
53
+ }
54
+ const result = response.data;
55
+ spinner.succeed(chalk.green(result.message));
56
+ console.log('');
57
+ console.log(chalk.bold(` Team: ${result.membership.team_name}`));
58
+ console.log(chalk.dim(` Role: ${result.membership.role}`));
59
+ console.log(chalk.dim(` Joined: ${new Date(result.membership.joined_at).toLocaleString()}`));
60
+ if (!result.email_matched) {
61
+ console.log('');
62
+ console.log(chalk.yellow(' Note: Invitation was sent to a different email.'));
63
+ }
64
+ console.log('');
65
+ console.log(chalk.dim('Next steps:'));
66
+ console.log(chalk.green(` ginko sync ${chalk.dim('# Pull team context')}`));
67
+ console.log(chalk.green(` ginko teams list-members ${chalk.dim('# See your teammates')}`));
68
+ }
69
+ catch (error) {
70
+ spinner.fail(chalk.red('Failed to join team'));
71
+ console.error(chalk.red(` ${error.message}`));
72
+ process.exit(1);
73
+ }
74
+ }
75
+ /**
76
+ * Interactive join flow (prompts for code)
77
+ */
78
+ async function interactiveJoin() {
79
+ console.log('');
80
+ console.log(chalk.cyan('Join a Team'));
81
+ console.log(chalk.dim('Enter the invitation code you received'));
82
+ console.log('');
83
+ const response = await prompts({
84
+ type: 'text',
85
+ name: 'code',
86
+ message: 'Invitation code:',
87
+ validate: (value) => value.length >= 8 || 'Code should be at least 8 characters',
88
+ });
89
+ if (!response.code) {
90
+ console.log(chalk.yellow('Cancelled'));
91
+ return;
92
+ }
93
+ await joinTeam(response.code);
94
+ }
95
+ /**
96
+ * Main join flow
97
+ */
98
+ async function joinTeam(code) {
99
+ // First validate and preview
100
+ const preview = await previewInvitation(code);
101
+ if (!preview) {
102
+ process.exit(1);
103
+ }
104
+ // Check if already a member
105
+ if (preview.already_member) {
106
+ console.log('');
107
+ console.log(chalk.yellow(`You are already a member of "${preview.team.name}"`));
108
+ console.log(chalk.dim(` Current role: ${preview.current_role}`));
109
+ process.exit(0);
110
+ }
111
+ // Show preview
112
+ console.log('');
113
+ console.log(chalk.bold('Invitation Details:'));
114
+ console.log(` Team: ${chalk.cyan(preview.team.name)}`);
115
+ console.log(` Role: ${chalk.cyan(preview.invitation.role)}`);
116
+ console.log(` Expires: ${new Date(preview.invitation.expires_at).toLocaleDateString()}`);
117
+ if (!preview.invitation.is_for_current_user) {
118
+ console.log('');
119
+ console.log(chalk.yellow(` Note: This invitation was sent to ${preview.invitation.email}`));
120
+ console.log(chalk.dim(' You can still accept it with your current account.'));
121
+ }
122
+ console.log('');
123
+ // Confirm
124
+ const confirm = await prompts({
125
+ type: 'confirm',
126
+ name: 'accept',
127
+ message: `Join team "${preview.team.name}" as ${preview.invitation.role}?`,
128
+ initial: true,
129
+ });
130
+ if (!confirm.accept) {
131
+ console.log(chalk.yellow('Cancelled'));
132
+ return;
133
+ }
134
+ // Accept
135
+ await acceptInvitation(code);
136
+ }
137
+ /**
138
+ * Main join command
139
+ */
140
+ export function joinCommand() {
141
+ const join = new Command('join')
142
+ .description('Join a team using an invitation code')
143
+ .showHelpAfterError('(use --help for additional information)')
144
+ .addHelpText('after', `
145
+ ${chalk.gray('Usage:')}
146
+ ${chalk.green('ginko join')} <invite-code> ${chalk.gray('# Join via invitation code')}
147
+ ${chalk.green('ginko join')} ${chalk.gray('# Interactive: prompts for code')}
148
+
149
+ ${chalk.gray('Workflow:')}
150
+ 1. Receive invitation code from a team owner
151
+ 2. Run: ${chalk.green('ginko join')} <code>
152
+ 3. Confirm to accept invitation
153
+ 4. Run: ${chalk.green('ginko sync')} to pull team context
154
+
155
+ ${chalk.gray('Example:')}
156
+ ${chalk.green('ginko join')} a1b2c3d4e5f6
157
+ `)
158
+ .argument('[code]', 'Invitation code')
159
+ .option('-y, --yes', 'Skip confirmation prompt')
160
+ .action(async (code, options) => {
161
+ if (code) {
162
+ if (options.yes) {
163
+ // Skip preview confirmation
164
+ await acceptInvitation(code);
165
+ }
166
+ else {
167
+ await joinTeam(code);
168
+ }
169
+ }
170
+ else {
171
+ await interactiveJoin();
172
+ }
173
+ });
174
+ return join;
175
+ }
176
+ export default joinCommand;
177
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/join/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @fileType: command
3
+ * @status: current
4
+ * @updated: 2025-12-16
5
+ * @tags: [cli, principles, seeding, graph-sync]
6
+ * @related: [standard-principles.ts, graph-api-client.ts]
7
+ * @priority: medium
8
+ * @complexity: medium
9
+ * @dependencies: [commander, chalk]
10
+ */
11
+ import { Command } from 'commander';
12
+ interface SeedOptions {
13
+ dryRun?: boolean;
14
+ force?: boolean;
15
+ }
16
+ /**
17
+ * Seed standard principles to the knowledge graph.
18
+ * This command creates Principle nodes for all standard best practices.
19
+ */
20
+ export declare function seedPrinciples(options?: SeedOptions): Promise<void>;
21
+ /**
22
+ * Create the principles seed command for the CLI.
23
+ */
24
+ export declare function createSeedCommand(): Command;
25
+ export default createSeedCommand;
26
+ //# sourceMappingURL=seed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../../src/commands/principles/seed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4H7E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAU3C;AAED,eAAe,iBAAiB,CAAC"}