@commandgarden/cli 1.2.3 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/main.js +8907 -8895
  2. package/node_modules/@commandgarden/app/dist/client/assets/index-B-_w54e9.css +1 -0
  3. package/node_modules/@commandgarden/app/dist/client/assets/index-Bb1BOK1E.js +252 -0
  4. package/node_modules/@commandgarden/app/dist/client/index.html +19 -19
  5. package/node_modules/@commandgarden/app/dist/server/daemon-client.test.js +47 -0
  6. package/node_modules/@commandgarden/app/dist/server/main.d.ts +1 -0
  7. package/node_modules/@commandgarden/app/dist/server/main.js +3 -3
  8. package/node_modules/@commandgarden/app/dist/server/routes/audit.d.ts +3 -0
  9. package/node_modules/@commandgarden/app/dist/server/routes/config.d.ts +3 -0
  10. package/node_modules/@commandgarden/app/dist/server/routes/connectors.d.ts +3 -0
  11. package/node_modules/@commandgarden/app/dist/server/routes/goals.d.ts +3 -0
  12. package/node_modules/@commandgarden/app/dist/server/routes/goals.js +31 -0
  13. package/node_modules/@commandgarden/app/dist/server/routes/index.d.ts +4 -0
  14. package/node_modules/@commandgarden/app/dist/server/routes/index.js +4 -0
  15. package/node_modules/@commandgarden/app/dist/server/routes/preferences.d.ts +3 -0
  16. package/node_modules/@commandgarden/app/dist/server/routes/routes.test.js +137 -0
  17. package/node_modules/@commandgarden/app/dist/server/routes/run.d.ts +3 -0
  18. package/node_modules/@commandgarden/app/dist/server/routes/status.d.ts +3 -0
  19. package/node_modules/@commandgarden/app/dist/server/routes/timetracking-cache.d.ts +3 -0
  20. package/node_modules/@commandgarden/app/dist/server/routes/timetracking-cache.js +35 -0
  21. package/node_modules/@commandgarden/app/dist/server/store.d.ts +47 -0
  22. package/node_modules/@commandgarden/app/dist/server/store.js +112 -10
  23. package/node_modules/@commandgarden/app/dist/server/store.test.js +59 -0
  24. package/node_modules/@commandgarden/app/package.json +42 -41
  25. package/node_modules/@commandgarden/daemon/connectors/lib/msal-token.js +20 -0
  26. package/node_modules/@commandgarden/daemon/connectors/teams-room-availability.eval.js +341 -338
  27. package/node_modules/@commandgarden/daemon/connectors/teams-room-availability.yaml +46 -45
  28. package/node_modules/@commandgarden/daemon/connectors/timetracking-projects.eval.js +52 -0
  29. package/node_modules/@commandgarden/daemon/connectors/timetracking-projects.yaml +42 -0
  30. package/node_modules/@commandgarden/daemon/connectors/timetracking-report.eval.js +81 -60
  31. package/node_modules/@commandgarden/daemon/connectors/timetracking-report.yaml +52 -48
  32. package/node_modules/@commandgarden/daemon/dist/audit-store.js +8 -8
  33. package/node_modules/@commandgarden/daemon/dist/cdp-client.d.ts +24 -0
  34. package/node_modules/@commandgarden/daemon/dist/cdp-client.d.ts.map +1 -0
  35. package/node_modules/@commandgarden/daemon/dist/cdp-client.js +150 -0
  36. package/node_modules/@commandgarden/daemon/dist/cdp-client.js.map +1 -0
  37. package/node_modules/@commandgarden/daemon/dist/config.js +1 -1
  38. package/node_modules/@commandgarden/daemon/dist/config.js.map +1 -1
  39. package/node_modules/@commandgarden/daemon/package.json +30 -30
  40. package/node_modules/@commandgarden/shared/dist/daemon-client.d.ts +19 -0
  41. package/node_modules/@commandgarden/shared/dist/daemon-client.d.ts.map +1 -0
  42. package/node_modules/@commandgarden/shared/dist/daemon-client.js +129 -0
  43. package/node_modules/@commandgarden/shared/dist/daemon-client.js.map +1 -0
  44. package/node_modules/@commandgarden/shared/dist/index.d.ts +1 -0
  45. package/node_modules/@commandgarden/shared/dist/index.d.ts.map +1 -1
  46. package/node_modules/@commandgarden/shared/dist/index.js +2 -0
  47. package/node_modules/@commandgarden/shared/dist/index.js.map +1 -1
  48. package/node_modules/@commandgarden/shared/package.json +32 -32
  49. package/package.json +55 -55
  50. package/node_modules/@commandgarden/app/dist/client/assets/index-58UrF1aG.js +0 -197
  51. package/node_modules/@commandgarden/app/dist/client/assets/index-DErcb2Kp.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,30 +1,30 @@
