@kata-sh/cli 0.1.0 → 0.1.2
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/LICENSE +21 -0
- package/README.md +156 -0
- package/dist/app-paths.d.ts +4 -0
- package/dist/app-paths.js +6 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +56 -0
- package/dist/loader.d.ts +2 -0
- package/dist/loader.js +95 -0
- package/dist/resource-loader.d.ts +18 -0
- package/dist/resource-loader.js +50 -0
- package/dist/wizard.d.ts +15 -0
- package/dist/wizard.js +159 -0
- package/package.json +50 -21
- package/pkg/dist/modes/interactive/theme/dark.json +85 -0
- package/pkg/dist/modes/interactive/theme/light.json +84 -0
- package/pkg/dist/modes/interactive/theme/theme-schema.json +335 -0
- package/pkg/dist/modes/interactive/theme/theme.d.ts +78 -0
- package/pkg/dist/modes/interactive/theme/theme.d.ts.map +1 -0
- package/pkg/dist/modes/interactive/theme/theme.js +949 -0
- package/pkg/dist/modes/interactive/theme/theme.js.map +1 -0
- package/pkg/package.json +8 -0
- package/scripts/postinstall.js +45 -0
- package/src/resources/AGENTS.md +108 -0
- package/src/resources/KATA-WORKFLOW.md +661 -0
- package/src/resources/agents/researcher.md +29 -0
- package/src/resources/agents/scout.md +56 -0
- package/src/resources/agents/worker.md +31 -0
- package/src/resources/extensions/ask-user-questions.ts +200 -0
- package/src/resources/extensions/bg-shell/index.ts +2758 -0
- package/src/resources/extensions/browser-tools/BROWSER-TOOLS-V2-PROPOSAL.md +1277 -0
- package/src/resources/extensions/browser-tools/core.js +1057 -0
- package/src/resources/extensions/browser-tools/index.ts +4916 -0
- package/src/resources/extensions/browser-tools/package.json +20 -0
- package/src/resources/extensions/context7/index.ts +428 -0
- package/src/resources/extensions/context7/package.json +11 -0
- package/src/resources/extensions/get-secrets-from-user.ts +352 -0
- package/src/resources/extensions/github/formatters.ts +207 -0
- package/src/resources/extensions/github/gh-api.ts +537 -0
- package/src/resources/extensions/github/index.ts +778 -0
- package/src/resources/extensions/kata/activity-log.ts +88 -0
- package/src/resources/extensions/kata/auto.ts +2786 -0
- package/src/resources/extensions/kata/commands.ts +355 -0
- package/src/resources/extensions/kata/crash-recovery.ts +85 -0
- package/src/resources/extensions/kata/dashboard-overlay.ts +516 -0
- package/src/resources/extensions/kata/docs/preferences-reference.md +103 -0
- package/src/resources/extensions/kata/doctor.ts +683 -0
- package/src/resources/extensions/kata/files.ts +730 -0
- package/src/resources/extensions/kata/gitignore.ts +165 -0
- package/src/resources/extensions/kata/guided-flow.ts +976 -0
- package/src/resources/extensions/kata/index.ts +556 -0
- package/src/resources/extensions/kata/metrics.ts +397 -0
- package/src/resources/extensions/kata/observability-validator.ts +408 -0
- package/src/resources/extensions/kata/package.json +11 -0
- package/src/resources/extensions/kata/paths.ts +346 -0
- package/src/resources/extensions/kata/preferences.ts +695 -0
- package/src/resources/extensions/kata/prompt-loader.ts +50 -0
- package/src/resources/extensions/kata/prompts/complete-milestone.md +25 -0
- package/src/resources/extensions/kata/prompts/complete-slice.md +27 -0
- package/src/resources/extensions/kata/prompts/discuss.md +151 -0
- package/src/resources/extensions/kata/prompts/doctor-heal.md +29 -0
- package/src/resources/extensions/kata/prompts/execute-task.md +64 -0
- package/src/resources/extensions/kata/prompts/guided-complete-slice.md +1 -0
- package/src/resources/extensions/kata/prompts/guided-discuss-milestone.md +3 -0
- package/src/resources/extensions/kata/prompts/guided-discuss-slice.md +59 -0
- package/src/resources/extensions/kata/prompts/guided-execute-task.md +1 -0
- package/src/resources/extensions/kata/prompts/guided-plan-milestone.md +23 -0
- package/src/resources/extensions/kata/prompts/guided-plan-slice.md +1 -0
- package/src/resources/extensions/kata/prompts/guided-research-slice.md +11 -0
- package/src/resources/extensions/kata/prompts/guided-resume-task.md +1 -0
- package/src/resources/extensions/kata/prompts/plan-milestone.md +47 -0
- package/src/resources/extensions/kata/prompts/plan-slice.md +63 -0
- package/src/resources/extensions/kata/prompts/queue.md +85 -0
- package/src/resources/extensions/kata/prompts/reassess-roadmap.md +48 -0
- package/src/resources/extensions/kata/prompts/replan-slice.md +39 -0
- package/src/resources/extensions/kata/prompts/research-milestone.md +37 -0
- package/src/resources/extensions/kata/prompts/research-slice.md +28 -0
- package/src/resources/extensions/kata/prompts/run-uat.md +109 -0
- package/src/resources/extensions/kata/prompts/system.md +341 -0
- package/src/resources/extensions/kata/session-forensics.ts +550 -0
- package/src/resources/extensions/kata/skill-discovery.ts +137 -0
- package/src/resources/extensions/kata/state.ts +509 -0
- package/src/resources/extensions/kata/templates/context.md +76 -0
- package/src/resources/extensions/kata/templates/decisions.md +8 -0
- package/src/resources/extensions/kata/templates/milestone-summary.md +73 -0
- package/src/resources/extensions/kata/templates/plan.md +133 -0
- package/src/resources/extensions/kata/templates/preferences.md +15 -0
- package/src/resources/extensions/kata/templates/project.md +31 -0
- package/src/resources/extensions/kata/templates/reassessment.md +28 -0
- package/src/resources/extensions/kata/templates/requirements.md +81 -0
- package/src/resources/extensions/kata/templates/research.md +46 -0
- package/src/resources/extensions/kata/templates/roadmap.md +118 -0
- package/src/resources/extensions/kata/templates/slice-context.md +58 -0
- package/src/resources/extensions/kata/templates/slice-summary.md +99 -0
- package/src/resources/extensions/kata/templates/state.md +19 -0
- package/src/resources/extensions/kata/templates/task-plan.md +52 -0
- package/src/resources/extensions/kata/templates/task-summary.md +57 -0
- package/src/resources/extensions/kata/templates/uat.md +54 -0
- package/src/resources/extensions/kata/tests/activity-log-prune.test.ts +327 -0
- package/src/resources/extensions/kata/tests/auto-preflight.test.ts +97 -0
- package/src/resources/extensions/kata/tests/auto-supervisor.test.mjs +53 -0
- package/src/resources/extensions/kata/tests/complete-milestone.test.ts +317 -0
- package/src/resources/extensions/kata/tests/cost-projection.test.ts +160 -0
- package/src/resources/extensions/kata/tests/derive-state-deps.test.ts +477 -0
- package/src/resources/extensions/kata/tests/derive-state.test.ts +1013 -0
- package/src/resources/extensions/kata/tests/doctor.test.ts +718 -0
- package/src/resources/extensions/kata/tests/idle-recovery.test.ts +490 -0
- package/src/resources/extensions/kata/tests/metrics-io.test.ts +254 -0
- package/src/resources/extensions/kata/tests/metrics.test.ts +217 -0
- package/src/resources/extensions/kata/tests/must-have-parser.test.ts +309 -0
- package/src/resources/extensions/kata/tests/parsers.test.ts +1257 -0
- package/src/resources/extensions/kata/tests/plan-milestone.test.ts +185 -0
- package/src/resources/extensions/kata/tests/plan-quality-validator.test.ts +386 -0
- package/src/resources/extensions/kata/tests/reassess-prompt.test.ts +208 -0
- package/src/resources/extensions/kata/tests/replan-slice.test.ts +686 -0
- package/src/resources/extensions/kata/tests/requirements.test.ts +151 -0
- package/src/resources/extensions/kata/tests/resolve-ts-hooks.mjs +17 -0
- package/src/resources/extensions/kata/tests/resolve-ts.mjs +11 -0
- package/src/resources/extensions/kata/tests/run-uat.test.ts +383 -0
- package/src/resources/extensions/kata/tests/unit-runtime.test.ts +388 -0
- package/src/resources/extensions/kata/tests/workspace-index.test.ts +118 -0
- package/src/resources/extensions/kata/tests/worktree.test.ts +222 -0
- package/src/resources/extensions/kata/types.ts +159 -0
- package/src/resources/extensions/kata/unit-runtime.ts +163 -0
- package/src/resources/extensions/kata/workspace-index.ts +203 -0
- package/src/resources/extensions/kata/worktree.ts +182 -0
- package/src/resources/extensions/mac-tools/index.ts +852 -0
- package/src/resources/extensions/mac-tools/swift-cli/Package.swift +22 -0
- package/src/resources/extensions/mac-tools/swift-cli/Sources/main.swift +1318 -0
- package/src/resources/extensions/search-the-web/cache.ts +78 -0
- package/src/resources/extensions/search-the-web/format.ts +258 -0
- package/src/resources/extensions/search-the-web/http.ts +238 -0
- package/src/resources/extensions/search-the-web/index.ts +68 -0
- package/src/resources/extensions/search-the-web/tool-fetch-page.ts +519 -0
- package/src/resources/extensions/search-the-web/tool-llm-context.ts +404 -0
- package/src/resources/extensions/search-the-web/tool-search.ts +503 -0
- package/src/resources/extensions/search-the-web/url-utils.ts +91 -0
- package/src/resources/extensions/shared/confirm-ui.ts +126 -0
- package/src/resources/extensions/shared/interview-ui.ts +822 -0
- package/src/resources/extensions/shared/next-action-ui.ts +235 -0
- package/src/resources/extensions/shared/progress-widget.ts +282 -0
- package/src/resources/extensions/shared/thinking-widget.ts +107 -0
- package/src/resources/extensions/shared/ui.ts +400 -0
- package/src/resources/extensions/shared/wizard-ui.ts +551 -0
- package/src/resources/extensions/slash-commands/audit.ts +92 -0
- package/src/resources/extensions/slash-commands/create-extension.ts +375 -0
- package/src/resources/extensions/slash-commands/create-slash-command.ts +280 -0
- package/src/resources/extensions/slash-commands/index.ts +12 -0
- package/src/resources/extensions/slash-commands/kata-run.ts +34 -0
- package/src/resources/extensions/subagent/agents.ts +126 -0
- package/src/resources/extensions/subagent/index.ts +1293 -0
- package/src/resources/skills/debug-like-expert/SKILL.md +231 -0
- package/src/resources/skills/debug-like-expert/references/debugging-mindset.md +253 -0
- package/src/resources/skills/debug-like-expert/references/hypothesis-testing.md +373 -0
- package/src/resources/skills/debug-like-expert/references/investigation-techniques.md +337 -0
- package/src/resources/skills/debug-like-expert/references/verification-patterns.md +425 -0
- package/src/resources/skills/debug-like-expert/references/when-to-research.md +361 -0
- package/src/resources/skills/frontend-design/SKILL.md +45 -0
- package/src/resources/skills/swiftui/SKILL.md +208 -0
- package/src/resources/skills/swiftui/references/animations.md +921 -0
- package/src/resources/skills/swiftui/references/architecture.md +1561 -0
- package/src/resources/skills/swiftui/references/layout-system.md +1186 -0
- package/src/resources/skills/swiftui/references/navigation.md +1492 -0
- package/src/resources/skills/swiftui/references/networking-async.md +214 -0
- package/src/resources/skills/swiftui/references/performance.md +1706 -0
- package/src/resources/skills/swiftui/references/platform-integration.md +204 -0
- package/src/resources/skills/swiftui/references/state-management.md +1443 -0
- package/src/resources/skills/swiftui/references/swiftdata.md +297 -0
- package/src/resources/skills/swiftui/references/testing-debugging.md +247 -0
- package/src/resources/skills/swiftui/references/uikit-appkit-interop.md +218 -0
- package/src/resources/skills/swiftui/workflows/add-feature.md +191 -0
- package/src/resources/skills/swiftui/workflows/build-new-app.md +311 -0
- package/src/resources/skills/swiftui/workflows/debug-swiftui.md +192 -0
- package/src/resources/skills/swiftui/workflows/optimize-performance.md +197 -0
- package/src/resources/skills/swiftui/workflows/ship-app.md +203 -0
- package/src/resources/skills/swiftui/workflows/write-tests.md +235 -0
- package/dist/commands/task.d.ts +0 -9
- package/dist/commands/task.d.ts.map +0 -1
- package/dist/commands/task.js +0 -129
- package/dist/commands/task.js.map +0 -1
- package/dist/commands/task.test.d.ts +0 -2
- package/dist/commands/task.test.d.ts.map +0 -1
- package/dist/commands/task.test.js +0 -169
- package/dist/commands/task.test.js.map +0 -1
- package/dist/e2e/task-e2e.test.d.ts +0 -2
- package/dist/e2e/task-e2e.test.d.ts.map +0 -1
- package/dist/e2e/task-e2e.test.js +0 -173
- package/dist/e2e/task-e2e.test.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -93
- package/dist/index.js.map +0 -1
- package/dist/slug.d.ts +0 -2
- package/dist/slug.d.ts.map +0 -1
- package/dist/slug.js +0 -12
- package/dist/slug.js.map +0 -1
- package/dist/slug.test.d.ts +0 -2
- package/dist/slug.test.d.ts.map +0 -1
- package/dist/slug.test.js +0 -32
- package/dist/slug.test.js.map +0 -1
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kata bootstrappers for .gitignore and PREFERENCES.md
|
|
3
|
+
*
|
|
4
|
+
* Ensures baseline .gitignore exists with universally-correct patterns.
|
|
5
|
+
* Creates an empty PREFERENCES.md template if it doesn't exist.
|
|
6
|
+
* Both idempotent — non-destructive if already present.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { join } from "node:path";
|
|
10
|
+
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Patterns that are always correct regardless of project type.
|
|
14
|
+
* No one ever wants these tracked.
|
|
15
|
+
*/
|
|
16
|
+
const BASELINE_PATTERNS = [
|
|
17
|
+
// ── Kata runtime (not source artifacts) ──
|
|
18
|
+
".kata/activity/",
|
|
19
|
+
".kata/runtime/",
|
|
20
|
+
".kata/auto.lock",
|
|
21
|
+
".kata/metrics.json",
|
|
22
|
+
".kata/STATE.md",
|
|
23
|
+
|
|
24
|
+
// ── OS junk ──
|
|
25
|
+
".DS_Store",
|
|
26
|
+
"Thumbs.db",
|
|
27
|
+
|
|
28
|
+
// ── Editor / IDE ──
|
|
29
|
+
"*.swp",
|
|
30
|
+
"*.swo",
|
|
31
|
+
"*~",
|
|
32
|
+
".idea/",
|
|
33
|
+
".vscode/",
|
|
34
|
+
"*.code-workspace",
|
|
35
|
+
|
|
36
|
+
// ── Environment / secrets ──
|
|
37
|
+
".env",
|
|
38
|
+
".env.*",
|
|
39
|
+
"!.env.example",
|
|
40
|
+
|
|
41
|
+
// ── Node / JS / TS ──
|
|
42
|
+
"node_modules/",
|
|
43
|
+
".next/",
|
|
44
|
+
"dist/",
|
|
45
|
+
"build/",
|
|
46
|
+
|
|
47
|
+
// ── Python ──
|
|
48
|
+
"__pycache__/",
|
|
49
|
+
"*.pyc",
|
|
50
|
+
".venv/",
|
|
51
|
+
"venv/",
|
|
52
|
+
|
|
53
|
+
// ── Rust ──
|
|
54
|
+
"target/",
|
|
55
|
+
|
|
56
|
+
// ── Go ──
|
|
57
|
+
"vendor/",
|
|
58
|
+
|
|
59
|
+
// ── Misc build artifacts ──
|
|
60
|
+
"*.log",
|
|
61
|
+
"coverage/",
|
|
62
|
+
".cache/",
|
|
63
|
+
"tmp/",
|
|
64
|
+
];
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Ensure basePath/.gitignore contains all baseline patterns.
|
|
68
|
+
* Creates the file if missing; appends only missing lines if it exists.
|
|
69
|
+
* Returns true if the file was created or modified, false if already complete.
|
|
70
|
+
*/
|
|
71
|
+
export function ensureGitignore(basePath: string): boolean {
|
|
72
|
+
const gitignorePath = join(basePath, ".gitignore");
|
|
73
|
+
|
|
74
|
+
let existing = "";
|
|
75
|
+
if (existsSync(gitignorePath)) {
|
|
76
|
+
existing = readFileSync(gitignorePath, "utf-8");
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// Parse existing lines (trimmed, ignoring comments and blanks)
|
|
80
|
+
const existingLines = new Set(
|
|
81
|
+
existing
|
|
82
|
+
.split("\n")
|
|
83
|
+
.map((l) => l.trim())
|
|
84
|
+
.filter((l) => l && !l.startsWith("#")),
|
|
85
|
+
);
|
|
86
|
+
|
|
87
|
+
// Find patterns not yet present
|
|
88
|
+
const missing = BASELINE_PATTERNS.filter((p) => !existingLines.has(p));
|
|
89
|
+
|
|
90
|
+
if (missing.length === 0) return false;
|
|
91
|
+
|
|
92
|
+
// Build the block to append
|
|
93
|
+
const block = [
|
|
94
|
+
"",
|
|
95
|
+
"# ── Kata baseline (auto-generated) ──",
|
|
96
|
+
...missing,
|
|
97
|
+
"",
|
|
98
|
+
].join("\n");
|
|
99
|
+
|
|
100
|
+
// Ensure existing content ends with a newline before appending
|
|
101
|
+
const prefix = existing && !existing.endsWith("\n") ? "\n" : "";
|
|
102
|
+
writeFileSync(gitignorePath, existing + prefix + block, "utf-8");
|
|
103
|
+
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Ensure basePath/.kata/PREFERENCES.md exists as an empty template.
|
|
109
|
+
* Creates the file with frontmatter only if it doesn't exist.
|
|
110
|
+
* Returns true if created, false if already exists.
|
|
111
|
+
*/
|
|
112
|
+
export function ensurePreferences(basePath: string): boolean {
|
|
113
|
+
const preferencesPath = join(basePath, ".kata", "PREFERENCES.md");
|
|
114
|
+
|
|
115
|
+
if (existsSync(preferencesPath)) {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
const template = `---
|
|
120
|
+
version: 1
|
|
121
|
+
always_use_skills: []
|
|
122
|
+
prefer_skills: []
|
|
123
|
+
avoid_skills: []
|
|
124
|
+
skill_rules: []
|
|
125
|
+
custom_instructions: []
|
|
126
|
+
models: {}
|
|
127
|
+
skill_discovery: {}
|
|
128
|
+
auto_supervisor: {}
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
# Kata Skill Preferences
|
|
132
|
+
|
|
133
|
+
Project-specific guidance for skill selection and execution preferences.
|
|
134
|
+
|
|
135
|
+
See \`~/.kata-cli/agent/extensions/kata/docs/preferences-reference.md\` for full field documentation and examples.
|
|
136
|
+
|
|
137
|
+
## Fields
|
|
138
|
+
|
|
139
|
+
- \`always_use_skills\`: Skills that must be available during all Kata operations
|
|
140
|
+
- \`prefer_skills\`: Skills to prioritize when multiple options exist
|
|
141
|
+
- \`avoid_skills\`: Skills to minimize or avoid (with lower priority than prefer)
|
|
142
|
+
- \`skill_rules\`: Context-specific rules (e.g., "use tool X for Y type of work")
|
|
143
|
+
- \`custom_instructions\`: Append-only project guidance (do not override system rules)
|
|
144
|
+
- \`models\`: Model preferences for specific task types
|
|
145
|
+
- \`skill_discovery\`: Automatic skill detection preferences
|
|
146
|
+
- \`auto_supervisor\`: Supervision and gating rules for autonomous modes
|
|
147
|
+
|
|
148
|
+
## Examples
|
|
149
|
+
|
|
150
|
+
\`\`\`yaml
|
|
151
|
+
prefer_skills:
|
|
152
|
+
- playwright
|
|
153
|
+
- resolve_library
|
|
154
|
+
avoid_skills:
|
|
155
|
+
- subagent # prefer direct execution in this project
|
|
156
|
+
|
|
157
|
+
custom_instructions:
|
|
158
|
+
- "Always verify with browser_assert before marking UI work done"
|
|
159
|
+
- "Use Context7 for all library/framework decisions"
|
|
160
|
+
\`\`\`
|
|
161
|
+
`;
|
|
162
|
+
|
|
163
|
+
writeFileSync(preferencesPath, template, "utf-8");
|
|
164
|
+
return true;
|
|
165
|
+
}
|