@proletariat/cli 0.3.87 → 0.3.88

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 (96) hide show
  1. package/dist/commands/init.d.ts +6 -1
  2. package/dist/commands/init.js +44 -89
  3. package/dist/commands/init.js.map +1 -1
  4. package/dist/commands/new.d.ts +30 -2
  5. package/dist/commands/new.js +141 -9
  6. package/dist/commands/new.js.map +1 -1
  7. package/dist/hooks/init.js +3 -6
  8. package/dist/hooks/init.js.map +1 -1
  9. package/dist/lib/asana/config.d.ts +1 -1
  10. package/dist/lib/asana/config.js +18 -30
  11. package/dist/lib/asana/config.js.map +1 -1
  12. package/dist/lib/asana/mapper.d.ts +4 -3
  13. package/dist/lib/asana/mapper.js +17 -10
  14. package/dist/lib/asana/mapper.js.map +1 -1
  15. package/dist/lib/database/agents.d.ts +73 -0
  16. package/dist/lib/database/agents.js +341 -0
  17. package/dist/lib/database/agents.js.map +1 -0
  18. package/dist/lib/database/driver.d.ts +115 -0
  19. package/dist/lib/database/driver.js +109 -0
  20. package/dist/lib/database/driver.js.map +1 -0
  21. package/dist/lib/database/index.d.ts +25 -287
  22. package/dist/lib/database/index.js +35 -1067
  23. package/dist/lib/database/index.js.map +1 -1
  24. package/dist/lib/database/media.d.ts +53 -0
  25. package/dist/lib/database/media.js +118 -0
  26. package/dist/lib/database/media.js.map +1 -0
  27. package/dist/lib/database/pmo-bootstrap.d.ts +30 -0
  28. package/dist/lib/database/pmo-bootstrap.js +105 -0
  29. package/dist/lib/database/pmo-bootstrap.js.map +1 -0
  30. package/dist/lib/database/repositories.d.ts +26 -0
  31. package/dist/lib/database/repositories.js +56 -0
  32. package/dist/lib/database/repositories.js.map +1 -0
  33. package/dist/lib/database/settings-store.d.ts +60 -0
  34. package/dist/lib/database/settings-store.js +87 -0
  35. package/dist/lib/database/settings-store.js.map +1 -0
  36. package/dist/lib/database/themes.d.ts +59 -0
  37. package/dist/lib/database/themes.js +212 -0
  38. package/dist/lib/database/themes.js.map +1 -0
  39. package/dist/lib/database/workspace.d.ts +46 -0
  40. package/dist/lib/database/workspace.js +158 -0
  41. package/dist/lib/database/workspace.js.map +1 -0
  42. package/dist/lib/database/worktrees.d.ts +33 -0
  43. package/dist/lib/database/worktrees.js +60 -0
  44. package/dist/lib/database/worktrees.js.map +1 -0
  45. package/dist/lib/execution/config.d.ts +1 -1
  46. package/dist/lib/execution/config.js +7 -17
  47. package/dist/lib/execution/config.js.map +1 -1
  48. package/dist/lib/execution/spawner.d.ts +1 -1
  49. package/dist/lib/execution/storage.d.ts +4 -3
  50. package/dist/lib/execution/storage.js +11 -4
  51. package/dist/lib/execution/storage.js.map +1 -1
  52. package/dist/lib/external-issues/mapping-store.d.ts +4 -3
  53. package/dist/lib/external-issues/mapping-store.js +21 -13
  54. package/dist/lib/external-issues/mapping-store.js.map +1 -1
  55. package/dist/lib/external-issues/outbound-sync.d.ts +1 -1
  56. package/dist/lib/jira/config.d.ts +1 -6
  57. package/dist/lib/jira/config.js +16 -33
  58. package/dist/lib/jira/config.js.map +1 -1
  59. package/dist/lib/linear/config.d.ts +1 -1
  60. package/dist/lib/linear/config.js +16 -38
  61. package/dist/lib/linear/config.js.map +1 -1
  62. package/dist/lib/linear/mapper.d.ts +4 -3
  63. package/dist/lib/linear/mapper.js +20 -13
  64. package/dist/lib/linear/mapper.js.map +1 -1
  65. package/dist/lib/monday/config.d.ts +1 -1
  66. package/dist/lib/monday/config.js +16 -32
  67. package/dist/lib/monday/config.js.map +1 -1
  68. package/dist/lib/monday/mapper.d.ts +4 -3
  69. package/dist/lib/monday/mapper.js +19 -12
  70. package/dist/lib/monday/mapper.js.map +1 -1
  71. package/dist/lib/onboarding/wizard.d.ts +2 -2
  72. package/dist/lib/onboarding/wizard.js +32 -24
  73. package/dist/lib/onboarding/wizard.js.map +1 -1
  74. package/dist/lib/pmo/diet.d.ts +1 -1
  75. package/dist/lib/pmo/storage/index.d.ts +8 -0
  76. package/dist/lib/pmo/storage/index.js +13 -1
  77. package/dist/lib/pmo/storage/index.js.map +1 -1
  78. package/dist/lib/pmo/storage/types.d.ts +4 -1
  79. package/dist/lib/shortcut/config.d.ts +1 -7
  80. package/dist/lib/shortcut/config.js +13 -32
  81. package/dist/lib/shortcut/config.js.map +1 -1
  82. package/dist/lib/trello/config.d.ts +1 -26
  83. package/dist/lib/trello/config.js +23 -64
  84. package/dist/lib/trello/config.js.map +1 -1
  85. package/dist/lib/trello/mapper.d.ts +4 -3
  86. package/dist/lib/trello/mapper.js +17 -10
  87. package/dist/lib/trello/mapper.js.map +1 -1
  88. package/dist/lib/work-lifecycle/post-execution.d.ts +1 -1
  89. package/dist/lib/work-source/config.d.ts +1 -1
  90. package/dist/lib/work-source/config.js +14 -24
  91. package/dist/lib/work-source/config.js.map +1 -1
  92. package/dist/lib/work-source/provider-sources.d.ts +1 -1
  93. package/dist/lib/work-source/provider-sources.js +8 -20
  94. package/dist/lib/work-source/provider-sources.js.map +1 -1
  95. package/oclif.manifest.json +1461 -1412
  96. package/package.json +1 -1
