@idea1/cli 1.0.0 → 1.0.2

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 (47) hide show
  1. package/README.md +105 -15
  2. package/dist/commands/create-worktree.d.ts +3 -0
  3. package/dist/commands/create-worktree.d.ts.map +1 -0
  4. package/dist/commands/create-worktree.js +74 -0
  5. package/dist/commands/create-worktree.js.map +1 -0
  6. package/dist/commands/help.d.ts.map +1 -1
  7. package/dist/commands/help.js +22 -3
  8. package/dist/commands/help.js.map +1 -1
  9. package/dist/commands/index.d.ts +4 -1
  10. package/dist/commands/index.d.ts.map +1 -1
  11. package/dist/commands/index.js +7 -1
  12. package/dist/commands/index.js.map +1 -1
  13. package/dist/commands/push.d.ts +3 -0
  14. package/dist/commands/push.d.ts.map +1 -0
  15. package/dist/commands/push.js +125 -0
  16. package/dist/commands/push.js.map +1 -0
  17. package/dist/commands/start-project-item.d.ts.map +1 -1
  18. package/dist/commands/start-project-item.js +9 -59
  19. package/dist/commands/start-project-item.js.map +1 -1
  20. package/dist/commands/update-docs.d.ts +3 -0
  21. package/dist/commands/update-docs.d.ts.map +1 -0
  22. package/dist/commands/update-docs.js +21 -0
  23. package/dist/commands/update-docs.js.map +1 -0
  24. package/dist/index.js +0 -0
  25. package/dist/lib/settings.d.ts +12 -0
  26. package/dist/lib/settings.d.ts.map +1 -1
  27. package/dist/lib/settings.js +21 -0
  28. package/dist/lib/settings.js.map +1 -1
  29. package/dist/services/config.d.ts +8 -0
  30. package/dist/services/config.d.ts.map +1 -1
  31. package/dist/services/config.js +13 -0
  32. package/dist/services/config.js.map +1 -1
  33. package/dist/services/context.d.ts +26 -0
  34. package/dist/services/context.d.ts.map +1 -0
  35. package/dist/services/context.js +304 -0
  36. package/dist/services/context.js.map +1 -0
  37. package/dist/services/test.d.ts +11 -0
  38. package/dist/services/test.d.ts.map +1 -0
  39. package/dist/services/test.js +52 -0
  40. package/dist/services/test.js.map +1 -0
  41. package/dist/services/worktree.d.ts +32 -0
  42. package/dist/services/worktree.d.ts.map +1 -0
  43. package/dist/services/worktree.js +136 -0
  44. package/dist/services/worktree.js.map +1 -0
  45. package/dist/types/index.d.ts +23 -0
  46. package/dist/types/index.d.ts.map +1 -1
  47. package/package.json +6 -6
