@jakkrichm/create-nexus-devflow 2.7.0 → 2.8.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 (82) hide show
  1. package/README.md +2 -2
  2. package/dist/lib/antigravity-artifacts.d.ts +52 -0
  3. package/dist/lib/antigravity-artifacts.js +170 -0
  4. package/dist/lib/antigravity-artifacts.js.map +1 -0
  5. package/dist/lib/antigravity-hooks.d.ts +31 -0
  6. package/dist/lib/antigravity-hooks.js +85 -0
  7. package/dist/lib/antigravity-hooks.js.map +1 -0
  8. package/dist/lib/antigravity-plugin.d.ts +51 -0
  9. package/dist/lib/antigravity-plugin.js +179 -0
  10. package/dist/lib/antigravity-plugin.js.map +1 -0
  11. package/dist/lib/antigravity-scheduler.d.ts +39 -0
  12. package/dist/lib/antigravity-scheduler.js +95 -0
  13. package/dist/lib/antigravity-scheduler.js.map +1 -0
  14. package/dist/lib/branch-context.d.ts +1 -0
  15. package/dist/lib/branch-context.js +14 -9
  16. package/dist/lib/branch-context.js.map +1 -1
  17. package/dist/lib/current-work.js +10 -22
  18. package/dist/lib/current-work.js.map +1 -1
  19. package/dist/lib/doctor.js +4 -6
  20. package/dist/lib/doctor.js.map +1 -1
  21. package/dist/lib/findings.js +14 -10
  22. package/dist/lib/findings.js.map +1 -1
  23. package/dist/lib/mcp.js +3 -3
  24. package/dist/lib/mcp.js.map +1 -1
  25. package/dist/lib/openai-tools.d.ts +34 -0
  26. package/dist/lib/openai-tools.js +57 -0
  27. package/dist/lib/openai-tools.js.map +1 -0
  28. package/dist/lib/swarm-orchestrator.js +14 -8
  29. package/dist/lib/swarm-orchestrator.js.map +1 -1
  30. package/dist/lib/visual-subagent.d.ts +32 -0
  31. package/dist/lib/visual-subagent.js +98 -0
  32. package/dist/lib/visual-subagent.js.map +1 -0
  33. package/dist/lib/workflow-state.js +3 -1
  34. package/dist/lib/workflow-state.js.map +1 -1
  35. package/dist/scripts/prepare-template.js +0 -19
  36. package/dist/scripts/prepare-template.js.map +1 -1
  37. package/package.json +1 -1
  38. package/template/.agents/skills/audit/SKILL.md +7 -7
  39. package/template/.agents/skills/autopilot/SKILL.md +34 -58
  40. package/template/.agents/skills/brief/SKILL.md +1 -1
  41. package/template/.agents/skills/check/SKILL.md +4 -4
  42. package/template/.agents/skills/complete/SKILL.md +13 -46
  43. package/template/.agents/skills/continuous/SKILL.md +8 -9
  44. package/template/.agents/skills/convert-any-to-md/scripts/__pycache__/convert_any_to_md.cpython-314.pyc +0 -0
  45. package/template/.agents/skills/devflow/SKILL.md +12 -12
  46. package/template/.agents/skills/discovery/SKILL.md +2 -2
  47. package/template/.agents/skills/doctor/SKILL.md +7 -11
  48. package/template/.agents/skills/feature/SKILL.md +5 -6
  49. package/template/.agents/skills/fix/SKILL.md +2 -2
  50. package/template/.agents/skills/implement/SKILL.md +11 -12
  51. package/template/.agents/skills/release/SKILL.md +1 -1
  52. package/template/.agents/skills/report-html/SKILL.md +3 -3
  53. package/template/.agents/skills/rollback/SKILL.md +4 -6
  54. package/template/.agents/skills/status/SKILL.md +20 -27
  55. package/template/.agents/skills/try/SKILL.md +5 -6
  56. package/template/.claude/skills/audit/SKILL.md +7 -7
  57. package/template/.claude/skills/autopilot/SKILL.md +34 -58
  58. package/template/.claude/skills/brief/SKILL.md +1 -1
  59. package/template/.claude/skills/check/SKILL.md +4 -4
  60. package/template/.claude/skills/complete/SKILL.md +13 -46
  61. package/template/.claude/skills/continuous/SKILL.md +8 -9
  62. package/template/.claude/skills/convert-any-to-md/scripts/__pycache__/convert_any_to_md.cpython-314.pyc +0 -0
  63. package/template/.claude/skills/devflow/SKILL.md +12 -12
  64. package/template/.claude/skills/discovery/SKILL.md +2 -2
  65. package/template/.claude/skills/doctor/SKILL.md +7 -11
  66. package/template/.claude/skills/feature/SKILL.md +5 -6
  67. package/template/.claude/skills/fix/SKILL.md +2 -2
  68. package/template/.claude/skills/implement/SKILL.md +11 -12
  69. package/template/.claude/skills/release/SKILL.md +1 -1
  70. package/template/.claude/skills/report-html/SKILL.md +3 -3
  71. package/template/.claude/skills/rollback/SKILL.md +4 -6
  72. package/template/.claude/skills/status/SKILL.md +20 -27
  73. package/template/.claude/skills/try/SKILL.md +5 -6
  74. package/template/AGENTS.md +18 -19
  75. package/template/LICENSE +21 -21
  76. package/template/devflow/build-plan.md +9 -0
  77. package/template/devflow/context/ai-interaction.md +30 -16
  78. package/template/devflow/reference/feature-spec-template.md +2 -2
  79. package/template/devflow/reference/running-id-contract.md +0 -3
  80. package/template/devflow/context/current-feature.md +0 -3
  81. package/template/devflow/context/current-stage.md +0 -11
  82. package/template/devflow/context/findings.md +0 -10
