@zgsm/costrict-cli 0.0.2 → 0.0.3-alpha

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/dist/index.js CHANGED
File without changes
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zgsm/costrict-cli",
3
- "version": "0.0.1",
3
+ "version": "0.0.2-alpha",
4
4
  "description": "CoStrict CLI",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -26,10 +26,10 @@
26
26
  "dist"
27
27
  ],
28
28
  "config": {
29
- "sandboxImageUri": "us-docker.pkg.dev/zgsm/costrict-cli/sandbox:0.0.1"
29
+ "sandboxImageUri": "us-docker.pkg.dev/zgsm/costrict-cli/sandbox:0.0.2"
30
30
  },
31
31
  "dependencies": {
32
- "@zgsm/costrict-cli-core": "file:../core",
32
+ "@zgsm/costrict-cli-core": "^0.0.2",
33
33
  "@google/genai": "1.30.0",
34
34
  "@iarna/toml": "^2.2.5",
35
35
  "@modelcontextprotocol/sdk": "^1.23.0",
@@ -3,5 +3,5 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- export declare const GIT_COMMIT_INFO = "bd0217f7f";
7
- export declare const CLI_VERSION = "0.0.1";
6
+ export declare const GIT_COMMIT_INFO = "5a14ad164";
7
+ export declare const CLI_VERSION = "0.0.2";
@@ -5,6 +5,6 @@
5
5
  */
6
6
  // This file is auto-generated by the build script (scripts/generate-git-commit-info.js)
7
7
  // Do not edit this file manually.
8
- export const GIT_COMMIT_INFO = 'bd0217f7f';
9
- export const CLI_VERSION = '0.0.1';
8
+ export const GIT_COMMIT_INFO = '5a14ad164';
9
+ export const CLI_VERSION = '0.0.2';
10
10
  //# sourceMappingURL=git-commit.js.map
@@ -40,8 +40,6 @@ import { vimCommand } from '../ui/commands/vimCommand.js';
40
40
  import { setupGithubCommand } from '../ui/commands/setupGithubCommand.js';
41
41
  import { terminalSetupCommand } from '../ui/commands/terminalSetupCommand.js';
42
42
  // 导入新创建的内置命令
43
- import { planCommand } from '../ui/commands/builtin/planCommand.js';
44
- import { planApplyCommand } from '../ui/commands/builtin/planApplyCommand.js';
45
43
  import { agentCommand } from '../ui/commands/builtin/agentCommand.js';
46
44
  /**
47
45
  * Loads the core, hard-coded slash commands that are an integral part
@@ -99,8 +97,6 @@ export class BuiltinCommandLoader {
99
97
  setupGithubCommand,
100
98
  terminalSetupCommand,
101
99
  // 添加新创建的内置命令
102
- planCommand,
103
- planApplyCommand,
104
100
  agentCommand,
105
101
  ];
106
102
  handle?.end();
@@ -1 +1 @@
1
- {"version":3,"file":"BuiltinCommandLoader.js","sourceRoot":"","sources":["../../../src/services/BuiltinCommandLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAI7D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,aAAa;AACb,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAEtE;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IACX;IAApB,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAE7C;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAAC,OAAoB;QACrC,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC9D,MAAM,cAAc,GAA+B;YACjD,YAAY;YACZ,WAAW;YACX,UAAU;YACV,WAAW;YACX,YAAY;YACZ,eAAe;YACf,WAAW;YACX,YAAY;YACZ,WAAW;YACX,gBAAgB;YAChB,aAAa;YACb,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,2BAA2B,EAAE,CAAC;YAC7D,WAAW;YACX,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,MAAM,UAAU,EAAE;YAClB,WAAW;YACX,UAAU;YACV,aAAa;YACb,YAAY;YACZ,WAAW;YACX,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,cAAc;YACd,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,8BAA8B,EAAE;gBAC/C,CAAC,CAAC,CAAC,eAAe,CAAC;gBACnB,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,WAAW;YACX,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3B,aAAa;YACb,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,eAAe;YACf,UAAU;YACV,kBAAkB;YAClB,oBAAoB;YACpB,aAAa;YACb,WAAW;YACX,gBAAgB;YAChB,YAAY;SACb,CAAC;QACF,MAAM,EAAE,GAAG,EAAE,CAAC;QACd,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAuB,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;IAC3E,CAAC;CACF"}
1
+ {"version":3,"file":"BuiltinCommandLoader.js","sourceRoot":"","sources":["../../../src/services/BuiltinCommandLoader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { UserInputHandler } from '@zgsm/costrict-cli-core/src/tools/get-info-from-user/index.js';
7
+ /**
8
+ * CLI implementation of UserInputHandler
9
+ * This implementation will be integrated with the UI state management system
10
+ * to display user input requests in the interactive CLI.
11
+ */
12
+ export declare class CLIUserInputHandler implements UserInputHandler {
13
+ private onRequestCallback?;
14
+ /**
15
+ * Set the callback that will be invoked when a user input request is made.
16
+ * This callback should be provided by the UI layer to handle the request.
17
+ */
18
+ setRequestCallback(callback: (prompt: string, options: Record<string, string | null>) => Promise<string>): void;
19
+ requestUserInput(prompt: string, options: Record<string, string | null>): Promise<string>;
20
+ }
21
+ export declare function getGlobalUserInputHandler(): CLIUserInputHandler;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * CLI implementation of UserInputHandler
8
+ * This implementation will be integrated with the UI state management system
9
+ * to display user input requests in the interactive CLI.
10
+ */
11
+ export class CLIUserInputHandler {
12
+ // This will be called by the UI when user makes a selection
13
+ onRequestCallback;
14
+ /**
15
+ * Set the callback that will be invoked when a user input request is made.
16
+ * This callback should be provided by the UI layer to handle the request.
17
+ */
18
+ setRequestCallback(callback) {
19
+ this.onRequestCallback = callback;
20
+ }
21
+ async requestUserInput(prompt, options) {
22
+ if (!this.onRequestCallback) {
23
+ throw new Error('UserInputHandler is not properly initialized. Request callback is not set.');
24
+ }
25
+ return this.onRequestCallback(prompt, options);
26
+ }
27
+ }
28
+ // Global singleton instance
29
+ let globalUserInputHandler = null;
30
+ export function getGlobalUserInputHandler() {
31
+ if (!globalUserInputHandler) {
32
+ globalUserInputHandler = new CLIUserInputHandler();
33
+ }
34
+ return globalUserInputHandler;
35
+ }
36
+ //# sourceMappingURL=CLIUserInputHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CLIUserInputHandler.js","sourceRoot":"","sources":["../../../src/services/CLIUserInputHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;GAIG;AACH,MAAM,OAAO,mBAAmB;IAC9B,4DAA4D;IACpD,iBAAiB,CAGJ;IAErB;;;OAGG;IACH,kBAAkB,CAChB,QAGoB;QAEpB,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,MAAc,EACd,OAAsC;QAEtC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,4EAA4E,CAC7E,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;CACF;AAED,4BAA4B;AAC5B,IAAI,sBAAsB,GAA+B,IAAI,CAAC;AAE9D,MAAM,UAAU,yBAAyB;IACvC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,sBAAsB,GAAG,IAAI,mBAAmB,EAAE,CAAC;IACrD,CAAC;IACD,OAAO,sBAAsB,CAAC;AAChC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { UserInputRequest } from '../types.js';
7
+ export interface UserInputDialogProps {
8
+ request: UserInputRequest;
9
+ }
10
+ export declare function UserInputDialog({ request }: UserInputDialogProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,29 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * @license
4
+ * Copyright 2025 Google LLC
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ import { useCallback } from 'react';
8
+ import { Box, Text } from 'ink';
9
+ import { RadioButtonSelect } from './shared/RadioButtonSelect.js';
10
+ import { theme } from '../semantic-colors.js';
11
+ export function UserInputDialog({ request }) {
12
+ // Build options list from the request
13
+ const options = [];
14
+ // Add numbered options (filter out null values and custom input placeholder)
15
+ Object.entries(request.options).forEach(([key, value]) => {
16
+ if (value && !value.startsWith('<自定义输入>')) {
17
+ options.push({
18
+ label: value,
19
+ value: `选择了选项 ${key}: ${value}`,
20
+ key: `option_${key}`,
21
+ });
22
+ }
23
+ });
24
+ const handleSelect = useCallback((response) => {
25
+ request.onComplete(response);
26
+ }, [request]);
27
+ return (_jsx(Box, { width: "100%", flexDirection: "row", children: _jsx(Box, { flexDirection: "column", borderStyle: "round", borderColor: theme.status.success, flexGrow: 1, marginLeft: 1, children: _jsxs(Box, { paddingX: 1, paddingY: 0, flexDirection: "column", children: [_jsxs(Box, { minHeight: 1, children: [_jsx(Box, { minWidth: 3, children: _jsx(Text, { color: theme.status.success, "aria-label": "Question:", children: "?" }) }), _jsx(Box, { children: _jsx(Text, { wrap: "truncate-end", children: _jsx(Text, { color: theme.text.primary, bold: true, children: request.prompt }) }) })] }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { color: theme.text.secondary, children: "\u8BF7\u9009\u62E9\u4E00\u4E2A\u9009\u9879\uFF08\u4F7F\u7528 \u2191\u2193 \u952E\uFF0CEnter \u786E\u8BA4\uFF09\uFF1A" }), _jsx(Box, { marginTop: 1, children: _jsx(RadioButtonSelect, { items: options, onSelect: handleSelect }) })] })] }) }) }));
28
+ }
29
+ //# sourceMappingURL=UserInputDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserInputDialog.js","sourceRoot":"","sources":["../../../../src/ui/components/UserInputDialog.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,EAAE,iBAAiB,EAAwB,MAAM,+BAA+B,CAAC;AACxF,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAM9C,MAAM,UAAU,eAAe,CAAC,EAAE,OAAO,EAAwB;IAC/D,sCAAsC;IACtC,MAAM,OAAO,GAAmC,EAAE,CAAC;IAEnD,6EAA6E;IAC7E,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACvD,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,SAAS,GAAG,KAAK,KAAK,EAAE;gBAC/B,GAAG,EAAE,UAAU,GAAG,EAAE;aACrB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,QAAgB,EAAE,EAAE;QACnB,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,OAAO,CACL,KAAC,GAAG,IAAC,KAAK,EAAC,MAAM,EAAC,aAAa,EAAC,KAAK,YACnC,KAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAC,OAAO,EACnB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,EACjC,QAAQ,EAAE,CAAC,EACX,UAAU,EAAE,CAAC,YAEb,MAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,aACnD,MAAC,GAAG,IAAC,SAAS,EAAE,CAAC,aACf,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,YACd,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,gBAAa,WAAW,kBAElD,GACH,EACN,KAAC,GAAG,cACF,KAAC,IAAI,IAAC,IAAI,EAAC,cAAc,YACvB,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,kBAClC,OAAO,CAAC,MAAM,GACV,GACF,GACH,IACF,EAEN,MAAC,GAAG,IAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,aACvC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,qIAE1B,EACP,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,iBAAiB,IAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,GAAI,GACzD,IACF,IACF,GACF,GACF,CACP,CAAC;AACJ,CAAC"}