@@ -0,0 +1,52 @@
1
+ import { execWithOutput } from '../lib/shell.js';
2
+ import { logger } from '../lib/logger.js';
3
+ import { getTestCommand } from '../lib/settings.js';
4
+ import * as git from './git.js';
5
+ /**
6
+ * Run tests if configured in .idea1/settings.json
7
+ * Returns true if tests pass or no test command is configured
8
+ * Returns false if tests fail
9
+ */
10
+ export async function runTestsIfNeeded() {
11
+ let repoRoot;
12
+ try {
13
+ repoRoot = await git.getRepoRoot();
14
+ }
15
+ catch {
16
+ logger.warning('Not in a git repository, skipping tests');
17
+ return true;
18
+ }
19
+ const testCommand = await getTestCommand(repoRoot);
20
+ if (!testCommand) {
21
+ logger.dim('No test command configured in .idea1/settings.json, skipping tests');
22
+ return true;
23
+ }
24
+ logger.step(`Running tests: ${testCommand}`);
25
+ // Parse the command into parts
26
+ const parts = testCommand.split(' ');
27
+ const cmd = parts[0];
28
+ const args = parts.slice(1);
29
+ const exitCode = await execWithOutput(cmd, args, { cwd: repoRoot });
30
+ if (exitCode === 0) {
31
+ logger.success('Tests passed');
32
+ return true;
33
+ }
34
+ else {
35
+ logger.error('Tests failed. Please fix failing tests before creating PR.');
36
+ return false;
37
+ }
38
+ }
39
+ /**
40
+ * Check if tests are configured for this repository
41
+ */
42
+ export async function hasTestsConfigured() {
43
+ try {
44
+ const repoRoot = await git.getRepoRoot();
45
+ const testCommand = await getTestCommand(repoRoot);
46
+ return testCommand !== null;
47
+ }
48
+ catch {
49
+ return false;
50
+ }
51
+ }
52
+ //# sourceMappingURL=test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/services/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAEhC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;IAEnD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,kBAAkB,WAAW,EAAE,CAAC,CAAC;IAE7C,+BAA+B;IAC/B,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE5B,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEpE,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC3E,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;QACnD,OAAO,WAAW,KAAK,IAAI,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Run the setup-worktree hook if defined in .idea1/settings.json
3
+ */
4
+ export declare function runSetupWorktreeHook(repoRoot: string): Promise<void>;
5
+ /**
6
+ * Resolve the branch prefix using config hierarchy:
7
+ * 1. CLI argument (if provided)
8
+ * 2. User-level XDG config
9
+ * 3. Repo-level .idea1/settings.json
10
+ * 4. Hardcoded default
11
+ */
12
+ export declare function resolveBranchPrefix(cliPrefix?: string): Promise<string>;
13
+ /**
14
+ * Resolve the base branch using config hierarchy:
15
+ * 1. CLI argument (if provided)
16
+ * 2. User-level XDG config
17
+ * 3. Repo-level .idea1/settings.json
18
+ * 4. Hardcoded default
19
+ */
20
+ export declare function resolveBaseBranch(cliBaseBranch?: string): Promise<string>;
21
+ /**
22
+ * Setup worktree isolation - creates worktree, runs hooks, optionally launches Claude
23
+ */
24
+ export declare function setupWorktreeIsolation(fullBranchName: string, shortBranchName: string, baseBranchName: string, options?: {
25
+ projectItemUrl?: string;
26
+ launchClaude?: boolean;
27
+ }): Promise<string>;
28
+ /**
29
+ * Prepare repository for worktree creation - validates, fetches, and creates branch
30
+ */
31
+ export declare function prepareBranchForWorktree(shortBranchName: string, baseBranchName: string, branchPrefix: string): Promise<string>;
32
+ //# sourceMappingURL=worktree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../src/services/worktree.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAe1E;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0B7E;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0B/E;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE;IACP,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;CACnB,GACL,OAAO,CAAC,MAAM,CAAC,CAgCjB;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAqBjB"}
@@ -0,0 +1,136 @@
1
+ import { logger } from '../lib/logger.js';
2
+ import { execWithOutput } from '../lib/shell.js';
3
+ import { getSetupWorktreeHook, getBranchPrefix, getBaseBranch } from '../lib/settings.js';
4
+ import { configService } from './config.js';
5
+ import * as git from './git.js';
6
+ import * as claude from './claude.js';
7
+ /**
8
+ * Run the setup-worktree hook if defined in .idea1/settings.json
9
+ */
10
+ export async function runSetupWorktreeHook(repoRoot) {
11
+ const hookCommand = await getSetupWorktreeHook(repoRoot);
12
+ if (!hookCommand) {
13
+ logger.dim('No setup-worktree hook defined');
14
+ return;
15
+ }
16
+ logger.step(`Running setup-worktree hook: ${hookCommand}`);
17
+ const exitCode = await execWithOutput('bash', [hookCommand], { cwd: repoRoot });
18
+ if (exitCode !== 0) {
19
+ logger.warning('Setup-worktree hook failed, continuing anyway');
20
+ }
21
+ }
22
+ /**
23
+ * Resolve the branch prefix using config hierarchy:
24
+ * 1. CLI argument (if provided)
25
+ * 2. User-level XDG config
26
+ * 3. Repo-level .idea1/settings.json
27
+ * 4. Hardcoded default
28
+ */
29
+ export async function resolveBranchPrefix(cliPrefix) {
30
+ // 1. CLI argument
31
+ if (cliPrefix) {
32
+ return cliPrefix;
33
+ }
34
+ // 2. User-level XDG config
35
+ const userPrefix = configService.getDefaultBranchPrefix();
36
+ if (userPrefix && userPrefix !== 'working/agent') {
37
+ // Only use if user has explicitly set it (not default)
38
+ return userPrefix;
39
+ }
40
+ // 3. Repo-level settings
41
+ try {
42
+ const repoRoot = await git.getRepoRoot();
43
+ const settingsPrefix = await getBranchPrefix(repoRoot);
44
+ if (settingsPrefix) {
45
+ return settingsPrefix;
46
+ }
47
+ }
48
+ catch {
49
+ // Not in a repo, use default
50
+ }
51
+ // 4. Hardcoded default (or user config if it's the default)
52
+ return userPrefix;
53
+ }
54
+ /**
55
+ * Resolve the base branch using config hierarchy:
56
+ * 1. CLI argument (if provided)
57
+ * 2. User-level XDG config
58
+ * 3. Repo-level .idea1/settings.json
59
+ * 4. Hardcoded default
60
+ */
61
+ export async function resolveBaseBranch(cliBaseBranch) {
62
+ // 1. CLI argument
63
+ if (cliBaseBranch) {
64
+ return cliBaseBranch;
65
+ }
66
+ // 2. User-level XDG config
67
+ const userBaseBranch = configService.getDefaultBaseBranch();
68
+ if (userBaseBranch && userBaseBranch !== 'working/release') {
69
+ // Only use if user has explicitly set it (not default)
70
+ return userBaseBranch;
71
+ }
72
+ // 3. Repo-level settings
73
+ try {
74
+ const repoRoot = await git.getRepoRoot();
75
+ const settingsBaseBranch = await getBaseBranch(repoRoot);
76
+ if (settingsBaseBranch) {
77
+ return settingsBaseBranch;
78
+ }
79
+ }
80
+ catch {
81
+ // Not in a repo, use default
82
+ }
83
+ // 4. Hardcoded default (or user config if it's the default)
84
+ return userBaseBranch;
85
+ }
86
+ /**
87
+ * Setup worktree isolation - creates worktree, runs hooks, optionally launches Claude
88
+ */
89
+ export async function setupWorktreeIsolation(fullBranchName, shortBranchName, baseBranchName, options = {}) {
90
+ logger.step('Setting up worktree isolation...');
91
+ // Create git worktree
92
+ const worktreePath = await git.createWorktree(fullBranchName, shortBranchName);
93
+ // Enter worktree and set up upstream
94
+ await git.enterWorktreeAndSetup(worktreePath, fullBranchName);
95
+ // Store project item URL and base branch in git config
96
+ if (options.projectItemUrl) {
97
+ await git.storeProjectItemUrl(options.projectItemUrl, fullBranchName);
98
+ }
99
+ await git.storeBaseBranch(baseBranchName, fullBranchName);
100
+ // Run repo-specific setup hook if defined
101
+ await runSetupWorktreeHook(worktreePath);
102
+ // Run claude command if requested
103
+ if (options.launchClaude !== false && options.projectItemUrl) {
104
+ const prompt = claude.getImplementationPrompt(options.projectItemUrl);
105
+ await claude.runInteractive(prompt, worktreePath);
106
+ }
107
+ else if (options.launchClaude !== false && !options.projectItemUrl) {
108
+ await claude.runInteractive(undefined, worktreePath);
109
+ }
110
+ // Output the final directory path for the user
111
+ logger.newline();
112
+ logger.info('To continue working in this directory, run:');
113
+ logger.plain(`cd ${worktreePath}`);
114
+ return worktreePath;
115
+ }
116
+ /**
117
+ * Prepare repository for worktree creation - validates, fetches, and creates branch
118
+ */
119
+ export async function prepareBranchForWorktree(shortBranchName, baseBranchName, branchPrefix) {
120
+ // Ensure clean working directory
121
+ await git.ensureCleanWorkingDirectory();
122
+ // Validate base branch exists
123
+ const baseBranchExists = await git.branchExists(baseBranchName);
124
+ if (!baseBranchExists) {
125
+ throw new Error(`Base branch '${baseBranchName}' does not exist locally or on origin`);
126
+ }
127
+ // Fetch latest, checkout base branch, create new branch
128
+ await git.fetchLatest();
129
+ await git.checkoutAndPullBranch(baseBranchName);
130
+ const fullBranchName = `${branchPrefix}/${shortBranchName}`;
131
+ await git.createAndPushBranch(fullBranchName, baseBranchName);
132
+ await git.prepareRepoForWorktree(fullBranchName, baseBranchName);
133
+ logger.dim('Note: PR will be created later when changes are pushed');
134
+ return fullBranchName;
135
+ }
136
+ //# sourceMappingURL=worktree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../src/services/worktree.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,29 @@ export interface Idea1Settings {
23
23
  hooks?: {
24
24
  'setup-worktree'?: string;
25
25
  };