package/README.md CHANGED
@@ -46,10 +46,10 @@ All development tasks execute through the 4-stage single living spec lifecycle:
46
46
  /feature (or /fix) ──▶ /implement ──▶ /check ──▶ /complete
47
47
  ```
48
48
 
49
- 1. **`feature` / `fix` (`/feature`, `/fix`)**: Combines Discover, Define, Spec, and Plan. Allocates sequential ID (`xxx-slug`) and initializes the **Single Living Spec (`devflow/context/current-feature.md`)**.
49
+ 1. **`feature` / `fix` (`/feature`, `/fix`)**: Combines Discover, Define, Spec, and Plan. Allocates sequential ID (`xxx-slug`) and initializes the **Task-Isolated Living Spec (`devflow/context/{xxx-slug}/spec.md`)**.
50
50
  2. **`implement` (`/implement`)**: Incrementally executes checklist tasks with strict **TDD discipline (Red-Green-Refactor)**.
51
51
  3. **`check` (`/check`)**: Dual-Axis review combining empirical spec fidelity with independent standards, architecture, and quality gates.
52
- 4. **`complete` (`/complete`)**: Final safety pass, records Release Digest, auto-archives living spec to `devflow/history/`, resets the stub, and manages the git delivery gate.
52
+ 4. **`complete` (`/complete`)**: Final safety pass, records Release Digest, auto-archives living spec to `devflow/history/`, cleans up the task workspace, and manages the git delivery gate.
53
53
 
54
54
  ---
55
55
 
@@ -0,0 +1,52 @@
1
+ export interface AntigravityArtifactMetadata {
2
+ Summary: string;
3
+ UserFacing: boolean;
4
+ RequestFeedback: boolean;
5
+ }
6
+ export type AntigravityDiagramType = "dual-track" | "swarm-matrix" | "blast-radius";
7
+ export interface BlastRadiusDiagramOptions {
8
+ targetFile?: string;
9
+ directDependents?: string[];
10
+ transitiveDependents?: string[];
11
+ }
12
+ export interface ImplementationPlanInput {
13
+ title: string;
14
+ runId?: string;
15
+ track?: "fast" | "deep";
16
+ category?: string;
17
+ problemStatement?: string;
18
+ tasks?: Array<{
19
+ id?: string;
20
+ title: string;
21
+ doneWhen?: string;
22
+ role?: string;
23
+ }>;
24
+ verificationPlan?: string[];
25
+ }
26
+ export interface WalkthroughInput {
27
+ title: string;
28
+ runId?: string;
29
+ completedDate?: string;
30
+ changesSummary?: string;
31
+ verificationRows?: Array<{
32
+ lane: string;
33
+ command: string;
34
+ verdict: string;
35
+ details?: string;
36
+ }>;
37
+ slides?: Array<{
38
+ title: string;
39
+ description: string;
40
+ codeSnippet?: string;
41
+ }>;
42
+ }
43
+ export declare function generateMermaidDiagram(type: AntigravityDiagramType, options?: BlastRadiusDiagramOptions): string;
44
+ export declare function generateAntigravityImplementationPlan(input: ImplementationPlanInput, options?: {
45
+ includeMermaid?: boolean;
46
+ }): string;
47
+ export declare function generateAntigravityWalkthrough(input: WalkthroughInput): string;
48
+ export declare function writeAntigravityArtifactFile(projectRoot: string, artifactType: "plan" | "walkthrough", content: string, options?: {
49
+ outPath?: string;
50
+ }): Promise<{
51
+ filePath: string;
52
+ }>;
@@ -0,0 +1,170 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ export function generateMermaidDiagram(type, options = {}) {
4
+ if (type === "dual-track") {
5
+ return [
6
+ "```mermaid",
7
+ "graph LR",
8
+ " subgraph FastTrack[\"🏎️ Fast-Track (Blueprint Mode)\"]",
9
+ " direction LR",
10
+ " F1[\"/feature or /fix\"] --> F2[\"/implement\"]",
11
+ " F2 --> F3[\"/check\"]",
12
+ " F3 --> F4[\"/complete\"]",
13
+ " end",
14
+ " subgraph DeepTrack[\"🏗️ Deep-Track (Architect Mode)\"]",
15
+ " direction LR",
16
+ " D0[\"00-explore\"] --> D1[\"10-define\"]",
17
+ " D1 --> D2[\"20-spec\"]",
18
+ " D2 --> D3[\"30-plan\"]",
19
+ " D3 --> D4[\"40-execute\"]",
20
+ " D4 --> D5[\"50-verify\"]",
21
+ " D5 --> D6[\"60-report\"]",
22
+ " D6 --> D7[\"70-deliver\"]",
23
+ " end",
24
+ "```"
25
+ ].join("\n");
26
+ }
27
+ if (type === "swarm-matrix") {
28
+ return [
29
+ "```mermaid",
30
+ "graph TD",
31
+ " A[\"👑 Architect Agent<br/>(Discovery & Decomposition)\"] --> C[\"👨‍💻 Coder Agent<br/>(TDD Implementation)\"]",
32
+ " A --> Q[\"🕵️ QA Verifier Agent<br/>(Multi-lane Proof & Edge Cases)\"]",
33
+ " A --> S[\"🛡️ Security Auditor Agent<br/>(Findings Ledger & AST Scan)\"]",
34
+ " C --> G{\"⚙️ Quality Gatekeeper\"}",
35
+ " Q --> G",
36
+ " S --> G",
37
+ " G -->|All Passed| D[\"🚀 Complete / Deliver\"]",
38
+ "```"
39
+ ].join("\n");
40
+ }
41
+ if (type === "blast-radius") {
42
+ const target = options.targetFile || "target-module.ts";
43
+ const directs = options.directDependents?.length
44
+ ? options.directDependents
45
+ : ["dependent-a.ts", "dependent-b.ts"];
46
+ const transitives = options.transitiveDependents?.length
47
+ ? options.transitiveDependents
48
+ : ["service-root.ts"];
49
+ const lines = [
50
+ "```mermaid",
51
+ "graph TD",
52
+ ` T["🎯 Modified Target:<br/>${target}"]`
53
+ ];
54
+ directs.forEach((d, i) => {
55
+ lines.push(` T --> D${i}["Direct: ${d}"]`);
56
+ });
57
+ transitives.forEach((t, i) => {
58
+ lines.push(` D0 -.-> TR${i}["Transitive: ${t}"]`);
59
+ });
60
+ lines.push("```");
61
+ return lines.join("\n");
62
+ }
63
+ return "";
64
+ }
65
+ export function generateAntigravityImplementationPlan(input, options = { includeMermaid: true }) {
66
+ const lines = [];
67
+ lines.push(`# Implementation Plan - ${input.title}\n`);
68
+ lines.push(`> [!IMPORTANT]\n> **Run ID**: \`${input.runId || "active-feature"}\` | **Track**: \`${input.track || "fast"}\` | **Category**: \`${input.category || "Feature"}\`\n`);
69
+ if (input.problemStatement) {
70
+ lines.push(`## 🎯 Problem Statement & Intent\n`);
71
+ lines.push(`${input.problemStatement}\n`);
72
+ }
73
+ if (options.includeMermaid !== false) {
74
+ lines.push(`## 🗺️ Workflow Architecture & Delivery Map\n`);
75
+ lines.push(generateMermaidDiagram("dual-track") + "\n");
76
+ }
77
+ lines.push(`## 📋 Proposed Changes & Tasks\n`);
78
+ if (input.tasks && input.tasks.length > 0) {
79
+ for (let i = 0; i < input.tasks.length; i++) {
80
+ const task = input.tasks[i];
81
+ const roleLabel = task.role ? ` \`[Role: ${task.role}]\`` : "";
82
+ lines.push(`### Task ${i + 1}: ${task.title}${roleLabel}`);
83
+ if (task.doneWhen) {
84
+ lines.push(`- **Done When**: ${task.doneWhen}`);
85
+ }
86
+ lines.push("");
87
+ }
88
+ }
89
+ else {
90
+ lines.push(`- [ ] **Task 1: Core Implementation** (Done when acceptance criteria are met)\n`);
91
+ }
92
+ lines.push(`## 🧪 Verification Plan\n`);
93
+ lines.push(`> [!NOTE]\n> Verification will be executed across automated and manual proof lanes.\n`);
94
+ if (input.verificationPlan && input.verificationPlan.length > 0) {
95
+ for (const v of input.verificationPlan) {
96
+ lines.push(`- [ ] ${v}`);
97
+ }
98
+ }
99
+ else {
100
+ lines.push(`- [ ] Automated Typecheck (\`npm run typecheck\`)`);
101
+ lines.push(`- [ ] Unit Test Suite (\`npm test\`)`);
102
+ lines.push(`- [ ] Framework Verification (\`npm run check\`)`);
103
+ }
104
+ lines.push(`\n> [!TIP]\n> Click **Proceed** above to approve this plan and commence autonomous implementation.`);
105
+ return lines.join("\n");
106
+ }
107
+ export function generateAntigravityWalkthrough(input) {
108
+ const lines = [];
109
+ lines.push(`# Walkthrough - ${input.title}\n`);
110
+ lines.push(`> [!NOTE]\n> **Completed**: ${input.completedDate || new Date().toISOString().split("T")[0]} | **Run ID**: \`${input.runId || "active"}\`\n`);
111
+ if (input.changesSummary) {
112
+ lines.push(`## 📦 Changes Summary\n${input.changesSummary}\n`);
113
+ }
114
+ lines.push(`## 🎠 Interactive Delivery Carousel\n`);
115
+ lines.push("````carousel");
116
+ const slides = input.slides?.length
117
+ ? input.slides
118
+ : [
119
+ {
120
+ title: "Step 1: Specification & Planning",
121
+ description: "Structured discovery with clear acceptance criteria and living spec in devflow/context/."
122
+ },
123
+ {
124
+ title: "Step 2: Incremental TDD Implementation",
125
+ description: "Modular, isolated commits following test-driven development discipline."
126
+ },
127
+ {
128
+ title: "Step 3: Multi-Lane Verification",
129
+ description: "100% test passing, typechecking, and zero P0/P1 blockers in findings ledger."
130
+ }
131
+ ];
132
+ for (let i = 0; i < slides.length; i++) {
133
+ const s = slides[i];
134
+ if (i > 0)
135
+ lines.push("<!-- slide -->");
136
+ lines.push(`### ${s.title}`);
137
+ lines.push(`${s.description}\n`);
138
+ if (s.codeSnippet) {
139
+ lines.push("```typescript");
140
+ lines.push(s.codeSnippet);
141
+ lines.push("```\n");
142
+ }
143
+ }
144
+ lines.push("````\n");
145
+ lines.push(`## 📊 Verification Matrix Evidence\n`);
146
+ lines.push("| Lane | Command | Result | Details |");
147
+ lines.push("| :--- | :--- | :---: | :--- |");
148
+ if (input.verificationRows && input.verificationRows.length > 0) {
149
+ for (const row of input.verificationRows) {
150
+ lines.push(`| **${row.lane}** | \`${row.command}\` | ${row.verdict} | ${row.details || "Clean"} |`);
151
+ }
152
+ }
153
+ else {
154
+ lines.push("| **Typecheck** | `npm run typecheck` | ✅ PASS | 0 Type errors |");
155
+ lines.push("| **Unit Tests** | `npm test` | ✅ PASS | All test suites passed |");
156
+ lines.push("| **Smoke Test** | `npm run check` | ✅ PASS | Package build verified |");
157
+ }
158
+ return lines.join("\n");
159
+ }
160
+ export async function writeAntigravityArtifactFile(projectRoot, artifactType, content, options = {}) {
161
+ const defaultFilename = artifactType === "plan" ? "implementation_plan.md" : "walkthrough.md";
162
+ const targetRel = options.outPath || defaultFilename;
163
+ const targetAbs = path.isAbsolute(targetRel)
164
+ ? targetRel
165
+ : path.join(projectRoot, targetRel);
166
+ await fs.mkdir(path.dirname(targetAbs), { recursive: true });
167
+ await fs.writeFile(targetAbs, content + "\n", "utf8");
168
+ return { filePath: targetAbs };
169
+ }
170
+ //# sourceMappingURL=antigravity-artifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"antigravity-artifacts.js","sourceRoot":"","sources":["../../lib/antigravity-artifacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ export interface AntigravityHookItem {
2
+ command: string;
3
+ description?: string;
4
+ }
5
+ export interface AntigravityHooksConfig {
6
+ hooks: {
7
+ "pre-action"?: AntigravityHookItem[];
8
+ "post-action"?: AntigravityHookItem[];
9
+ "pre-complete"?: AntigravityHookItem[];
10
+ "post-complete"?: AntigravityHookItem[];
11
+ [key: string]: AntigravityHookItem[] | undefined;
12
+ };
13
+ }
14
+ export interface WriteHooksOptions {
15
+ config?: AntigravityHooksConfig;
16
+ outPath?: string;
17
+ overwrite?: boolean;
18
+ }
19
+ export declare function generateDefaultAntigravityHooksConfig(): AntigravityHooksConfig;
20
+ export declare function readAntigravityHooksFile(projectRoot: string, outPath?: string): Promise<AntigravityHooksConfig | null>;
21
+ export declare function writeAntigravityHooksFile(projectRoot: string, options?: WriteHooksOptions): Promise<{
22
+ filePath: string;
23
+ hookCount: number;
24
+ }>;
25
+ export declare function removeAntigravityHooksFile(projectRoot: string, outPath?: string): Promise<{
26
+ removed: boolean;
27
+ filePath: string;
28
+ }>;
29
+ export declare function formatAntigravityHooksHuman(config: AntigravityHooksConfig | null, options?: {
30
+ color?: boolean;
31
+ }): string;
@@ -0,0 +1,85 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { createStyle } from "./ui.js";
4
+ export function generateDefaultAntigravityHooksConfig() {
5
+ return {
6
+ hooks: {
7
+ "pre-action": [
8
+ {
9
+ command: "npx @jakkrichm/create-nexus-devflow slice --stage implement --max-tokens 2000",
10
+ description: "Auto JIT context slicing to optimize AI token budget"
11
+ }
12
+ ],
13
+ "post-action": [
14
+ {
15
+ command: "npx @jakkrichm/create-nexus-devflow drift",
16
+ description: "Auto detect repository file drift against living spec"
17
+ }
18
+ ],
19
+ "pre-complete": [
20
+ {
21
+ command: "npx @jakkrichm/create-nexus-devflow check-gate --strict",
22
+ description: "Hard quality gatekeeper validation before closing run"
23
+ }
24
+ ]
25
+ }
26
+ };
27
+ }
28
+ export async function readAntigravityHooksFile(projectRoot, outPath) {
29
+ const targetRel = outPath || path.join(".agents", "hooks.json");
30
+ const targetAbs = path.isAbsolute(targetRel) ? targetRel : path.join(projectRoot, targetRel);
31
+ try {
32
+ const raw = await fs.readFile(targetAbs, "utf8");
33
+ return JSON.parse(raw);
34
+ }
35
+ catch {
36
+ return null;
37
+ }
38
+ }
39
+ export async function writeAntigravityHooksFile(projectRoot, options = {}) {
40
+ const targetRel = options.outPath || path.join(".agents", "hooks.json");
41
+ const targetAbs = path.isAbsolute(targetRel) ? targetRel : path.join(projectRoot, targetRel);
42
+ const config = options.config || generateDefaultAntigravityHooksConfig();
43
+ await fs.mkdir(path.dirname(targetAbs), { recursive: true });
44
+ const content = JSON.stringify(config, null, 2);
45
+ await fs.writeFile(targetAbs, content + "\n", "utf8");
46
+ let hookCount = 0;
47
+ for (const list of Object.values(config.hooks)) {
48
+ if (Array.isArray(list)) {
49
+ hookCount += list.length;
50
+ }
51
+ }
52
+ return { filePath: targetAbs, hookCount };
53
+ }
54
+ export async function removeAntigravityHooksFile(projectRoot, outPath) {
55
+ const targetRel = outPath || path.join(".agents", "hooks.json");
56
+ const targetAbs = path.isAbsolute(targetRel) ? targetRel : path.join(projectRoot, targetRel);
57
+ try {
58
+ await fs.unlink(targetAbs);
59
+ return { removed: true, filePath: targetAbs };
60
+ }
61
+ catch {
62
+ return { removed: false, filePath: targetAbs };
63
+ }
64
+ }
65
+ export function formatAntigravityHooksHuman(config, options = {}) {
66
+ const style = createStyle(options.color);
67
+ if (!config || !config.hooks) {
68
+ return style.dim("No Antigravity action hooks configured in .agents/hooks.json");
69
+ }
70
+ const lines = [];
71
+ lines.push(`[${style.bold(style.cyan("Google Antigravity Lifecycle Action Hooks"))}: .agents/hooks.json]\n`);
72
+ for (const [event, items] of Object.entries(config.hooks)) {
73
+ if (!items || items.length === 0)
74
+ continue;
75
+ lines.push(` ⚡ ${style.bold(style.yellow(event))} (${items.length} hook${items.length > 1 ? "s" : ""}):`);
76
+ for (const item of items) {
77
+ lines.push(` • ${style.green(item.command)}`);
78
+ if (item.description) {
79
+ lines.push(` ${style.dim(item.description)}`);
80
+ }
81
+ }
82
+ }
83
+ return lines.join("\n");
84
+ }
85
+ //# sourceMappingURL=antigravity-hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"antigravity-hooks.js","sourceRoot":"","sources":["../../lib/antigravity-hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ export interface AntigravityPluginManifest {
2
+ name: string;
3
+ version: string;
4
+ description: string;
5
+ author: string;
6
+ skills: string[];
7
+ rules: string[];
8
+ mcpConfig?: string;
9
+ hooksConfig?: string;
10
+ }
11
+ export interface AntigravityPluginStatus {
12
+ installed: boolean;
13
+ location: string;
14
+ version?: string;
15
+ skillCount: number;
16
+ hasMcpConfig: boolean;
17
+ hasHooks: boolean;
18
+ }
19
+ export interface BuildPluginOptions {
20
+ outDir?: string;
21
+ global?: boolean;
22
+ version?: string;
23
+ includeSkills?: boolean;
24
+ }
25
+ export declare function resolvePluginRoot(targetDir: string, isGlobal?: boolean): string;
26
+ export declare function generatePluginManifest(skillsList?: string[], version?: string): AntigravityPluginManifest;
27
+ export declare function generatePluginMcpConfig(): object;
28
+ export declare function buildAntigravityPluginBundle(projectRoot: string, options?: BuildPluginOptions): Promise<{
29
+ outDir: string;
30
+ totalSkills: number;
31
+ manifest: AntigravityPluginManifest;
32
+ }>;
33
+ export declare function installPluginBundle(targetDir: string, options?: {
34
+ global?: boolean;
35
+ projectRoot?: string;
36
+ }): Promise<{
37
+ installedPath: string;
38
+ skillCount: number;
39
+ }>;
40
+ export declare function uninstallPluginBundle(targetDir: string, options?: {
41
+ global?: boolean;
42
+ }): Promise<{
43
+ removed: boolean;
44
+ targetPath: string;
45
+ }>;
46
+ export declare function readPluginStatus(targetDir: string, options?: {
47
+ global?: boolean;
48
+ }): Promise<AntigravityPluginStatus>;
49
+ export declare function formatPluginStatusHuman(status: AntigravityPluginStatus, options?: {
50
+ color?: boolean;
51
+ }): string;
@@ -0,0 +1,179 @@
1
+ import fs from "node:fs/promises";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { generateDefaultAntigravityHooksConfig } from "./antigravity-hooks.js";
5
+ import { createStyle } from "./ui.js";
6
+ export function resolvePluginRoot(targetDir, isGlobal = false) {
7
+ if (isGlobal) {
8
+ const homeDir = os.homedir();
9
+ return path.join(homeDir, ".gemini", "config", "plugins", "nexus-devflow");
10
+ }
11
+ return path.join(targetDir, ".agents", "plugins", "nexus-devflow");
12
+ }
13
+ export function generatePluginManifest(skillsList = [], version = "2.1.0") {
14
+ return {
15
+ name: "nexus-devflow",
16
+ version,
17
+ description: "Agentic workflow layer supporting The 3-Pillars Architecture & Dual-Track Delivery Model",
18
+ author: "Jakkrich M. <https://github.com/Jakkrich/nexus-devflow>",
19
+ skills: skillsList,
20
+ rules: ["rules/nexus-devflow.md"],
21
+ mcpConfig: "mcp_config.json",
22
+ hooksConfig: "hooks.json"
23
+ };
24
+ }
25
+ export function generatePluginMcpConfig() {
26
+ return {
27
+ mcpServers: {
28
+ "nexus-devflow": {
29
+ command: "npx",
30
+ args: ["-y", "@jakkrichm/create-nexus-devflow@latest", "mcp"],
31
+ description: "Nexus-DevFlow 12 Typed Model Context Protocol (MCP) Server Hub"
32
+ }
33
+ }
34
+ };
35
+ }
36
+ export async function buildAntigravityPluginBundle(projectRoot, options = {}) {
37
+ const targetPluginDir = options.outDir || resolvePluginRoot(projectRoot, options.global || false);
38
+ await fs.mkdir(targetPluginDir, { recursive: true });
39
+ await fs.mkdir(path.join(targetPluginDir, "skills"), { recursive: true });
40
+ await fs.mkdir(path.join(targetPluginDir, "rules"), { recursive: true });
41
+ // 1. Copy or scan skills from .agents/skills
42
+ const skillsSourceDir = path.join(projectRoot, ".agents", "skills");
43
+ const discoveredSkills = [];
44
+ try {
45
+ const skillEntries = await fs.readdir(skillsSourceDir, { withFileTypes: true });
46
+ for (const entry of skillEntries) {
47
+ if (entry.isDirectory()) {
48
+ const skillName = entry.name;
49
+ discoveredSkills.push(skillName);
50
+ const srcSkillDir = path.join(skillsSourceDir, skillName);
51
+ const destSkillDir = path.join(targetPluginDir, "skills", skillName);
52
+ await fs.mkdir(destSkillDir, { recursive: true });
53
+ // Copy SKILL.md
54
+ const skillMdSrc = path.join(srcSkillDir, "SKILL.md");
55
+ const skillMdDest = path.join(destSkillDir, "SKILL.md");
56
+ try {
57
+ const content = await fs.readFile(skillMdSrc, "utf8");
58
+ await fs.writeFile(skillMdDest, content, "utf8");
59
+ }
60
+ catch {
61
+ // ignore missing SKILL.md
62
+ }
63
+ }
64
+ }
65
+ }
66
+ catch {
67
+ // If running in minimal/temp environment, populate core default skills list
68
+ if (discoveredSkills.length === 0) {
69
+ discoveredSkills.push("feature", "implement", "check", "complete", "00-explore", "10-define", "20-spec", "30-plan", "40-execute", "50-verify", "60-report", "70-deliver", "doctor", "devflow", "idea", "audit", "ci", "status");
70
+ }
71
+ }
72
+ // 2. Write Manifest (plugin.json)
73
+ const manifest = generatePluginManifest(discoveredSkills, options.version || "2.1.0");
74
+ await fs.writeFile(path.join(targetPluginDir, "plugin.json"), JSON.stringify(manifest, null, 2) + "\n", "utf8");
75
+ // 3. Write MCP Config (mcp_config.json)
76
+ const mcpConfig = generatePluginMcpConfig();
77
+ await fs.writeFile(path.join(targetPluginDir, "mcp_config.json"), JSON.stringify(mcpConfig, null, 2) + "\n", "utf8");
78
+ // 4. Write Hooks Config (hooks.json)
79
+ const hooksConfig = generateDefaultAntigravityHooksConfig();
80
+ await fs.writeFile(path.join(targetPluginDir, "hooks.json"), JSON.stringify(hooksConfig, null, 2) + "\n", "utf8");
81
+ // 5. Write Rules (rules/nexus-devflow.md)
82
+ let rulesContent = "# Nexus-DevFlow Core Workflow Rules\n\n- Follow Fast-Track (/feature -> /implement -> /check -> /complete) for features.\n- Maintain devflow/context/current-feature.md as single living spec.\n";
83
+ try {
84
+ const agentsMdPath = path.join(projectRoot, "AGENTS.md");
85
+ rulesContent = await fs.readFile(agentsMdPath, "utf8");
86
+ }
87
+ catch {
88
+ // default rules
89
+ }
90
+ await fs.writeFile(path.join(targetPluginDir, "rules", "nexus-devflow.md"), rulesContent, "utf8");
91
+ // 6. Write README.md
92
+ const readmeContent = `# Nexus-DevFlow Google Antigravity Plugin
93
+
94
+ Version: ${manifest.version}
95
+
96
+ ## Included Capabilities
97
+ - **${manifest.skills.length} Specialized Workflow Skills** (in \`skills/\`)
98
+ - **12 Typed MCP Server Tools** (via \`mcp_config.json\`)
99
+ - **Lifecycle Action Hooks** (via \`hooks.json\`)
100
+ - **Core Governance Rules** (via \`rules/nexus-devflow.md\`)
101
+ `;
102
+ await fs.writeFile(path.join(targetPluginDir, "README.md"), readmeContent, "utf8");
103
+ return {
104
+ outDir: targetPluginDir,
105
+ totalSkills: manifest.skills.length,
106
+ manifest
107
+ };
108
+ }
109
+ export async function installPluginBundle(targetDir, options = {}) {
110
+ const root = options.projectRoot || targetDir;
111
+ const result = await buildAntigravityPluginBundle(root, {
112
+ global: options.global || false
113
+ });
114
+ return {
115
+ installedPath: result.outDir,
116
+ skillCount: result.totalSkills
117
+ };
118
+ }
119
+ export async function uninstallPluginBundle(targetDir, options = {}) {
120
+ const targetPluginDir = resolvePluginRoot(targetDir, options.global || false);
121
+ try {
122
+ await fs.rm(targetPluginDir, { recursive: true, force: true });
123
+ return { removed: true, targetPath: targetPluginDir };
124
+ }
125
+ catch {
126
+ return { removed: false, targetPath: targetPluginDir };
127
+ }
128
+ }
129
+ export async function readPluginStatus(targetDir, options = {}) {
130
+ const pluginDir = resolvePluginRoot(targetDir, options.global || false);
131
+ try {
132
+ const manifestPath = path.join(pluginDir, "plugin.json");
133
+ const manifestRaw = await fs.readFile(manifestPath, "utf8");
134
+ const manifest = JSON.parse(manifestRaw);
135
+ let hasMcp = false;
136
+ let hasHooks = false;
137
+ try {
138
+ await fs.access(path.join(pluginDir, "mcp_config.json"));
139
+ hasMcp = true;
140
+ }
141
+ catch { /* ignore */ }
142
+ try {
143
+ await fs.access(path.join(pluginDir, "hooks.json"));
144
+ hasHooks = true;
145
+ }
146
+ catch { /* ignore */ }
147
+ return {
148
+ installed: true,
149
+ location: pluginDir,
150
+ version: manifest.version,
151
+ skillCount: manifest.skills?.length || 0,
152
+ hasMcpConfig: hasMcp,
153
+ hasHooks
154
+ };
155
+ }
156
+ catch {
157
+ return {
158
+ installed: false,
159
+ location: pluginDir,
160
+ skillCount: 0,
161
+ hasMcpConfig: false,
162
+ hasHooks: false
163
+ };
164
+ }
165
+ }
166
+ export function formatPluginStatusHuman(status, options = {}) {
167
+ const style = createStyle(options.color);
168
+ if (!status.installed) {
169
+ return `${style.yellow("Nexus-DevFlow Antigravity Plugin is NOT installed")} at:\n ${style.dim(status.location)}\n\nRun ${style.green("nexus-devflow plugin install")} to install in workspace or ${style.green("--global")} for all workspaces.`;
170
+ }
171
+ const lines = [];
172
+ lines.push(style.bold(style.cyan(`[Nexus-DevFlow Google Antigravity Native Plugin v${status.version || "2.1.0"}]`)));
173
+ lines.push(` ${style.dim("Location :")} ${style.bold(status.location)}`);
174
+ lines.push(` ${style.dim("Skills :")} ${style.green(`${status.skillCount} active skills`)}`);
175
+ lines.push(` ${style.dim("MCP Server :")} ${status.hasMcpConfig ? style.green("✔ Configured (mcp_config.json)") : style.red("✖ Missing")}`);
176
+ lines.push(` ${style.dim("Action Hooks:")} ${status.hasHooks ? style.green("✔ Configured (hooks.json)") : style.red("✖ Missing")}`);
177
+ return lines.join("\n");
178
+ }
179
+ //# sourceMappingURL=antigravity-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"antigravity-plugin.js","sourceRoot":"","sources":["../../lib/antigravity-plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ export type ScheduleMode = "timer" | "cron";
2
+ export type TimerCondition = "never" | "any" | string;
3
+ export interface ScheduleOptions {
4
+ mode?: ScheduleMode;
5
+ durationSeconds?: number;
6
+ cronExpression?: string;
7
+ maxIterations?: number;
8
+ timerCondition?: TimerCondition;
9
+ isDaemon?: boolean;
10
+ prompt: string;
11
+ toolSummary?: string;
12
+ toolAction?: string;
13
+ }
14
+ export interface AntigravityScheduleToolPayload {
15
+ Prompt: string;
16
+ toolSummary: string;
17
+ toolAction: string;
18
+ DurationSeconds?: string;
19
+ CronExpression?: string;
20
+ MaxIterations?: string;
21
+ TimerCondition?: string;
22
+ IsDaemon?: boolean;
23
+ }
24
+ export interface CiWatchOptions {
25
+ targetBranch?: string;
26
+ intervalSeconds?: number;
27
+ cronExpression?: string;
28
+ taskId?: string;
29
+ isDaemon?: boolean;
30
+ }
31
+ export declare function generateSchedulerPayload(options: ScheduleOptions): AntigravityScheduleToolPayload;
32
+ export declare function generateCiWatchSchedule(options?: CiWatchOptions): AntigravityScheduleToolPayload;
33
+ export declare function generateGitWatchSchedule(options?: {
34
+ intervalSeconds?: number;
35
+ remoteBranch?: string;
36
+ }): AntigravityScheduleToolPayload;
37
+ export declare function formatSchedulerHuman(payload: AntigravityScheduleToolPayload, options?: {
38
+ color?: boolean;
39
+ }): string;