@nghyane/arcane 0.1.13 → 0.1.15
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/CHANGELOG.md +28 -0
- package/package.json +21 -70
- package/scripts/format-prompts.ts +1 -3
- package/src/cli/args.ts +2 -7
- package/src/cli/config-cli.ts +1 -1
- package/src/cli/plugin-cli.ts +1 -1
- package/src/cli/setup-cli.ts +1 -1
- package/src/cli/update-cli.ts +1 -1
- package/src/cli/web-search-cli.ts +1 -1
- package/src/cli.ts +0 -1
- package/src/commands/config.ts +1 -1
- package/src/commands/grep.ts +1 -1
- package/src/commands/jupyter.ts +1 -1
- package/src/commands/plugin.ts +1 -1
- package/src/commands/setup.ts +1 -1
- package/src/commands/shell.ts +1 -1
- package/src/commands/ssh.ts +1 -1
- package/src/commands/stats.ts +1 -1
- package/src/commands/update.ts +1 -1
- package/src/config/model-registry.ts +3 -4
- package/src/config/model-resolver.ts +36 -9
- package/src/config/prompt-templates.ts +1 -9
- package/src/config/settings-schema.ts +32 -88
- package/src/config/settings.ts +3 -4
- package/src/debug/index.ts +1 -1
- package/src/debug/log-formatting.ts +1 -1
- package/src/debug/log-viewer.ts +2 -2
- package/src/discovery/helpers.ts +13 -3
- package/src/exa/index.ts +1 -35
- package/src/exa/render.ts +30 -190
- package/src/export/html/index.ts +1 -1
- package/src/extensibility/custom-tools/loader.ts +1 -1
- package/src/extensibility/custom-tools/types.ts +5 -1
- package/src/extensibility/custom-tools/wrapper.ts +1 -1
- package/src/extensibility/extensions/runner.ts +1 -1
- package/src/extensibility/extensions/types.ts +1 -1
- package/src/extensibility/extensions/wrapper.ts +7 -15
- package/src/extensibility/hooks/runner.ts +1 -1
- package/src/extensibility/hooks/types.ts +1 -1
- package/src/extensibility/plugins/doctor.ts +1 -1
- package/src/index.ts +13 -13
- package/src/lsp/index.ts +77 -24
- package/src/lsp/render.ts +34 -583
- package/src/lsp/types.ts +3 -3
- package/src/lsp/utils.ts +1 -1
- package/src/main.ts +1 -1
- package/src/mcp/tool-bridge.ts +1 -24
- package/src/modes/components/assistant-message.ts +7 -7
- package/src/modes/components/bash-execution.ts +50 -112
- package/src/modes/components/bordered-loader.ts +1 -1
- package/src/modes/components/branch-summary-message.ts +16 -10
- package/src/modes/components/compaction-summary-message.ts +20 -12
- package/src/modes/components/context-group.ts +106 -0
- package/src/modes/components/custom-message.ts +4 -5
- package/src/modes/components/diff.ts +2 -2
- package/src/modes/components/dynamic-border.ts +1 -1
- package/src/modes/components/extensions/extension-dashboard.ts +1 -1
- package/src/modes/components/extensions/extension-list.ts +1 -1
- package/src/modes/components/extensions/inspector-panel.ts +1 -1
- package/src/modes/components/footer.ts +2 -2
- package/src/modes/components/history-search.ts +1 -1
- package/src/modes/components/hook-editor.ts +1 -1
- package/src/modes/components/hook-input.ts +1 -1
- package/src/modes/components/hook-message.ts +4 -5
- package/src/modes/components/hook-selector.ts +1 -1
- package/src/modes/components/index.ts +0 -2
- package/src/modes/components/keybinding-hints.ts +1 -1
- package/src/modes/components/login-dialog.ts +1 -1
- package/src/modes/components/mcp-add-wizard.ts +1 -1
- package/src/modes/components/model-selector.ts +1 -1
- package/src/modes/components/oauth-selector.ts +1 -1
- package/src/modes/components/plugin-settings.ts +1 -1
- package/src/modes/components/python-execution.ts +51 -91
- package/src/modes/components/queue-mode-selector.ts +1 -1
- package/src/modes/components/session-selector.ts +1 -1
- package/src/modes/components/settings-defs.ts +5 -10
- package/src/modes/components/settings-selector.ts +1 -1
- package/src/modes/components/show-images-selector.ts +1 -1
- package/src/modes/components/skill-message.ts +4 -4
- package/src/modes/components/status-line/segments.ts +2 -2
- package/src/modes/components/status-line/separators.ts +1 -1
- package/src/modes/components/status-line-segment-editor.ts +1 -1
- package/src/modes/components/status-line.ts +1 -1
- package/src/modes/components/theme-selector.ts +1 -1
- package/src/modes/components/thinking-selector.ts +1 -1
- package/src/modes/components/todo-display.ts +2 -4
- package/src/modes/components/todo-reminder.ts +4 -4
- package/src/modes/components/tool-execution.ts +118 -440
- package/src/modes/components/tool-image-display.ts +107 -0
- package/src/modes/components/tree-selector.ts +2 -2
- package/src/modes/components/ttsr-notification.ts +4 -17
- package/src/modes/components/user-message-selector.ts +1 -1
- package/src/modes/components/user-message.ts +9 -10
- package/src/modes/components/welcome.ts +1 -1
- package/src/modes/controllers/command-controller.ts +1 -1
- package/src/modes/controllers/event-controller.ts +58 -187
- package/src/modes/controllers/extension-ui-controller.ts +1 -1
- package/src/modes/controllers/input-controller.ts +3 -1
- package/src/modes/controllers/mcp-command-controller.ts +1 -1
- package/src/modes/controllers/selector-controller.ts +3 -26
- package/src/modes/controllers/ssh-command-controller.ts +1 -1
- package/src/modes/interactive-mode.ts +3 -7
- package/src/modes/print-mode.ts +5 -5
- package/src/modes/rpc/rpc-mode.ts +1 -1
- package/src/modes/types.ts +1 -2
- package/src/modes/utils/ui-helpers.ts +34 -32
- package/src/patch/edit-tool.ts +742 -0
- package/src/patch/index.ts +32 -898
- package/src/patch/schemas.ts +208 -0
- package/src/patch/shared.ts +83 -151
- package/src/prompts/agents/explore.md +22 -37
- package/src/prompts/agents/init.md +1 -1
- package/src/prompts/agents/librarian.md +29 -20
- package/src/prompts/agents/oracle.md +9 -2
- package/src/prompts/agents/reviewer.md +14 -48
- package/src/prompts/agents/task.md +16 -8
- package/src/prompts/compaction/branch-summary.md +4 -1
- package/src/prompts/compaction/compaction-summary.md +4 -1
- package/src/prompts/system/subagent-system-prompt.md +1 -1
- package/src/prompts/system/system-prompt.md +162 -178
- package/src/prompts/system/verification-reminder.md +6 -0
- package/src/sdk.ts +0 -9
- package/src/session/agent-session.ts +244 -1459
- package/src/session/model-controller.ts +406 -0
- package/src/session/retry-utils.ts +71 -0
- package/src/session/session-manager.ts +22 -186
- package/src/session/session-types.ts +312 -0
- package/src/session/stats.ts +387 -0
- package/src/session/streaming-edit.ts +258 -0
- package/src/session/ttsr.ts +213 -0
- package/src/slash-commands/builtin-registry.ts +0 -8
- package/src/stt/recorder.ts +2 -2
- package/src/system-prompt.ts +1 -14
- package/src/task/agents.ts +7 -33
- package/src/task/executor.ts +50 -438
- package/src/task/index.ts +104 -71
- package/src/task/progress-tracker.ts +390 -0
- package/src/task/render.ts +371 -187
- package/src/task/subprocess-tool-registry.ts +1 -1
- package/src/task/types.ts +14 -47
- package/src/tools/ask.ts +31 -42
- package/src/tools/bash-interactive.ts +2 -2
- package/src/tools/bash-interceptor.ts +2 -2
- package/src/tools/bash-normalize.ts +1 -1
- package/src/tools/bash-skill-urls.ts +2 -2
- package/src/tools/bash.ts +87 -136
- package/src/tools/browser.ts +54 -84
- package/src/tools/create-tools.ts +186 -0
- package/src/tools/default-renderer.ts +104 -0
- package/src/tools/explore.ts +11 -10
- package/src/tools/fetch.ts +24 -114
- package/src/tools/find.ts +48 -132
- package/src/tools/gemini-image.ts +5 -15
- package/src/tools/github.ts +450 -0
- package/src/tools/grep.ts +43 -179
- package/src/tools/index.ts +35 -198
- package/src/tools/json-tree.ts +3 -3
- package/src/tools/librarian.ts +18 -18
- package/src/tools/list-limit.ts +2 -2
- package/src/tools/notebook.ts +35 -87
- package/src/tools/oracle.ts +25 -25
- package/src/tools/output-meta.ts +89 -4
- package/src/tools/output-utils.ts +2 -2
- package/src/tools/python.ts +86 -637
- package/src/tools/read.ts +36 -119
- package/src/tools/reviewer-tool.ts +19 -21
- package/src/tools/search-code.ts +128 -0
- package/src/tools/ssh.ts +67 -126
- package/src/tools/subagent-tool.ts +197 -123
- package/src/tools/todo-write.ts +15 -31
- package/src/tools/tool-errors.ts +0 -30
- package/src/tools/undo-edit.ts +30 -67
- package/src/tools/write.ts +78 -127
- package/src/tui/code-cell.ts +4 -4
- package/src/tui/file-list.ts +2 -2
- package/src/tui/output-block.ts +1 -1
- package/src/tui/status-line.ts +1 -1
- package/src/tui/tree-list.ts +2 -2
- package/src/tui/types.ts +1 -1
- package/src/tui/utils.ts +1 -1
- package/src/{tools → ui}/render-utils.ts +87 -126
- package/src/utils/external-editor.ts +4 -4
- package/src/utils/file-mentions.ts +1 -1
- package/src/utils/index.ts +30 -0
- package/src/utils/tools-manager.ts +9 -19
- package/src/web/github-client.ts +290 -0
- package/src/web/scrapers/github.ts +11 -62
- package/src/web/search/auth.ts +1 -3
- package/src/web/search/index.ts +82 -46
- package/src/web/search/provider.ts +11 -16
- package/src/web/search/providers/grep.ts +160 -0
- package/src/web/search/render.ts +48 -235
- package/src/web/search/types.ts +1 -1
- package/src/commands/commit.ts +0 -36
- package/src/commit/agentic/agent.ts +0 -311
- package/src/commit/agentic/fallback.ts +0 -96
- package/src/commit/agentic/index.ts +0 -359
- package/src/commit/agentic/prompts/analyze-file.md +0 -22
- package/src/commit/agentic/prompts/session-user.md +0 -25
- package/src/commit/agentic/prompts/split-confirm.md +0 -1
- package/src/commit/agentic/prompts/system.md +0 -38
- package/src/commit/agentic/state.ts +0 -69
- package/src/commit/agentic/tools/analyze-file.ts +0 -118
- package/src/commit/agentic/tools/git-file-diff.ts +0 -194
- package/src/commit/agentic/tools/git-hunk.ts +0 -50
- package/src/commit/agentic/tools/git-overview.ts +0 -84
- package/src/commit/agentic/tools/index.ts +0 -56
- package/src/commit/agentic/tools/propose-changelog.ts +0 -128
- package/src/commit/agentic/tools/propose-commit.ts +0 -154
- package/src/commit/agentic/tools/recent-commits.ts +0 -81
- package/src/commit/agentic/tools/split-commit.ts +0 -280
- package/src/commit/agentic/topo-sort.ts +0 -44
- package/src/commit/agentic/trivial.ts +0 -51
- package/src/commit/agentic/validation.ts +0 -200
- package/src/commit/analysis/conventional.ts +0 -165
- package/src/commit/analysis/index.ts +0 -4
- package/src/commit/analysis/scope.ts +0 -242
- package/src/commit/analysis/summary.ts +0 -112
- package/src/commit/analysis/validation.ts +0 -66
- package/src/commit/changelog/detect.ts +0 -37
- package/src/commit/changelog/generate.ts +0 -110
- package/src/commit/changelog/index.ts +0 -234
- package/src/commit/changelog/parse.ts +0 -44
- package/src/commit/cli.ts +0 -93
- package/src/commit/git/diff.ts +0 -148
- package/src/commit/git/errors.ts +0 -9
- package/src/commit/git/index.ts +0 -211
- package/src/commit/git/operations.ts +0 -54
- package/src/commit/index.ts +0 -5
- package/src/commit/map-reduce/index.ts +0 -64
- package/src/commit/map-reduce/map-phase.ts +0 -178
- package/src/commit/map-reduce/reduce-phase.ts +0 -145
- package/src/commit/map-reduce/utils.ts +0 -9
- package/src/commit/message.ts +0 -11
- package/src/commit/model-selection.ts +0 -69
- package/src/commit/pipeline.ts +0 -243
- package/src/commit/prompts/analysis-system.md +0 -148
- package/src/commit/prompts/analysis-user.md +0 -38
- package/src/commit/prompts/changelog-system.md +0 -50
- package/src/commit/prompts/changelog-user.md +0 -18
- package/src/commit/prompts/file-observer-system.md +0 -24
- package/src/commit/prompts/file-observer-user.md +0 -8
- package/src/commit/prompts/reduce-system.md +0 -50
- package/src/commit/prompts/reduce-user.md +0 -17
- package/src/commit/prompts/summary-retry.md +0 -3
- package/src/commit/prompts/summary-system.md +0 -38
- package/src/commit/prompts/summary-user.md +0 -13
- package/src/commit/prompts/types-description.md +0 -2
- package/src/commit/types.ts +0 -109
- package/src/commit/utils/exclusions.ts +0 -42
- package/src/mcp/render.ts +0 -123
- package/src/modes/components/agent-dashboard.ts +0 -1130
- package/src/modes/components/codemode-group.ts +0 -369
- package/src/modes/components/read-tool-group.ts +0 -119
- package/src/modes/components/visual-truncate.ts +0 -63
- package/src/prompts/system/subagent-user-prompt.md +0 -8
- package/src/prompts/tools/ask.md +0 -44
- package/src/prompts/tools/bash.md +0 -24
- package/src/prompts/tools/browser.md +0 -33
- package/src/prompts/tools/calculator.md +0 -12
- package/src/prompts/tools/explore.md +0 -29
- package/src/prompts/tools/fetch.md +0 -16
- package/src/prompts/tools/find.md +0 -18
- package/src/prompts/tools/gemini-image.md +0 -23
- package/src/prompts/tools/grep.md +0 -28
- package/src/prompts/tools/hashline.md +0 -232
- package/src/prompts/tools/librarian.md +0 -24
- package/src/prompts/tools/lsp.md +0 -28
- package/src/prompts/tools/oracle.md +0 -26
- package/src/prompts/tools/patch.md +0 -74
- package/src/prompts/tools/python.md +0 -66
- package/src/prompts/tools/read.md +0 -36
- package/src/prompts/tools/replace.md +0 -38
- package/src/prompts/tools/reviewer.md +0 -41
- package/src/prompts/tools/ssh.md +0 -51
- package/src/prompts/tools/task-summary.md +0 -28
- package/src/prompts/tools/task.md +0 -146
- package/src/prompts/tools/todo-write.md +0 -65
- package/src/prompts/tools/undo-edit.md +0 -7
- package/src/prompts/tools/web-search.md +0 -19
- package/src/prompts/tools/write.md +0 -18
- package/src/task/batch.ts +0 -102
- package/src/task/discovery.ts +0 -126
- package/src/task/parallel.ts +0 -84
- package/src/task/template.ts +0 -32
- package/src/tools/calculator.ts +0 -537
- package/src/tools/jtd-to-typescript.ts +0 -198
- package/src/tools/renderers.ts +0 -60
- package/src/tools/tool-result.ts +0 -86
- /package/src/{modes/theme → theme}/dark.json +0 -0
- /package/src/{modes/theme → theme}/defaults/dark-catppuccin.json +0 -0
- /package/src/{modes/theme → theme}/defaults/dark-dracula.json +0 -0
- /package/src/{modes/theme → theme}/defaults/dark-gruvbox.json +0 -0
- /package/src/{modes/theme → theme}/defaults/dark-solarized.json +0 -0
- /package/src/{modes/theme → theme}/defaults/dark-tokyo-night.json +0 -0
- /package/src/{modes/theme → theme}/defaults/index.ts +0 -0
- /package/src/{modes/theme → theme}/defaults/light-catppuccin.json +0 -0
- /package/src/{modes/theme → theme}/defaults/light-github.json +0 -0
- /package/src/{modes/theme → theme}/defaults/light-solarized.json +0 -0
- /package/src/{modes/theme → theme}/light.json +0 -0
- /package/src/{modes/theme → theme}/mermaid-cache.ts +0 -0
- /package/src/{modes/theme → theme}/theme-schema.json +0 -0
- /package/src/{modes/theme → theme}/theme.ts +0 -0
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
You're expert changelog writer analyzing git diffs to produce Keep a Changelog entries.
|
|
2
|
-
|
|
3
|
-
<instructions>
|
|
4
|
-
1. Identify only user-visible changes
|
|
5
|
-
2. Categorize each change (use categories below)
|
|
6
|
-
3. Omit categories with no entries
|
|
7
|
-
</instructions>
|
|
8
|
-
|
|
9
|
-
<categories>
|
|
10
|
-
- Added: New features, public APIs, user-facing capabilities
|
|
11
|
-
- Changed: Modified behavior
|
|
12
|
-
- Deprecated: Features scheduled for removal
|
|
13
|
-
- Removed: Deleted features or APIs
|
|
14
|
-
- Fixed: Bug fixes with observable impact
|
|
15
|
-
- Security: Vulnerability fixes
|
|
16
|
-
- Breaking Changes: API-incompatible changes (use sparingly)
|
|
17
|
-
</categories>
|
|
18
|
-
|
|
19
|
-
<entry_format>
|
|
20
|
-
- Start with past-tense verb (Added, Fixed, Implemented, Updated)
|
|
21
|
-
- Describe user-visible impact, not implementation
|
|
22
|
-
- Name specific feature, option, or behavior
|
|
23
|
-
- Keep 1-2 lines, no trailing periods
|
|
24
|
-
</entry_format>
|
|
25
|
-
|
|
26
|
-
<examples>
|
|
27
|
-
Good:
|
|
28
|
-
- Added --dry-run flag to preview changes without applying them
|
|
29
|
-
- Fixed memory leak when processing large files
|
|
30
|
-
- Changed default timeout from 30s to 60s for slow connections
|
|
31
|
-
|
|
32
|
-
Bad:
|
|
33
|
-
- **cli**: Added dry-run flag -> redundant scope prefix
|
|
34
|
-
- Added new feature. -> vague, trailing period
|
|
35
|
-
- Refactored parser internals -> not user-visible
|
|
36
|
-
|
|
37
|
-
Breaking Changes:
|
|
38
|
-
- Removed legacy auth flow; users must re-authenticate with OAuth tokens
|
|
39
|
-
</examples>
|
|
40
|
-
|
|
41
|
-
<exclude>
|
|
42
|
-
Internal refactoring, code style changes, test-only modifications, minor doc updates.
|
|
43
|
-
</exclude>
|
|
44
|
-
|
|
45
|
-
<output_format>
|
|
46
|
-
Return ONLY valid JSON; no markdown fences or explanation.
|
|
47
|
-
|
|
48
|
-
With entries: {"entries": {"Added": ["entry 1"], "Fixed": ["entry 2"]}}
|
|
49
|
-
No changelog-worthy changes: {"entries": {}}
|
|
50
|
-
</output_format>
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
<context>
|
|
2
|
-
Changelog: {{ changelog_path }}
|
|
3
|
-
{{#if is_package_changelog}}Scope: Package-level changelog. Omit package name prefix from entries.{{/if}}
|
|
4
|
-
</context>
|
|
5
|
-
{{#if existing_entries}}
|
|
6
|
-
<existing_entries>
|
|
7
|
-
Already documented—skip these:
|
|
8
|
-
{{ existing_entries }}
|
|
9
|
-
</existing_entries>
|
|
10
|
-
{{/if}}
|
|
11
|
-
|
|
12
|
-
<diff_summary>
|
|
13
|
-
{{ stat }}
|
|
14
|
-
</diff_summary>
|
|
15
|
-
|
|
16
|
-
<diff>
|
|
17
|
-
{{ diff }}
|
|
18
|
-
</diff>
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
<role>Expert code analyst extracting structured observations from diffs.</role>
|
|
2
|
-
|
|
3
|
-
<instructions>
|
|
4
|
-
Extract factual observations from diff. This matters—be precise.
|
|
5
|
-
1. Use past-tense verb + specific target + optional purpose
|
|
6
|
-
2. Max 100 characters per observation
|
|
7
|
-
3. Consolidate related changes (e.g., "renamed 5 helper functions")
|
|
8
|
-
4. Return 1-5 observations only
|
|
9
|
-
</instructions>
|
|
10
|
-
|
|
11
|
-
<scope>
|
|
12
|
-
Include: functions, methods, types, API changes, behavior/logic changes, error handling, performance, security.
|
|
13
|
-
|
|
14
|
-
Exclude: import reordering, whitespace/formatting, comment-only changes, debug statements.
|
|
15
|
-
</scope>
|
|
16
|
-
|
|
17
|
-
<output_format>
|
|
18
|
-
Plain list, no preamble, no summary, no markdown formatting.
|
|
19
|
-
- added 'parse_config()' function for TOML configuration loading
|
|
20
|
-
- removed deprecated 'legacy_init()' and all callers
|
|
21
|
-
- changed 'Connection::new()' to accept '&Config' instead of individual params
|
|
22
|
-
</output_format>
|
|
23
|
-
|
|
24
|
-
Observations only. Classification in reduce phase.
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
Senior engineer synthesizing file-level observations into conventional commit analysis.
|
|
2
|
-
<context>
|
|
3
|
-
Given map-phase observations, produce unified commit classification with changelog metadata.
|
|
4
|
-
</context>
|
|
5
|
-
<instructions>
|
|
6
|
-
Determine:
|
|
7
|
-
1. TYPE: Single classification
|
|
8
|
-
2. SCOPE: Primary component
|
|
9
|
-
3. DETAILS: 3–4 summary points (max 6)
|
|
10
|
-
4. CHANGELOG: Metadata for user-visible changes
|
|
11
|
-
</instructions>
|
|
12
|
-
<scope_rules>
|
|
13
|
-
- Component name if >=60% changes target it
|
|
14
|
-
- null if spread across multiple components
|
|
15
|
-
- scope_candidates as primary source
|
|
16
|
-
- Valid: specific component names (api, parser, config, etc.)
|
|
17
|
-
</scope_rules>
|
|
18
|
-
<output_format>
|
|
19
|
-
Each detail point:
|
|
20
|
-
- Start with past-tense verb (added, fixed, moved, extracted)
|
|
21
|
-
- Under 120 chars, ends with period
|
|
22
|
-
- Group related cross-file changes
|
|
23
|
-
Priority: user-visible behavior > performance/security > architecture > internal implementation
|
|
24
|
-
changelog_category: Added|Changed|Fixed|Deprecated|Removed|Security
|
|
25
|
-
user_visible: true for features, user-facing bugs, breaking changes, security
|
|
26
|
-
</output_format>
|
|
27
|
-
<example>
|
|
28
|
-
Input observations:
|
|
29
|
-
- api/client.ts: added token refresh guard to prevent duplicate refreshes
|
|
30
|
-
- api/http.ts: introduced retry wrapper for 429 responses
|
|
31
|
-
- api/index.ts: updated exports for retry helper
|
|
32
|
-
Output:
|
|
33
|
-
{
|
|
34
|
-
"type": "fix",
|
|
35
|
-
"scope": "api",
|
|
36
|
-
"details": [
|
|
37
|
-
{
|
|
38
|
-
"text": "Added token refresh guard to prevent duplicate refreshes.",
|
|
39
|
-
"changelog_category": "Fixed",
|
|
40
|
-
"user_visible": true
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
"text": "Introduced retry wrapper for 429 responses.",
|
|
44
|
-
"changelog_category": "Fixed",
|
|
45
|
-
"user_visible": true
|
|
46
|
-
}
|
|
47
|
-
],
|
|
48
|
-
"issue_refs": []
|
|
49
|
-
}
|
|
50
|
-
</example>
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{{#if types_description}}
|
|
2
|
-
<type_definitions>
|
|
3
|
-
{{ types_description }}
|
|
4
|
-
</type_definitions>
|
|
5
|
-
{{/if}}
|
|
6
|
-
|
|
7
|
-
<observations>
|
|
8
|
-
{{ observations }}
|
|
9
|
-
</observations>
|
|
10
|
-
|
|
11
|
-
<diff_statistics>
|
|
12
|
-
{{ stat }}
|
|
13
|
-
</diff_statistics>
|
|
14
|
-
|
|
15
|
-
<scope_candidates>
|
|
16
|
-
{{ scope_candidates }}
|
|
17
|
-
</scope_candidates>
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
You are commit message specialist generating precise, informative descriptions.
|
|
2
|
-
<context>
|
|
3
|
-
Output: ONLY description after "{{ commit_type }}{{ scope_prefix }}:"; max {{ chars }} chars; no trailing period; no type prefix.
|
|
4
|
-
</context>
|
|
5
|
-
|
|
6
|
-
<instructions>
|
|
7
|
-
1. Start with lowercase past-tense verb (not "{{ commit_type }}")
|
|
8
|
-
2. Name specific subsystem/component affected
|
|
9
|
-
3. Include WHY when clarifies intent
|
|
10
|
-
4. One focused concept per message
|
|
11
|
-
</instructions>
|
|
12
|
-
|
|
13
|
-
<verb_reference>
|
|
14
|
-
|Type|Use|
|
|
15
|
-
|---|---|
|
|
16
|
-
|feat|added, introduced, implemented, enabled|
|
|
17
|
-
|fix|corrected, resolved, patched, addressed|
|
|
18
|
-
|refactor|restructured, reorganized, migrated, simplified|
|
|
19
|
-
|perf|optimized, reduced, eliminated, accelerated|
|
|
20
|
-
|docs|documented, clarified, expanded|
|
|
21
|
-
|build|upgraded, pinned, configured|
|
|
22
|
-
|chore|cleaned, removed, renamed, organized|
|
|
23
|
-
</verb_reference>
|
|
24
|
-
<examples>
|
|
25
|
-
feat | TLS encryption added to HTTP client for MITM prevention
|
|
26
|
-
-> added TLS support to prevent man-in-the-middle attacks
|
|
27
|
-
refactor | Consolidated HTTP transport into unified builder pattern
|
|
28
|
-
-> migrated HTTP transport to unified builder API
|
|
29
|
-
fix | Race condition in connection pool causing exhaustion under load
|
|
30
|
-
-> corrected race condition causing connection pool exhaustion
|
|
31
|
-
perf | Batch processing optimized to reduce memory allocations
|
|
32
|
-
-> eliminated allocation overhead in batch processing
|
|
33
|
-
build | Updated serde to fix CVE-2024-1234
|
|
34
|
-
-> upgraded serde to 1.0.200 for CVE-2024-1234
|
|
35
|
-
</examples>
|
|
36
|
-
<banned_words>
|
|
37
|
-
comprehensive, various, several, improved, enhanced, quickly, simply, basically, this change, this commit, now
|
|
38
|
-
</banned_words>
|
package/src/commit/types.ts
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Types for the arcane commit pipeline.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
export type CommitType =
|
|
6
|
-
| "feat"
|
|
7
|
-
| "fix"
|
|
8
|
-
| "refactor"
|
|
9
|
-
| "perf"
|
|
10
|
-
| "docs"
|
|
11
|
-
| "test"
|
|
12
|
-
| "build"
|
|
13
|
-
| "ci"
|
|
14
|
-
| "chore"
|
|
15
|
-
| "style"
|
|
16
|
-
| "revert";
|
|
17
|
-
|
|
18
|
-
export type ChangelogCategory =
|
|
19
|
-
| "Breaking Changes"
|
|
20
|
-
| "Added"
|
|
21
|
-
| "Changed"
|
|
22
|
-
| "Deprecated"
|
|
23
|
-
| "Removed"
|
|
24
|
-
| "Fixed"
|
|
25
|
-
| "Security";
|
|
26
|
-
|
|
27
|
-
export interface CommitCommandArgs {
|
|
28
|
-
/** Push after commit */
|
|
29
|
-
push: boolean;
|
|
30
|
-
/** Preview without committing */
|
|
31
|
-
dryRun: boolean;
|
|
32
|
-
/** Skip changelog updates */
|
|
33
|
-
noChangelog: boolean;
|
|
34
|
-
/** Use legacy deterministic pipeline */
|
|
35
|
-
legacy?: boolean;
|
|
36
|
-
/** Additional user context for the model */
|
|
37
|
-
context?: string;
|
|
38
|
-
/** Override the model selection */
|
|
39
|
-
model?: string;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export interface NumstatEntry {
|
|
43
|
-
path: string;
|
|
44
|
-
additions: number;
|
|
45
|
-
deletions: number;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export interface ConventionalDetail {
|
|
49
|
-
text: string;
|
|
50
|
-
changelogCategory?: ChangelogCategory;
|
|
51
|
-
userVisible: boolean;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export interface ConventionalAnalysis {
|
|
55
|
-
type: CommitType;
|
|
56
|
-
scope: string | null;
|
|
57
|
-
details: ConventionalDetail[];
|
|
58
|
-
issueRefs: string[];
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
export interface CommitSummary {
|
|
62
|
-
summary: string;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export interface FileObservation {
|
|
66
|
-
file: string;
|
|
67
|
-
observations: string[];
|
|
68
|
-
additions: number;
|
|
69
|
-
deletions: number;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export interface FileDiff {
|
|
73
|
-
filename: string;
|
|
74
|
-
content: string;
|
|
75
|
-
additions: number;
|
|
76
|
-
deletions: number;
|
|
77
|
-
isBinary: boolean;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
export interface DiffHunk {
|
|
81
|
-
index: number;
|
|
82
|
-
header: string;
|
|
83
|
-
oldStart: number;
|
|
84
|
-
oldLines: number;
|
|
85
|
-
newStart: number;
|
|
86
|
-
newLines: number;
|
|
87
|
-
content: string;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
export interface FileHunks {
|
|
91
|
-
filename: string;
|
|
92
|
-
isBinary: boolean;
|
|
93
|
-
hunks: DiffHunk[];
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
export interface ChangelogBoundary {
|
|
97
|
-
changelogPath: string;
|
|
98
|
-
files: string[];
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
export interface UnreleasedSection {
|
|
102
|
-
startLine: number;
|
|
103
|
-
endLine: number;
|
|
104
|
-
entries: Record<string, string[]>;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
export interface ChangelogGenerationResult {
|
|
108
|
-
entries: Record<string, string[]>;
|
|
109
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
const EXCLUDED_FILES = [
|
|
2
|
-
"Cargo.lock",
|
|
3
|
-
"package-lock.json",
|
|
4
|
-
"npm-shrinkwrap.json",
|
|
5
|
-
"yarn.lock",
|
|
6
|
-
"pnpm-lock.yaml",
|
|
7
|
-
"shrinkwrap.yaml",
|
|
8
|
-
"bun.lock",
|
|
9
|
-
"bun.lockb",
|
|
10
|
-
"deno.lock",
|
|
11
|
-
"composer.lock",
|
|
12
|
-
"Gemfile.lock",
|
|
13
|
-
"poetry.lock",
|
|
14
|
-
"Pipfile.lock",
|
|
15
|
-
"pdm.lock",
|
|
16
|
-
"uv.lock",
|
|
17
|
-
"go.sum",
|
|
18
|
-
"flake.lock",
|
|
19
|
-
"pubspec.lock",
|
|
20
|
-
"Podfile.lock",
|
|
21
|
-
"Packages.resolved",
|
|
22
|
-
"mix.lock",
|
|
23
|
-
"packages.lock.json",
|
|
24
|
-
"config.yml.lock",
|
|
25
|
-
"config.yaml.lock",
|
|
26
|
-
"settings.yml.lock",
|
|
27
|
-
"settings.yaml.lock",
|
|
28
|
-
];
|
|
29
|
-
|
|
30
|
-
const EXCLUDED_SUFFIXES = [".lock.yml", ".lock.yaml", "-lock.yml", "-lock.yaml"];
|
|
31
|
-
|
|
32
|
-
export function isExcludedFile(path: string): boolean {
|
|
33
|
-
const lower = path.toLowerCase();
|
|
34
|
-
if (EXCLUDED_FILES.some(name => lower.endsWith(name.toLowerCase()))) {
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
return EXCLUDED_SUFFIXES.some(suffix => lower.endsWith(suffix));
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export function filterExcludedFiles<T extends { filename: string }>(files: T[]): T[] {
|
|
41
|
-
return files.filter(file => !isExcludedFile(file.filename));
|
|
42
|
-
}
|
package/src/mcp/render.ts
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TUI rendering for MCP tools.
|
|
3
|
-
*
|
|
4
|
-
* Provides structured display of MCP tool calls and results,
|
|
5
|
-
* showing args and output in JSON tree format similar to task tool.
|
|
6
|
-
*/
|
|
7
|
-
import type { Component } from "@nghyane/arcane-tui";
|
|
8
|
-
import { Text } from "@nghyane/arcane-tui";
|
|
9
|
-
import type { RenderResultOptions } from "../extensibility/custom-tools/types";
|
|
10
|
-
import type { Theme } from "../modes/theme/theme";
|
|
11
|
-
import {
|
|
12
|
-
formatArgsInline,
|
|
13
|
-
JSON_TREE_MAX_DEPTH_COLLAPSED,
|
|
14
|
-
JSON_TREE_MAX_DEPTH_EXPANDED,
|
|
15
|
-
JSON_TREE_MAX_LINES_COLLAPSED,
|
|
16
|
-
JSON_TREE_MAX_LINES_EXPANDED,
|
|
17
|
-
JSON_TREE_SCALAR_LEN_COLLAPSED,
|
|
18
|
-
JSON_TREE_SCALAR_LEN_EXPANDED,
|
|
19
|
-
renderJsonTreeLines,
|
|
20
|
-
} from "../tools/json-tree";
|
|
21
|
-
import { formatExpandHint, truncateToWidth } from "../tools/render-utils";
|
|
22
|
-
import { renderStatusLine } from "../tui";
|
|
23
|
-
import type { MCPToolDetails } from "./tool-bridge";
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Render MCP tool call.
|
|
27
|
-
*/
|
|
28
|
-
export function renderMCPCall(args: Record<string, unknown>, theme: Theme, label: string): Component {
|
|
29
|
-
const lines: string[] = [];
|
|
30
|
-
lines.push(renderStatusLine({ icon: "pending", title: label }, theme));
|
|
31
|
-
|
|
32
|
-
if (args && typeof args === "object" && Object.keys(args).length > 0) {
|
|
33
|
-
// Show args inline preview
|
|
34
|
-
const preview = formatArgsInline(args, 70);
|
|
35
|
-
if (preview) {
|
|
36
|
-
lines.push(` ${theme.fg("dim", theme.tree.last)} ${theme.fg("dim", preview)}`);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
return new Text(lines.join("\n"), 0, 0);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Render MCP tool result.
|
|
45
|
-
*/
|
|
46
|
-
export function renderMCPResult(
|
|
47
|
-
result: { content: Array<{ type: string; text?: string }>; details?: MCPToolDetails; isError?: boolean },
|
|
48
|
-
options: RenderResultOptions,
|
|
49
|
-
theme: Theme,
|
|
50
|
-
args?: Record<string, unknown>,
|
|
51
|
-
): Component {
|
|
52
|
-
const { expanded } = options;
|
|
53
|
-
const lines: string[] = [];
|
|
54
|
-
|
|
55
|
-
// Args section (when expanded)
|
|
56
|
-
if (expanded && args && typeof args === "object" && Object.keys(args).length > 0) {
|
|
57
|
-
lines.push(`${theme.fg("dim", "Args")}`);
|
|
58
|
-
const maxDepth = JSON_TREE_MAX_DEPTH_EXPANDED;
|
|
59
|
-
const maxLines = JSON_TREE_MAX_LINES_EXPANDED;
|
|
60
|
-
const tree = renderJsonTreeLines(args, theme, maxDepth, maxLines, JSON_TREE_SCALAR_LEN_EXPANDED);
|
|
61
|
-
for (const line of tree.lines) {
|
|
62
|
-
lines.push(line);
|
|
63
|
-
}
|
|
64
|
-
if (tree.truncated) {
|
|
65
|
-
lines.push(theme.fg("dim", "…"));
|
|
66
|
-
}
|
|
67
|
-
lines.push(""); // Blank line before output
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
// Output section
|
|
71
|
-
const textContent = result.content?.find(c => c.type === "text")?.text ?? "";
|
|
72
|
-
const trimmedOutput = textContent.trimEnd();
|
|
73
|
-
|
|
74
|
-
if (!trimmedOutput) {
|
|
75
|
-
lines.push(theme.fg("dim", "(no output)"));
|
|
76
|
-
return new Text(lines.join("\n"), 0, 0);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
// Try to parse as JSON for structured display
|
|
80
|
-
if (trimmedOutput.startsWith("{") || trimmedOutput.startsWith("[")) {
|
|
81
|
-
try {
|
|
82
|
-
const parsed = JSON.parse(trimmedOutput);
|
|
83
|
-
const maxDepth = expanded ? JSON_TREE_MAX_DEPTH_EXPANDED : JSON_TREE_MAX_DEPTH_COLLAPSED;
|
|
84
|
-
const maxLines = expanded ? JSON_TREE_MAX_LINES_EXPANDED : JSON_TREE_MAX_LINES_COLLAPSED;
|
|
85
|
-
const maxScalarLen = expanded ? JSON_TREE_SCALAR_LEN_EXPANDED : JSON_TREE_SCALAR_LEN_COLLAPSED;
|
|
86
|
-
const tree = renderJsonTreeLines(parsed, theme, maxDepth, maxLines, maxScalarLen);
|
|
87
|
-
|
|
88
|
-
if (tree.lines.length > 0) {
|
|
89
|
-
for (const line of tree.lines) {
|
|
90
|
-
lines.push(line);
|
|
91
|
-
}
|
|
92
|
-
// Always show expand hint when collapsed (expanded view shows longer values and deeper nesting)
|
|
93
|
-
if (!expanded) {
|
|
94
|
-
lines.push(formatExpandHint(theme, expanded, true));
|
|
95
|
-
} else if (tree.truncated) {
|
|
96
|
-
lines.push(theme.fg("dim", "…"));
|
|
97
|
-
}
|
|
98
|
-
return new Text(lines.join("\n"), 0, 0);
|
|
99
|
-
}
|
|
100
|
-
} catch {
|
|
101
|
-
// Fall through to raw output
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
// Raw text output
|
|
106
|
-
const outputLines = trimmedOutput.split("\n");
|
|
107
|
-
const maxOutputLines = expanded ? 12 : 4;
|
|
108
|
-
const displayLines = outputLines.slice(0, maxOutputLines);
|
|
109
|
-
|
|
110
|
-
for (const line of displayLines) {
|
|
111
|
-
lines.push(theme.fg("toolOutput", truncateToWidth(line, 80)));
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
if (outputLines.length > maxOutputLines) {
|
|
115
|
-
const remaining = outputLines.length - maxOutputLines;
|
|
116
|
-
lines.push(`${theme.fg("dim", `… ${remaining} more lines`)} ${formatExpandHint(theme, expanded, true)}`);
|
|
117
|
-
} else if (!expanded) {
|
|
118
|
-
// Show expand hint when collapsed even if all lines shown (lines may be truncated)
|
|
119
|
-
lines.push(formatExpandHint(theme, expanded, true));
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
return new Text(lines.join("\n"), 0, 0);
|
|
123
|
-
}
|