gipity 1.0.68 → 1.0.93
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 +5 -5
- package/dist/api.js +2 -3
- package/dist/api.js.map +1 -1
- package/dist/auth.js +1 -2
- package/dist/auth.js.map +1 -1
- package/dist/banner.d.ts +6 -0
- package/dist/banner.js +162 -0
- package/dist/banner.js.map +1 -0
- package/dist/colors.d.ts +22 -0
- package/dist/colors.js +52 -0
- package/dist/colors.js.map +1 -0
- package/dist/commands/agent.js +8 -7
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/api.js +8 -7
- package/dist/commands/api.js.map +1 -1
- package/dist/commands/audit.js +4 -3
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/browser.js +19 -18
- package/dist/commands/browser.js.map +1 -1
- package/dist/commands/chat.js +17 -5
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/checkpoint.js +5 -4
- package/dist/commands/checkpoint.js.map +1 -1
- package/dist/commands/claude.d.ts +2 -0
- package/dist/commands/claude.js +315 -0
- package/dist/commands/claude.js.map +1 -0
- package/dist/commands/credits.js +5 -4
- package/dist/commands/credits.js.map +1 -1
- package/dist/commands/db.js +5 -4
- package/dist/commands/db.js.map +1 -1
- package/dist/commands/deploy.js +6 -7
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/email.js +3 -2
- package/dist/commands/email.js.map +1 -1
- package/dist/commands/file.js +7 -5
- package/dist/commands/file.js.map +1 -1
- package/dist/commands/fn.js +9 -7
- package/dist/commands/fn.js.map +1 -1
- package/dist/commands/generate.d.ts +2 -0
- package/dist/commands/generate.js +184 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/commands/init.js +12 -12
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.js +7 -7
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logs.js +8 -6
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/memory.js +7 -6
- package/dist/commands/memory.js.map +1 -1
- package/dist/commands/project.js +8 -7
- package/dist/commands/project.js.map +1 -1
- package/dist/commands/push.js +2 -1
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/rbac.js +4 -3
- package/dist/commands/rbac.js.map +1 -1
- package/dist/commands/records.js +8 -7
- package/dist/commands/records.js.map +1 -1
- package/dist/commands/sandbox.js +3 -2
- package/dist/commands/sandbox.js.map +1 -1
- package/dist/commands/scaffold.js +4 -3
- package/dist/commands/scaffold.js.map +1 -1
- package/dist/commands/skills.d.ts +2 -0
- package/dist/commands/skills.js +60 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/start-cc.js +78 -51
- package/dist/commands/start-cc.js.map +1 -1
- package/dist/commands/status.js +8 -7
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/sync.js +3 -2
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/workflow.js +14 -12
- package/dist/commands/workflow.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.js +8 -0
- package/dist/config.js.map +1 -1
- package/dist/gip3dw-guide.d.ts +1 -1
- package/dist/gip3dw-guide.js +4 -2
- package/dist/gip3dw-guide.js.map +1 -1
- package/dist/gipcc.js +2 -2
- package/dist/gipcc.js.map +1 -1
- package/dist/gipccd.js +2 -2
- package/dist/gipccd.js.map +1 -1
- package/dist/help-skills.d.ts +7 -0
- package/dist/help-skills.js +33 -0
- package/dist/help-skills.js.map +1 -0
- package/dist/index.js +28 -8
- package/dist/index.js.map +1 -1
- package/dist/platform-overview.d.ts +1 -1
- package/dist/platform-overview.js +3 -1
- package/dist/platform-overview.js.map +1 -1
- package/dist/provider-docs.d.ts +27 -0
- package/dist/provider-docs.js +69 -0
- package/dist/provider-docs.js.map +1 -0
- package/dist/setup.d.ts +1 -1
- package/dist/setup.js +63 -49
- package/dist/setup.js.map +1 -1
- package/dist/sync.js +40 -1
- package/dist/sync.js.map +1 -1
- package/dist/utils.d.ts +5 -0
- package/dist/utils.js +39 -0
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credits.js","sourceRoot":"","sources":["../../src/commands/credits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"credits.js","sourceRoot":"","sources":["../../src/commands/credits.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/db.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import { get, post, sendMessage } from '../api.js';
|
|
3
3
|
import { requireConfig } from '../config.js';
|
|
4
|
+
import { error as clrError } from '../colors.js';
|
|
4
5
|
export const dbCommand = new Command('db')
|
|
5
6
|
.description('Manage project databases');
|
|
6
7
|
dbCommand
|
|
@@ -16,7 +17,7 @@ dbCommand
|
|
|
16
17
|
if (!dbName) {
|
|
17
18
|
const listRes = await get(`/projects/${config.projectGuid}/databases`);
|
|
18
19
|
if (listRes.data.length === 0) {
|
|
19
|
-
console.error('No databases found. Create one first: gipity db create <name>');
|
|
20
|
+
console.error(clrError('No databases found. Create one first: gipity db create <name>'));
|
|
20
21
|
process.exit(1);
|
|
21
22
|
}
|
|
22
23
|
dbName = listRes.data[0].friendlyName;
|
|
@@ -48,7 +49,7 @@ dbCommand
|
|
|
48
49
|
}
|
|
49
50
|
}
|
|
50
51
|
catch (err) {
|
|
51
|
-
console.error(`Query failed: ${err.message}`);
|
|
52
|
+
console.error(clrError(`Query failed: ${err.message}`));
|
|
52
53
|
process.exit(1);
|
|
53
54
|
}
|
|
54
55
|
});
|
|
@@ -75,7 +76,7 @@ dbCommand
|
|
|
75
76
|
}
|
|
76
77
|
}
|
|
77
78
|
catch (err) {
|
|
78
|
-
console.error(`List failed: ${err.message}`);
|
|
79
|
+
console.error(clrError(`List failed: ${err.message}`));
|
|
79
80
|
process.exit(1);
|
|
80
81
|
}
|
|
81
82
|
});
|
|
@@ -95,7 +96,7 @@ dbCommand
|
|
|
95
96
|
}
|
|
96
97
|
}
|
|
97
98
|
catch (err) {
|
|
98
|
-
console.error(`Create failed: ${err.message}`);
|
|
99
|
+
console.error(clrError(`Create failed: ${err.message}`));
|
|
99
100
|
process.exit(1);
|
|
100
101
|
}
|
|
101
102
|
});
|
package/dist/commands/db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/commands/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/commands/db.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/deploy.js
CHANGED
|
@@ -3,6 +3,7 @@ import { post } from '../api.js';
|
|
|
3
3
|
import { requireConfig } from '../config.js';
|
|
4
4
|
import { syncUp } from '../sync.js';
|
|
5
5
|
import { formatSize } from '../utils.js';
|
|
6
|
+
import { success, error as clrError, info, warning, muted } from '../colors.js';
|
|
6
7
|
export const deployCommand = new Command('deploy')
|
|
7
8
|
.description('Deploy project to dev or prod')
|
|
8
9
|
.argument('[target]', 'dev or prod', 'dev')
|
|
@@ -12,7 +13,7 @@ export const deployCommand = new Command('deploy')
|
|
|
12
13
|
.action(async (target, opts) => {
|
|
13
14
|
try {
|
|
14
15
|
if (target !== 'dev' && target !== 'prod') {
|
|
15
|
-
console.error('Target must be "dev" or "prod"');
|
|
16
|
+
console.error(clrError('Target must be "dev" or "prod"'));
|
|
16
17
|
process.exit(1);
|
|
17
18
|
}
|
|
18
19
|
const config = requireConfig();
|
|
@@ -25,7 +26,7 @@ export const deployCommand = new Command('deploy')
|
|
|
25
26
|
}
|
|
26
27
|
// Deploy
|
|
27
28
|
if (!opts.json)
|
|
28
|
-
console.log(`Deploying to ${target}...`);
|
|
29
|
+
console.log(info(`Deploying to ${target}...`));
|
|
29
30
|
const res = await post(`/projects/${config.projectGuid}/deploy`, {
|
|
30
31
|
target,
|
|
31
32
|
sourceDir: opts.sourceDir,
|
|
@@ -35,20 +36,18 @@ export const deployCommand = new Command('deploy')
|
|
|
35
36
|
}
|
|
36
37
|
else {
|
|
37
38
|
if (res.data.warning) {
|
|
38
|
-
console.log(res.data.warning);
|
|
39
|
+
console.log(warning(res.data.warning));
|
|
39
40
|
}
|
|
40
41
|
else {
|
|
41
42
|
const d = res.data;
|
|
42
43
|
const size = formatSize(d.totalBytes);
|
|
43
44
|
const parts = [`${d.fileCount} files`, size, `${d.elapsedMs}ms`];
|
|
44
|
-
|
|
45
|
-
parts.push(`fw v${d.frameworkVersion}`);
|
|
46
|
-
console.log(`${d.url} (${parts.join(', ')})`);
|
|
45
|
+
console.log(`${success(d.url)} ${muted(`(${parts.join(', ')})`)}`);
|
|
47
46
|
}
|
|
48
47
|
}
|
|
49
48
|
}
|
|
50
49
|
catch (err) {
|
|
51
|
-
console.error(`Deploy failed: ${err.message}`);
|
|
50
|
+
console.error(clrError(`Deploy failed: ${err.message}`));
|
|
52
51
|
process.exit(1);
|
|
53
52
|
}
|
|
54
53
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/email.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import { post } from '../api.js';
|
|
3
3
|
import { requireConfig } from '../config.js';
|
|
4
|
+
import { error as clrError, success } from '../colors.js';
|
|
4
5
|
export const emailCommand = new Command('email')
|
|
5
6
|
.description('Send an email to yourself')
|
|
6
7
|
.requiredOption('--subject <subject>', 'Email subject')
|
|
@@ -19,11 +20,11 @@ export const emailCommand = new Command('email')
|
|
|
19
20
|
console.log(JSON.stringify(res.data));
|
|
20
21
|
}
|
|
21
22
|
else {
|
|
22
|
-
console.log(`Email sent to ${res.data.to}: ${res.data.subject}`);
|
|
23
|
+
console.log(success(`Email sent to ${res.data.to}: ${res.data.subject}`));
|
|
23
24
|
}
|
|
24
25
|
}
|
|
25
26
|
catch (err) {
|
|
26
|
-
console.error(`Email failed: ${err.message}`);
|
|
27
|
+
console.error(clrError(`Email failed: ${err.message}`));
|
|
27
28
|
process.exit(1);
|
|
28
29
|
}
|
|
29
30
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.js","sourceRoot":"","sources":["../../src/commands/email.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"email.js","sourceRoot":"","sources":["../../src/commands/email.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC7C,WAAW,CAAC,2BAA2B,CAAC;KACxC,cAAc,CAAC,qBAAqB,EAAE,eAAe,CAAC;KACtD,cAAc,CAAC,eAAe,EAAE,yBAAyB,CAAC;KAC1D,MAAM,CAAC,eAAe,EAAE,oBAAoB,CAAC;KAC7C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,IAAI,CAAC;QACH,aAAa,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,MAAM,IAAI,CAA4C,mBAAmB,EAAE;YACrF,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
package/dist/commands/file.js
CHANGED
|
@@ -2,6 +2,7 @@ import { Command } from 'commander';
|
|
|
2
2
|
import { get, del } from '../api.js';
|
|
3
3
|
import { requireConfig } from '../config.js';
|
|
4
4
|
import { formatSize } from '../utils.js';
|
|
5
|
+
import { info, error as clrError, muted } from '../colors.js';
|
|
5
6
|
export const fileCommand = new Command('file')
|
|
6
7
|
.description('Browse remote files (without sync)');
|
|
7
8
|
fileCommand
|
|
@@ -23,13 +24,14 @@ fileCommand
|
|
|
23
24
|
else {
|
|
24
25
|
for (const f of res.data) {
|
|
25
26
|
const size = f.type === 'directory' ? '<DIR>' : formatSize(Number(f.size));
|
|
26
|
-
|
|
27
|
+
const name = f.type === 'directory' ? info(`${f.name}/`) : f.name;
|
|
28
|
+
console.log(`${muted(size.padStart(10))} ${name}`);
|
|
27
29
|
}
|
|
28
30
|
}
|
|
29
31
|
}
|
|
30
32
|
}
|
|
31
33
|
catch (err) {
|
|
32
|
-
console.error(`List failed: ${err.message}`);
|
|
34
|
+
console.error(clrError(`List failed: ${err.message}`));
|
|
33
35
|
process.exit(1);
|
|
34
36
|
}
|
|
35
37
|
});
|
|
@@ -49,7 +51,7 @@ fileCommand
|
|
|
49
51
|
}
|
|
50
52
|
}
|
|
51
53
|
catch (err) {
|
|
52
|
-
console.error(`Read failed: ${err.message}`);
|
|
54
|
+
console.error(clrError(`Read failed: ${err.message}`));
|
|
53
55
|
process.exit(1);
|
|
54
56
|
}
|
|
55
57
|
});
|
|
@@ -78,7 +80,7 @@ fileCommand
|
|
|
78
80
|
}
|
|
79
81
|
}
|
|
80
82
|
catch (err) {
|
|
81
|
-
console.error(`Tree failed: ${err.message}`);
|
|
83
|
+
console.error(clrError(`Tree failed: ${err.message}`));
|
|
82
84
|
process.exit(1);
|
|
83
85
|
}
|
|
84
86
|
});
|
|
@@ -98,7 +100,7 @@ fileCommand
|
|
|
98
100
|
}
|
|
99
101
|
}
|
|
100
102
|
catch (err) {
|
|
101
|
-
console.error(`Delete failed: ${err.message}`);
|
|
103
|
+
console.error(clrError(`Delete failed: ${err.message}`));
|
|
102
104
|
process.exit(1);
|
|
103
105
|
}
|
|
104
106
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/commands/file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/commands/file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,KAAK,IAAI,QAAQ,EAAE,KAAK,EAAW,MAAM,cAAc,CAAC;AASvE,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,oCAAoC,CAAC,CAAC;AAErD,WAAW;KACR,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,8BAA8B,CAAC;KAC3C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,IAAI,EAAE,EAAE;IAC/C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,GAAG,GAAG,MAAM,GAAG,CAAwB,aAAa,MAAM,CAAC,WAAW,SAAS,KAAK,EAAE,CAAC,CAAC;QAE9F,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;oBACzB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC3E,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBAClE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,WAAW;KACR,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,oBAAoB,CAAC;KACjC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAI,EAAE,EAAE;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,MAAM,GAAG,CACnB,aAAa,MAAM,CAAC,WAAW,oBAAoB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAC9E,CAAC;QAEF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,WAAW;KACR,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,qBAAqB,CAAC;KAClC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,IAAI,EAAE,EAAE;IAC/C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,GAAG,GAAG,MAAM,GAAG,CACnB,aAAa,MAAM,CAAC,WAAW,cAAc,KAAK,EAAE,CACrD,CAAC;QAEF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;oBACzB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;oBACzE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,WAAW;KACR,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAI,EAAE,EAAE;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,MAAM,GAAG,CACnB,aAAa,MAAM,CAAC,WAAW,eAAe,kBAAkB,CAAC,IAAI,CAAC,EAAE,CACzE,CAAC;QAEF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
package/dist/commands/fn.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import { get, post } from '../api.js';
|
|
3
3
|
import { requireConfig } from '../config.js';
|
|
4
|
+
import { error as clrError, bold, muted, success } from '../colors.js';
|
|
4
5
|
export const fnCommand = new Command('fn')
|
|
5
6
|
.description('Manage sandboxed functions');
|
|
6
7
|
fnCommand
|
|
@@ -19,14 +20,14 @@ fnCommand
|
|
|
19
20
|
}
|
|
20
21
|
else {
|
|
21
22
|
for (const f of res.data) {
|
|
22
|
-
console.log(`${f.name} v${f.version} ${f.auth_level} timeout=${f.timeout_ms}ms`);
|
|
23
|
+
console.log(`${bold(f.name)} ${muted(`v${f.version}`)} ${muted(f.auth_level)} ${muted(`timeout=${f.timeout_ms}ms`)}`);
|
|
23
24
|
if (f.description)
|
|
24
|
-
console.log(` ${f.description}`);
|
|
25
|
+
console.log(` ${muted(f.description)}`);
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
28
|
}
|
|
28
29
|
catch (err) {
|
|
29
|
-
console.error(`List failed: ${err.message}`);
|
|
30
|
+
console.error(clrError(`List failed: ${err.message}`));
|
|
30
31
|
process.exit(1);
|
|
31
32
|
}
|
|
32
33
|
});
|
|
@@ -49,14 +50,15 @@ fnCommand
|
|
|
49
50
|
for (const log of res.data) {
|
|
50
51
|
const dur = log.duration_ms != null ? `${log.duration_ms}ms` : '?';
|
|
51
52
|
const ts = new Date(log.created_at).toLocaleString();
|
|
52
|
-
|
|
53
|
+
const statusColor = log.status === 'success' ? success : log.status === 'error' ? clrError : muted;
|
|
54
|
+
console.log(`${statusColor(log.status)} ${dur} ${muted(log.trigger_type || 'http')} ${muted(ts)}`);
|
|
53
55
|
if (log.error_message)
|
|
54
|
-
console.log(` error: ${log.error_message}`);
|
|
56
|
+
console.log(` ${clrError(`error: ${log.error_message}`)}`);
|
|
55
57
|
}
|
|
56
58
|
}
|
|
57
59
|
}
|
|
58
60
|
catch (err) {
|
|
59
|
-
console.error(`Logs failed: ${err.message}`);
|
|
61
|
+
console.error(clrError(`Logs failed: ${err.message}`));
|
|
60
62
|
process.exit(1);
|
|
61
63
|
}
|
|
62
64
|
});
|
|
@@ -80,7 +82,7 @@ fnCommand
|
|
|
80
82
|
console.log(opts.json ? JSON.stringify(res.data) : res.data.content);
|
|
81
83
|
}
|
|
82
84
|
catch (err) {
|
|
83
|
-
console.error(`Call failed: ${err.message}`);
|
|
85
|
+
console.error(clrError(`Call failed: ${err.message}`));
|
|
84
86
|
process.exit(1);
|
|
85
87
|
}
|
|
86
88
|
});
|
package/dist/commands/fn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fn.js","sourceRoot":"","sources":["../../src/commands/fn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"fn.js","sourceRoot":"","sources":["../../src/commands/fn.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { post } from '../api.js';
|
|
3
|
+
import { requireConfig } from '../config.js';
|
|
4
|
+
import { writeFileSync } from 'fs';
|
|
5
|
+
import { error as clrError, success, muted, info } from '../colors.js';
|
|
6
|
+
import { IMAGE_MODELS_DOC, IMAGE_GEMINI_ASPECT_RATIOS, IMAGE_GEMINI_SIZES, VIDEO_MODELS_DOC, TTS_PROVIDER_DESCRIPTIONS } from '../provider-docs.js';
|
|
7
|
+
/** Download a URL and save to a local file */
|
|
8
|
+
async function downloadFile(url, filename) {
|
|
9
|
+
const res = await fetch(url);
|
|
10
|
+
if (!res.ok)
|
|
11
|
+
throw new Error(`Download failed: ${res.status}`);
|
|
12
|
+
const buffer = Buffer.from(await res.arrayBuffer());
|
|
13
|
+
writeFileSync(filename, buffer);
|
|
14
|
+
}
|
|
15
|
+
// ── IMAGE ──────────────────────────────────────────────────────────────
|
|
16
|
+
const imageCommand = new Command('image')
|
|
17
|
+
.description(`Generate an image from a text prompt using AI.
|
|
18
|
+
|
|
19
|
+
Models: ${IMAGE_MODELS_DOC}
|
|
20
|
+
|
|
21
|
+
Gemini-specific options:
|
|
22
|
+
--aspect-ratio Control output shape: ${IMAGE_GEMINI_ASPECT_RATIOS}
|
|
23
|
+
--image-size Control resolution: ${IMAGE_GEMINI_SIZES} (default: 1K)
|
|
24
|
+
|
|
25
|
+
Examples:
|
|
26
|
+
gipity generate image "a cat wearing a top hat"
|
|
27
|
+
gipity generate image "landscape sunset" --provider gemini --aspect-ratio 16:9 --image-size 2K
|
|
28
|
+
gipity generate image "product photo" --provider openai --model gpt-image-1 --size 1536x1024 --quality high
|
|
29
|
+
gipity generate image "abstract art" --provider bfl --model flux-2-pro -o art.png`)
|
|
30
|
+
.argument('<prompt>', 'Text description of the image to generate')
|
|
31
|
+
.option('--provider <provider>', 'Image provider: openai, bfl, or gemini (default: bfl)')
|
|
32
|
+
.option('--model <model>', 'Model ID (see provider list above)')
|
|
33
|
+
.option('--size <size>', 'Dimensions as WxH, e.g. "1024x1024" (OpenAI/BFL)')
|
|
34
|
+
.option('--quality <quality>', 'Quality: low|medium|high|auto (gpt-image-1), standard|hd (dall-e-3)')
|
|
35
|
+
.option('--aspect-ratio <ratio>', 'Aspect ratio (Gemini only): 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 4:5, 5:4, 21:9')
|
|
36
|
+
.option('--image-size <size>', 'Output resolution (Gemini only): 512, 1K, 2K, 4K')
|
|
37
|
+
.option('-o, --output <file>', 'Output filename (default: generated.png)')
|
|
38
|
+
.option('--json', 'Output as JSON')
|
|
39
|
+
.action(async (prompt, opts) => {
|
|
40
|
+
try {
|
|
41
|
+
const config = requireConfig();
|
|
42
|
+
const result = await post(`/projects/${config.projectGuid}/generate/image`, {
|
|
43
|
+
prompt,
|
|
44
|
+
provider: opts.provider,
|
|
45
|
+
model: opts.model,
|
|
46
|
+
size: opts.size,
|
|
47
|
+
quality: opts.quality,
|
|
48
|
+
aspect_ratio: opts.aspectRatio,
|
|
49
|
+
image_size: opts.imageSize,
|
|
50
|
+
});
|
|
51
|
+
const ext = result.content_type.includes('png') ? 'png' : 'jpg';
|
|
52
|
+
const filename = opts.output || `generated.${ext}`;
|
|
53
|
+
await downloadFile(result.url, filename);
|
|
54
|
+
if (opts.json) {
|
|
55
|
+
console.log(JSON.stringify({ ...result, saved: filename }));
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
const sizeKb = Math.round(result.size_bytes / 1024);
|
|
59
|
+
console.log(`${muted(`Generated with ${result.provider}/${result.model} (${sizeKb}KB)`)}`);
|
|
60
|
+
console.log(success(`Saved to ${filename}`));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
console.error(clrError(`Image generation failed: ${err.message}`));
|
|
65
|
+
process.exit(1);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
// ── VIDEO ──────────────────────────────────────────────────────────────
|
|
69
|
+
const videoCommand = new Command('video')
|
|
70
|
+
.description(`Generate a short video (up to 8 seconds) from a text prompt using Google Veo.
|
|
71
|
+
|
|
72
|
+
Models: ${VIDEO_MODELS_DOC}
|
|
73
|
+
|
|
74
|
+
Options:
|
|
75
|
+
--aspect 16:9 (landscape, default), 9:16 (portrait/vertical), 1:1 (square)
|
|
76
|
+
--resolution 720p (default), 1080p, 4k
|
|
77
|
+
|
|
78
|
+
Tips:
|
|
79
|
+
- Describe the scene, camera movement, lighting, and any dialogue
|
|
80
|
+
- Generation takes 30-120 seconds depending on model
|
|
81
|
+
- Videos include AI-generated audio
|
|
82
|
+
|
|
83
|
+
Examples:
|
|
84
|
+
gipity generate video "a bird flying over a mountain lake at sunset"
|
|
85
|
+
gipity generate video "close-up of coffee being poured" --model veo-3.1-fast-generate-preview
|
|
86
|
+
gipity generate video "vertical dance video" --aspect 9:16 --resolution 1080p -o dance.mp4`)
|
|
87
|
+
.argument('<prompt>', 'Description of the video scene, action, camera movement, and dialogue')
|
|
88
|
+
.option('--model <model>', 'Veo model: veo-3.1-generate-preview (quality), veo-3.1-fast-generate-preview (speed), veo-3.1-lite-generate-preview (budget)')
|
|
89
|
+
.option('--aspect <ratio>', 'Aspect ratio: 16:9 (landscape), 9:16 (portrait), 1:1 (square)')
|
|
90
|
+
.option('--resolution <res>', 'Video resolution: 720p, 1080p, 4k')
|
|
91
|
+
.option('-o, --output <file>', 'Output filename (default: generated.mp4)')
|
|
92
|
+
.option('--json', 'Output as JSON')
|
|
93
|
+
.action(async (prompt, opts) => {
|
|
94
|
+
try {
|
|
95
|
+
const config = requireConfig();
|
|
96
|
+
console.log(info('Generating video (this may take 30-120 seconds)...'));
|
|
97
|
+
const result = await post(`/projects/${config.projectGuid}/generate/video`, {
|
|
98
|
+
prompt,
|
|
99
|
+
model: opts.model,
|
|
100
|
+
aspect_ratio: opts.aspect,
|
|
101
|
+
resolution: opts.resolution,
|
|
102
|
+
});
|
|
103
|
+
const filename = opts.output || 'generated.mp4';
|
|
104
|
+
await downloadFile(result.url, filename);
|
|
105
|
+
if (opts.json) {
|
|
106
|
+
console.log(JSON.stringify({ ...result, saved: filename }));
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
const sizeKb = Math.round(result.size_bytes / 1024);
|
|
110
|
+
console.log(`${muted(`Generated with ${result.provider}/${result.model} (${sizeKb}KB)`)}`);
|
|
111
|
+
console.log(success(`Saved to ${filename}`));
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
console.error(clrError(`Video generation failed: ${err.message}`));
|
|
116
|
+
process.exit(1);
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
// ── SPEECH ─────────────────────────────────────────────────────────────
|
|
120
|
+
const speechCommand = new Command('speech')
|
|
121
|
+
.description(`Generate speech audio from text using text-to-speech.
|
|
122
|
+
|
|
123
|
+
Providers: ${Object.entries(TTS_PROVIDER_DESCRIPTIONS).map(([k, v]) => `${k} — ${v}`).join('\n ')}
|
|
124
|
+
|
|
125
|
+
Gemini-specific options:
|
|
126
|
+
--language BCP-47 language code (e.g. ja-JP, es-ES, fr-FR). 60+ languages supported.
|
|
127
|
+
--speakers Multi-speaker mode (up to 2). JSON array: [{"name":"Joe","voice":"Kore"},{"name":"Jane","voice":"Puck"}]
|
|
128
|
+
When using multi-speaker, format your text as "Name: dialogue" on each line.
|
|
129
|
+
|
|
130
|
+
Examples:
|
|
131
|
+
gipity generate speech "Hello, welcome to Gipity!"
|
|
132
|
+
gipity generate speech "こんにちは世界" --provider gemini --voice Kore --language ja-JP
|
|
133
|
+
gipity generate speech "Bonjour le monde" --provider gemini --language fr-FR
|
|
134
|
+
gipity generate speech 'Joe: Hey!\\nJane: Hi there!' --provider gemini --speakers '[{"name":"Joe","voice":"Charon"},{"name":"Jane","voice":"Leda"}]'`)
|
|
135
|
+
.argument('<text>', 'Text to convert to speech (max 5000 characters)')
|
|
136
|
+
.option('--provider <provider>', 'TTS provider: elevenlabs (default), openai, or gemini')
|
|
137
|
+
.option('--voice <voice>', 'Voice ID or name (provider-specific)')
|
|
138
|
+
.option('--language <code>', 'BCP-47 language code, e.g. ja-JP, es-ES (Gemini only, 60+ languages)')
|
|
139
|
+
.option('--speakers <json>', 'Multi-speaker config as JSON array (Gemini only, up to 2 speakers)')
|
|
140
|
+
.option('-o, --output <file>', 'Output filename (default: speech.mp3)')
|
|
141
|
+
.option('--json', 'Output as JSON')
|
|
142
|
+
.action(async (text, opts) => {
|
|
143
|
+
try {
|
|
144
|
+
const config = requireConfig();
|
|
145
|
+
let speakers;
|
|
146
|
+
if (opts.speakers) {
|
|
147
|
+
try {
|
|
148
|
+
speakers = JSON.parse(opts.speakers);
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
console.error(clrError('Invalid --speakers JSON'));
|
|
152
|
+
process.exit(1);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
const result = await post(`/projects/${config.projectGuid}/generate/speech`, {
|
|
156
|
+
text,
|
|
157
|
+
provider: opts.provider,
|
|
158
|
+
voice: opts.voice,
|
|
159
|
+
language: opts.language,
|
|
160
|
+
speakers,
|
|
161
|
+
});
|
|
162
|
+
const filename = opts.output || 'speech.mp3';
|
|
163
|
+
await downloadFile(result.url, filename);
|
|
164
|
+
if (opts.json) {
|
|
165
|
+
console.log(JSON.stringify({ ...result, saved: filename }));
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
const sizeKb = Math.round(result.size_bytes / 1024);
|
|
169
|
+
console.log(`${muted(`Generated with ${result.provider} (${sizeKb}KB)`)}`);
|
|
170
|
+
console.log(success(`Saved to ${filename}`));
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
catch (err) {
|
|
174
|
+
console.error(clrError(`Speech generation failed: ${err.message}`));
|
|
175
|
+
process.exit(1);
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
// ── PARENT COMMAND ─────────────────────────────────────────────────────
|
|
179
|
+
export const generateCommand = new Command('generate')
|
|
180
|
+
.description('Generate media (images, videos, speech) using AI')
|
|
181
|
+
.addCommand(imageCommand)
|
|
182
|
+
.addCommand(videoCommand)
|
|
183
|
+
.addCommand(speechCommand);
|
|
184
|
+
//# sourceMappingURL=generate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,yBAAyB,EAAyB,MAAM,qBAAqB,CAAC;AAU3K,8CAA8C;AAC9C,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,QAAgB;IACvD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACpD,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,0EAA0E;AAE1E,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KACtC,WAAW,CAAC;;UAEL,gBAAgB;;;2CAGiB,0BAA0B;yCAC5B,kBAAkB;;;;;;oFAMyB,CAAC;KAClF,QAAQ,CAAC,UAAU,EAAE,2CAA2C,CAAC;KACjE,MAAM,CAAC,uBAAuB,EAAE,uDAAuD,CAAC;KACxF,MAAM,CAAC,iBAAiB,EAAE,oCAAoC,CAAC;KAC/D,MAAM,CAAC,eAAe,EAAE,kDAAkD,CAAC;KAC3E,MAAM,CAAC,qBAAqB,EAAE,qEAAqE,CAAC;KACpG,MAAM,CAAC,wBAAwB,EAAE,iFAAiF,CAAC;KACnH,MAAM,CAAC,qBAAqB,EAAE,kDAAkD,CAAC;KACjF,MAAM,CAAC,qBAAqB,EAAE,0CAA0C,CAAC;KACzE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,IAAI,EAAE,EAAE;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAiB,aAAa,MAAM,CAAC,WAAW,iBAAiB,EAAE;YAC1F,MAAM;YACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,IAAI,CAAC,WAAW;YAC9B,UAAU,EAAE,IAAI,CAAC,SAAS;SAC3B,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,IAAI,aAAa,GAAG,EAAE,CAAC;QAEnD,MAAM,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAEzC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,kBAAkB,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3F,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,4BAA4B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,0EAA0E;AAE1E,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KACtC,WAAW,CAAC;;UAEL,gBAAgB;;;;;;;;;;;;;;6FAcmE,CAAC;KAC3F,QAAQ,CAAC,UAAU,EAAE,uEAAuE,CAAC;KAC7F,MAAM,CAAC,iBAAiB,EAAE,8HAA8H,CAAC;KACzJ,MAAM,CAAC,kBAAkB,EAAE,+DAA+D,CAAC;KAC3F,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,qBAAqB,EAAE,0CAA0C,CAAC;KACzE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,IAAI,EAAE,EAAE;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC,CAAC;QAExE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAiB,aAAa,MAAM,CAAC,WAAW,iBAAiB,EAAE;YAC1F,MAAM;YACN,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,YAAY,EAAE,IAAI,CAAC,MAAM;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC;QAChD,MAAM,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAEzC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,kBAAkB,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3F,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,4BAA4B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,0EAA0E;AAE1E,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KACxC,WAAW,CAAC;;aAEF,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;;;;;;;;;;uJAWqD,CAAC;KACrJ,QAAQ,CAAC,QAAQ,EAAE,iDAAiD,CAAC;KACrE,MAAM,CAAC,uBAAuB,EAAE,uDAAuD,CAAC;KACxF,MAAM,CAAC,iBAAiB,EAAE,sCAAsC,CAAC;KACjE,MAAM,CAAC,mBAAmB,EAAE,sEAAsE,CAAC;KACnG,MAAM,CAAC,mBAAmB,EAAE,oEAAoE,CAAC;KACjG,MAAM,CAAC,qBAAqB,EAAE,uCAAuC,CAAC;KACtE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAI,EAAE,EAAE;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAE/B,IAAI,QAAQ,CAAC;QACb,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC;gBAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAAC,CAAC;YAC7C,MAAM,CAAC;gBAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC;gBAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAC,CAAC;QAChF,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAiB,aAAa,MAAM,CAAC,WAAW,kBAAkB,EAAE;YAC3F,IAAI;YACJ,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ;SACT,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC;QAC7C,MAAM,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAEzC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,kBAAkB,MAAM,CAAC,QAAQ,KAAK,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,6BAA6B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,0EAA0E;AAE1E,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;KACnD,WAAW,CAAC,kDAAkD,CAAC;KAC/D,UAAU,CAAC,YAAY,CAAC;KACxB,UAAU,CAAC,YAAY,CAAC;KACxB,UAAU,CAAC,aAAa,CAAC,CAAC"}
|
package/dist/commands/init.js
CHANGED
|
@@ -1,39 +1,39 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import { basename } from 'path';
|
|
3
3
|
import { get, post } from '../api.js';
|
|
4
|
-
import { saveConfig, getConfig } from '../config.js';
|
|
4
|
+
import { saveConfig, getConfig, getApiBaseOverride } from '../config.js';
|
|
5
5
|
import { syncDown, syncUp } from '../sync.js';
|
|
6
6
|
import { getAuth } from '../auth.js';
|
|
7
7
|
import { slugify, setupClaudeHooks, setupClaudeMd, setupGitignore } from '../setup.js';
|
|
8
|
+
import { success, error as clrError, info, muted } from '../colors.js';
|
|
8
9
|
export const initCommand = new Command('init')
|
|
9
10
|
.description('Initialize a Gipity project (new or existing)')
|
|
10
11
|
.argument('[name]', 'Project name/slug (defaults to current directory name)')
|
|
11
12
|
.option('--agent <guid>', 'Agent GUID to use')
|
|
12
|
-
.option('--api-base <url>', 'API base URL', 'https://a.gipity.ai')
|
|
13
13
|
.action(async (name, opts) => {
|
|
14
14
|
try {
|
|
15
15
|
// Check auth
|
|
16
16
|
const auth = getAuth();
|
|
17
17
|
if (!auth) {
|
|
18
|
-
console.error('Not logged in. Run: gipity login');
|
|
18
|
+
console.error(clrError('Not logged in. Run: gipity login'));
|
|
19
19
|
process.exit(1);
|
|
20
20
|
}
|
|
21
21
|
// Check if already initialized
|
|
22
22
|
const existing = getConfig();
|
|
23
23
|
if (existing) {
|
|
24
|
-
console.log(`Already linked to "${existing.projectSlug}" (${existing.projectGuid})`);
|
|
24
|
+
console.log(`Already linked to ${info(`"${existing.projectSlug}"`)} ${muted(`(${existing.projectGuid})`)}`);
|
|
25
25
|
// Re-run setup in case hooks/skills are missing
|
|
26
26
|
setupClaudeHooks();
|
|
27
27
|
setupClaudeMd();
|
|
28
28
|
setupGitignore();
|
|
29
|
-
console.log('Configuring Claude Code... done.');
|
|
29
|
+
console.log(success('Configuring Claude Code... done.'));
|
|
30
30
|
return;
|
|
31
31
|
}
|
|
32
32
|
// Resolve project name
|
|
33
33
|
const projectName = name || basename(process.cwd());
|
|
34
34
|
const projectSlug = slugify(projectName);
|
|
35
35
|
if (!projectSlug) {
|
|
36
|
-
console.error('Could not derive a valid project slug. Provide a name: gipity init my-app');
|
|
36
|
+
console.error(clrError('Could not derive a valid project slug. Provide a name: gipity init my-app'));
|
|
37
37
|
process.exit(1);
|
|
38
38
|
}
|
|
39
39
|
// Search for existing project by slug
|
|
@@ -50,7 +50,7 @@ export const initCommand = new Command('init')
|
|
|
50
50
|
// List failed — we'll create a new project
|
|
51
51
|
}
|
|
52
52
|
if (project) {
|
|
53
|
-
console.log(`Found existing project "${project.name}" (${project.slug})`);
|
|
53
|
+
console.log(`Found existing project ${info(`"${project.name}"`)} ${muted(`(${project.slug})`)}`);
|
|
54
54
|
}
|
|
55
55
|
else {
|
|
56
56
|
// Create new project
|
|
@@ -60,7 +60,7 @@ export const initCommand = new Command('init')
|
|
|
60
60
|
});
|
|
61
61
|
project = res.data;
|
|
62
62
|
accountSlug = project.user?.account_slug || '';
|
|
63
|
-
console.log(`Created project "${project.name}" (${project.slug})`);
|
|
63
|
+
console.log(success(`Created project "${project.name}" (${project.slug})`));
|
|
64
64
|
}
|
|
65
65
|
// Find agent for the project
|
|
66
66
|
let agentGuid = opts.agent || '';
|
|
@@ -82,7 +82,7 @@ export const initCommand = new Command('init')
|
|
|
82
82
|
accountSlug,
|
|
83
83
|
agentGuid,
|
|
84
84
|
conversationGuid: null,
|
|
85
|
-
apiBase:
|
|
85
|
+
apiBase: getApiBaseOverride() || 'https://a.gipity.ai',
|
|
86
86
|
ignore: ['node_modules', '.git', '.gipity.json', '.gipity/', '.claude/', '.gitignore', 'CLAUDE.md', '*.log'],
|
|
87
87
|
});
|
|
88
88
|
// 2. Sync: push local files up first, then pull any remote-only files down
|
|
@@ -100,11 +100,11 @@ export const initCommand = new Command('init')
|
|
|
100
100
|
setupClaudeMd();
|
|
101
101
|
// 5. Update .gitignore
|
|
102
102
|
setupGitignore();
|
|
103
|
-
console.log('Configuring Claude Code... done.');
|
|
104
|
-
console.log('Ready! Run `claude` to start.');
|
|
103
|
+
console.log(success('Configuring Claude Code... done.'));
|
|
104
|
+
console.log(success('Ready! Run `claude` to start.'));
|
|
105
105
|
}
|
|
106
106
|
catch (err) {
|
|
107
|
-
console.error(`Init failed: ${err.message}`);
|
|
107
|
+
console.error(clrError(`Init failed: ${err.message}`));
|
|
108
108
|
process.exit(1);
|
|
109
109
|
}
|
|
110
110
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|