26
+ defaults?: {
27
+ branchPrefix?: string;
28
+ baseBranch?: string;
29
+ testCommand?: string;
30
+ };
31
+ }
32
+ /**
33
+ * Create worktree options
34
+ */
35
+ export interface CreateWorktreeOptions {
36
+ sourcePath?: string;
37
+ destBranch: string;
38
+ branchPrefix: string;
39
+ }
40
+ /**
41
+ * Push options
42
+ */
43
+ export interface PushOptions {
44
+ projectItemUrl?: string;
45
+ noProjectItem: boolean;
46
+ noTests: boolean;
47
+ createPr: boolean;
48
+ destBranch: string;
26
49
  }
27
50
  /**
28
51
  * Start project item options
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE;QACN,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,UAAU,GAAG,WAAW,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE;QACN,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,UAAU,GAAG,WAAW,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@idea1/cli",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "CLI tool for Idea1.ai workflow automation - AI-assisted development workflows",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "bin": {
8
- "idea1": "./bin/idea1"
8
+ "idea1": "dist/index.js"
9
9
  },
10
10
  "scripts": {
11
11
  "build": "tsc",
@@ -13,7 +13,8 @@
13
13
  "dev": "tsc --watch",
14
14
  "start": "node dist/index.js",
15
15
  "clean": "rm -rf dist",
16
- "prepublishOnly": "npm run build"
16
+ "prepublishOnly": "npm run build",
17
+ "publish": "./publish.sh"
17
18
  },
18
19
  "keywords": [
19
20
  "cli",
@@ -27,7 +28,7 @@
27
28
  "license": "MIT",
28
29
  "repository": {
29
30
  "type": "git",
30
- "url": "https://github.com/idea1-ai/omega.git"
31
+ "url": "git+https://github.com/idea1-ai/omega.git"
31
32
  },
32
33
  "engines": {
33
34
  "node": ">=20.0.0"
@@ -47,7 +48,6 @@
47
48
  "typescript": "^5.7.2"
48
49
  },
49
50
  "files": [
50
- "dist",
51
- "bin"
51
+ "dist"
52
52
  ]
53
53
  }