1
- {
2
- "name": "@commandgarden/daemon",
3
- "version": "0.1.0",
4
- "private": true,
5
- "type": "module",
6
- "main": "./dist/main.js",
7
- "files": [
8
- "dist",
9
- "connectors"
10
- ],
11
- "scripts": {
12
- "build": "tsc && node scripts/copy-connectors.mjs",
13
- "start": "node dist/main.js",
14
- "test": "vitest run",
15
- "test:watch": "vitest"
16
- },
17
- "dependencies": {
18
- "@commandgarden/shared": "*",
19
- "sql.js": "^1.11.0",
20
- "fastify": "^5.0.0",
21
- "@fastify/websocket": "^11.0.0",
22
- "yaml": "^2.4.0"
23
- },
24
- "devDependencies": {
25
- "@types/node": "^22.0.0",
26
- "@types/ws": "^8.5.0",
27
- "typescript": "^5.4.0",
28
- "vitest": "^2.0.0"
29
- }
30
- }
1
+ {
2
+ "name": "@commandgarden/daemon",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "main": "./dist/main.js",
7
+ "files": [
8
+ "dist",
9
+ "connectors"
10
+ ],
11
+ "scripts": {
12
+ "build": "tsc && node scripts/copy-connectors.mjs",
13
+ "start": "node dist/main.js",
14
+ "test": "vitest run",
15
+ "test:watch": "vitest"
16
+ },
17
+ "dependencies": {
18
+ "@commandgarden/shared": "*",
19
+ "sql.js": "^1.11.0",
20
+ "fastify": "^5.0.0",
21
+ "@fastify/websocket": "^11.0.0",
22
+ "yaml": "^2.4.0"
23
+ },
24
+ "devDependencies": {
25
+ "@types/node": "^22.0.0",
26
+ "@types/ws": "^8.5.0",
27
+ "typescript": "^5.4.0",
28
+ "vitest": "^2.0.0"
29
+ }
30
+ }
@@ -0,0 +1,19 @@
1
+ export declare function readToken(tokenPath: string): string | null;
2
+ export declare class DaemonClient {
3
+ private baseUrl;
4
+ private token;
5
+ constructor(baseUrl: string, token: string);
6
+ get<T = Record<string, unknown>>(path: string): Promise<T>;
7
+ post<T = Record<string, unknown>>(path: string, body: unknown): Promise<T>;
8
+ status(): Promise<{
9
+ ok: boolean;
10
+ extensionConnected: boolean;
11
+ connectorCount: number;
12
+ }>;
13
+ pipeRaw(path: string): Promise<Response>;
14
+ connectSSE(path: string, onEvent: (event: string, data: unknown) => void, signal?: AbortSignal): Promise<void>;
15
+ private sseHeaders;
16
+ private request;
17
+ private rawFetch;
18
+ }
19
+ //# sourceMappingURL=daemon-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-client.d.ts","sourceRoot":"","sources":["../src/daemon-client.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM1D;AAED,qBAAa,YAAY;IAErB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,KAAK;gBADL,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM;IAGjB,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAI1D,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAI1E,MAAM,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,kBAAkB,EAAE,OAAO,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAcvF,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IASxC,UAAU,CACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,EAC/C,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;IAkDhB,OAAO,CAAC,UAAU;YAQJ,OAAO;IAuBrB,OAAO,CAAC,QAAQ;CAGjB"}
@@ -0,0 +1,129 @@
1
+ import { readFileSync } from 'node:fs';
2
+ export function readToken(tokenPath) {
3
+ try {
4
+ return readFileSync(tokenPath, 'utf-8').trim();
5
+ }
6
+ catch {
7
+ return null;
8
+ }
9
+ }
10
+ export class DaemonClient {
11
+ baseUrl;
12
+ token;
13
+ constructor(baseUrl, token) {
14
+ this.baseUrl = baseUrl;
15
+ this.token = token;
16
+ }
17
+ async get(path) {
18
+ return this.request('GET', path);
19
+ }
20
+ async post(path, body) {
21
+ return this.request('POST', path, body);
22
+ }
23
+ async status() {
24
+ let resp;
25
+ try {
26
+ resp = await this.rawFetch('/api/status', { method: 'GET' });
27
+ }
28
+ catch {
29
+ throw new Error('Cannot connect to daemon. Is it running? Try: cg daemon start');
30
+ }
31
+ const data = await resp.json();
32
+ if (!resp.ok) {
33
+ throw new Error(data.error ?? `HTTP ${resp.status}`);
34
+ }
35
+ return data;
36
+ }
37
+ async pipeRaw(path) {
38
+ const resp = await this.rawFetch(path, {
39
+ method: 'GET',
40
+ headers: this.sseHeaders(),
41
+ });
42
+ if (!resp.ok)
43
+ throw new Error(`SSE connection failed: HTTP ${resp.status}`);
44
+ return resp;
45
+ }
46
+ async connectSSE(path, onEvent, signal) {
47
+ const resp = await this.rawFetch(path, {
48
+ method: 'GET',
49
+ headers: this.sseHeaders(),
50
+ signal,
51
+ });
52
+ if (!resp.ok || !resp.body) {
53
+ throw new Error(`SSE connection failed: HTTP ${resp.status}`);
54
+ }
55
+ const reader = resp.body.getReader();
56
+ const decoder = new TextDecoder();
57
+ let buffer = '';
58
+ try {
59
+ while (true) {
60
+ const { done, value } = await reader.read();
61
+ if (done)
62
+ break;
63
+ buffer += decoder.decode(value, { stream: true });
64
+ const lines = buffer.split('\n');
65
+ buffer = lines.pop() ?? '';
66
+ let currentEvent = 'message';
67
+ let currentData = '';
68
+ for (const line of lines) {
69
+ if (line.startsWith('event: ')) {
70
+ currentEvent = line.slice(7).trim();
71
+ }
72
+ else if (line.startsWith('data: ')) {
73
+ currentData = line.slice(6);
74
+ }
75
+ else if (line === '') {
76
+ if (currentData) {
77
+ try {
78
+ onEvent(currentEvent, JSON.parse(currentData));
79
+ }
80
+ catch {
81
+ onEvent(currentEvent, currentData);
82
+ }
83
+ currentData = '';
84
+ currentEvent = 'message';
85
+ }
86
+ }
87
+ }
88
+ }
89
+ }
90
+ catch (err) {
91
+ if (signal?.aborted)
92
+ return;
93
+ throw err;
94
+ }
95
+ }
96
+ sseHeaders() {
97
+ return {
98
+ 'Authorization': `Bearer ${this.token}`,
99
+ 'X-CommandGarden': '1',
100
+ 'Accept': 'text/event-stream',
101
+ };
102
+ }
103
+ async request(method, path, body) {
104
+ let resp;
105
+ try {
106
+ resp = await this.rawFetch(path, {
107
+ method,
108
+ headers: {
109
+ 'Authorization': `Bearer ${this.token}`,
110
+ 'X-CommandGarden': '1',
111
+ 'Content-Type': 'application/json',
112
+ },
113
+ body: body ? JSON.stringify(body) : undefined,
114
+ });
115
+ }
116
+ catch {
117
+ throw new Error('Cannot connect to daemon. Is it running? Try: cg daemon start');
118
+ }
119
+ const data = await resp.json();
120
+ if (!resp.ok) {
121
+ throw new Error(data.error ?? `HTTP ${resp.status}`);
122
+ }
123
+ return data;
124
+ }
125
+ rawFetch(path, init) {
126
+ return fetch(`${this.baseUrl}${path}`, init);
127
+ }
128
+ }
129
+ //# sourceMappingURL=daemon-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-client.js","sourceRoot":"","sources":["../src/daemon-client.ts"],"names":[],"mappings":"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"}
@@ -5,4 +5,5 @@ export { parseConnectorYaml, validateConnectorSemantics, type LoadError, } from
5
5
  export { tokenize, parse, evaluate, interpolate, BUILT_IN_FILTERS, type Token, type TokenType, type Expr, type ExprContext, type FilterFn, } from './expression/index.js';
