@kosuke-ai/cli 0.0.57 → 1.0.1-next.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.
- package/README.md +47 -434
- 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 -595
- 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 -37
- 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 -304
- 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 -660
- package/dist/kosuke/commands/build.js.map +0 -1
- package/dist/kosuke/commands/fix.d.ts +0 -21
- package/dist/kosuke/commands/fix.d.ts.map +0 -1
- package/dist/kosuke/commands/fix.js +0 -256
- package/dist/kosuke/commands/fix.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 -248
- 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 -342
- 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 -684
- 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 -414
- 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 -876
- package/dist/kosuke/commands/tickets.js.map +0 -1
- package/dist/kosuke/commands/validate-tickets.d.ts +0 -23
- package/dist/kosuke/commands/validate-tickets.d.ts.map +0 -1
- package/dist/kosuke/commands/validate-tickets.js +0 -360
- package/dist/kosuke/commands/validate-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 -539
- 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 -140
- package/dist/kosuke/utils/claude-agent.d.ts.map +0 -1
- package/dist/kosuke/utils/claude-agent.js +0 -388
- 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/json-parser.d.ts +0 -14
- package/dist/kosuke/utils/json-parser.d.ts.map +0 -1
- package/dist/kosuke/utils/json-parser.js +0 -40
- package/dist/kosuke/utils/json-parser.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 -34
- package/dist/kosuke/utils/tickets-manager.d.ts.map +0 -1
- package/dist/kosuke/utils/tickets-manager.js +0 -106
- 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 -104
- package/dist/lib.d.ts.map +0 -1
- package/dist/lib.js +0 -104
- package/dist/lib.js.map +0 -1
- package/dist/package.json +0 -99
|
@@ -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":"AAAA;;GAEG;AAEH,OAAO,SAA6B,MAAM,YAAY,CAAC;AAGvD,IAAI,qBAAqB,GAAG,KAAK,CAAC;AAElC;;GAEG;AACH,SAAS,cAAc,CAAC,GAAY;IAClC,OAAO,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAAC,GAAY;IAC3C,IAAI,qBAAqB,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAEhC,IAAI,CAAC;QACH,8CAA8C;QAC9C,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACxE,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAE1E,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YACxC,qBAAqB,GAAG,IAAI,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,iEAAiE;QACjE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,YAAY,CAAC;QAC3F,MAAM,KAAK,GACT,OAAO,CAAC,GAAG,CAAC,gBAAgB;YAC5B,OAAO,CAAC,GAAG,CAAC,mBAAmB;YAC/B,qCAAqC,CAAC;QAExC,MAAM,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAEzD,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,KAAK,KAAK,GAAG,CAAC,CAAC;QAC7D,qBAAqB,GAAG,IAAI,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,yDAAyD,EAAE,KAAK,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAY;IAC/C,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAExD,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IAED,iDAAiD;IACjD,MAAM,KAAK,GACT,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,+CAA+C,CAAC;QACvE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAEjD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,+CAA+C,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,GAAY;IACrD,IAAI,CAAC;QACH,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;QAClD,OAAO,KAAK,KAAK,YAAY,IAAI,IAAI,KAAK,iBAAiB,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,UAAkB,EAClB,aAAqB,MAAM,EAC3B,GAAY;IAEZ,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC/B,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAErC,gCAAgC;IAChC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,MAAM,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iCAAiC;IACnC,CAAC;IAED,MAAM,GAAG,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAe,EAAE,GAAY;IACxD,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACtB,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,UAAkB,EAAE,GAAY;IACzD,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAY;IACjD,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5D,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAY;IAC3C,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,CAAC;QACH,+CAA+C;QAC/C,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACnD,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAAY;IACtD,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAY;IAChD,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC"}
|
|
@@ -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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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* JSON extraction utilities for parsing LLM responses
|
|
3
|
-
*
|
|
4
|
-
* LLMs often wrap JSON in markdown code blocks or include explanatory text.
|
|
5
|
-
* This utility provides robust extraction of JSON arrays from such responses.
|
|
6
|
-
*/
|
|
7
|
-
import type { Ticket } from '../types.js';
|
|
8
|
-
/**
|
|
9
|
-
* Extract JSON array from Claude's response
|
|
10
|
-
* Handles markdown code blocks and raw JSON arrays
|
|
11
|
-
* Returns null if no valid JSON found
|
|
12
|
-
*/
|
|
13
|
-
export declare function extractTicketsJSON(response: string): Ticket[] | null;
|
|
14
|
-
//# sourceMappingURL=json-parser.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"json-parser.d.ts","sourceRoot":"","sources":["../../../kosuke/utils/json-parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAyBpE"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* JSON extraction utilities for parsing LLM responses
|
|
3
|
-
*
|
|
4
|
-
* LLMs often wrap JSON in markdown code blocks or include explanatory text.
|
|
5
|
-
* This utility provides robust extraction of JSON arrays from such responses.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Extract JSON array from Claude's response
|
|
9
|
-
* Handles markdown code blocks and raw JSON arrays
|
|
10
|
-
* Returns null if no valid JSON found
|
|
11
|
-
*/
|
|
12
|
-
export function extractTicketsJSON(response) {
|
|
13
|
-
// Strategy 1: Look for JSON in markdown code blocks
|
|
14
|
-
const markdownMatch = response.match(/```(?:json)?\s*(\[[\s\S]*?\])\s*```/);
|
|
15
|
-
if (markdownMatch) {
|
|
16
|
-
try {
|
|
17
|
-
const tickets = JSON.parse(markdownMatch[1]);
|
|
18
|
-
if (Array.isArray(tickets))
|
|
19
|
-
return tickets;
|
|
20
|
-
}
|
|
21
|
-
catch {
|
|
22
|
-
// Continue to next strategy
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
// Strategy 2: Look for raw JSON array
|
|
26
|
-
const arrayMatch = response.match(/\[[\s\S]*\]/);
|
|
27
|
-
if (arrayMatch) {
|
|
28
|
-
try {
|
|
29
|
-
const tickets = JSON.parse(arrayMatch[0]);
|
|
30
|
-
if (Array.isArray(tickets))
|
|
31
|
-
return tickets;
|
|
32
|
-
}
|
|
33
|
-
catch {
|
|
34
|
-
// Continue to next strategy
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
// No valid JSON found - return null
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=json-parser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"json-parser.js","sourceRoot":"","sources":["../../../kosuke/utils/json-parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,oDAAoD;IACpD,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAC5E,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAa,CAAC;YACzD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;gBAAE,OAAO,OAAO,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,4BAA4B;QAC9B,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACjD,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAa,CAAC;YACtD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;gBAAE,OAAO,OAAO,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,4BAA4B;QAC9B,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,OAAO,IAAI,CAAC;AACd,CAAC"}
|