@kosuke-ai/cli 0.0.56 → 1.0.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.
- package/README.md +31 -448
- package/dist/commands/auth.js +117 -0
- package/dist/generated/commands/deploy/cancel.js +17 -0
- package/dist/generated/commands/deploy/messages.js +17 -0
- package/dist/generated/commands/deploy/run.js +60 -0
- package/dist/generated/commands/index.js +132 -0
- package/dist/generated/commands/preview/get.js +25 -0
- package/dist/generated/commands/preview/health.js +25 -0
- package/dist/generated/commands/preview/reset.js +27 -0
- package/dist/generated/commands/preview/share-create.js +36 -0
- package/dist/generated/commands/preview/share-delete.js +26 -0
- package/dist/generated/commands/preview/share-get.js +26 -0
- package/dist/generated/commands/preview/shared.js +17 -0
- package/dist/generated/commands/projects/create.js +37 -0
- package/dist/generated/commands/projects/delete.js +17 -0
- package/dist/generated/commands/projects/env-vars-add.js +21 -0
- package/dist/generated/commands/projects/env-vars-remove.js +21 -0
- package/dist/generated/commands/projects/get.js +17 -0
- package/dist/generated/commands/projects/list.js +15 -0
- package/dist/generated/commands/projects/services-add.js +87 -0
- package/dist/generated/commands/projects/services-list.js +18 -0
- package/dist/generated/commands/projects/services-remove.js +19 -0
- package/dist/generated/commands/projects/services-update.js +81 -0
- package/dist/generated/commands/projects/settings-get.js +18 -0
- package/dist/generated/commands/projects/settings-import.js +91 -0
- package/dist/generated/commands/projects/settings-update.js +77 -0
- package/dist/generated/commands/projects/skills.js +35 -0
- package/dist/generated/commands/projects/update.js +27 -0
- package/dist/generated/commands/sessions/activate.js +18 -0
- package/dist/generated/commands/sessions/checklist-generate.js +19 -0
- package/dist/generated/commands/sessions/checklist-get.js +19 -0
- package/dist/generated/commands/sessions/comments-add.js +63 -0
- package/dist/generated/commands/sessions/comments-delete.js +20 -0
- package/dist/generated/commands/sessions/comments-list.js +19 -0
- package/dist/generated/commands/sessions/comments-update.js +23 -0
- package/dist/generated/commands/sessions/create.js +126 -0
- package/dist/generated/commands/sessions/delete.js +18 -0
- package/dist/generated/commands/sessions/diff-files.js +19 -0
- package/dist/generated/commands/sessions/diff-patch.js +86 -0
- package/dist/generated/commands/sessions/edit-prompt.js +59 -0
- package/dist/generated/commands/sessions/files-get.js +27 -0
- package/dist/generated/commands/sessions/files-list.js +19 -0
- package/dist/generated/commands/sessions/files-write.js +41 -0
- package/dist/generated/commands/sessions/get.js +18 -0
- package/dist/generated/commands/sessions/git-commit-message.js +19 -0
- package/dist/generated/commands/sessions/git-commit.js +29 -0
- package/dist/generated/commands/sessions/git-push.js +19 -0
- package/dist/generated/commands/sessions/git-state.js +19 -0
- package/dist/generated/commands/sessions/jobs-cancel.js +20 -0
- package/dist/generated/commands/sessions/jobs-get.js +20 -0
- package/dist/generated/commands/sessions/list.js +81 -0
- package/dist/generated/commands/sessions/messages.js +18 -0
- package/dist/generated/commands/sessions/search.js +23 -0
- package/dist/generated/commands/sessions/send.js +98 -0
- package/dist/generated/commands/sessions/update.js +72 -0
- package/dist/generated/commands/workspaces/access-status.js +29 -0
- package/dist/generated/commands/workspaces/ai-provider-get.js +18 -0
- package/dist/generated/commands/workspaces/ai-provider-remove.js +42 -0
- package/dist/generated/commands/workspaces/ai-provider-set.js +21 -0
- package/dist/generated/commands/workspaces/credits.js +17 -0
- package/dist/generated/commands/workspaces/get.js +17 -0
- package/dist/generated/commands/workspaces/getting-started-get.js +18 -0
- package/dist/generated/commands/workspaces/getting-started-update.js +32 -0
- package/dist/generated/commands/workspaces/list.js +15 -0
- package/dist/generated/commands/workspaces/members.js +25 -0
- package/dist/generated/commands/workspaces/sandbox-limit.js +17 -0
- package/dist/generated/commands/workspaces/stop-sandboxes.js +27 -0
- package/dist/generated/commands/workspaces/usage.js +32 -0
- package/dist/index.js +5 -516
- package/dist/program.js +46 -0
- package/dist/runtime/attach.js +139 -0
- package/dist/runtime/attachments.js +58 -0
- package/dist/runtime/client.js +12 -0
- package/dist/runtime/config.js +49 -0
- package/dist/runtime/credentials.js +24 -0
- package/dist/runtime/descriptor.js +7 -0
- package/dist/runtime/invoke.js +152 -0
- package/dist/runtime/runtime.js +41 -0
- package/dist/runtime/version.js +5 -0
- package/openapi.json +5222 -0
- package/package.json +21 -79
- package/LICENSE +0 -21
- package/claude.costs.json +0 -34
- package/dist/__tests__/utils/file-discovery.test.d.ts +0 -5
- package/dist/__tests__/utils/file-discovery.test.d.ts.map +0 -1
- package/dist/__tests__/utils/file-discovery.test.js +0 -51
- package/dist/__tests__/utils/file-discovery.test.js.map +0 -1
- package/dist/__tests__/utils/logger-nologs.test.d.ts +0 -5
- package/dist/__tests__/utils/logger-nologs.test.d.ts.map +0 -1
- package/dist/__tests__/utils/logger-nologs.test.js +0 -34
- package/dist/__tests__/utils/logger-nologs.test.js.map +0 -1
- package/dist/__tests__/utils/logger.test.d.ts +0 -5
- package/dist/__tests__/utils/logger.test.d.ts.map +0 -1
- package/dist/__tests__/utils/logger.test.js +0 -243
- package/dist/__tests__/utils/logger.test.js.map +0 -1
- package/dist/__tests__/utils/validator.test.d.ts +0 -5
- package/dist/__tests__/utils/validator.test.d.ts.map +0 -1
- package/dist/__tests__/utils/validator.test.js +0 -206
- package/dist/__tests__/utils/validator.test.js.map +0 -1
- package/dist/index.d.ts +0 -35
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/kosuke/commands/analyse.d.ts +0 -15
- package/dist/kosuke/commands/analyse.d.ts.map +0 -1
- package/dist/kosuke/commands/analyse.js +0 -273
- package/dist/kosuke/commands/analyse.js.map +0 -1
- package/dist/kosuke/commands/build.d.ts +0 -35
- package/dist/kosuke/commands/build.d.ts.map +0 -1
- package/dist/kosuke/commands/build.js +0 -659
- package/dist/kosuke/commands/build.js.map +0 -1
- package/dist/kosuke/commands/getcode.d.ts +0 -29
- package/dist/kosuke/commands/getcode.d.ts.map +0 -1
- package/dist/kosuke/commands/getcode.js +0 -221
- package/dist/kosuke/commands/getcode.js.map +0 -1
- package/dist/kosuke/commands/lint.d.ts +0 -21
- package/dist/kosuke/commands/lint.d.ts.map +0 -1
- package/dist/kosuke/commands/lint.js +0 -321
- package/dist/kosuke/commands/lint.js.map +0 -1
- package/dist/kosuke/commands/migrate.d.ts +0 -38
- package/dist/kosuke/commands/migrate.d.ts.map +0 -1
- package/dist/kosuke/commands/migrate.js +0 -284
- package/dist/kosuke/commands/migrate.js.map +0 -1
- package/dist/kosuke/commands/plan.d.ts +0 -28
- package/dist/kosuke/commands/plan.d.ts.map +0 -1
- package/dist/kosuke/commands/plan.js +0 -630
- package/dist/kosuke/commands/plan.js.map +0 -1
- package/dist/kosuke/commands/requirements.d.ts +0 -52
- package/dist/kosuke/commands/requirements.d.ts.map +0 -1
- package/dist/kosuke/commands/requirements.js +0 -615
- package/dist/kosuke/commands/requirements.js.map +0 -1
- package/dist/kosuke/commands/review.d.ts +0 -26
- package/dist/kosuke/commands/review.d.ts.map +0 -1
- package/dist/kosuke/commands/review.js +0 -303
- package/dist/kosuke/commands/review.js.map +0 -1
- package/dist/kosuke/commands/serve.d.ts +0 -9
- package/dist/kosuke/commands/serve.d.ts.map +0 -1
- package/dist/kosuke/commands/serve.js +0 -17
- package/dist/kosuke/commands/serve.js.map +0 -1
- package/dist/kosuke/commands/ship.d.ts +0 -37
- package/dist/kosuke/commands/ship.d.ts.map +0 -1
- package/dist/kosuke/commands/ship.js +0 -375
- package/dist/kosuke/commands/ship.js.map +0 -1
- package/dist/kosuke/commands/sync-rules.d.ts +0 -9
- package/dist/kosuke/commands/sync-rules.d.ts.map +0 -1
- package/dist/kosuke/commands/sync-rules.js +0 -379
- package/dist/kosuke/commands/sync-rules.js.map +0 -1
- package/dist/kosuke/commands/test.d.ts +0 -42
- package/dist/kosuke/commands/test.d.ts.map +0 -1
- package/dist/kosuke/commands/test.js +0 -540
- package/dist/kosuke/commands/test.js.map +0 -1
- package/dist/kosuke/commands/tickets.d.ts +0 -43
- package/dist/kosuke/commands/tickets.d.ts.map +0 -1
- package/dist/kosuke/commands/tickets.js +0 -499
- package/dist/kosuke/commands/tickets.js.map +0 -1
- package/dist/kosuke/serve/middleware/error-handler.d.ts +0 -14
- package/dist/kosuke/serve/middleware/error-handler.d.ts.map +0 -1
- package/dist/kosuke/serve/middleware/error-handler.js +0 -42
- package/dist/kosuke/serve/middleware/error-handler.js.map +0 -1
- package/dist/kosuke/serve/middleware/validation.d.ts +0 -13
- package/dist/kosuke/serve/middleware/validation.d.ts.map +0 -1
- package/dist/kosuke/serve/middleware/validation.js +0 -38
- package/dist/kosuke/serve/middleware/validation.js.map +0 -1
- package/dist/kosuke/serve/routes/build.d.ts +0 -6
- package/dist/kosuke/serve/routes/build.d.ts.map +0 -1
- package/dist/kosuke/serve/routes/build.js +0 -226
- package/dist/kosuke/serve/routes/build.js.map +0 -1
- package/dist/kosuke/serve/routes/health.d.ts +0 -6
- package/dist/kosuke/serve/routes/health.d.ts.map +0 -1
- package/dist/kosuke/serve/routes/health.js +0 -11
- package/dist/kosuke/serve/routes/health.js.map +0 -1
- package/dist/kosuke/serve/routes/plan.d.ts +0 -6
- package/dist/kosuke/serve/routes/plan.d.ts.map +0 -1
- package/dist/kosuke/serve/routes/plan.js +0 -106
- package/dist/kosuke/serve/routes/plan.js.map +0 -1
- package/dist/kosuke/serve/server.d.ts +0 -16
- package/dist/kosuke/serve/server.d.ts.map +0 -1
- package/dist/kosuke/serve/server.js +0 -67
- package/dist/kosuke/serve/server.js.map +0 -1
- package/dist/kosuke/serve/validation/build.d.ts +0 -41
- package/dist/kosuke/serve/validation/build.d.ts.map +0 -1
- package/dist/kosuke/serve/validation/build.js +0 -20
- package/dist/kosuke/serve/validation/build.js.map +0 -1
- package/dist/kosuke/serve/validation/plan.d.ts +0 -26
- package/dist/kosuke/serve/validation/plan.d.ts.map +0 -1
- package/dist/kosuke/serve/validation/plan.js +0 -15
- package/dist/kosuke/serve/validation/plan.js.map +0 -1
- package/dist/kosuke/types.d.ts +0 -469
- package/dist/kosuke/types.d.ts.map +0 -1
- package/dist/kosuke/types.js +0 -5
- package/dist/kosuke/types.js.map +0 -1
- package/dist/kosuke/utils/batch-creator.d.ts +0 -14
- package/dist/kosuke/utils/batch-creator.d.ts.map +0 -1
- package/dist/kosuke/utils/batch-creator.js +0 -76
- package/dist/kosuke/utils/batch-creator.js.map +0 -1
- package/dist/kosuke/utils/claude-agent.d.ts +0 -145
- package/dist/kosuke/utils/claude-agent.d.ts.map +0 -1
- package/dist/kosuke/utils/claude-agent.js +0 -504
- package/dist/kosuke/utils/claude-agent.js.map +0 -1
- package/dist/kosuke/utils/constants.d.ts +0 -40
- package/dist/kosuke/utils/constants.d.ts.map +0 -1
- package/dist/kosuke/utils/constants.js +0 -54
- package/dist/kosuke/utils/constants.js.map +0 -1
- package/dist/kosuke/utils/file-discovery.d.ts +0 -15
- package/dist/kosuke/utils/file-discovery.d.ts.map +0 -1
- package/dist/kosuke/utils/file-discovery.js +0 -80
- package/dist/kosuke/utils/file-discovery.js.map +0 -1
- package/dist/kosuke/utils/git.d.ts +0 -41
- package/dist/kosuke/utils/git.d.ts.map +0 -1
- package/dist/kosuke/utils/git.js +0 -145
- package/dist/kosuke/utils/git.js.map +0 -1
- package/dist/kosuke/utils/github.d.ts +0 -17
- package/dist/kosuke/utils/github.d.ts.map +0 -1
- package/dist/kosuke/utils/github.js +0 -22
- package/dist/kosuke/utils/github.js.map +0 -1
- package/dist/kosuke/utils/interactive-input.d.ts +0 -22
- package/dist/kosuke/utils/interactive-input.d.ts.map +0 -1
- package/dist/kosuke/utils/interactive-input.js +0 -124
- package/dist/kosuke/utils/interactive-input.js.map +0 -1
- package/dist/kosuke/utils/logger.d.ts +0 -161
- package/dist/kosuke/utils/logger.d.ts.map +0 -1
- package/dist/kosuke/utils/logger.js +0 -234
- package/dist/kosuke/utils/logger.js.map +0 -1
- package/dist/kosuke/utils/playwright-mcp-client.d.ts +0 -46
- package/dist/kosuke/utils/playwright-mcp-client.d.ts.map +0 -1
- package/dist/kosuke/utils/playwright-mcp-client.js +0 -135
- package/dist/kosuke/utils/playwright-mcp-client.js.map +0 -1
- package/dist/kosuke/utils/pr-orchestrator.d.ts +0 -49
- package/dist/kosuke/utils/pr-orchestrator.d.ts.map +0 -1
- package/dist/kosuke/utils/pr-orchestrator.js +0 -154
- package/dist/kosuke/utils/pr-orchestrator.js.map +0 -1
- package/dist/kosuke/utils/repository-manager.d.ts +0 -13
- package/dist/kosuke/utils/repository-manager.d.ts.map +0 -1
- package/dist/kosuke/utils/repository-manager.js +0 -94
- package/dist/kosuke/utils/repository-manager.js.map +0 -1
- package/dist/kosuke/utils/repository-resolver.d.ts +0 -12
- package/dist/kosuke/utils/repository-resolver.d.ts.map +0 -1
- package/dist/kosuke/utils/repository-resolver.js +0 -186
- package/dist/kosuke/utils/repository-resolver.js.map +0 -1
- package/dist/kosuke/utils/tickets-manager.d.ts +0 -64
- package/dist/kosuke/utils/tickets-manager.d.ts.map +0 -1
- package/dist/kosuke/utils/tickets-manager.js +0 -331
- package/dist/kosuke/utils/tickets-manager.js.map +0 -1
- package/dist/kosuke/utils/validator.d.ts +0 -45
- package/dist/kosuke/utils/validator.d.ts.map +0 -1
- package/dist/kosuke/utils/validator.js +0 -248
- package/dist/kosuke/utils/validator.js.map +0 -1
- package/dist/lib.d.ts +0 -96
- package/dist/lib.d.ts.map +0 -1
- package/dist/lib.js +0 -95
- package/dist/lib.js.map +0 -1
- package/dist/package.json +0 -99
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Constants used across Kosuke CLI
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Directory for cached GitHub repositories and local project workspaces
|
|
6
|
-
*/
|
|
7
|
-
export declare const REPOS_DIR: string;
|
|
8
|
-
/**
|
|
9
|
-
* Directory for Playwright trace files (video/screenshots)
|
|
10
|
-
*/
|
|
11
|
-
export declare const TRACES_DIR: string;
|
|
12
|
-
/**
|
|
13
|
-
* Default Anthropic Claude model (can be overridden via ANTHROPIC_MODEL env var)
|
|
14
|
-
*/
|
|
15
|
-
export declare const DEFAULT_ANTHROPIC_MODEL: string;
|
|
16
|
-
/**
|
|
17
|
-
* Default database URL for PostgreSQL (can be overridden via POSTGRES_URL env var)
|
|
18
|
-
*/
|
|
19
|
-
export declare const DEFAULT_DB_URL: string;
|
|
20
|
-
/**
|
|
21
|
-
* Default test URL for E2E tests (can be overridden via TEST_URL env var)
|
|
22
|
-
*/
|
|
23
|
-
export declare const DEFAULT_TEST_URL: string;
|
|
24
|
-
/**
|
|
25
|
-
* Default server port for serve command (can be overridden via PORT env var)
|
|
26
|
-
*/
|
|
27
|
-
export declare const DEFAULT_SERVER_PORT: number;
|
|
28
|
-
/**
|
|
29
|
-
* Kosuke API base URL for logging (optional)
|
|
30
|
-
*/
|
|
31
|
-
export declare const KOSUKE_BASE_URL: string;
|
|
32
|
-
/**
|
|
33
|
-
* Kosuke API key for logging (optional)
|
|
34
|
-
*/
|
|
35
|
-
export declare const KOSUKE_API_KEY: string;
|
|
36
|
-
/**
|
|
37
|
-
* Kosuke project ID for logging (optional)
|
|
38
|
-
*/
|
|
39
|
-
export declare const KOSUKE_PROJECT_ID: string;
|
|
40
|
-
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../kosuke/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH;;GAEG;AACH,eAAO,MAAM,SAAS,QAA0B,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,UAAU,QAAwB,CAAC;AAMhD;;GAEG;AACH,eAAO,MAAM,uBAAuB,QAA6D,CAAC;AAElG;;GAEG;AACH,eAAO,MAAM,cAAc,QACyD,CAAC;AAErF;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAkD,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAA2D,CAAC;AAM5F;;GAEG;AACH,eAAO,MAAM,eAAe,QAAoC,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,cAAc,QAAmC,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAAsC,CAAC"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Constants used across Kosuke CLI
|
|
3
|
-
*/
|
|
4
|
-
// ============================================================================
|
|
5
|
-
// File System & Cache Directories
|
|
6
|
-
// ============================================================================
|
|
7
|
-
/**
|
|
8
|
-
* Base cache directory for Kosuke CLI (can be overridden via KOSUKE_CACHE_DIR env var)
|
|
9
|
-
* Internal constant - not exported
|
|
10
|
-
*/
|
|
11
|
-
const CACHE_DIR = process.env.KOSUKE_CACHE_DIR || '.kosuke';
|
|
12
|
-
/**
|
|
13
|
-
* Directory for cached GitHub repositories and local project workspaces
|
|
14
|
-
*/
|
|
15
|
-
export const REPOS_DIR = `${CACHE_DIR}/projects`;
|
|
16
|
-
/**
|
|
17
|
-
* Directory for Playwright trace files (video/screenshots)
|
|
18
|
-
*/
|
|
19
|
-
export const TRACES_DIR = `${CACHE_DIR}/traces`;
|
|
20
|
-
// ============================================================================
|
|
21
|
-
// API & Service Configuration
|
|
22
|
-
// ============================================================================
|
|
23
|
-
/**
|
|
24
|
-
* Default Anthropic Claude model (can be overridden via ANTHROPIC_MODEL env var)
|
|
25
|
-
*/
|
|
26
|
-
export const DEFAULT_ANTHROPIC_MODEL = process.env.ANTHROPIC_MODEL || 'claude-haiku-4-5-20251001';
|
|
27
|
-
/**
|
|
28
|
-
* Default database URL for PostgreSQL (can be overridden via POSTGRES_URL env var)
|
|
29
|
-
*/
|
|
30
|
-
export const DEFAULT_DB_URL = process.env.POSTGRES_URL || 'postgres://postgres:postgres@localhost:5432/postgres';
|
|
31
|
-
/**
|
|
32
|
-
* Default test URL for E2E tests (can be overridden via TEST_URL env var)
|
|
33
|
-
*/
|
|
34
|
-
export const DEFAULT_TEST_URL = process.env.TEST_URL || 'http://localhost:3000';
|
|
35
|
-
/**
|
|
36
|
-
* Default server port for serve command (can be overridden via PORT env var)
|
|
37
|
-
*/
|
|
38
|
-
export const DEFAULT_SERVER_PORT = process.env.PORT ? parseInt(process.env.PORT, 10) : 3000;
|
|
39
|
-
// ============================================================================
|
|
40
|
-
// Kosuke API Configuration (Optional Logging)
|
|
41
|
-
// ============================================================================
|
|
42
|
-
/**
|
|
43
|
-
* Kosuke API base URL for logging (optional)
|
|
44
|
-
*/
|
|
45
|
-
export const KOSUKE_BASE_URL = process.env.KOSUKE_BASE_URL || '';
|
|
46
|
-
/**
|
|
47
|
-
* Kosuke API key for logging (optional)
|
|
48
|
-
*/
|
|
49
|
-
export const KOSUKE_API_KEY = process.env.KOSUKE_API_KEY || '';
|
|
50
|
-
/**
|
|
51
|
-
* Kosuke project ID for logging (optional)
|
|
52
|
-
*/
|
|
53
|
-
export const KOSUKE_PROJECT_ID = process.env.KOSUKE_PROJECT_ID || '';
|
|
54
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../kosuke/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,+EAA+E;AAC/E,kCAAkC;AAClC,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,SAAS,CAAC;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,SAAS,WAAW,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,SAAS,SAAS,CAAC;AAEhD,+EAA+E;AAC/E,8BAA8B;AAC9B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,2BAA2B,CAAC;AAElG;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GACzB,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,sDAAsD,CAAC;AAErF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,uBAAuB,CAAC;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAE5F,+EAA+E;AAC/E,8CAA8C;AAC9C,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;AAEjE;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC;AAE/D;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* File discovery utilities for Kosuke CLI
|
|
3
|
-
*/
|
|
4
|
-
interface DiscoverFilesOptions {
|
|
5
|
-
include?: string[];
|
|
6
|
-
scope?: string;
|
|
7
|
-
types?: string[];
|
|
8
|
-
cwd?: string;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Discover files to analyze, respecting .kosukeignore
|
|
12
|
-
*/
|
|
13
|
-
export declare function discoverFiles(options?: DiscoverFilesOptions): Promise<string[]>;
|
|
14
|
-
export {};
|
|
15
|
-
//# sourceMappingURL=file-discovery.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-discovery.d.ts","sourceRoot":"","sources":["../../../kosuke/utils/file-discovery.ts"],"names":[],"mappings":"AAAA;;GAEG;AA0BH,UAAU,oBAAoB;IAC5B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA8DzF"}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* File discovery utilities for Kosuke CLI
|
|
3
|
-
*/
|
|
4
|
-
import { existsSync, readFileSync } from 'fs';
|
|
5
|
-
import { join } from 'path';
|
|
6
|
-
import { glob } from 'glob';
|
|
7
|
-
import ignore from 'ignore';
|
|
8
|
-
const KOSUKEIGNORE_FILE = '.kosukeignore';
|
|
9
|
-
/**
|
|
10
|
-
* Read .kosukeignore file and return ignore patterns
|
|
11
|
-
*/
|
|
12
|
-
function readKosukeignore(cwd = process.cwd()) {
|
|
13
|
-
const kosukeignorePath = join(cwd, KOSUKEIGNORE_FILE);
|
|
14
|
-
if (!existsSync(kosukeignorePath)) {
|
|
15
|
-
return [];
|
|
16
|
-
}
|
|
17
|
-
const content = readFileSync(kosukeignorePath, 'utf-8');
|
|
18
|
-
return content
|
|
19
|
-
.split('\n')
|
|
20
|
-
.map((line) => line.trim())
|
|
21
|
-
.filter((line) => line && !line.startsWith('#'));
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Discover files to analyze, respecting .kosukeignore
|
|
25
|
-
*/
|
|
26
|
-
export async function discoverFiles(options = {}) {
|
|
27
|
-
const cwd = options.cwd || process.cwd();
|
|
28
|
-
// Default patterns to include
|
|
29
|
-
const defaultPatterns = ['**/*.ts', '**/*.tsx', '**/*.py'];
|
|
30
|
-
// Build include patterns
|
|
31
|
-
let includePatterns;
|
|
32
|
-
if (options.scope) {
|
|
33
|
-
// Scope: specific directories
|
|
34
|
-
const scopes = options.scope.split(',').map((s) => s.trim());
|
|
35
|
-
if (options.types) {
|
|
36
|
-
includePatterns = scopes.flatMap((scope) => options.types.map((type) => `${scope}/**/*.${type}`));
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
includePatterns = scopes.flatMap((scope) => defaultPatterns.map((pattern) => `${scope}/${pattern}`));
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
else if (options.types) {
|
|
43
|
-
// Types: specific file extensions
|
|
44
|
-
includePatterns = options.types.map((type) => `**/*.${type}`);
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
// Default: all supported types
|
|
48
|
-
includePatterns = options.include || defaultPatterns;
|
|
49
|
-
}
|
|
50
|
-
// Load .kosukeignore patterns
|
|
51
|
-
const kosukeignorePatterns = readKosukeignore(cwd);
|
|
52
|
-
// Always exclude these (gitignore-style patterns)
|
|
53
|
-
const alwaysExclude = [
|
|
54
|
-
'node_modules',
|
|
55
|
-
'.next',
|
|
56
|
-
'dist',
|
|
57
|
-
'build',
|
|
58
|
-
'*.tsbuildinfo',
|
|
59
|
-
'drizzle',
|
|
60
|
-
'__pycache__',
|
|
61
|
-
'*.pyc',
|
|
62
|
-
'.pytest_cache',
|
|
63
|
-
'engine/uv.lock',
|
|
64
|
-
];
|
|
65
|
-
const ig = ignore().add([...kosukeignorePatterns, ...alwaysExclude]);
|
|
66
|
-
// Find all matching files
|
|
67
|
-
const allFiles = [];
|
|
68
|
-
for (const pattern of includePatterns) {
|
|
69
|
-
const files = await glob(pattern, {
|
|
70
|
-
cwd,
|
|
71
|
-
nodir: true,
|
|
72
|
-
});
|
|
73
|
-
allFiles.push(...files);
|
|
74
|
-
}
|
|
75
|
-
// Filter with .kosukeignore
|
|
76
|
-
const filteredFiles = allFiles.filter((file) => !ig.ignores(file));
|
|
77
|
-
// Remove duplicates and sort
|
|
78
|
-
return [...new Set(filteredFiles)].sort();
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=file-discovery.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-discovery.js","sourceRoot":"","sources":["../../../kosuke/utils/file-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Git utilities for Kosuke CLI
|
|
3
|
-
*/
|
|
4
|
-
import type { GitInfo } from '../types.js';
|
|
5
|
-
/**
|
|
6
|
-
* Get current repository info from git remote
|
|
7
|
-
*/
|
|
8
|
-
export declare function getCurrentRepo(cwd?: string): Promise<GitInfo>;
|
|
9
|
-
/**
|
|
10
|
-
* Detect if running in kosuke-template repository itself
|
|
11
|
-
*/
|
|
12
|
-
export declare function isKosukeTemplateRepo(cwd?: string): Promise<boolean>;
|
|
13
|
-
/**
|
|
14
|
-
* Create and checkout a new branch
|
|
15
|
-
*/
|
|
16
|
-
export declare function createBranch(branchName: string, baseBranch?: string, cwd?: string): Promise<void>;
|
|
17
|
-
/**
|
|
18
|
-
* Commit changes with a message
|
|
19
|
-
*/
|
|
20
|
-
export declare function commit(message: string, cwd?: string): Promise<void>;
|
|
21
|
-
/**
|
|
22
|
-
* Push current branch to origin
|
|
23
|
-
*/
|
|
24
|
-
export declare function push(branchName: string, cwd?: string): Promise<void>;
|
|
25
|
-
/**
|
|
26
|
-
* Get the current branch name
|
|
27
|
-
*/
|
|
28
|
-
export declare function getCurrentBranch(cwd?: string): Promise<string>;
|
|
29
|
-
/**
|
|
30
|
-
* Get git diff of current changes (staged and unstaged)
|
|
31
|
-
*/
|
|
32
|
-
export declare function getGitDiff(cwd?: string): Promise<string>;
|
|
33
|
-
/**
|
|
34
|
-
* Check if there are any uncommitted changes
|
|
35
|
-
*/
|
|
36
|
-
export declare function hasUncommittedChanges(cwd?: string): Promise<boolean>;
|
|
37
|
-
/**
|
|
38
|
-
* Stage all changes (including untracked files) so they appear in git diff
|
|
39
|
-
*/
|
|
40
|
-
export declare function stageAllChanges(cwd?: string): Promise<void>;
|
|
41
|
-
//# sourceMappingURL=git.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../kosuke/utils/git.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAgD3C;;GAEG;AACH,wBAAsB,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAmBnE;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOzE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,UAAU,GAAE,MAAe,EAC3B,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKzE;AAED;;GAEG;AACH,wBAAsB,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG1E;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIpE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAU9D;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAI1E;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjE"}
|
package/dist/kosuke/utils/git.js
DELETED
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Git utilities for Kosuke CLI
|
|
3
|
-
*/
|
|
4
|
-
import simpleGit from 'simple-git';
|
|
5
|
-
let gitIdentityConfigured = false;
|
|
6
|
-
/**
|
|
7
|
-
* Get SimpleGit instance for the given directory
|
|
8
|
-
*/
|
|
9
|
-
function getGitInstance(cwd) {
|
|
10
|
-
return cwd ? simpleGit(cwd) : simpleGit();
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Configure git identity for commits (required in CI environments)
|
|
14
|
-
*/
|
|
15
|
-
async function ensureGitIdentity(cwd) {
|
|
16
|
-
if (gitIdentityConfigured) {
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
const git = getGitInstance(cwd);
|
|
20
|
-
try {
|
|
21
|
-
// Check if git identity is already configured
|
|
22
|
-
const userName = await git.raw(['config', 'user.name']).catch(() => '');
|
|
23
|
-
const userEmail = await git.raw(['config', 'user.email']).catch(() => '');
|
|
24
|
-
if (userName.trim() && userEmail.trim()) {
|
|
25
|
-
gitIdentityConfigured = true;
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
// Configure git identity using environment variables or defaults
|
|
29
|
-
const name = process.env.GIT_AUTHOR_NAME || process.env.GIT_COMMITTER_NAME || 'kosuke-bot';
|
|
30
|
-
const email = process.env.GIT_AUTHOR_EMAIL ||
|
|
31
|
-
process.env.GIT_COMMITTER_EMAIL ||
|
|
32
|
-
'kosuke-bot@users.noreply.github.com';
|
|
33
|
-
await git.addConfig('user.name', name, false, 'local');
|
|
34
|
-
await git.addConfig('user.email', email, false, 'local');
|
|
35
|
-
console.log(`✅ Configured git identity: ${name} <${email}>`);
|
|
36
|
-
gitIdentityConfigured = true;
|
|
37
|
-
}
|
|
38
|
-
catch (error) {
|
|
39
|
-
console.warn('⚠️ Could not configure git identity, commits may fail:', error);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Get current repository info from git remote
|
|
44
|
-
*/
|
|
45
|
-
export async function getCurrentRepo(cwd) {
|
|
46
|
-
const git = getGitInstance(cwd);
|
|
47
|
-
const remotes = await git.getRemotes(true);
|
|
48
|
-
const origin = remotes.find((r) => r.name === 'origin');
|
|
49
|
-
if (!origin?.refs?.push) {
|
|
50
|
-
throw new Error('Could not determine repository from git remote origin');
|
|
51
|
-
}
|
|
52
|
-
// Parse GitHub URL (supports both HTTPS and SSH)
|
|
53
|
-
const match = origin.refs.push.match(/github\.com[/:]([\w-]+)\/([\w-]+?)(?:\.git)?$/) ||
|
|
54
|
-
origin.refs.push.match(/^([\w-]+)\/([\w-]+)$/);
|
|
55
|
-
if (!match) {
|
|
56
|
-
throw new Error(`Could not parse GitHub repository from URL: ${origin.refs.push}`);
|
|
57
|
-
}
|
|
58
|
-
return { owner: match[1], repo: match[2] };
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Detect if running in kosuke-template repository itself
|
|
62
|
-
*/
|
|
63
|
-
export async function isKosukeTemplateRepo(cwd) {
|
|
64
|
-
try {
|
|
65
|
-
const { owner, repo } = await getCurrentRepo(cwd);
|
|
66
|
-
return owner === 'Kosuke-Org' && repo === 'kosuke-template';
|
|
67
|
-
}
|
|
68
|
-
catch {
|
|
69
|
-
return false;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Create and checkout a new branch
|
|
74
|
-
*/
|
|
75
|
-
export async function createBranch(branchName, baseBranch = 'main', cwd) {
|
|
76
|
-
const git = getGitInstance(cwd);
|
|
77
|
-
await git.checkout(baseBranch);
|
|
78
|
-
await git.pull('origin', baseBranch);
|
|
79
|
-
// Delete local branch if exists
|
|
80
|
-
try {
|
|
81
|
-
const branches = await git.branchLocal();
|
|
82
|
-
if (branches.all.includes(branchName)) {
|
|
83
|
-
await git.deleteLocalBranch(branchName, true);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
catch {
|
|
87
|
-
// Branch doesn't exist, continue
|
|
88
|
-
}
|
|
89
|
-
await git.checkoutLocalBranch(branchName);
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Commit changes with a message
|
|
93
|
-
*/
|
|
94
|
-
export async function commit(message, cwd) {
|
|
95
|
-
const git = getGitInstance(cwd);
|
|
96
|
-
await ensureGitIdentity(cwd);
|
|
97
|
-
await git.add(['-A']);
|
|
98
|
-
await git.commit(message, ['--no-verify']);
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Push current branch to origin
|
|
102
|
-
*/
|
|
103
|
-
export async function push(branchName, cwd) {
|
|
104
|
-
const git = getGitInstance(cwd);
|
|
105
|
-
await git.push('origin', branchName, ['--set-upstream']);
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Get the current branch name
|
|
109
|
-
*/
|
|
110
|
-
export async function getCurrentBranch(cwd) {
|
|
111
|
-
const git = getGitInstance(cwd);
|
|
112
|
-
const branch = await git.revparse(['--abbrev-ref', 'HEAD']);
|
|
113
|
-
return branch.trim();
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Get git diff of current changes (staged and unstaged)
|
|
117
|
-
*/
|
|
118
|
-
export async function getGitDiff(cwd) {
|
|
119
|
-
const git = getGitInstance(cwd);
|
|
120
|
-
try {
|
|
121
|
-
// Get diff of both staged and unstaged changes
|
|
122
|
-
const diff = await git.diff(['HEAD']);
|
|
123
|
-
return diff;
|
|
124
|
-
}
|
|
125
|
-
catch (error) {
|
|
126
|
-
console.warn('⚠️ Could not get git diff:', error);
|
|
127
|
-
return '';
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Check if there are any uncommitted changes
|
|
132
|
-
*/
|
|
133
|
-
export async function hasUncommittedChanges(cwd) {
|
|
134
|
-
const git = getGitInstance(cwd);
|
|
135
|
-
const status = await git.status();
|
|
136
|
-
return status.files.length > 0;
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Stage all changes (including untracked files) so they appear in git diff
|
|
140
|
-
*/
|
|
141
|
-
export async function stageAllChanges(cwd) {
|
|
142
|
-
const git = getGitInstance(cwd);
|
|
143
|
-
await git.add('.');
|
|
144
|
-
}
|
|
145
|
-
//# sourceMappingURL=git.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../kosuke/utils/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GitHub API utilities for Kosuke CLI
|
|
3
|
-
*/
|
|
4
|
-
interface CreatePROptions {
|
|
5
|
-
owner: string;
|
|
6
|
-
repo: string;
|
|
7
|
-
title: string;
|
|
8
|
-
body: string;
|
|
9
|
-
head: string;
|
|
10
|
-
base: string;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Create a pull request
|
|
14
|
-
*/
|
|
15
|
-
export declare function createPullRequest(options: CreatePROptions): Promise<string>;
|
|
16
|
-
export {};
|
|
17
|
-
//# sourceMappingURL=github.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../kosuke/utils/github.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAWjF"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GitHub API utilities for Kosuke CLI
|
|
3
|
-
*/
|
|
4
|
-
import { Octokit } from '@octokit/rest';
|
|
5
|
-
const octokit = new Octokit({
|
|
6
|
-
auth: process.env.GITHUB_TOKEN,
|
|
7
|
-
});
|
|
8
|
-
/**
|
|
9
|
-
* Create a pull request
|
|
10
|
-
*/
|
|
11
|
-
export async function createPullRequest(options) {
|
|
12
|
-
const { data: pr } = await octokit.pulls.create({
|
|
13
|
-
owner: options.owner,
|
|
14
|
-
repo: options.repo,
|
|
15
|
-
title: options.title,
|
|
16
|
-
head: options.head,
|
|
17
|
-
base: options.base,
|
|
18
|
-
body: options.body,
|
|
19
|
-
});
|
|
20
|
-
return pr.html_url;
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=github.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../../kosuke/utils/github.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;IAC1B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;CAC/B,CAAC,CAAC;AAWH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAwB;IAC9D,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;QAC9C,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC,CAAC;IAEH,OAAO,EAAE,CAAC,QAAQ,CAAC;AACrB,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Interactive CLI input utilities
|
|
3
|
-
*
|
|
4
|
-
* Provides consistent multi-line input handling across commands.
|
|
5
|
-
* Works reliably in Docker and all terminal environments.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Ask a question with multi-line support
|
|
9
|
-
*
|
|
10
|
-
* Controls:
|
|
11
|
-
* - Enter: Submit input
|
|
12
|
-
* - Ctrl+J: New line (works in Docker)
|
|
13
|
-
* - Ctrl+C: Exit
|
|
14
|
-
* - Ctrl+D: Exit if empty
|
|
15
|
-
* - Backspace: Delete character
|
|
16
|
-
* - Tab: Insert 2 spaces
|
|
17
|
-
*
|
|
18
|
-
* @param prompt - The prompt to display (e.g., "You: ")
|
|
19
|
-
* @returns The user's input (trimmed)
|
|
20
|
-
*/
|
|
21
|
-
export declare function askQuestion(prompt: string): Promise<string>;
|
|
22
|
-
//# sourceMappingURL=interactive-input.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-input.d.ts","sourceRoot":"","sources":["../../../kosuke/utils/interactive-input.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0H3D"}
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Interactive CLI input utilities
|
|
3
|
-
*
|
|
4
|
-
* Provides consistent multi-line input handling across commands.
|
|
5
|
-
* Works reliably in Docker and all terminal environments.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Ask a question with multi-line support
|
|
9
|
-
*
|
|
10
|
-
* Controls:
|
|
11
|
-
* - Enter: Submit input
|
|
12
|
-
* - Ctrl+J: New line (works in Docker)
|
|
13
|
-
* - Ctrl+C: Exit
|
|
14
|
-
* - Ctrl+D: Exit if empty
|
|
15
|
-
* - Backspace: Delete character
|
|
16
|
-
* - Tab: Insert 2 spaces
|
|
17
|
-
*
|
|
18
|
-
* @param prompt - The prompt to display (e.g., "You: ")
|
|
19
|
-
* @returns The user's input (trimmed)
|
|
20
|
-
*/
|
|
21
|
-
export function askQuestion(prompt) {
|
|
22
|
-
return new Promise((resolve) => {
|
|
23
|
-
const lines = [];
|
|
24
|
-
let currentLine = '';
|
|
25
|
-
let escapeBuffer = '';
|
|
26
|
-
console.log('(Enter to submit, Ctrl+J for new line, Ctrl+C to exit)\n');
|
|
27
|
-
process.stdout.write(prompt);
|
|
28
|
-
// Store original stdin state
|
|
29
|
-
const wasRaw = process.stdin.isRaw;
|
|
30
|
-
// Enable raw mode to capture key combinations
|
|
31
|
-
if (process.stdin.isTTY) {
|
|
32
|
-
process.stdin.setRawMode(true);
|
|
33
|
-
}
|
|
34
|
-
// Remove existing listeners
|
|
35
|
-
process.stdin.removeAllListeners('data');
|
|
36
|
-
process.stdin.resume();
|
|
37
|
-
process.stdin.setEncoding('utf8');
|
|
38
|
-
const onData = (key) => {
|
|
39
|
-
// Handle escape sequences (for Shift+Enter and other special keys)
|
|
40
|
-
if (escapeBuffer.length > 0 || key === '\x1b') {
|
|
41
|
-
escapeBuffer += key;
|
|
42
|
-
// Check for Shift+Enter sequences
|
|
43
|
-
// Common sequences: \x1b[13;2~ or \x1b\r or \x1bOM
|
|
44
|
-
if (escapeBuffer === '\x1b\r' ||
|
|
45
|
-
escapeBuffer === '\x1b\n' ||
|
|
46
|
-
escapeBuffer.match(/\x1b\[13;2~/)) {
|
|
47
|
-
// Shift+Enter - add new line
|
|
48
|
-
lines.push(currentLine);
|
|
49
|
-
currentLine = '';
|
|
50
|
-
process.stdout.write('\n' + ' '.repeat(prompt.length));
|
|
51
|
-
escapeBuffer = '';
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
// If escape sequence is incomplete, wait for more
|
|
55
|
-
if (escapeBuffer.length < 6) {
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
// Unknown escape sequence, ignore it
|
|
59
|
-
escapeBuffer = '';
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
// Ctrl+C - exit
|
|
63
|
-
if (key === '\u0003') {
|
|
64
|
-
cleanup();
|
|
65
|
-
process.exit(0);
|
|
66
|
-
}
|
|
67
|
-
// Ctrl+D (EOF)
|
|
68
|
-
if (key === '\u0004') {
|
|
69
|
-
if (currentLine === '' && lines.length === 0) {
|
|
70
|
-
cleanup();
|
|
71
|
-
resolve('');
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
// Ctrl+J (linefeed) - new line (works in Docker)
|
|
76
|
-
if (key === '\n') {
|
|
77
|
-
lines.push(currentLine);
|
|
78
|
-
currentLine = '';
|
|
79
|
-
process.stdout.write('\n' + ' '.repeat(prompt.length));
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
// Regular Enter key (without Shift) - submit
|
|
83
|
-
if (key === '\r') {
|
|
84
|
-
if (currentLine.length > 0) {
|
|
85
|
-
lines.push(currentLine);
|
|
86
|
-
}
|
|
87
|
-
process.stdout.write('\n');
|
|
88
|
-
cleanup();
|
|
89
|
-
resolve(lines.join('\n').trim());
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
// Backspace
|
|
93
|
-
if (key === '\u007f' || key === '\b' || key === '\x08') {
|
|
94
|
-
if (currentLine.length > 0) {
|
|
95
|
-
currentLine = currentLine.slice(0, -1);
|
|
96
|
-
process.stdout.write('\b \b');
|
|
97
|
-
}
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
// Tab - insert 2 spaces
|
|
101
|
-
if (key === '\t') {
|
|
102
|
-
currentLine += ' ';
|
|
103
|
-
process.stdout.write(' ');
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
// Ignore other control characters (except printable ones)
|
|
107
|
-
if (key.charCodeAt(0) < 32) {
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
// Regular character
|
|
111
|
-
currentLine += key;
|
|
112
|
-
process.stdout.write(key);
|
|
113
|
-
};
|
|
114
|
-
const cleanup = () => {
|
|
115
|
-
process.stdin.removeListener('data', onData);
|
|
116
|
-
if (process.stdin.isTTY) {
|
|
117
|
-
process.stdin.setRawMode(wasRaw || false);
|
|
118
|
-
}
|
|
119
|
-
process.stdin.pause();
|
|
120
|
-
};
|
|
121
|
-
process.stdin.on('data', onData);
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
//# sourceMappingURL=interactive-input.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-input.js","sourceRoot":"","sources":["../../../kosuke/utils/interactive-input.ts"],"names":[],"mappings":"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"}
|