@@ -2,11 +2,16 @@ import { Command } from '@oclif/core';
2
2
  export default class Init extends Command {
3
3
  static description: string;
4
4
  static examples: string[];
5
+ static hidden: boolean;
5
6
  static flags: {
7
+ name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
+ path: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
+ agents: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
+ repos: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ pmo: import("@oclif/core/interfaces").BooleanFlag<boolean>;
6
12
  setup: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
13
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
14
  machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
15
  };
10
16
  run(): Promise<void>;
11
- private outputJson;
12
17
  }
@@ -1,112 +1,67 @@
1
1
  import { Command, Flags } from '@oclif/core';
2
2
  import chalk from 'chalk';
3
- import * as fs from 'node:fs';
4
- import { ensureMachineConfigDir, getMachineConfigDir, getMachineConfigPath, readMachineConfig, writeMachineConfig, } from '../lib/machine-config.js';
5
- import { isValidHQ } from '../lib/workspace.js';
6
3
  import { machineOutputFlags } from '../lib/pmo/index.js';
7
- import { shouldOutputJson } from '../lib/prompt-json.js';
8
- import { isFirstTimeUser, runOnboardingWizard, runOnboardingJsonMode, detectAITools, } from '../lib/onboarding/index.js';
9
4
  export default class Init extends Command {
10
- static description = 'Initialize machine-level Proletariat configuration (~/.proletariat)';
5
+ static description = 'Initialize a new headquarters (deprecated — use `prlt new` instead)';
11
6
  static examples = [
12
- '<%= config.bin %> <%= command.id %>',
13
- '<%= config.bin %> <%= command.id %> --json',
14
- '<%= config.bin %> <%= command.id %> --json --setup claude-code',
7
+ '<%= config.bin %> new',
15
8
  ];
9
+ static hidden = true;
10
+ // Accept the same flags as `new` so forwarding works correctly
16
11
  static flags = {
17
12
  ...machineOutputFlags,
13
+ name: Flags.string({
14
+ description: 'HQ name',
15
+ char: 'n',
16
+ }),
17
+ path: Flags.string({
18
+ description: 'HQ path (defaults to ./{name}-hq)',
19
+ char: 'p',
20
+ }),
21
+ agents: Flags.string({
22
+ description: 'Comma-separated list of agent names',
23
+ char: 'a',
24
+ }),
25
+ repos: Flags.string({
26
+ description: 'Comma-separated list of repository paths to clone/move',
27
+ char: 'r',
28
+ }),
29
+ pmo: Flags.boolean({
30
+ description: 'Include PMO (Project Management Org)',
31
+ default: true,
32
+ allowNo: true,
33
+ }),
18
34
  setup: Flags.string({
19
35
  description: 'Setup method for agent-driven onboarding (claude-code, codex, or manual)',
20
36
  options: ['claude-code', 'codex', 'manual'],
21
37
  }),
22
38
  };
23
39
  async run() {
24
- const { flags } = await this.parse(Init);
25
- const jsonMode = shouldOutputJson(flags);
26
- // Step 1: Ensure machine config directory exists
27
- ensureMachineConfigDir();
28
- // Step 2: Ensure machine config file exists with valid structure
29
- const configPath = getMachineConfigPath();
30
- const config = readMachineConfig();
31
- const configExists = fs.existsSync(configPath);
32
- if (!configExists) {
33
- // Write fresh config if none exists
34
- writeMachineConfig(config);
35
- }
36
- // Step 3: Prune stale headquarters entries (paths that no longer exist)
37
- const originalCount = config.headquarters.length;
38
- config.headquarters = config.headquarters.filter(hq => {
39
- if (!fs.existsSync(hq.path))
40
- return false;
41
- if (!isValidHQ(hq.path))
42
- return false;
43
- return true;
44
- });
45
- const prunedCount = originalCount - config.headquarters.length;
46
- // Clear active HQ if it was pruned
47
- if (config.activeHeadquarters && !config.headquarters.some(hq => hq.path === config.activeHeadquarters)) {
48
- config.activeHeadquarters = null;
49
- }
50
- if (prunedCount > 0) {
51
- writeMachineConfig(config);
52
- }
53
- // Step 4: Onboarding wizard for first-time users
54
- const firstTime = isFirstTimeUser(config.headquarters.length, config.activeHeadquarters ?? null);
55
- if (firstTime) {
56
- if (jsonMode) {
57
- // JSON mode: handle --setup flag for agent-driven onboarding
58
- if (flags.setup) {
59
- runOnboardingJsonMode(flags);
60
- // If runOnboardingJsonMode returns (manual mode), fall through to normal JSON output
40
+ const { argv, flags } = await this.parse(Init);
41
+ console.log(chalk.yellow('`prlt init` is deprecated. Use `prlt new` instead.\n'));
42
+ // Build args for forwarding to `new`
43
+ const newArgs = ['new'];
44
+ for (const [key, value] of Object.entries(flags)) {
45
+ if (value === undefined)
46
+ continue;
47
+ if (typeof value === 'boolean') {
48
+ if (value) {
49
+ newArgs.push(`--${key}`);
50
+ }
51
+ else {
52
+ newArgs.push(`--no-${key}`);
61
53
  }
62
- // No --setup flag: fall through to include onboarding info in success response
63
54
  }
64
55
  else {
65
- // Interactive mode: run the onboarding wizard
66
- const result = await runOnboardingWizard();
67
- if (result.method === 'ai') {
68
- // AI tool was spawned — it will guide the user through prlt new
69
- return;
70
- }
71
- // Manual: fall through to show normal init output with prlt new guidance
56
+ newArgs.push(`--${key}`, String(value));
72
57
  }
73
58
  }
74
- // Output results
75
- if (jsonMode) {
76
- const jsonResult = {
77
- success: true,
78
- configDir: getMachineConfigDir(),
79
- configPath,
80
- headquarters: config.headquarters.length,
81
- prunedStaleEntries: prunedCount,
82
- activeHeadquarters: config.activeHeadquarters,
83
- };
84
- if (firstTime) {
85
- const detection = detectAITools();
86
- jsonResult.firstTimeUser = true;
87
- jsonResult.detectedTools = detection.tools.map(t => ({
88
- name: t.name,
89
- command: t.command,
90
- displayName: t.displayName,
91
- }));
92
- }
93
- this.outputJson(jsonResult);
59
+ // Forward positional args
60
+ for (const arg of argv) {
61
+ newArgs.push(arg);
94
62
  }
95
- else {
96
- console.log(chalk.green('Machine configuration initialized.'));
97
- console.log(chalk.gray(` Config: ${configPath}`));
98
- console.log(chalk.gray(` Registered HQs: ${config.headquarters.length}`));
99
- if (prunedCount > 0) {
100
- console.log(chalk.yellow(` Pruned ${prunedCount} stale HQ entries`));
101
- }
102
- if (config.headquarters.length === 0) {
103
- console.log(chalk.blue('\nNo headquarters found. Create one with:'));
104
- console.log(chalk.yellow(' prlt new'));
105
- }
106
- }
107
- }
108
- outputJson(data) {
109
- console.log(JSON.stringify(data, null, 2));
63
+ const { run } = await import('@oclif/core');
64
+ await run(newArgs, this.config);
110
65
  }
111
66
  }
112
67
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,OAAO;IACvC,MAAM,CAAC,WAAW,GAAG,qEAAqE,CAAC;IAE3F,MAAM,CAAC,QAAQ,GAAG;QAChB,uBAAuB;KACxB,CAAC;IAEF,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;IAErB,+DAA+D;IAC/D,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,kBAAkB;QACrB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE,SAAS;YACtB,IAAI,EAAE,GAAG;SACV,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE,mCAAmC;YAChD,IAAI,EAAE,GAAG;SACV,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,qCAAqC;YAClD,IAAI,EAAE,GAAG;SACV,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAClB,WAAW,EAAE,wDAAwD;YACrE,IAAI,EAAE,GAAG;SACV,CAAC;QACF,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC;YACjB,WAAW,EAAE,sCAAsC;YACnD,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;SACd,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAClB,WAAW,EAAE,0EAA0E;YACvF,OAAO,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,CAAC;SAC5C,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sDAAsD,CAAC,CAAC,CAAC;QAElF,qCAAqC;QACrC,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;QACxB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAS;YAClC,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,IAAI,KAAK,EAAE,CAAC;oBACV,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,0BAA0B;QAC1B,KAAK,MAAM,GAAG,IAAK,IAAiB,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QAED,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAC5C,MAAM,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC"}
@@ -8,18 +8,46 @@ export default class New extends Command {
8
8
  agents: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
9
  repos: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
10
  pmo: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
+ setup: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
12
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
13
  machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
14
  };
14
15
  run(): Promise<void>;
15
16
  /**
16
- * Human mode: interactive prompts with colored output
17
+ * Detect whether this is the user's first time (no HQ exists anywhere).
18
+ */
19
+ private detectFirstTime;
20
+ /**
21
+ * Human mode: interactive prompts with colored output.
22
+ * If first-time user, shows welcome + explainer before setup prompts.
23
+ * If returning user, goes straight to setup (power user flow).
17
24
  */
18
25
  private runHumanMode;
19
26
  /**
20
- * Agent mode: use flags, output JSON
27
+ * First-time user flow: welcome, explainer, setup method choice, then HQ creation.
28
+ */
29
+ private runFirstTimeHumanMode;
30
+ /**
31
+ * Returning user flow: straight to HQ creation (power user mode).
32
+ */
33
+ private runReturningHumanMode;
34
+ /**
35
+ * Shared HQ creation flow (used by both first-time and returning user).
36
+ */
37
+ private createHQ;
38
+ /**
39
+ * Show what to do next after HQ creation.
40
+ */
41
+ private showNextSteps;
42
+ /**
43
+ * Agent mode: use flags, output JSON.
44
+ * For first-time users without --name, includes onboarding context.
21
45
  */
22
46
  private runAgentMode;
47
+ /**
48
+ * Output first-time user JSON prompt with model-friendly context.
49
+ */
50
+ private outputFirstTimeJsonPrompt;
23
51
  /**
24
52
  * Output JSON to stdout
25
53
  */
@@ -2,11 +2,14 @@ import { Command, Flags } from '@oclif/core';
2
2
  import chalk from 'chalk';
3
3
  import * as path from 'node:path';
4
4
  import * as fs from 'node:fs';
5
- import { promptForHQName, promptForHQLocation, initializeHQ, showNextSteps, validateHQLocation, isHQNameTaken, } from '../lib/init/index.js';
5
+ import { promptForHQName, promptForHQLocation, initializeHQ, validateHQLocation, isHQNameTaken, } from '../lib/init/index.js';
6
6
  import { promptForAgentsWithTheme } from '../lib/agents/index.js';
7
7
  import { promptForRepositories } from '../lib/repos/index.js';
8
8
  import { promptForPMOSetup, machineOutputFlags } from '../lib/pmo/index.js';
9
9
  import { shouldOutputJson, outputPromptAsJson, buildPromptConfig, createMetadata, } from '../lib/prompt-json.js';
10
+ import { isFirstTimeUser, detectAITools, runOnboardingWizard, runOnboardingJsonMode, } from '../lib/onboarding/index.js';
11
+ import { readMachineConfig, ensureMachineConfigDir, } from '../lib/machine-config.js';
12
+ import { findHQRoot } from '../lib/workspace.js';
10
13
  export default class New extends Command {
11
14
  static description = 'Create a new headquarters for managing repositories, agents, and projects';
12
15
  static examples = [
@@ -39,6 +42,10 @@ export default class New extends Command {
39
42
  default: true,
40
43
  allowNo: true,
41
44
  }),
45
+ setup: Flags.string({
46
+ description: 'Setup method for agent-driven onboarding (claude-code, codex, or manual)',
47
+ options: ['claude-code', 'codex', 'manual'],
48
+ }),
42
49
  };
43
50
  async run() {
44
51
  const { flags } = await this.parse(New);
@@ -46,14 +53,57 @@ export default class New extends Command {
46
53
  await this.runAgentMode(flags);
47
54
  }
48
55
  else {
49
- await this.runHumanMode();
56
+ await this.runHumanMode(flags);
57
+ }
58
+ }
59
+ /**
60
+ * Detect whether this is the user's first time (no HQ exists anywhere).
61
+ */
62
+ detectFirstTime() {
63
+ ensureMachineConfigDir();
64
+ const config = readMachineConfig();
65
+ const currentHQ = findHQRoot();
66
+ return isFirstTimeUser(config.headquarters.length, currentHQ);
67
+ }
68
+ /**
69
+ * Human mode: interactive prompts with colored output.
70
+ * If first-time user, shows welcome + explainer before setup prompts.
71
+ * If returning user, goes straight to setup (power user flow).
72
+ */
73
+ async runHumanMode(flags) {
74
+ const firstTime = this.detectFirstTime();
75
+ if (firstTime) {
76
+ await this.runFirstTimeHumanMode(flags);
77
+ }
78
+ else {
79
+ await this.runReturningHumanMode();
80
+ }
81
+ }
82
+ /**
83
+ * First-time user flow: welcome, explainer, setup method choice, then HQ creation.
84
+ */
85
+ async runFirstTimeHumanMode(flags) {
86
+ // Step 1: Welcome + explainer
87
+ const result = await runOnboardingWizard();
88
+ if (result.method === 'ai') {
89
+ // AI tool was spawned — it will guide the user through prlt new
90
+ return;
50
91
  }
92
+ // Manual: continue with HQ creation prompts
93
+ console.log(chalk.blue('\n🚀 Let\'s set up your first workspace.\n'));
94
+ await this.createHQ();
51
95
  }
52
96
  /**
53
- * Human mode: interactive prompts with colored output
97
+ * Returning user flow: straight to HQ creation (power user mode).
54
98
  */
55
- async runHumanMode() {
99
+ async runReturningHumanMode() {
56
100
  console.log(chalk.blue('🚀 Creating a new headquarters...\n'));
101
+ await this.createHQ();
102
+ }
103
+ /**
104
+ * Shared HQ creation flow (used by both first-time and returning user).
105
+ */
106
+ async createHQ() {
57
107
  // Step 1: Get HQ name
58
108
  const hqName = await promptForHQName();
59
109
  // Step 2: Determine location (always adds -hq suffix)
@@ -78,15 +128,44 @@ export default class New extends Command {
78
128
  // Initialize the HQ
79
129
  await initializeHQ(options);
80
130
  // Show next steps
81
- await showNextSteps(options);
131
+ this.showNextSteps(hqPath);
132
+ }
133
+ /**
134
+ * Show what to do next after HQ creation.
135
+ */
136
+ showNextSteps(hqPath) {
137
+ const relativePath = path.relative(process.cwd(), hqPath);
138
+ console.log(chalk.green('\n✨ Your workspace is ready!\n'));
139
+ console.log(chalk.white('Here\'s what to do next:\n'));
140
+ console.log(chalk.yellow(` cd ${relativePath}`));
141
+ console.log(chalk.gray(' Navigate into your new HQ\n'));
142
+ console.log(chalk.yellow(' prlt work start TICKET-ID'));
143
+ console.log(chalk.gray(' Spawn an agent on a ticket\n'));
144
+ console.log(chalk.yellow(' prlt session list'));
145
+ console.log(chalk.gray(' See running agents\n'));
146
+ console.log(chalk.yellow(' prlt work peek AGENT'));
147
+ console.log(chalk.gray(' Watch an agent work\n'));
82
148
  }
83
149
  /**
84
- * Agent mode: use flags, output JSON
150
+ * Agent mode: use flags, output JSON.
151
+ * For first-time users without --name, includes onboarding context.
85
152
  */
86
153
  async runAgentMode(flags) {
154
+ const firstTime = this.detectFirstTime();
155
+ // Handle --setup flag for first-time agent-driven onboarding
156
+ if (firstTime && flags.setup) {
157
+ runOnboardingJsonMode(flags);
158
+ // If runOnboardingJsonMode returns (manual mode), fall through to normal flow
159
+ }
87
160
  // If --name not provided, output a prompt so agents can supply it
88
161
  if (!flags.name) {
89
- outputPromptAsJson(buildPromptConfig('input', 'name', 'Enter a name for your headquarters:', undefined, undefined), createMetadata('new', flags));
162
+ if (firstTime) {
163
+ // First-time user in JSON mode — include onboarding context
164
+ this.outputFirstTimeJsonPrompt(flags);
165
+ }
166
+ else {
167
+ outputPromptAsJson(buildPromptConfig('input', 'name', 'Enter a name for your headquarters:', undefined, undefined), createMetadata('new', flags));
168
+ }
90
169
  return;
91
170
  }
92
171
  const hqName = flags.name;
@@ -154,7 +233,7 @@ export default class New extends Command {
154
233
  // Restore console.log
155
234
  console.log = originalLog;
156
235
  // Output success JSON
157
- this.outputJson({
236
+ const result = {
158
237
  success: true,
159
238
  hq: {
160
239
  name: hqName,
@@ -163,7 +242,17 @@ export default class New extends Command {
163
242
  repos: repos.map(r => r.path),
164
243
  pmo: flags.pmo,
165
244
  },
166
- });
245
+ };
246
+ if (firstTime) {
247
+ result.firstTimeUser = true;
248
+ result.nextSteps = [
249
+ { command: `cd ${path.relative(process.cwd(), hqPath) || hqPath}`, description: 'Navigate into your new HQ' },
250
+ { command: 'prlt work start TICKET-ID', description: 'Spawn an agent on a ticket' },
251
+ { command: 'prlt session list', description: 'See running agents' },
252
+ { command: 'prlt work peek AGENT', description: 'Watch an agent work' },
253
+ ];
254
+ }
255
+ this.outputJson(result);
167
256
  }
168
257
  catch (error) {
169
258
  // Restore console.log on error
@@ -175,6 +264,49 @@ export default class New extends Command {
175
264
  this.exit(1);
176
265
  }
177
266
  }
267
+ /**
268
+ * Output first-time user JSON prompt with model-friendly context.
269
+ */
270
+ outputFirstTimeJsonPrompt(flags) {
271
+ const detection = detectAITools();
272
+ const metadata = createMetadata('new', flags);
273
+ const output = {
274
+ type: 'prompt',
275
+ firstTimeUser: true,
276
+ onboarding: {
277
+ welcome: 'Welcome to Proletariat — AI agent orchestration.',
278
+ whatIsHQ: 'An HQ (headquarters) is a workspace that manages your repositories, AI agents, and project tracking. It is the central hub for orchestrating AI coding agents across your projects.',
279
+ prerequisites: [
280
+ 'Docker running (for agent execution)',
281
+ 'A PMO account or local project tracking setup',
282
+ ],
283
+ fullLoop: [
284
+ 'Create an HQ workspace (prlt new --json --name YOUR_NAME)',
285
+ 'Connect a repository (prlt repo add PATH_OR_URL)',
286
+ 'Connect a PMO provider (prlt linear connect / prlt asana connect)',
287
+ 'Spawn an agent on a ticket (prlt work start TICKET-ID)',
288
+ 'Get a pull request from the agent',
289
+ ],
290
+ },
291
+ prompt: {
292
+ type: 'input',
293
+ name: 'name',
294
+ message: 'Enter a name for your headquarters:',
295
+ },
296
+ detectedTools: detection.tools.map(t => ({
297
+ name: t.name,
298
+ command: t.command,
299
+ displayName: t.displayName,
300
+ })),
301
+ setupChoices: [
302
+ ...(detection.hasClaudeCode ? [{ name: 'Claude Code guided setup', value: 'claude-code', command: 'prlt new --json --setup claude-code' }] : []),
303
+ ...(detection.hasCodex ? [{ name: 'Codex guided setup', value: 'codex', command: 'prlt new --json --setup codex' }] : []),
304
+ { name: 'Manual setup', value: 'manual', command: 'prlt new --json --name YOUR_NAME' },
305
+ ],
306
+ metadata,
307
+ };
308
+ console.log(JSON.stringify(output, null, 2));
309
+ }
178
310
  /**
179
311
  * Output JSON to stdout
180
312
  */
@@ -1 +1 @@
1
- {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"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"}
@@ -98,13 +98,11 @@ const hook = async function ({ id, argv, config }) {
98
98
  // Never let update-check errors break the CLI
99
99
  }
100
100
  // ── First-time user detection ───────────────────────────────────────
101
- // Skip for help-related commands/flags
102
101
  // When user runs just `prlt` with no args, id is undefined
103
102
  if (!id || id === 'help') {
104
103
  // Check if this is first-time user running bare `prlt`
105
104
  if (!id && isFirstTimeUser()) {
106
- // Run new command - in TTY it prompts interactively,
107
- // in non-TTY it outputs a JSON prompt for the HQ name
105
+ // Redirect to `prlt new` which handles first-time vs returning flow
108
106
  const { run } = await import('@oclif/core');
109
107
  await run(['new'], config);
110
108
  await shutdownAnalytics();
@@ -116,8 +114,7 @@ const hook = async function ({ id, argv, config }) {
116
114
  if (!isHqOptionalCommand && isFirstTimeUser()) {
117
115
  const chalk = await import('chalk');
118
116
  console.log(chalk.default.yellow('\n⚠️ No headquarters found. Let\'s set one up first.\n'));
119
- // Run new command - in TTY it prompts interactively,
120
- // in non-TTY it outputs a JSON prompt for the HQ name
117
+ // Redirect to `prlt new` which handles first-time vs returning flow
121
118
  const { run } = await import('@oclif/core');
122
119
  await run(['new'], config);
123
120
  console.log(chalk.default.blue(`\n✅ Setup complete! You can now run: prlt ${id}\n`));
@@ -137,7 +134,7 @@ function shouldValidateNativeModules(id) {
137
134
  id.startsWith('autocomplete:'));
138
135
  }
139
136
  /**
140
- * Check if this is a first-time user (no headquarters configured)
137
+ * Check if this is a first-time user (no headquarters configured anywhere)
141
138
  */
142
139
  function isFirstTimeUser() {
143
140
  // Check if user is currently inside a valid HQ directory
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/hooks/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/hooks/init.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import Database from 'better-sqlite3';
1
+ import type Database from 'better-sqlite3';
2
2
  import type { AsanaConfig } from './types.js';
3
3
  export declare function isAsanaConfigured(db: Database.Database): boolean;
4
4
  export declare function loadAsanaConfig(db: Database.Database): AsanaConfig | null;
@@ -1,5 +1,5 @@
1
1
  import { loadProviderSources, resolveApiKey } from '../work-source/provider-sources.js';
2
- const SETTINGS_TABLE = 'workspace_settings';
2
+ import { SettingsStore } from '../database/settings-store.js';
3
3
  const ASANA_CONFIG_KEYS = {
4
4
  accessToken: 'asana.access_token',
5
5
  workspaceGid: 'asana.workspace_gid',
@@ -7,51 +7,39 @@ const ASANA_CONFIG_KEYS = {
7
7
  projectGid: 'asana.project_gid',
8
8
  projectName: 'asana.project_name',
9
9
  };
10
- function getSetting(db, key) {
11
- const row = db
12
- .prepare(`SELECT value FROM ${SETTINGS_TABLE} WHERE key = ?`)
13
- .get(key);
14
- return row?.value ?? null;
15
- }
16
- function setSetting(db, key, value) {
17
- db.prepare(`
18
- INSERT INTO ${SETTINGS_TABLE} (key, value)
19
- VALUES (?, ?)
20
- ON CONFLICT(key) DO UPDATE SET value = excluded.value
21
- `).run(key, value);
22
- }
23
- function deleteSetting(db, key) {
24
- db.prepare(`DELETE FROM ${SETTINGS_TABLE} WHERE key = ?`).run(key);
25
- }
26
10
  export function isAsanaConfigured(db) {
27
- return getSetting(db, ASANA_CONFIG_KEYS.accessToken) !== null;
11
+ return new SettingsStore(db).has(ASANA_CONFIG_KEYS.accessToken);
28
12
  }
29
13
  export function loadAsanaConfig(db) {
30
- const accessToken = getSetting(db, ASANA_CONFIG_KEYS.accessToken);
14
+ const settings = new SettingsStore(db);
15
+ const accessToken = settings.get(ASANA_CONFIG_KEYS.accessToken);
31
16
  if (!accessToken)
32
17
  return null;
33
18
  return {
34
19
  accessToken,
35
- workspaceGid: getSetting(db, ASANA_CONFIG_KEYS.workspaceGid) ?? undefined,
36
- workspaceName: getSetting(db, ASANA_CONFIG_KEYS.workspaceName) ?? undefined,
37
- projectGid: getSetting(db, ASANA_CONFIG_KEYS.projectGid) ?? undefined,
38
- projectName: getSetting(db, ASANA_CONFIG_KEYS.projectName) ?? undefined,
20
+ workspaceGid: settings.get(ASANA_CONFIG_KEYS.workspaceGid) ?? undefined,
21
+ workspaceName: settings.get(ASANA_CONFIG_KEYS.workspaceName) ?? undefined,
22
+ projectGid: settings.get(ASANA_CONFIG_KEYS.projectGid) ?? undefined,
23
+ projectName: settings.get(ASANA_CONFIG_KEYS.projectName) ?? undefined,
39
24
  };
40
25
  }
41
26
  export function saveAsanaAccessToken(db, accessToken) {
42
- setSetting(db, ASANA_CONFIG_KEYS.accessToken, accessToken);
27
+ new SettingsStore(db).set(ASANA_CONFIG_KEYS.accessToken, accessToken);
43
28
  }
44
29
  export function saveAsanaWorkspace(db, workspaceGid, workspaceName) {
45
- setSetting(db, ASANA_CONFIG_KEYS.workspaceGid, workspaceGid);
46
- setSetting(db, ASANA_CONFIG_KEYS.workspaceName, workspaceName);
30
+ const settings = new SettingsStore(db);
31
+ settings.set(ASANA_CONFIG_KEYS.workspaceGid, workspaceGid);
32
+ settings.set(ASANA_CONFIG_KEYS.workspaceName, workspaceName);
47
33
  }
48
34
  export function saveAsanaProject(db, projectGid, projectName) {
49
- setSetting(db, ASANA_CONFIG_KEYS.projectGid, projectGid);
50
- setSetting(db, ASANA_CONFIG_KEYS.projectName, projectName);
35
+ const settings = new SettingsStore(db);
36
+ settings.set(ASANA_CONFIG_KEYS.projectGid, projectGid);
37
+ settings.set(ASANA_CONFIG_KEYS.projectName, projectName);
51
38
  }
52
39
  export function clearAsanaConfig(db) {
40
+ const settings = new SettingsStore(db);
53
41
  for (const key of Object.values(ASANA_CONFIG_KEYS)) {
54
- deleteSetting(db, key);
42
+ settings.delete(key);
55
43
  }
56
44
  }
57
45
  export function getAsanaAccessToken(db) {
@@ -74,6 +62,6 @@ export function getAsanaAccessToken(db) {
74
62
  if (envToken)
75
63
  return envToken;
76
64
  // 3. Legacy: stored workspace setting
77
- return getSetting(db, ASANA_CONFIG_KEYS.accessToken);
65
+ return new SettingsStore(db).get(ASANA_CONFIG_KEYS.accessToken);
78
66
  }
79
67
  //# sourceMappingURL=config.js.map