6
6
  export { type RunCommandRequest, type RunCommandResponse, type ApprovalConfig, type ExtensionRequest, type ExtensionResponse, type ApprovalRequest, type ApprovalResponse, isRunCommandRequest, isExtensionResponse, isApprovalRequest, isApprovalResponse, } from './protocol.js';
7
7
  export { AUDIT_EVENT_TYPES, type AuditEvent, type AuditEventType, type StepSummary, createAuditEvent, redactArgs, } from './events.js';
8
+ export { DaemonClient, readToken, } from './daemon-client.js';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,SAAS,EACd,eAAe,EACf,sBAAsB,EACtB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,KAAK,SAAS,GACf,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,WAAW,EAChB,KAAK,QAAQ,GACd,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,gBAAgB,EAChB,UAAU,GACX,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,SAAS,EACd,eAAe,EACf,sBAAsB,EACtB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,KAAK,SAAS,GACf,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,WAAW,EAChB,KAAK,QAAQ,GACd,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,gBAAgB,EAChB,UAAU,GACX,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,YAAY,EACZ,SAAS,GACV,MAAM,oBAAoB,CAAC"}
@@ -12,4 +12,6 @@ export { tokenize, parse, evaluate, interpolate, BUILT_IN_FILTERS, } from './exp
12
12
  export { isRunCommandRequest, isExtensionResponse, isApprovalRequest, isApprovalResponse, } from './protocol.js';
