@ginkoai/cli 2.1.4 → 2.1.6-beta.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.
- package/dist/commands/charter.d.ts +1 -0
- package/dist/commands/charter.d.ts.map +1 -1
- package/dist/commands/charter.js +185 -30
- package/dist/commands/charter.js.map +1 -1
- package/dist/commands/diff/diff-command.d.ts +20 -0
- package/dist/commands/diff/diff-command.d.ts.map +1 -0
- package/dist/commands/diff/diff-command.js +181 -0
- package/dist/commands/diff/diff-command.js.map +1 -0
- package/dist/commands/diff/index.d.ts +20 -0
- package/dist/commands/diff/index.d.ts.map +1 -0
- package/dist/commands/diff/index.js +39 -0
- package/dist/commands/diff/index.js.map +1 -0
- package/dist/commands/epic/index.d.ts.map +1 -1
- package/dist/commands/epic/index.js +18 -1
- package/dist/commands/epic/index.js.map +1 -1
- package/dist/commands/graph/api-client.d.ts +36 -0
- package/dist/commands/graph/api-client.d.ts.map +1 -1
- package/dist/commands/graph/api-client.js +7 -0
- package/dist/commands/graph/api-client.js.map +1 -1
- package/dist/commands/graph/index.d.ts.map +1 -1
- package/dist/commands/graph/index.js +8 -2
- package/dist/commands/graph/index.js.map +1 -1
- package/dist/commands/handoff.d.ts.map +1 -1
- package/dist/commands/handoff.js +12 -2
- package/dist/commands/handoff.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +50 -3
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/pull/index.d.ts +21 -0
- package/dist/commands/pull/index.d.ts.map +1 -0
- package/dist/commands/pull/index.js +90 -0
- package/dist/commands/pull/index.js.map +1 -0
- package/dist/commands/pull/pull-command.d.ts +23 -0
- package/dist/commands/pull/pull-command.d.ts.map +1 -0
- package/dist/commands/pull/pull-command.js +89 -0
- package/dist/commands/pull/pull-command.js.map +1 -0
- package/dist/commands/push/index.d.ts +21 -0
- package/dist/commands/push/index.d.ts.map +1 -0
- package/dist/commands/push/index.js +120 -0
- package/dist/commands/push/index.js.map +1 -0
- package/dist/commands/push/push-command.d.ts +39 -0
- package/dist/commands/push/push-command.d.ts.map +1 -0
- package/dist/commands/push/push-command.js +451 -0
- package/dist/commands/push/push-command.js.map +1 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +39 -0
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/sync/index.d.ts.map +1 -1
- package/dist/commands/sync/index.js +12 -10
- package/dist/commands/sync/index.js.map +1 -1
- package/dist/commands/task/status.d.ts.map +1 -1
- package/dist/commands/task/status.js +9 -0
- package/dist/commands/task/status.js.map +1 -1
- package/dist/core/utils/paths.d.ts +4 -0
- package/dist/core/utils/paths.d.ts.map +1 -1
- package/dist/core/utils/paths.js +19 -1
- package/dist/core/utils/paths.js.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/auto-push.d.ts +32 -0
- package/dist/lib/auto-push.d.ts.map +1 -0
- package/dist/lib/auto-push.js +79 -0
- package/dist/lib/auto-push.js.map +1 -0
- package/dist/lib/charter-loader.d.ts.map +1 -1
- package/dist/lib/charter-loader.js +4 -1
- package/dist/lib/charter-loader.js.map +1 -1
- package/dist/lib/dead-letter-queue.d.ts +4 -3
- package/dist/lib/dead-letter-queue.d.ts.map +1 -1
- package/dist/lib/dead-letter-queue.js +4 -3
- package/dist/lib/dead-letter-queue.js.map +1 -1
- package/dist/lib/entity-classifier.d.ts +53 -0
- package/dist/lib/entity-classifier.d.ts.map +1 -0
- package/dist/lib/entity-classifier.js +95 -0
- package/dist/lib/entity-classifier.js.map +1 -0
- package/dist/lib/event-queue.d.ts +4 -3
- package/dist/lib/event-queue.d.ts.map +1 -1
- package/dist/lib/event-queue.js +4 -3
- package/dist/lib/event-queue.js.map +1 -1
- package/dist/lib/git-change-detector.d.ts +38 -0
- package/dist/lib/git-change-detector.d.ts.map +1 -0
- package/dist/lib/git-change-detector.js +105 -0
- package/dist/lib/git-change-detector.js.map +1 -0
- package/dist/lib/sprint-parser.d.ts.map +1 -1
- package/dist/lib/sprint-parser.js +4 -1
- package/dist/lib/sprint-parser.js.map +1 -1
- package/dist/lib/sync-state.d.ts +38 -0
- package/dist/lib/sync-state.d.ts.map +1 -0
- package/dist/lib/sync-state.js +86 -0
- package/dist/lib/sync-state.js.map +1 -0
- package/dist/lib/write-dispatcher/adapters/graph-adapter.d.ts +2 -1
- package/dist/lib/write-dispatcher/adapters/graph-adapter.d.ts.map +1 -1
- package/dist/lib/write-dispatcher/adapters/graph-adapter.js +2 -1
- package/dist/lib/write-dispatcher/adapters/graph-adapter.js.map +1 -1
- package/dist/lib/write-dispatcher/adapters/local-adapter.d.ts +2 -1
- package/dist/lib/write-dispatcher/adapters/local-adapter.d.ts.map +1 -1
- package/dist/lib/write-dispatcher/adapters/local-adapter.js +2 -1
- package/dist/lib/write-dispatcher/adapters/local-adapter.js.map +1 -1
- package/dist/lib/write-dispatcher/write-dispatcher.d.ts +4 -3
- package/dist/lib/write-dispatcher/write-dispatcher.d.ts.map +1 -1
- package/dist/lib/write-dispatcher/write-dispatcher.js +4 -3
- package/dist/lib/write-dispatcher/write-dispatcher.js.map +1 -1
- package/dist/templates/ai-instructions-template.d.ts.map +1 -1
- package/dist/templates/ai-instructions-template.js +48 -9
- package/dist/templates/ai-instructions-template.js.map +1 -1
- package/dist/templates/charter-template.md +17 -0
- package/dist/templates/epic-template.md +18 -6
- package/dist/templates/skills/ginko/SKILL.md +209 -0
- package/dist/templates/skills/ginko/commands-reference.md +221 -0
- package/dist/templates/skills/pull.md +56 -0
- package/dist/templates/skills/push.md +73 -0
- package/dist/templates/skills/skills/ginko/SKILL.md +209 -0
- package/dist/templates/skills/skills/ginko/commands-reference.md +221 -0
- package/dist/templates/skills/skills/pull.md +56 -0
- package/dist/templates/skills/skills/push.md +73 -0
- package/dist/utils/dispatcher-logger.d.ts +4 -3
- package/dist/utils/dispatcher-logger.d.ts.map +1 -1
- package/dist/utils/dispatcher-logger.js +4 -3
- package/dist/utils/dispatcher-logger.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/pull/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,iBAAiB,IAAI,OAAO,CAyE3C;AAED,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileType: command-entry
|
|
3
|
+
* @status: current
|
|
4
|
+
* @updated: 2026-01-30
|
|
5
|
+
* @tags: [pull, command, graph-to-local, ADR-077]
|
|
6
|
+
* @related: [pull-command.ts, ../sync/sync-command.ts]
|
|
7
|
+
* @priority: critical
|
|
8
|
+
* @complexity: low
|
|
9
|
+
* @dependencies: [commander]
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Pull Command Entry Point (ADR-077)
|
|
13
|
+
*
|
|
14
|
+
* Registers the `ginko pull` command with subcommands for entity-specific pull.
|
|
15
|
+
* Replaces `ginko sync` with a git-inspired interface.
|
|
16
|
+
*/
|
|
17
|
+
import { Command } from 'commander';
|
|
18
|
+
import chalk from 'chalk';
|
|
19
|
+
import { pullCommand } from './pull-command.js';
|
|
20
|
+
export function createPullCommand() {
|
|
21
|
+
const pull = new Command('pull')
|
|
22
|
+
.description('Pull dashboard changes to local git (ADR-077: git-integrated sync)')
|
|
23
|
+
.option('--dry-run', 'Preview what would be pulled without making changes')
|
|
24
|
+
.option('--force', 'Overwrite local files with graph versions')
|
|
25
|
+
.addHelpText('after', `
|
|
26
|
+
${chalk.gray('Subcommands:')}
|
|
27
|
+
${chalk.green('ginko pull')} ${chalk.dim('Pull all changes from graph')}
|
|
28
|
+
${chalk.green('ginko pull sprint')} ${chalk.dim('Pull only sprint changes')}
|
|
29
|
+
${chalk.green('ginko pull adr')} ${chalk.dim('Pull only ADR changes')}
|
|
30
|
+
|
|
31
|
+
${chalk.gray('Options:')}
|
|
32
|
+
${chalk.dim('--dry-run Preview what would be pulled')}
|
|
33
|
+
${chalk.dim('--force Overwrite local files with graph versions')}
|
|
34
|
+
|
|
35
|
+
${chalk.gray('Examples:')}
|
|
36
|
+
${chalk.green('ginko pull')} ${chalk.dim('# Pull all changes from dashboard')}
|
|
37
|
+
${chalk.green('ginko pull --dry-run')} ${chalk.dim('# Preview changes')}
|
|
38
|
+
${chalk.green('ginko pull sprint')} ${chalk.dim('# Pull only sprint changes')}
|
|
39
|
+
${chalk.green('ginko pull --force')} ${chalk.dim('# Overwrite local with graph')}
|
|
40
|
+
`);
|
|
41
|
+
// Default action: pull all changes
|
|
42
|
+
pull.action(async (options) => {
|
|
43
|
+
await pullCommand({
|
|
44
|
+
dryRun: options.dryRun === true,
|
|
45
|
+
force: options.force === true,
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
// Subcommand: pull sprint
|
|
49
|
+
pull
|
|
50
|
+
.command('sprint')
|
|
51
|
+
.description('Pull sprint changes from graph')
|
|
52
|
+
.option('--dry-run', 'Preview what would be pulled')
|
|
53
|
+
.option('--force', 'Overwrite local files')
|
|
54
|
+
.action(async (subOptions) => {
|
|
55
|
+
await pullCommand({
|
|
56
|
+
entityType: 'sprint',
|
|
57
|
+
dryRun: subOptions.dryRun === true || pull.opts().dryRun === true,
|
|
58
|
+
force: subOptions.force === true || pull.opts().force === true,
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
// Subcommand: pull adr
|
|
62
|
+
pull
|
|
63
|
+
.command('adr')
|
|
64
|
+
.description('Pull ADR changes from graph')
|
|
65
|
+
.option('--dry-run', 'Preview what would be pulled')
|
|
66
|
+
.option('--force', 'Overwrite local files')
|
|
67
|
+
.action(async (subOptions) => {
|
|
68
|
+
await pullCommand({
|
|
69
|
+
entityType: 'adr',
|
|
70
|
+
dryRun: subOptions.dryRun === true || pull.opts().dryRun === true,
|
|
71
|
+
force: subOptions.force === true || pull.opts().force === true,
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
// Subcommand: pull epic
|
|
75
|
+
pull
|
|
76
|
+
.command('epic')
|
|
77
|
+
.description('Pull epic changes from graph')
|
|
78
|
+
.option('--dry-run', 'Preview what would be pulled')
|
|
79
|
+
.option('--force', 'Overwrite local files')
|
|
80
|
+
.action(async (subOptions) => {
|
|
81
|
+
await pullCommand({
|
|
82
|
+
entityType: 'epic',
|
|
83
|
+
dryRun: subOptions.dryRun === true || pull.opts().dryRun === true,
|
|
84
|
+
force: subOptions.force === true || pull.opts().force === true,
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
return pull;
|
|
88
|
+
}
|
|
89
|
+
export { pullCommand } from './pull-command.js';
|
|
90
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/pull/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileType: command
|
|
3
|
+
* @status: current
|
|
4
|
+
* @updated: 2026-01-30
|
|
5
|
+
* @tags: [pull, sync, graph-to-local, ADR-077]
|
|
6
|
+
* @related: [index.ts, ../sync/sync-command.ts, ../../lib/sync-state.ts]
|
|
7
|
+
* @priority: critical
|
|
8
|
+
* @complexity: medium
|
|
9
|
+
* @dependencies: [chalk]
|
|
10
|
+
*/
|
|
11
|
+
export interface PullOptions {
|
|
12
|
+
dryRun?: boolean;
|
|
13
|
+
force?: boolean;
|
|
14
|
+
/** Entity type filter (from subcommand: epic, sprint, adr, etc.) */
|
|
15
|
+
entityType?: string;
|
|
16
|
+
/** Quiet mode for auto-pull */
|
|
17
|
+
quiet?: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Main pull command implementation
|
|
21
|
+
*/
|
|
22
|
+
export declare function pullCommand(options: PullOptions): Promise<void>;
|
|
23
|
+
//# sourceMappingURL=pull-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull-command.d.ts","sourceRoot":"","sources":["../../../src/commands/pull/pull-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAqBH,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAsBD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA8CrE"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileType: command
|
|
3
|
+
* @status: current
|
|
4
|
+
* @updated: 2026-01-30
|
|
5
|
+
* @tags: [pull, sync, graph-to-local, ADR-077]
|
|
6
|
+
* @related: [index.ts, ../sync/sync-command.ts, ../../lib/sync-state.ts]
|
|
7
|
+
* @priority: critical
|
|
8
|
+
* @complexity: medium
|
|
9
|
+
* @dependencies: [chalk]
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Pull Command (ADR-077)
|
|
13
|
+
*
|
|
14
|
+
* Wraps existing sync logic from sync-command.ts with a git-inspired interface.
|
|
15
|
+
* Pulls dashboard edits from graph to local git.
|
|
16
|
+
*
|
|
17
|
+
* Usage:
|
|
18
|
+
* ginko pull # Pull all changes
|
|
19
|
+
* ginko pull epic # Pull only epics
|
|
20
|
+
* ginko pull sprint # Pull only sprints
|
|
21
|
+
* ginko pull --force # Overwrite local with graph version
|
|
22
|
+
* ginko pull --dry-run # Preview what would be pulled
|
|
23
|
+
*/
|
|
24
|
+
import chalk from 'chalk';
|
|
25
|
+
import { syncCommand } from '../sync/sync-command.js';
|
|
26
|
+
import { recordPull, readSyncState } from '../../lib/sync-state.js';
|
|
27
|
+
/**
|
|
28
|
+
* Map subcommand entity types to sync NodeType
|
|
29
|
+
*/
|
|
30
|
+
function mapEntityType(entityType) {
|
|
31
|
+
if (!entityType)
|
|
32
|
+
return undefined;
|
|
33
|
+
const mapping = {
|
|
34
|
+
'epic': 'Charter', // Epics don't have a direct NodeType in sync, we'll handle specially
|
|
35
|
+
'sprint': 'Sprint',
|
|
36
|
+
'adr': 'ADR',
|
|
37
|
+
'prd': 'PRD',
|
|
38
|
+
'pattern': 'Pattern',
|
|
39
|
+
'gotcha': 'Gotcha',
|
|
40
|
+
'charter': 'Charter',
|
|
41
|
+
'task': 'Task',
|
|
42
|
+
};
|
|
43
|
+
return mapping[entityType.toLowerCase()];
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Main pull command implementation
|
|
47
|
+
*/
|
|
48
|
+
export async function pullCommand(options) {
|
|
49
|
+
const quiet = !!options.quiet;
|
|
50
|
+
if (!quiet) {
|
|
51
|
+
console.log(chalk.bold.cyan('\n\u2b07 Pull: Graph \u2192 Git\n'));
|
|
52
|
+
}
|
|
53
|
+
// Read sync state for display
|
|
54
|
+
const syncState = await readSyncState();
|
|
55
|
+
if (!quiet && syncState.lastPullTimestamp) {
|
|
56
|
+
console.log(chalk.dim(`Last pull: ${syncState.lastPullTimestamp}`));
|
|
57
|
+
}
|
|
58
|
+
// Map entity type to sync NodeType
|
|
59
|
+
const nodeType = mapEntityType(options.entityType);
|
|
60
|
+
// Build sync options - delegate to existing sync logic
|
|
61
|
+
const syncOptions = {
|
|
62
|
+
dryRun: options.dryRun,
|
|
63
|
+
force: options.force,
|
|
64
|
+
type: nodeType,
|
|
65
|
+
interactive: !options.force,
|
|
66
|
+
skipMembershipCheck: quiet,
|
|
67
|
+
};
|
|
68
|
+
try {
|
|
69
|
+
const result = await syncCommand(syncOptions);
|
|
70
|
+
// Update sync state on successful pull
|
|
71
|
+
if (!options.dryRun && result.synced.length > 0) {
|
|
72
|
+
await recordPull();
|
|
73
|
+
}
|
|
74
|
+
// Summary with reinforcement
|
|
75
|
+
if (!quiet && !options.dryRun) {
|
|
76
|
+
if (result.synced.length > 0) {
|
|
77
|
+
console.log(chalk.dim('\n\ud83d\udca1 Local files are up to date. Use `ginko push` to sync your changes to graph.'));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
if (!quiet) {
|
|
83
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
84
|
+
console.error(chalk.red(`\u2717 Pull failed: ${msg}`));
|
|
85
|
+
}
|
|
86
|
+
throw error;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=pull-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull-command.js","sourceRoot":"","sources":["../../../src/commands/pull/pull-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAYpE;;GAEG;AACH,SAAS,aAAa,CAAC,UAAmB;IACxC,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAElC,MAAM,OAAO,GAA6B;QACxC,MAAM,EAAE,SAAS,EAAE,qEAAqE;QACxF,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,MAAM;KACf,CAAC;IAEF,OAAO,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAoB;IACpD,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAE9B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,8BAA8B;IAC9B,MAAM,SAAS,GAAG,MAAM,aAAa,EAAE,CAAC;IACxC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,iBAAiB,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,mCAAmC;IACnC,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAEnD,uDAAuD;IACvD,MAAM,WAAW,GAAoB;QACnC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK;QAC3B,mBAAmB,EAAE,KAAK;KAC3B,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,CAAC;QAE9C,uCAAuC;QACvC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,UAAU,EAAE,CAAC;QACrB,CAAC;QAED,6BAA6B;QAC7B,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4FAA4F,CAAC,CAAC,CAAC;YACvH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileType: command-entry
|
|
3
|
+
* @status: current
|
|
4
|
+
* @updated: 2026-01-30
|
|
5
|
+
* @tags: [push, command, git-to-graph, ADR-077]
|
|
6
|
+
* @related: [push-command.ts, ../../lib/sync-state.ts, ../../lib/git-change-detector.ts]
|
|
7
|
+
* @priority: critical
|
|
8
|
+
* @complexity: low
|
|
9
|
+
* @dependencies: [commander]
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Push Command Entry Point (ADR-077)
|
|
13
|
+
*
|
|
14
|
+
* Registers the `ginko push` command with subcommands for entity-specific push.
|
|
15
|
+
* Replaces `ginko graph load` and `--sync` flags.
|
|
16
|
+
*/
|
|
17
|
+
import { Command } from 'commander';
|
|
18
|
+
export declare function createPushCommand(): Command;
|
|
19
|
+
export { pushCommand } from './push-command.js';
|
|
20
|
+
export type { PushOptions, PushResult } from './push-command.js';
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/push/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,iBAAiB,IAAI,OAAO,CAwG3C;AAED,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileType: command-entry
|
|
3
|
+
* @status: current
|
|
4
|
+
* @updated: 2026-01-30
|
|
5
|
+
* @tags: [push, command, git-to-graph, ADR-077]
|
|
6
|
+
* @related: [push-command.ts, ../../lib/sync-state.ts, ../../lib/git-change-detector.ts]
|
|
7
|
+
* @priority: critical
|
|
8
|
+
* @complexity: low
|
|
9
|
+
* @dependencies: [commander]
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Push Command Entry Point (ADR-077)
|
|
13
|
+
*
|
|
14
|
+
* Registers the `ginko push` command with subcommands for entity-specific push.
|
|
15
|
+
* Replaces `ginko graph load` and `--sync` flags.
|
|
16
|
+
*/
|
|
17
|
+
import { Command } from 'commander';
|
|
18
|
+
import chalk from 'chalk';
|
|
19
|
+
import { pushCommand } from './push-command.js';
|
|
20
|
+
export function createPushCommand() {
|
|
21
|
+
const push = new Command('push')
|
|
22
|
+
.description('Push local changes to graph (ADR-077: git-integrated sync)')
|
|
23
|
+
.option('--dry-run', 'Preview what would be pushed without making changes')
|
|
24
|
+
.option('--force', 'Overwrite graph content even if conflicts exist')
|
|
25
|
+
.option('--all', 'Push all content files (ignore change detection)')
|
|
26
|
+
.option('--no-events', 'Skip pushing event files (JSONL)')
|
|
27
|
+
.addHelpText('after', `
|
|
28
|
+
${chalk.gray('Subcommands:')}
|
|
29
|
+
${chalk.green('ginko push')} ${chalk.dim('Push all changes since last push')}
|
|
30
|
+
${chalk.green('ginko push epic')} ${chalk.dim('Push only changed epics')}
|
|
31
|
+
${chalk.green('ginko push epic EPIC-001')} ${chalk.dim('Push specific epic')}
|
|
32
|
+
${chalk.green('ginko push sprint e001_s01')} ${chalk.dim('Push specific sprint')}
|
|
33
|
+
${chalk.green('ginko push charter')} ${chalk.dim('Push charter')}
|
|
34
|
+
${chalk.green('ginko push adr')} ${chalk.dim('Push all changed ADRs')}
|
|
35
|
+
|
|
36
|
+
${chalk.gray('Options:')}
|
|
37
|
+
${chalk.dim('--dry-run Preview what would be pushed')}
|
|
38
|
+
${chalk.dim('--force Overwrite graph even if conflicts')}
|
|
39
|
+
${chalk.dim('--all Push all content (not just changes)')}
|
|
40
|
+
${chalk.dim('--no-events Skip event files')}
|
|
41
|
+
|
|
42
|
+
${chalk.gray('Examples:')}
|
|
43
|
+
${chalk.green('ginko push')} ${chalk.dim('# Push all changes since last push')}
|
|
44
|
+
${chalk.green('ginko push --dry-run')} ${chalk.dim('# Preview changes')}
|
|
45
|
+
${chalk.green('ginko push epic')} ${chalk.dim('# Push only epics')}
|
|
46
|
+
${chalk.green('ginko push sprint e015_s01')} ${chalk.dim('# Push specific sprint')}
|
|
47
|
+
${chalk.green('ginko push --all')} ${chalk.dim('# Full push (like graph load)')}
|
|
48
|
+
`);
|
|
49
|
+
// Default action (no subcommand): push all changes
|
|
50
|
+
push.action(async (options) => {
|
|
51
|
+
await pushCommand({
|
|
52
|
+
dryRun: options.dryRun === true,
|
|
53
|
+
force: options.force === true,
|
|
54
|
+
all: options.all === true,
|
|
55
|
+
events: options.events !== false,
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
// Subcommand: push epic [id]
|
|
59
|
+
push
|
|
60
|
+
.command('epic [epicId]')
|
|
61
|
+
.description('Push changed epic(s) to graph')
|
|
62
|
+
.option('--dry-run', 'Preview what would be pushed')
|
|
63
|
+
.option('--force', 'Overwrite graph content')
|
|
64
|
+
.action(async (epicId, subOptions) => {
|
|
65
|
+
await pushCommand({
|
|
66
|
+
entityType: 'epic',
|
|
67
|
+
entityId: epicId,
|
|
68
|
+
dryRun: subOptions.dryRun === true || push.opts().dryRun === true,
|
|
69
|
+
force: subOptions.force === true || push.opts().force === true,
|
|
70
|
+
events: false,
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
// Subcommand: push sprint [id]
|
|
74
|
+
push
|
|
75
|
+
.command('sprint [sprintId]')
|
|
76
|
+
.description('Push changed sprint(s) to graph')
|
|
77
|
+
.option('--dry-run', 'Preview what would be pushed')
|
|
78
|
+
.option('--force', 'Overwrite graph content')
|
|
79
|
+
.action(async (sprintId, subOptions) => {
|
|
80
|
+
await pushCommand({
|
|
81
|
+
entityType: 'sprint',
|
|
82
|
+
entityId: sprintId,
|
|
83
|
+
dryRun: subOptions.dryRun === true || push.opts().dryRun === true,
|
|
84
|
+
force: subOptions.force === true || push.opts().force === true,
|
|
85
|
+
events: false,
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
// Subcommand: push charter
|
|
89
|
+
push
|
|
90
|
+
.command('charter')
|
|
91
|
+
.description('Push project charter to graph')
|
|
92
|
+
.option('--dry-run', 'Preview what would be pushed')
|
|
93
|
+
.option('--force', 'Overwrite graph content')
|
|
94
|
+
.action(async (subOptions) => {
|
|
95
|
+
await pushCommand({
|
|
96
|
+
entityType: 'charter',
|
|
97
|
+
dryRun: subOptions.dryRun === true || push.opts().dryRun === true,
|
|
98
|
+
force: subOptions.force === true || push.opts().force === true,
|
|
99
|
+
events: false,
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
// Subcommand: push adr [id]
|
|
103
|
+
push
|
|
104
|
+
.command('adr [adrId]')
|
|
105
|
+
.description('Push changed ADR(s) to graph')
|
|
106
|
+
.option('--dry-run', 'Preview what would be pushed')
|
|
107
|
+
.option('--force', 'Overwrite graph content')
|
|
108
|
+
.action(async (adrId, subOptions) => {
|
|
109
|
+
await pushCommand({
|
|
110
|
+
entityType: 'adr',
|
|
111
|
+
entityId: adrId,
|
|
112
|
+
dryRun: subOptions.dryRun === true || push.opts().dryRun === true,
|
|
113
|
+
force: subOptions.force === true || push.opts().force === true,
|
|
114
|
+
events: false,
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
return push;
|
|
118
|
+
}
|
|
119
|
+
export { pushCommand } from './push-command.js';
|
|
120
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/push/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileType: command
|
|
3
|
+
* @status: current
|
|
4
|
+
* @updated: 2026-01-30
|
|
5
|
+
* @tags: [push, sync, graph, git, ADR-077]
|
|
6
|
+
* @related: [index.ts, ../../lib/sync-state.ts, ../../lib/git-change-detector.ts, ../../lib/entity-classifier.ts, ../graph/api-client.ts]
|
|
7
|
+
* @priority: critical
|
|
8
|
+
* @complexity: high
|
|
9
|
+
* @dependencies: [chalk, fs-extra, crypto, simple-git]
|
|
10
|
+
*/
|
|
11
|
+
export interface PushOptions {
|
|
12
|
+
dryRun?: boolean;
|
|
13
|
+
force?: boolean;
|
|
14
|
+
all?: boolean;
|
|
15
|
+
/** Entity type filter (from subcommand: epic, sprint, charter, adr, etc.) */
|
|
16
|
+
entityType?: string;
|
|
17
|
+
/** Specific entity ID (e.g., EPIC-001, e001_s01) */
|
|
18
|
+
entityId?: string;
|
|
19
|
+
/** Include events (session JSONL) in push */
|
|
20
|
+
events?: boolean;
|
|
21
|
+
/** Quiet mode for auto-push (minimal output) */
|
|
22
|
+
quiet?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface PushResult {
|
|
25
|
+
pushed: string[];
|
|
26
|
+
skipped: string[];
|
|
27
|
+
errors: string[];
|
|
28
|
+
tasksSynced: {
|
|
29
|
+
created: number;
|
|
30
|
+
updated: number;
|
|
31
|
+
relationships: number;
|
|
32
|
+
};
|
|
33
|
+
eventsPushed: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Main push command implementation
|
|
37
|
+
*/
|
|
38
|
+
export declare function pushCommand(options: PushOptions): Promise<PushResult>;
|
|
39
|
+
//# sourceMappingURL=push-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push-command.d.ts","sourceRoot":"","sources":["../../../src/commands/push/push-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA+BH,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,YAAY,EAAE,MAAM,CAAC;CACtB;AA+JD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAoT3E"}
|