@braingrid/cli 0.1.3 → 0.2.1
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/CHANGELOG.md +56 -0
- package/README.md +54 -39
- package/dist/chunk-KNVWIF3L.js +401 -0
- package/dist/chunk-KNVWIF3L.js.map +1 -0
- package/dist/cli.js +6229 -290
- package/dist/cli.js.map +1 -1
- package/dist/gh-installer-B65ZOOC4.js +13 -0
- package/dist/gh-installer-B65ZOOC4.js.map +1 -0
- package/package.json +40 -13
- package/dist/build-config.d.ts +0 -26
- package/dist/build-config.d.ts.map +0 -1
- package/dist/build-config.js +0 -45
- package/dist/build-config.js.map +0 -1
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/handlers/agent.handlers.d.ts +0 -12
- package/dist/handlers/agent.handlers.d.ts.map +0 -1
- package/dist/handlers/agent.handlers.js +0 -130
- package/dist/handlers/agent.handlers.js.map +0 -1
- package/dist/handlers/auth.handlers.d.ts +0 -19
- package/dist/handlers/auth.handlers.d.ts.map +0 -1
- package/dist/handlers/auth.handlers.js +0 -177
- package/dist/handlers/auth.handlers.js.map +0 -1
- package/dist/handlers/index.d.ts +0 -14
- package/dist/handlers/index.d.ts.map +0 -1
- package/dist/handlers/index.js +0 -14
- package/dist/handlers/index.js.map +0 -1
- package/dist/handlers/init.handlers.d.ts +0 -10
- package/dist/handlers/init.handlers.d.ts.map +0 -1
- package/dist/handlers/init.handlers.js +0 -638
- package/dist/handlers/init.handlers.js.map +0 -1
- package/dist/handlers/project.handlers.d.ts +0 -36
- package/dist/handlers/project.handlers.d.ts.map +0 -1
- package/dist/handlers/project.handlers.js +0 -309
- package/dist/handlers/project.handlers.js.map +0 -1
- package/dist/handlers/requirement.handlers.d.ts +0 -32
- package/dist/handlers/requirement.handlers.d.ts.map +0 -1
- package/dist/handlers/requirement.handlers.js +0 -264
- package/dist/handlers/requirement.handlers.js.map +0 -1
- package/dist/handlers/status.handlers.d.ts +0 -12
- package/dist/handlers/status.handlers.d.ts.map +0 -1
- package/dist/handlers/status.handlers.js +0 -212
- package/dist/handlers/status.handlers.js.map +0 -1
- package/dist/handlers/task.handlers.d.ts +0 -29
- package/dist/handlers/task.handlers.d.ts.map +0 -1
- package/dist/handlers/task.handlers.js +0 -326
- package/dist/handlers/task.handlers.js.map +0 -1
- package/dist/handlers/types.d.ts +0 -10
- package/dist/handlers/types.d.ts.map +0 -1
- package/dist/handlers/types.js +0 -5
- package/dist/handlers/types.js.map +0 -1
- package/dist/handlers/update.handlers.d.ts +0 -16
- package/dist/handlers/update.handlers.d.ts.map +0 -1
- package/dist/handlers/update.handlers.js +0 -119
- package/dist/handlers/update.handlers.js.map +0 -1
- package/dist/rpc/registry.d.ts +0 -97
- package/dist/rpc/registry.d.ts.map +0 -1
- package/dist/rpc/registry.js +0 -119
- package/dist/rpc/registry.js.map +0 -1
- package/dist/rpc/server.d.ts +0 -78
- package/dist/rpc/server.d.ts.map +0 -1
- package/dist/rpc/server.js +0 -437
- package/dist/rpc/server.js.map +0 -1
- package/dist/rpc/transport.d.ts +0 -84
- package/dist/rpc/transport.d.ts.map +0 -1
- package/dist/rpc/transport.js +0 -296
- package/dist/rpc/transport.js.map +0 -1
- package/dist/services/__mocks__/utils.d.ts +0 -16
- package/dist/services/__mocks__/utils.d.ts.map +0 -1
- package/dist/services/__mocks__/utils.js +0 -21
- package/dist/services/__mocks__/utils.js.map +0 -1
- package/dist/services/agent-service.d.ts +0 -29
- package/dist/services/agent-service.d.ts.map +0 -1
- package/dist/services/agent-service.js +0 -273
- package/dist/services/agent-service.js.map +0 -1
- package/dist/services/auth.d.ts +0 -59
- package/dist/services/auth.d.ts.map +0 -1
- package/dist/services/auth.js +0 -549
- package/dist/services/auth.js.map +0 -1
- package/dist/services/claude.d.ts +0 -18
- package/dist/services/claude.d.ts.map +0 -1
- package/dist/services/claude.js +0 -164
- package/dist/services/claude.js.map +0 -1
- package/dist/services/credential-store.d.ts +0 -47
- package/dist/services/credential-store.d.ts.map +0 -1
- package/dist/services/credential-store.js +0 -89
- package/dist/services/credential-store.js.map +0 -1
- package/dist/services/internal/github-service.d.ts +0 -67
- package/dist/services/internal/github-service.d.ts.map +0 -1
- package/dist/services/internal/github-service.js +0 -81
- package/dist/services/internal/github-service.js.map +0 -1
- package/dist/services/internal/repository-service.d.ts +0 -79
- package/dist/services/internal/repository-service.d.ts.map +0 -1
- package/dist/services/internal/repository-service.js +0 -88
- package/dist/services/internal/repository-service.js.map +0 -1
- package/dist/services/oauth2-auth.d.ts +0 -76
- package/dist/services/oauth2-auth.d.ts.map +0 -1
- package/dist/services/oauth2-auth.js +0 -451
- package/dist/services/oauth2-auth.js.map +0 -1
- package/dist/services/project-service.d.ts +0 -24
- package/dist/services/project-service.d.ts.map +0 -1
- package/dist/services/project-service.js +0 -60
- package/dist/services/project-service.js.map +0 -1
- package/dist/services/requirement-service.d.ts +0 -32
- package/dist/services/requirement-service.d.ts.map +0 -1
- package/dist/services/requirement-service.js +0 -91
- package/dist/services/requirement-service.js.map +0 -1
- package/dist/services/task-service.d.ts +0 -22
- package/dist/services/task-service.d.ts.map +0 -1
- package/dist/services/task-service.js +0 -52
- package/dist/services/task-service.js.map +0 -1
- package/dist/types/api.d.ts +0 -16
- package/dist/types/api.d.ts.map +0 -1
- package/dist/types/api.js +0 -5
- package/dist/types/api.js.map +0 -1
- package/dist/types/auth.d.ts +0 -73
- package/dist/types/auth.d.ts.map +0 -1
- package/dist/types/auth.js +0 -2
- package/dist/types/auth.js.map +0 -1
- package/dist/types/claude.d.ts +0 -22
- package/dist/types/claude.d.ts.map +0 -1
- package/dist/types/claude.js +0 -2
- package/dist/types/claude.js.map +0 -1
- package/dist/types/github.d.ts +0 -105
- package/dist/types/github.d.ts.map +0 -1
- package/dist/types/github.js +0 -6
- package/dist/types/github.js.map +0 -1
- package/dist/types/local-project.d.ts +0 -30
- package/dist/types/local-project.d.ts.map +0 -1
- package/dist/types/local-project.js +0 -24
- package/dist/types/local-project.js.map +0 -1
- package/dist/types/project.d.ts +0 -56
- package/dist/types/project.d.ts.map +0 -1
- package/dist/types/project.js +0 -5
- package/dist/types/project.js.map +0 -1
- package/dist/types/requirement.d.ts +0 -69
- package/dist/types/requirement.d.ts.map +0 -1
- package/dist/types/requirement.js +0 -5
- package/dist/types/requirement.js.map +0 -1
- package/dist/types/task.d.ts +0 -44
- package/dist/types/task.d.ts.map +0 -1
- package/dist/types/task.js +0 -5
- package/dist/types/task.js.map +0 -1
- package/dist/utils/axios-retry.d.ts +0 -25
- package/dist/utils/axios-retry.d.ts.map +0 -1
- package/dist/utils/axios-retry.js +0 -174
- package/dist/utils/axios-retry.js.map +0 -1
- package/dist/utils/axios-with-auth.d.ts +0 -10
- package/dist/utils/axios-with-auth.d.ts.map +0 -1
- package/dist/utils/axios-with-auth.js +0 -118
- package/dist/utils/axios-with-auth.js.map +0 -1
- package/dist/utils/cli-tools.d.ts +0 -30
- package/dist/utils/cli-tools.d.ts.map +0 -1
- package/dist/utils/cli-tools.js +0 -199
- package/dist/utils/cli-tools.js.map +0 -1
- package/dist/utils/command-execution.d.ts +0 -30
- package/dist/utils/command-execution.d.ts.map +0 -1
- package/dist/utils/command-execution.js +0 -264
- package/dist/utils/command-execution.js.map +0 -1
- package/dist/utils/command-parser.d.ts +0 -85
- package/dist/utils/command-parser.d.ts.map +0 -1
- package/dist/utils/command-parser.js +0 -287
- package/dist/utils/command-parser.js.map +0 -1
- package/dist/utils/config.d.ts +0 -10
- package/dist/utils/config.d.ts.map +0 -1
- package/dist/utils/config.js +0 -77
- package/dist/utils/config.js.map +0 -1
- package/dist/utils/error-formatter.d.ts +0 -17
- package/dist/utils/error-formatter.d.ts.map +0 -1
- package/dist/utils/error-formatter.js +0 -115
- package/dist/utils/error-formatter.js.map +0 -1
- package/dist/utils/formatting.d.ts +0 -10
- package/dist/utils/formatting.d.ts.map +0 -1
- package/dist/utils/formatting.js +0 -122
- package/dist/utils/formatting.js.map +0 -1
- package/dist/utils/gh-installer.d.ts +0 -31
- package/dist/utils/gh-installer.d.ts.map +0 -1
- package/dist/utils/gh-installer.js +0 -296
- package/dist/utils/gh-installer.js.map +0 -1
- package/dist/utils/git-installer.d.ts +0 -31
- package/dist/utils/git-installer.d.ts.map +0 -1
- package/dist/utils/git-installer.js +0 -290
- package/dist/utils/git-installer.js.map +0 -1
- package/dist/utils/git.d.ts +0 -60
- package/dist/utils/git.d.ts.map +0 -1
- package/dist/utils/git.js +0 -144
- package/dist/utils/git.js.map +0 -1
- package/dist/utils/github-repo.d.ts +0 -43
- package/dist/utils/github-repo.d.ts.map +0 -1
- package/dist/utils/github-repo.js +0 -113
- package/dist/utils/github-repo.js.map +0 -1
- package/dist/utils/id-normalization.d.ts +0 -26
- package/dist/utils/id-normalization.d.ts.map +0 -1
- package/dist/utils/id-normalization.js +0 -45
- package/dist/utils/id-normalization.js.map +0 -1
- package/dist/utils/jwt.d.ts +0 -45
- package/dist/utils/jwt.d.ts.map +0 -1
- package/dist/utils/jwt.js +0 -64
- package/dist/utils/jwt.js.map +0 -1
- package/dist/utils/local-store.d.ts +0 -36
- package/dist/utils/local-store.d.ts.map +0 -1
- package/dist/utils/local-store.js +0 -94
- package/dist/utils/local-store.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -36
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -176
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/package-manager-installer.d.ts +0 -36
- package/dist/utils/package-manager-installer.d.ts.map +0 -1
- package/dist/utils/package-manager-installer.js +0 -106
- package/dist/utils/package-manager-installer.js.map +0 -1
- package/dist/utils/package-manager.d.ts +0 -31
- package/dist/utils/package-manager.d.ts.map +0 -1
- package/dist/utils/package-manager.js +0 -133
- package/dist/utils/package-manager.js.map +0 -1
- package/dist/utils/projects.d.ts +0 -23
- package/dist/utils/projects.d.ts.map +0 -1
- package/dist/utils/projects.js +0 -36
- package/dist/utils/projects.js.map +0 -1
- package/dist/utils/repository-access.d.ts +0 -89
- package/dist/utils/repository-access.d.ts.map +0 -1
- package/dist/utils/repository-access.js +0 -132
- package/dist/utils/repository-access.js.map +0 -1
- package/dist/utils/requirements.d.ts +0 -43
- package/dist/utils/requirements.d.ts.map +0 -1
- package/dist/utils/requirements.js +0 -79
- package/dist/utils/requirements.js.map +0 -1
- package/dist/utils/spinner.d.ts +0 -47
- package/dist/utils/spinner.d.ts.map +0 -1
- package/dist/utils/spinner.js +0 -101
- package/dist/utils/spinner.js.map +0 -1
- package/dist/utils/status-parser.d.ts +0 -95
- package/dist/utils/status-parser.d.ts.map +0 -1
- package/dist/utils/status-parser.js +0 -205
- package/dist/utils/status-parser.js.map +0 -1
- package/dist/utils/tasks.d.ts +0 -21
- package/dist/utils/tasks.d.ts.map +0 -1
- package/dist/utils/tasks.js +0 -63
- package/dist/utils/tasks.js.map +0 -1
- package/dist/utils/workspace-manager.d.ts +0 -65
- package/dist/utils/workspace-manager.d.ts.map +0 -1
- package/dist/utils/workspace-manager.js +0 -98
- package/dist/utils/workspace-manager.js.map +0 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getGhManualInstallInstructions,
|
|
3
|
+
getGhVersion,
|
|
4
|
+
installGh,
|
|
5
|
+
isGhInstalled
|
|
6
|
+
} from "./chunk-KNVWIF3L.js";
|
|
7
|
+
export {
|
|
8
|
+
getGhManualInstallInstructions,
|
|
9
|
+
getGhVersion,
|
|
10
|
+
installGh,
|
|
11
|
+
isGhInstalled
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=gh-installer-B65ZOOC4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@braingrid/cli",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "BrainGrid - Turn thoughts into AI-ready specs. Command-line interface for spec-driven development.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/cli.js",
|
|
@@ -39,39 +39,62 @@
|
|
|
39
39
|
"chalk": "^5.3.0",
|
|
40
40
|
"commander": "^12.0.0",
|
|
41
41
|
"conf": "13.0.1",
|
|
42
|
-
"ink": "^6.3.1",
|
|
43
42
|
"node-machine-id": "1.1.12",
|
|
44
43
|
"open": "^10.1.0",
|
|
45
|
-
"zod": "^4.1.11"
|
|
46
|
-
"@braingrid/protocol": "0.1.0"
|
|
44
|
+
"zod": "^4.1.11"
|
|
47
45
|
},
|
|
48
46
|
"devDependencies": {
|
|
49
47
|
"@types/node": "^20.19.1",
|
|
48
|
+
"@typescript-eslint/eslint-plugin": "^8.39.1",
|
|
49
|
+
"@typescript-eslint/parser": "^8.39.1",
|
|
50
|
+
"@vitest/coverage-v8": "^3.2.3",
|
|
51
|
+
"@vitest/ui": "^3.2.3",
|
|
52
|
+
"depcheck": "^1.4.7",
|
|
53
|
+
"eslint": "^9.33.0",
|
|
54
|
+
"eslint-config-prettier": "^10.1.8",
|
|
55
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
56
|
+
"husky": "^9.1.7",
|
|
57
|
+
"knip": "^5.67.1",
|
|
58
|
+
"lint-staged": "^16.2.3",
|
|
59
|
+
"prettier": "^3.6.2",
|
|
60
|
+
"ts-prune": "^0.10.3",
|
|
61
|
+
"tsup": "^8.5.0",
|
|
50
62
|
"tsx": "^4.16.2",
|
|
51
63
|
"typescript": "^5.4.0",
|
|
52
64
|
"vitest": "^3.2.3"
|
|
53
65
|
},
|
|
66
|
+
"lint-staged": {
|
|
67
|
+
"*.{ts,tsx}": [
|
|
68
|
+
"eslint --fix",
|
|
69
|
+
"prettier --write"
|
|
70
|
+
],
|
|
71
|
+
"*.{json,md}": [
|
|
72
|
+
"prettier --write"
|
|
73
|
+
]
|
|
74
|
+
},
|
|
54
75
|
"engines": {
|
|
55
|
-
"node": ">=20.0.0"
|
|
76
|
+
"node": ">=20.0.0",
|
|
77
|
+
"pnpm": ">=9.0.0"
|
|
56
78
|
},
|
|
57
79
|
"publishConfig": {
|
|
58
80
|
"access": "public"
|
|
59
81
|
},
|
|
60
82
|
"scripts": {
|
|
61
|
-
"build": "
|
|
62
|
-
"build:local": "
|
|
63
|
-
"build:dev": "
|
|
64
|
-
"build:prod": "
|
|
83
|
+
"build": "tsup",
|
|
84
|
+
"build:local": "BUILD_ENV=development tsup",
|
|
85
|
+
"build:dev": "BUILD_ENV=development tsup",
|
|
86
|
+
"build:prod": "BUILD_ENV=production tsup",
|
|
65
87
|
"dev": "tsx src/cli.ts",
|
|
66
88
|
"dev:local": "NODE_ENV=local tsx src/cli.ts",
|
|
67
89
|
"docs:fetch-openapi": "mkdir -p docs && gh api repos/BrainGridAI/braingrid-app/contents/public/openapi.json | jq -r '.content' | base64 -D > docs/openapi.json",
|
|
68
90
|
"docs:sync": "bash scripts/sync-docs-to-braingrid.sh",
|
|
69
|
-
"start": "
|
|
70
|
-
"start:local": "
|
|
71
|
-
"start:dev": "
|
|
91
|
+
"start": "node dist/cli.js",
|
|
92
|
+
"start:local": "node dist/cli.js",
|
|
93
|
+
"start:dev": "node dist/cli.js",
|
|
72
94
|
"lint": "eslint 'src/**/*.{ts,tsx}'",
|
|
73
95
|
"lint:fix": "eslint 'src/**/*.{ts,tsx}' --fix",
|
|
74
96
|
"format": "prettier --write 'src/**/*.{ts,tsx}'",
|
|
97
|
+
"validate:fix": "pnpm lint:fix && pnpm format && pnpm type-check",
|
|
75
98
|
"type-check": "tsc --noEmit",
|
|
76
99
|
"test": "vitest",
|
|
77
100
|
"test:watch": "vitest --watch",
|
|
@@ -80,6 +103,10 @@
|
|
|
80
103
|
"test:all": "vitest run",
|
|
81
104
|
"test:cli": "bash scripts/test-cli.sh",
|
|
82
105
|
"test:cli:verbose": "bash scripts/test-cli.sh --verbose",
|
|
83
|
-
"clean": "rm -rf dist"
|
|
106
|
+
"clean": "rm -rf dist",
|
|
107
|
+
"preversion": "pnpm validate:fix && pnpm test:all",
|
|
108
|
+
"release:patch": "npm version patch && git push && git push --tags",
|
|
109
|
+
"release:minor": "npm version minor && git push && git push --tags",
|
|
110
|
+
"release:major": "npm version major && git push && git push --tags"
|
|
84
111
|
}
|
|
85
112
|
}
|
package/dist/build-config.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* BUILD_ENV determines which configuration to use.
|
|
3
|
-
* - 'production': Uses production URLs (when NODE_ENV=production)
|
|
4
|
-
* - 'development': Uses development/local URLs (default)
|
|
5
|
-
*/
|
|
6
|
-
export declare const BUILD_ENV: 'production' | 'development';
|
|
7
|
-
export declare const CLI_VERSION: string;
|
|
8
|
-
/**
|
|
9
|
-
* Production configuration
|
|
10
|
-
* Used when BUILD_ENV === 'production' (npm published package)
|
|
11
|
-
*/
|
|
12
|
-
export declare const PRODUCTION_CONFIG: {
|
|
13
|
-
readonly apiUrl: "https://app.braingrid.ai";
|
|
14
|
-
readonly workosAuthUrl: "https://sensitive-harvest-60.authkit.app";
|
|
15
|
-
readonly workosClientId: "client_01K6H010C9K69HSDPM9CQM85S7";
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* Development configuration
|
|
19
|
-
* Used when BUILD_ENV === 'development' (local development)
|
|
20
|
-
*/
|
|
21
|
-
export declare const DEVELOPMENT_CONFIG: {
|
|
22
|
-
readonly apiUrl: "https://app.dev.braingrid.ai";
|
|
23
|
-
readonly workosAuthUrl: "https://balanced-celebration-78-staging.authkit.app";
|
|
24
|
-
readonly workosClientId: "client_01K6H04GF21T4JXNS3JDQM3YNE";
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=build-config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build-config.d.ts","sourceRoot":"","sources":["../src/build-config.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,eAAO,MAAM,SAAS,EAAE,YAAY,GAAG,aAC8B,CAAC;AAgBtE,eAAO,MAAM,WAAW,QAAe,CAAC;AAExC;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC"}
|
package/dist/build-config.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { readFileSync } from 'node:fs';
|
|
2
|
-
import { join, dirname } from 'node:path';
|
|
3
|
-
import { fileURLToPath } from 'node:url';
|
|
4
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
5
|
-
const __dirname = dirname(__filename);
|
|
6
|
-
/**
|
|
7
|
-
* BUILD_ENV determines which configuration to use.
|
|
8
|
-
* - 'production': Uses production URLs (when NODE_ENV=production)
|
|
9
|
-
* - 'development': Uses development/local URLs (default)
|
|
10
|
-
*/
|
|
11
|
-
export const BUILD_ENV = process.env.NODE_ENV === 'production' ? 'production' : 'development';
|
|
12
|
-
/**
|
|
13
|
-
* CLI_VERSION read from package.json at runtime
|
|
14
|
-
* Used for update checks and version display
|
|
15
|
-
*/
|
|
16
|
-
function getVersion() {
|
|
17
|
-
try {
|
|
18
|
-
const packagePath = join(__dirname, '..', 'package.json');
|
|
19
|
-
const pkg = JSON.parse(readFileSync(packagePath, 'utf-8'));
|
|
20
|
-
return pkg.version;
|
|
21
|
-
}
|
|
22
|
-
catch {
|
|
23
|
-
return 'unknown';
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
export const CLI_VERSION = getVersion();
|
|
27
|
-
/**
|
|
28
|
-
* Production configuration
|
|
29
|
-
* Used when BUILD_ENV === 'production' (npm published package)
|
|
30
|
-
*/
|
|
31
|
-
export const PRODUCTION_CONFIG = {
|
|
32
|
-
apiUrl: 'https://app.braingrid.ai',
|
|
33
|
-
workosAuthUrl: 'https://sensitive-harvest-60.authkit.app',
|
|
34
|
-
workosClientId: 'client_01K6H010C9K69HSDPM9CQM85S7',
|
|
35
|
-
};
|
|
36
|
-
/**
|
|
37
|
-
* Development configuration
|
|
38
|
-
* Used when BUILD_ENV === 'development' (local development)
|
|
39
|
-
*/
|
|
40
|
-
export const DEVELOPMENT_CONFIG = {
|
|
41
|
-
apiUrl: 'https://app.dev.braingrid.ai',
|
|
42
|
-
workosAuthUrl: 'https://balanced-celebration-78-staging.authkit.app',
|
|
43
|
-
workosClientId: 'client_01K6H04GF21T4JXNS3JDQM3YNE',
|
|
44
|
-
};
|
|
45
|
-
//# sourceMappingURL=build-config.js.map
|
package/dist/build-config.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build-config.js","sourceRoot":"","sources":["../src/build-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GACrB,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC;AAEtE;;;GAGG;AACH,SAAS,UAAU;IAClB,IAAI,CAAC;QACJ,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QAC3D,OAAO,GAAG,CAAC,OAAO,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,EAAE,CAAC;AAExC;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC,MAAM,EAAE,0BAA0B;IAClC,aAAa,EAAE,0CAA0C;IACzD,cAAc,EAAE,mCAAmC;CAC1C,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IACjC,MAAM,EAAE,8BAA8B;IACtC,aAAa,EAAE,qDAAqD;IACpE,cAAc,EAAE,mCAAmC;CAC1C,CAAC"}
|
package/dist/cli.d.ts
DELETED
package/dist/cli.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent Conversation Handlers
|
|
3
|
-
*
|
|
4
|
-
* Handles agent conversation streaming commands
|
|
5
|
-
*/
|
|
6
|
-
import type { HandlerResult } from './types.js';
|
|
7
|
-
import type { AgentConversationStreamParams } from '@braingrid/protocol';
|
|
8
|
-
/**
|
|
9
|
-
* Handle agent conversation stream request
|
|
10
|
-
*/
|
|
11
|
-
export declare function handleAgentConversationStream(params: AgentConversationStreamParams): Promise<HandlerResult>;
|
|
12
|
-
//# sourceMappingURL=agent.handlers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent.handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/agent.handlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,6BAA6B,EAAuB,MAAM,qBAAqB,CAAC;AAc9F;;GAEG;AACH,wBAAsB,6BAA6B,CAClD,MAAM,EAAE,6BAA6B,GACnC,OAAO,CAAC,aAAa,CAAC,CA4HxB"}
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent Conversation Handlers
|
|
3
|
-
*
|
|
4
|
-
* Handles agent conversation streaming commands
|
|
5
|
-
*/
|
|
6
|
-
import chalk from 'chalk';
|
|
7
|
-
import { BraingridAuth } from '../services/auth.js';
|
|
8
|
-
import { AgentService } from '../services/agent-service.js';
|
|
9
|
-
import { workspaceManager } from '../utils/workspace-manager.js';
|
|
10
|
-
import { getConfig } from '../utils/config.js';
|
|
11
|
-
import { formatError } from '../utils/error-formatter.js';
|
|
12
|
-
import { getLogger } from '../utils/logger.js';
|
|
13
|
-
const logger = getLogger();
|
|
14
|
-
function getServices() {
|
|
15
|
-
const config = getConfig();
|
|
16
|
-
const auth = new BraingridAuth(config.apiUrl);
|
|
17
|
-
const agentService = new AgentService(config.apiUrl, auth);
|
|
18
|
-
return { auth, agentService };
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Handle agent conversation stream request
|
|
22
|
-
*/
|
|
23
|
-
export async function handleAgentConversationStream(params) {
|
|
24
|
-
try {
|
|
25
|
-
const { auth, agentService } = getServices();
|
|
26
|
-
// Check authentication
|
|
27
|
-
const isAuthenticated = await auth.isAuthenticated();
|
|
28
|
-
if (!isAuthenticated) {
|
|
29
|
-
return {
|
|
30
|
-
success: false,
|
|
31
|
-
message: chalk.red('❌ Not authenticated. Please run `braingrid login` first.'),
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
// Get project ID from workspace
|
|
35
|
-
const workspace = await workspaceManager.getProject(params.project);
|
|
36
|
-
if (!workspace.success) {
|
|
37
|
-
return {
|
|
38
|
-
success: false,
|
|
39
|
-
message: workspace.error,
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
const projectId = workspace.projectId;
|
|
43
|
-
// Validate message
|
|
44
|
-
if (!params.message || params.message.trim().length === 0) {
|
|
45
|
-
return {
|
|
46
|
-
success: false,
|
|
47
|
-
message: chalk.red('❌ Message cannot be empty'),
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
// Merge context from context manager and explicit params
|
|
51
|
-
// Explicit params take precedence over context manager
|
|
52
|
-
const mergedContext = {
|
|
53
|
-
...params.context,
|
|
54
|
-
};
|
|
55
|
-
// Auto-include active requirement from workspace if available and not explicitly provided
|
|
56
|
-
if (!mergedContext.requirementId) {
|
|
57
|
-
const activeRequirementId = workspaceManager.getActiveRequirement();
|
|
58
|
-
if (activeRequirementId) {
|
|
59
|
-
mergedContext.requirementId = activeRequirementId;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
// Stream the conversation
|
|
63
|
-
logger.debug('[Agent] Sending conversation request', {
|
|
64
|
-
project: projectId,
|
|
65
|
-
messageLength: params.message.length,
|
|
66
|
-
conversationId: params.conversationId,
|
|
67
|
-
hasContext: Object.keys(mergedContext).length > 0,
|
|
68
|
-
});
|
|
69
|
-
// Display streaming header
|
|
70
|
-
console.log(chalk.bold('\n💬 Agent Response:\n'));
|
|
71
|
-
const response = await agentService.streamConversation({
|
|
72
|
-
project: projectId,
|
|
73
|
-
message: params.message,
|
|
74
|
-
conversationId: params.conversationId,
|
|
75
|
-
context: Object.keys(mergedContext).length > 0 ? mergedContext : undefined,
|
|
76
|
-
});
|
|
77
|
-
logger.debug('[Agent] Received complete response from streaming endpoint', {
|
|
78
|
-
status: response.status,
|
|
79
|
-
conversationId: response.conversationId,
|
|
80
|
-
messageContentLength: response.message?.content?.length,
|
|
81
|
-
});
|
|
82
|
-
// Format the response
|
|
83
|
-
let output = '\n';
|
|
84
|
-
if (response.status === 'error') {
|
|
85
|
-
return {
|
|
86
|
-
success: false,
|
|
87
|
-
message: chalk.red(`❌ Agent error: ${response.message?.content ?? 'Unknown error'}`),
|
|
88
|
-
data: response,
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
// Display additional metadata (content was already streamed)
|
|
92
|
-
if (response.conversationRecovered) {
|
|
93
|
-
output += chalk.yellow('\n⚠️ Conversation recovered from interruption\n');
|
|
94
|
-
}
|
|
95
|
-
if (response.tokenUsage) {
|
|
96
|
-
output += chalk.dim(`\nToken usage: ${response.tokenUsage.total} tokens`);
|
|
97
|
-
}
|
|
98
|
-
output += chalk.dim(`\nConversation ID: ${response.conversationId}\n`);
|
|
99
|
-
return {
|
|
100
|
-
success: true,
|
|
101
|
-
message: output,
|
|
102
|
-
data: response,
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
catch (error) {
|
|
106
|
-
// Handle network timeouts
|
|
107
|
-
if (error && typeof error === 'object' && 'code' in error && error.code === 'ECONNABORTED') {
|
|
108
|
-
return {
|
|
109
|
-
success: false,
|
|
110
|
-
message: chalk.red('❌ Request timed out. The agent may be processing a complex request.\n' +
|
|
111
|
-
chalk.dim('Please try again or simplify your message.')),
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
// Handle authentication errors
|
|
115
|
-
if (error && typeof error === 'object' && 'message' in error) {
|
|
116
|
-
const errorMessage = String(error.message);
|
|
117
|
-
if (errorMessage.includes('Authentication expired')) {
|
|
118
|
-
return {
|
|
119
|
-
success: false,
|
|
120
|
-
message: chalk.red(`❌ ${errorMessage}`),
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
return {
|
|
125
|
-
success: false,
|
|
126
|
-
message: chalk.red(`❌ ${formatError(error, 'starting agent conversation')}`),
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
//# sourceMappingURL=agent.handlers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent.handlers.js","sourceRoot":"","sources":["../../src/handlers/agent.handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Auth Handlers
|
|
3
|
-
*
|
|
4
|
-
* Handles authentication-related commands:
|
|
5
|
-
* - login: Authenticate with BrainGrid
|
|
6
|
-
* - logout: Sign out from BrainGrid
|
|
7
|
-
* - whoami: Show current user information
|
|
8
|
-
*/
|
|
9
|
-
import type { HandlerResult } from './types.js';
|
|
10
|
-
import type { MethodContext } from '../rpc/registry.js';
|
|
11
|
-
export declare function handleLogin(context?: MethodContext): Promise<HandlerResult>;
|
|
12
|
-
export declare function handleLogout(): Promise<HandlerResult>;
|
|
13
|
-
/**
|
|
14
|
-
* Complete the RPC login flow after user has authenticated in browser
|
|
15
|
-
* This waits for the OAuth callback and completes the session
|
|
16
|
-
*/
|
|
17
|
-
export declare function handleCompleteLogin(context?: MethodContext): Promise<HandlerResult>;
|
|
18
|
-
export declare function handleWhoami(): Promise<HandlerResult>;
|
|
19
|
-
//# sourceMappingURL=auth.handlers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/auth.handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAwBxD,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CA4DjF;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC,CAgB3D;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAiCzF;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC,CAyC3D"}
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Auth Handlers
|
|
3
|
-
*
|
|
4
|
-
* Handles authentication-related commands:
|
|
5
|
-
* - login: Authenticate with BrainGrid
|
|
6
|
-
* - logout: Sign out from BrainGrid
|
|
7
|
-
* - whoami: Show current user information
|
|
8
|
-
*/
|
|
9
|
-
import chalk from 'chalk';
|
|
10
|
-
import { BraingridAuth } from '../services/auth.js';
|
|
11
|
-
import { getConfig } from '../utils/config.js';
|
|
12
|
-
import { formatError } from '../utils/error-formatter.js';
|
|
13
|
-
import { getGitUser } from '../utils/git.js';
|
|
14
|
-
import { getLogger } from '../utils/logger.js';
|
|
15
|
-
// Map to store auth instances per RPC context (for OAuth handler state persistence)
|
|
16
|
-
const rpcAuthInstances = new WeakMap();
|
|
17
|
-
const logger = getLogger();
|
|
18
|
-
function getAuth(context) {
|
|
19
|
-
const config = getConfig();
|
|
20
|
-
// In RPC mode (when context is provided), use per-context instance
|
|
21
|
-
// This maintains OAuth handler state within a single RPC connection
|
|
22
|
-
if (context !== undefined) {
|
|
23
|
-
let authInstance = rpcAuthInstances.get(context);
|
|
24
|
-
if (!authInstance) {
|
|
25
|
-
authInstance = new BraingridAuth(config.apiUrl);
|
|
26
|
-
rpcAuthInstances.set(context, authInstance);
|
|
27
|
-
}
|
|
28
|
-
return authInstance;
|
|
29
|
-
}
|
|
30
|
-
// In CLI mode, create new instance each time
|
|
31
|
-
return new BraingridAuth(config.apiUrl);
|
|
32
|
-
}
|
|
33
|
-
export async function handleLogin(context) {
|
|
34
|
-
try {
|
|
35
|
-
const auth = getAuth(context);
|
|
36
|
-
const isRpcMode = context !== undefined;
|
|
37
|
-
if (isRpcMode) {
|
|
38
|
-
// RPC mode: Prepare auth URL and return it
|
|
39
|
-
// The client will open the browser, then call braingrid.auth.complete to finish
|
|
40
|
-
const { authUrl, redirectUri } = await auth.startLoginForRpc();
|
|
41
|
-
return {
|
|
42
|
-
success: true,
|
|
43
|
-
message: 'Please open the authentication URL in your browser',
|
|
44
|
-
data: {
|
|
45
|
-
authUrl,
|
|
46
|
-
redirectUri,
|
|
47
|
-
instructions: 'Open this URL in your browser, then call braingrid.auth.complete to finish login',
|
|
48
|
-
},
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
// CLI mode: Open browser automatically
|
|
53
|
-
console.log(chalk.blue('🔐 Starting OAuth2 authentication flow...'));
|
|
54
|
-
console.log(chalk.dim('Your browser will open to complete authentication.\n'));
|
|
55
|
-
// Capture git user info (best effort - won't fail if git not configured)
|
|
56
|
-
const gitUser = await getGitUser();
|
|
57
|
-
// Set up callback to display auth URL if browser fails to open
|
|
58
|
-
const session = await auth.login((authUrl) => {
|
|
59
|
-
console.log(chalk.dim("If your browser didn't open automatically, visit:"));
|
|
60
|
-
console.log(chalk.bold.cyan(authUrl));
|
|
61
|
-
console.log(chalk.dim('\nWaiting for authentication...\n'));
|
|
62
|
-
}, gitUser);
|
|
63
|
-
if (!session) {
|
|
64
|
-
return {
|
|
65
|
-
success: false,
|
|
66
|
-
message: chalk.red('❌ Login failed. Please try again.'),
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
// Debug: Log JWT token
|
|
70
|
-
const storedSession = await auth.getStoredSession();
|
|
71
|
-
if (storedSession) {
|
|
72
|
-
logger.debug('[AUTH_HANDLER] Login successful', { jwt: storedSession.sealed_session });
|
|
73
|
-
}
|
|
74
|
-
return {
|
|
75
|
-
success: true,
|
|
76
|
-
message: chalk.green('✅ Successfully logged in to BrainGrid!'),
|
|
77
|
-
data: session,
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
catch (error) {
|
|
82
|
-
return {
|
|
83
|
-
success: false,
|
|
84
|
-
message: chalk.red(`❌ Login failed: ${formatError(error)}`),
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
export async function handleLogout() {
|
|
89
|
-
try {
|
|
90
|
-
const auth = getAuth();
|
|
91
|
-
await auth.clearSession();
|
|
92
|
-
return {
|
|
93
|
-
success: true,
|
|
94
|
-
message: chalk.green('✅ Successfully logged out.'),
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
catch (error) {
|
|
98
|
-
return {
|
|
99
|
-
success: false,
|
|
100
|
-
message: chalk.red(`❌ Logout failed: ${formatError(error)}`),
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Complete the RPC login flow after user has authenticated in browser
|
|
106
|
-
* This waits for the OAuth callback and completes the session
|
|
107
|
-
*/
|
|
108
|
-
export async function handleCompleteLogin(context) {
|
|
109
|
-
try {
|
|
110
|
-
const auth = getAuth(context);
|
|
111
|
-
// Wait for OAuth callback and complete authentication
|
|
112
|
-
const session = await auth.completeLoginForRpc();
|
|
113
|
-
if (!session) {
|
|
114
|
-
return {
|
|
115
|
-
success: false,
|
|
116
|
-
message: 'Login failed. Please try again.',
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
// Debug: Log JWT token
|
|
120
|
-
const storedSession = await auth.getStoredSession();
|
|
121
|
-
if (storedSession) {
|
|
122
|
-
logger.debug('[AUTH_HANDLER] Complete login successful', {
|
|
123
|
-
jwt: storedSession.sealed_session,
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
return {
|
|
127
|
-
success: true,
|
|
128
|
-
message: 'Successfully logged in to BrainGrid!',
|
|
129
|
-
data: session,
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
catch (error) {
|
|
133
|
-
return {
|
|
134
|
-
success: false,
|
|
135
|
-
message: `Login failed: ${formatError(error)}`,
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
export async function handleWhoami() {
|
|
140
|
-
try {
|
|
141
|
-
const auth = getAuth();
|
|
142
|
-
const isAuthenticated = await auth.isAuthenticated();
|
|
143
|
-
if (!isAuthenticated) {
|
|
144
|
-
return {
|
|
145
|
-
success: false,
|
|
146
|
-
message: chalk.yellow('⚠️ Not logged in. Run `braingrid login` to authenticate.'),
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
const session = await auth.getStoredSession();
|
|
150
|
-
if (!session) {
|
|
151
|
-
return {
|
|
152
|
-
success: false,
|
|
153
|
-
message: chalk.red('❌ No session found.'),
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
// Debug: Log JWT token
|
|
157
|
-
logger.debug('[AUTH_HANDLER] whoami - Current session', { jwt: session.sealed_session });
|
|
158
|
-
let output = chalk.bold('\n👤 Current User\n\n');
|
|
159
|
-
output += `${chalk.bold('User ID:')} ${session.user.id}\n`;
|
|
160
|
-
output += `${chalk.bold('Email:')} ${session.user.email}\n`;
|
|
161
|
-
output += `${chalk.bold('Name:')} ${session.user.firstName} ${session.user.lastName}\n`;
|
|
162
|
-
output += `${chalk.bold('Org ID:')} ${session.organization_id}\n`;
|
|
163
|
-
output += `${chalk.bold('Session:')} ${new Date(session.created_at).toLocaleString()}\n`;
|
|
164
|
-
return {
|
|
165
|
-
success: true,
|
|
166
|
-
message: output,
|
|
167
|
-
data: session,
|
|
168
|
-
};
|
|
169
|
-
}
|
|
170
|
-
catch (error) {
|
|
171
|
-
return {
|
|
172
|
-
success: false,
|
|
173
|
-
message: chalk.red(`❌ ${formatError(error)}`),
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
//# sourceMappingURL=auth.handlers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.handlers.js","sourceRoot":"","sources":["../../src/handlers/auth.handlers.ts"],"names":[],"mappings":"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"}
|
package/dist/handlers/index.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Handlers Index
|
|
3
|
-
* Exports all handler functions
|
|
4
|
-
*/
|
|
5
|
-
export * from './types.js';
|
|
6
|
-
export * from './project.handlers.js';
|
|
7
|
-
export * from './requirement.handlers.js';
|
|
8
|
-
export * from './task.handlers.js';
|
|
9
|
-
export * from './auth.handlers.js';
|
|
10
|
-
export * from './status.handlers.js';
|
|
11
|
-
export * from './init.handlers.js';
|
|
12
|
-
export * from './update.handlers.js';
|
|
13
|
-
export * from './agent.handlers.js';
|
|
14
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC"}
|
package/dist/handlers/index.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Handlers Index
|
|
3
|
-
* Exports all handler functions
|
|
4
|
-
*/
|
|
5
|
-
export * from './types.js';
|
|
6
|
-
export * from './project.handlers.js';
|
|
7
|
-
export * from './requirement.handlers.js';
|
|
8
|
-
export * from './task.handlers.js';
|
|
9
|
-
export * from './auth.handlers.js';
|
|
10
|
-
export * from './status.handlers.js';
|
|
11
|
-
export * from './init.handlers.js';
|
|
12
|
-
export * from './update.handlers.js';
|
|
13
|
-
export * from './agent.handlers.js';
|
|
14
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Init Handler
|
|
3
|
-
* Handles the `braingrid init` command for initializing a repository with a BrainGrid project
|
|
4
|
-
*/
|
|
5
|
-
import type { HandlerResult } from './types.js';
|
|
6
|
-
export declare function handleInit(opts: {
|
|
7
|
-
project?: string;
|
|
8
|
-
force?: boolean;
|
|
9
|
-
}): Promise<HandlerResult>;
|
|
10
|
-
//# sourceMappingURL=init.handlers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init.handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/init.handlers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA+BH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAuahD,wBAAsB,UAAU,CAAC,IAAI,EAAE;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,aAAa,CAAC,CA6VzB"}
|