13
13
  // Audit events
14
14
  export { AUDIT_EVENT_TYPES, createAuditEvent, redactArgs, } from './events.js';
15
+ // Daemon client
16
+ export { DaemonClient, readToken, } from './daemon-client.js';
15
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EACL,YAAY,EAGZ,eAAe,EACf,sBAAsB,EACtB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,iBAAiB;AACjB,OAAO,EACL,mBAAmB,EAEnB,mBAAmB,EACnB,kBAAkB,GAcnB,MAAM,eAAe,CAAC;AAEvB,mBAAmB;AACnB,OAAO,EACL,eAAe,GAIhB,MAAM,gBAAgB,CAAC;AAExB,cAAc;AACd,OAAO,EACL,kBAAkB,EAClB,0BAA0B,GAE3B,MAAM,aAAa,CAAC;AAErB,oBAAoB;AACpB,OAAO,EACL,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,WAAW,EACX,gBAAgB,GAMjB,MAAM,uBAAuB,CAAC;AAE/B,WAAW;AACX,OAAO,EAQL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAEvB,eAAe;AACf,OAAO,EACL,iBAAiB,EAIjB,gBAAgB,EAChB,UAAU,GACX,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EACL,YAAY,EAGZ,eAAe,EACf,sBAAsB,EACtB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,iBAAiB;AACjB,OAAO,EACL,mBAAmB,EAEnB,mBAAmB,EACnB,kBAAkB,GAcnB,MAAM,eAAe,CAAC;AAEvB,mBAAmB;AACnB,OAAO,EACL,eAAe,GAIhB,MAAM,gBAAgB,CAAC;AAExB,cAAc;AACd,OAAO,EACL,kBAAkB,EAClB,0BAA0B,GAE3B,MAAM,aAAa,CAAC;AAErB,oBAAoB;AACpB,OAAO,EACL,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,WAAW,EACX,gBAAgB,GAMjB,MAAM,uBAAuB,CAAC;AAE/B,WAAW;AACX,OAAO,EAQL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAEvB,eAAe;AACf,OAAO,EACL,iBAAiB,EAIjB,gBAAgB,EAChB,UAAU,GACX,MAAM,aAAa,CAAC;AAErB,gBAAgB;AAChB,OAAO,EACL,YAAY,EACZ,SAAS,GACV,MAAM,oBAAoB,CAAC"}
@@ -1,32 +1,32 @@
1
- {
2
- "name": "@commandgarden/shared",
3
- "version": "0.1.0",
4
- "description": "Shared types and utilities for CommandGarden",
5
- "private": true,
6
- "type": "module",
7
- "main": "./dist/index.js",
8
- "files": [
9
- "dist"
10
- ],
11
- "types": "./dist/index.d.ts",
12
- "exports": {
13
- ".": {
14
- "types": "./dist/index.d.ts",
15
- "import": "./dist/index.js"
16
- }
17
- },
18
- "scripts": {
19
- "build": "tsc",
20
- "test": "vitest run",
21
- "test:watch": "vitest"
22
- },
23
- "dependencies": {
24
- "yaml": "^2.4.0",
25
- "zod": "^3.23.0"
26
- },
27
- "devDependencies": {
28
- "@types/node": "^26.0.0",
29
- "typescript": "^5.4.0",
30
- "vitest": "^2.0.0"
31
- }
32
- }
1
+ {
2
+ "name": "@commandgarden/shared",
3
+ "version": "0.1.0",
4
+ "description": "Shared types and utilities for CommandGarden",
5
+ "private": true,
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "types": "./dist/index.d.ts",
12
+ "exports": {
13
+ ".": {
14
+ "types": "./dist/index.d.ts",
15
+ "import": "./dist/index.js"
16
+ }
17
+ },
18
+ "scripts": {
19
+ "build": "tsc",
20
+ "test": "vitest run",
21
+ "test:watch": "vitest"
22
+ },
23
+ "dependencies": {
24
+ "yaml": "^2.4.0",
25
+ "zod": "^3.23.0"
26
+ },
27
+ "devDependencies": {
28
+ "@types/node": "^26.0.0",
29
+ "typescript": "^5.4.0",
30
+ "vitest": "^2.0.0"
31
+ }
32
+ }
package/package.json CHANGED
@@ -1,55 +1,55 @@
1
- {
2
- "name": "@commandgarden/cli",
3
- "version": "1.2.3",
4
- "description": "Enterprise browser automation CLI",
5
- "type": "module",
6
- "license": "MIT",
7
- "main": "./dist/main.js",
8
- "bin": {
9
- "commandgarden": "dist/main.js",
10
- "cg": "dist/main.js"
11
- },
12
- "files": [
13
- "dist"
14
- ],
15
- "engines": {
16
- "node": ">=20"
17
- },
18
- "keywords": [
19
- "browser-automation",
20
- "cli",
21
- "enterprise",
22
- "commandgarden"
23
- ],
24
- "scripts": {
25
- "build": "tsup",
26
- "prepack": "node scripts/prepare-bundle.mjs",
27
- "start": "node dist/main.js",
28
- "test": "vitest run",
29
- "test:watch": "vitest"
30
- },
31
- "bundleDependencies": [
32
- "@commandgarden/daemon",
33
- "@commandgarden/app",
34
- "@commandgarden/shared"
35
- ],
36
- "dependencies": {
37
- "@commandgarden/app": "*",
38
- "@commandgarden/daemon": "*",
39
- "@commandgarden/shared": "*",
40
- "@fastify/static": "^8.0.0",
41
- "@fastify/websocket": "^11.0.0",
42
- "sql.js": "^1.11.0",
43
- "cli-table3": "^0.6.0",
44
- "commander": "^12.0.0",
45
- "fastify": "^5.0.0",
46
- "yaml": "^2.4.0",
47
- "zod": "^3.23.0"
48
- },
49
- "devDependencies": {
50
- "@types/node": "^22.0.0",
51
- "tsup": "^8.5.1",
52
- "typescript": "^5.4.0",
53
- "vitest": "^2.0.0"
54
- }
55
- }
1
+ {
2
+ "name": "@commandgarden/cli",
3
+ "version": "1.3.0",
4
+ "description": "Enterprise browser automation CLI",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "main": "./dist/main.js",
8
+ "bin": {
9
+ "commandgarden": "dist/main.js",
10
+ "cg": "dist/main.js"
11
+ },
12
+ "files": [
13
+ "dist"
14
+ ],
15
+ "engines": {
16
+ "node": ">=20"
17
+ },
18
+ "keywords": [
19
+ "browser-automation",
20
+ "cli",
21
+ "enterprise",
22
+ "commandgarden"
23
+ ],
24
+ "scripts": {
25
+ "build": "tsup",
26
+ "prepack": "node scripts/prepare-bundle.mjs",
27
+ "start": "node dist/main.js",
28
+ "test": "vitest run",
29
+ "test:watch": "vitest"
30
+ },
31
+ "bundleDependencies": [
32
+ "@commandgarden/daemon",
33
+ "@commandgarden/app",
34
+ "@commandgarden/shared"
35
+ ],
36
+ "dependencies": {
37
+ "@commandgarden/app": "*",
38
+ "@commandgarden/daemon": "*",
39
+ "@commandgarden/shared": "*",
40
+ "@fastify/static": "^8.0.0",
41
+ "@fastify/websocket": "^11.0.0",
42
+ "sql.js": "^1.11.0",
43
+ "cli-table3": "^0.6.0",
44
+ "commander": "^12.0.0",
45
+ "fastify": "^5.0.0",
46
+ "yaml": "^2.4.0",
47
+ "zod": "^3.23.0"
48
+ },
49
+ "devDependencies": {
50
+ "@types/node": "^22.0.0",
51
+ "tsup": "^8.5.1",
52
+ "typescript": "^5.4.0",
53
+ "vitest": "^2.0.0"
54
+ }
55
+ }