bobo-ai-cli 3.0.4 → 3.0.5
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 -21
- package/README.md +259 -259
- package/bundled-skills/CORE_SKILLS.txt +18 -18
- package/bundled-skills/backend-expert/SKILL.md +97 -97
- package/bundled-skills/code-review/SKILL.md +280 -280
- package/bundled-skills/code-review-expert/SKILL.md +85 -85
- package/bundled-skills/context-budget-analyzer/SKILL.md +76 -76
- package/bundled-skills/context-compressor/SKILL.md +75 -75
- package/bundled-skills/context-optimization-suite/SKILL.md +162 -162
- package/bundled-skills/frontend-expert/SKILL.md +93 -93
- package/bundled-skills/github/SKILL.md +12 -12
- package/bundled-skills/high-agency/SKILL.md +473 -473
- package/bundled-skills/high-agency/references/builder-patterns.md +126 -126
- package/bundled-skills/high-agency/references/recovery-playbook.md +298 -298
- package/bundled-skills/memory-manager/SKILL.md +214 -214
- package/bundled-skills/memory-manager/references/advanced-config.md +65 -65
- package/bundled-skills/orchestrator/SKILL.md +681 -681
- package/bundled-skills/planning-with-files/SKILL.md +193 -193
- package/bundled-skills/skill-creator/SKILL.md +220 -220
- package/bundled-skills/testing-expert/SKILL.md +99 -99
- package/bundled-skills/verify/SKILL.md +15 -15
- package/dist/agent.d.ts +5 -0
- package/dist/agent.js +11 -1
- package/dist/agent.js.map +1 -1
- package/dist/agents/catalog.d.ts +47 -0
- package/dist/agents/catalog.js +63 -5
- package/dist/agents/catalog.js.map +1 -1
- package/dist/agents/router.d.ts +12 -1
- package/dist/agents/router.js +43 -3
- package/dist/agents/router.js.map +1 -1
- package/dist/agents/spawn.js +36 -18
- package/dist/agents/spawn.js.map +1 -1
- package/dist/autonomous.js +5 -5
- package/dist/cli.js +23 -21
- package/dist/cli.js.map +1 -1
- package/dist/compactor.js +39 -39
- package/dist/dream.js +29 -29
- package/dist/image-input.d.ts +44 -0
- package/dist/image-input.js +161 -0
- package/dist/image-input.js.map +1 -0
- package/dist/memory.js +13 -13
- package/dist/project.js +15 -15
- package/dist/repl.js +88 -0
- package/dist/repl.js.map +1 -1
- package/dist/skills.js +54 -54
- package/dist/sub-agents.js +65 -65
- package/dist/tools/browser.js +21 -21
- package/dist/tools/claude-code.js +10 -10
- package/dist/web.js +7 -7
- package/dist/wiki-commands.d.ts +2 -0
- package/dist/wiki-commands.js +249 -0
- package/dist/wiki-commands.js.map +1 -0
- package/dist/wiki.d.ts +90 -0
- package/dist/wiki.js +614 -0
- package/dist/wiki.js.map +1 -0
- package/knowledge/advanced-patterns.md +70 -70
- package/knowledge/agent-directives.md +74 -74
- package/knowledge/api-integration-patterns.md +102 -0
- package/knowledge/code-review-protocol.md +69 -0
- package/knowledge/dream.md +36 -36
- package/knowledge/engineering.md +52 -46
- package/knowledge/error-catalog.md +38 -33
- package/knowledge/event-driven-architecture.md +43 -0
- package/knowledge/external-alignment.md +47 -0
- package/knowledge/high-agency.md +73 -0
- package/knowledge/image-generation.md +48 -0
- package/knowledge/index.json +194 -169
- package/knowledge/llm-wiki-pattern.md +71 -0
- package/knowledge/long-task-management.md +79 -0
- package/knowledge/memory/cache-optimization-and-skill-integration.md +102 -102
- package/knowledge/memory/engineering-patterns.md +134 -134
- package/knowledge/memory/feedback_root_structure.md +15 -15
- package/knowledge/memory/project-contexts.md +69 -69
- package/knowledge/memory/tools-and-services.md +85 -85
- package/knowledge/memory-management.md +72 -0
- package/knowledge/rules/advisor-strategy.md +204 -0
- package/knowledge/rules/agents.md +62 -62
- package/knowledge/rules/blocking-rules.md +323 -323
- package/knowledge/rules/cache-management.md +379 -379
- package/knowledge/rules/capability-evolution.md +132 -132
- package/knowledge/rules/coding.md +126 -126
- package/knowledge/rules/engineering-workflows.md +225 -225
- package/knowledge/rules/evomap-content-guidelines.md +354 -354
- package/knowledge/rules/evomap-guide.md +224 -224
- package/knowledge/rules/external-alignment.md +22 -0
- package/knowledge/rules/git.md +31 -31
- package/knowledge/rules/hooks.md +106 -106
- package/knowledge/rules/performance.md +101 -101
- package/knowledge/rules/remotion-auto-production.md +1120 -1120
- package/knowledge/rules/security.md +46 -46
- package/knowledge/rules/testing.md +32 -32
- package/knowledge/rules/work-mode.md +208 -208
- package/knowledge/rules.md +62 -62
- package/knowledge/self-evolution.md +78 -0
- package/knowledge/self-rationalization-guard.md +52 -0
- package/knowledge/skills/Skill_Seekers.md +1722 -1722
- package/knowledge/skills/ab-test-setup.md +557 -557
- package/knowledge/skills/agent-sdk-dev.md +238 -238
- package/knowledge/skills/agent-tools.md +136 -136
- package/knowledge/skills/analytics-tracking.md +597 -597
- package/knowledge/skills/artifacts-builder.md +89 -89
- package/knowledge/skills/asana.md +12 -12
- package/knowledge/skills/backend-expert.md +97 -97
- package/knowledge/skills/brand-voice.md +481 -481
- package/knowledge/skills/browser-use.md +419 -419
- package/knowledge/skills/cache-optimization-skill.md +179 -179
- package/knowledge/skills/canvas-design.md +147 -147
- package/knowledge/skills/citation-validator.md +203 -203
- package/knowledge/skills/clangd-lsp.md +52 -52
- package/knowledge/skills/code-review-expert.md +85 -85
- package/knowledge/skills/code-review.md +280 -280
- package/knowledge/skills/code-simplifier.md +12 -12
- package/knowledge/skills/commit-commands.md +258 -258
- package/knowledge/skills/competitor-alternatives.md +795 -795
- package/knowledge/skills/content-atomizer.md +910 -910
- package/knowledge/skills/content-research-writer.md +605 -605
- package/knowledge/skills/context-optimization-suite.md +162 -162
- package/knowledge/skills/context7.md +12 -12
- package/knowledge/skills/copy-editing.md +494 -494
- package/knowledge/skills/copywriting.md +510 -510
- package/knowledge/skills/csharp-lsp.md +40 -40
- package/knowledge/skills/decision-making-framework.md +154 -154
- package/knowledge/skills/developer-growth-analysis.md +335 -335
- package/knowledge/skills/direct-response-copy.md +2336 -2336
- package/knowledge/skills/docker-expert.md +229 -229
- package/knowledge/skills/document-skills.md +12 -12
- package/knowledge/skills/documentation-expert.md +126 -126
- package/knowledge/skills/email-sequence.md +1061 -1061
- package/knowledge/skills/email-sequences.md +910 -910
- package/knowledge/skills/example-plugin.md +72 -72
- package/knowledge/skills/explanatory-output-style.md +82 -82
- package/knowledge/skills/feature-dev.md +458 -458
- package/knowledge/skills/file-organizer.md +466 -466
- package/knowledge/skills/firebase.disabled.md +12 -12
- package/knowledge/skills/form-cro.md +488 -488
- package/knowledge/skills/free-tool-strategy.md +636 -636
- package/knowledge/skills/frontend-design-offical.md +55 -55
- package/knowledge/skills/frontend-design.md +41 -41
- package/knowledge/skills/frontend-expert.md +93 -93
- package/knowledge/skills/github.md +12 -12
- package/knowledge/skills/gitlab.md +12 -12
- package/knowledge/skills/gopls-lsp.md +32 -32
- package/knowledge/skills/got-controller.md +218 -218
- package/knowledge/skills/greptile.md +72 -72
- package/knowledge/skills/hookify.md +376 -376
- package/knowledge/skills/image-editor.md +189 -189
- package/knowledge/skills/image-enhancer.md +109 -109
- package/knowledge/skills/jdtls-lsp.md +49 -49
- package/knowledge/skills/json-canvas.md +654 -654
- package/knowledge/skills/keyword-research.md +559 -559
- package/knowledge/skills/kotlin-lsp.md +28 -28
- package/knowledge/skills/laravel-boost.md +12 -12
- package/knowledge/skills/launch-strategy.md +394 -394
- package/knowledge/skills/lead-magnet.md +393 -393
- package/knowledge/skills/learning-output-style.md +106 -106
- package/knowledge/skills/linear.md +12 -12
- package/knowledge/skills/lua-lsp.md +47 -47
- package/knowledge/skills/marketing-ideas.md +720 -720
- package/knowledge/skills/marketing-psychology.md +534 -534
- package/knowledge/skills/mcp-builder.md +369 -369
- package/knowledge/skills/meeting-insights-analyzer.md +347 -347
- package/knowledge/skills/memory-evolution-system.md +172 -172
- package/knowledge/skills/multi-lens-thinking.md +407 -407
- package/knowledge/skills/nano-banana-pro.md +116 -116
- package/knowledge/skills/newsletter.md +736 -736
- package/knowledge/skills/notebooklm.md +296 -296
- package/knowledge/skills/obsidian-bases.md +634 -634
- package/knowledge/skills/obsidian-markdown.md +651 -651
- package/knowledge/skills/onboarding-cro.md +494 -494
- package/knowledge/skills/orchestrator.md +681 -681
- package/knowledge/skills/page-cro.md +379 -379
- package/knowledge/skills/paid-ads.md +624 -624
- package/knowledge/skills/paywall-upgrade-cro.md +651 -651
- package/knowledge/skills/php-lsp.md +36 -36
- package/knowledge/skills/planning-with-files.md +193 -193
- package/knowledge/skills/playwright.md +12 -12
- package/knowledge/skills/plugin-dev.md +434 -434
- package/knowledge/skills/popup-cro.md +520 -520
- package/knowledge/skills/positioning-angles.md +330 -330
- package/knowledge/skills/pr-review-toolkit.md +359 -359
- package/knowledge/skills/pricing-strategy.md +777 -777
- package/knowledge/skills/programmatic-seo.md +714 -714
- package/knowledge/skills/pyright-lsp.md +43 -43
- package/knowledge/skills/quality-assurance-framework.md +168 -168
- package/knowledge/skills/question-refiner.md +160 -160
- package/knowledge/skills/ralph-loop.md +205 -205
- package/knowledge/skills/refactoring-expert.md +103 -103
- package/knowledge/skills/referral-program.md +668 -668
- package/knowledge/skills/research-executor.md +164 -164
- package/knowledge/skills/review-with-security.md +12 -12
- package/knowledge/skills/rust-analyzer-lsp.md +50 -50
- package/knowledge/skills/schema-markup.md +647 -647
- package/knowledge/skills/security-audit-expert.md +124 -124
- package/knowledge/skills/security-expert.md +140 -140
- package/knowledge/skills/security-guidance.md +12 -12
- package/knowledge/skills/seedance-prompt.md +139 -139
- package/knowledge/skills/self-evolution.md +1160 -1160
- package/knowledge/skills/seo-audit.md +432 -432
- package/knowledge/skills/seo-content.md +787 -787
- package/knowledge/skills/serena.md +12 -12
- package/knowledge/skills/signup-flow-cro.md +409 -409
- package/knowledge/skills/skill-creator.md +220 -220
- package/knowledge/skills/skill-manager.md +226 -226
- package/knowledge/skills/skill-share.md +98 -98
- package/knowledge/skills/slack.md +12 -12
- package/knowledge/skills/social-content.md +878 -878
- package/knowledge/skills/spec-flow-skill.md +124 -124
- package/knowledge/skills/stripe.md +12 -12
- package/knowledge/skills/supabase.md +12 -12
- package/knowledge/skills/swift-lsp.md +40 -40
- package/knowledge/skills/synthesizer.md +236 -236
- package/knowledge/skills/template-skill.md +16 -16
- package/knowledge/skills/testing-expert.md +99 -99
- package/knowledge/skills/theme-factory.md +72 -72
- package/knowledge/skills/tiktok-research.md +208 -208
- package/knowledge/skills/typescript-lsp.md +36 -36
- package/knowledge/skills/ui-ux-pro-max.md +247 -247
- package/knowledge/skills/verify.md +15 -15
- package/knowledge/skills/visual-prompt-engineer.md +102 -102
- package/knowledge/skills/webapp-testing.md +111 -111
- package/knowledge/skills/wide-research.md +191 -191
- package/knowledge/system.md +93 -93
- package/knowledge/task-router.md +46 -37
- package/knowledge/verification.md +38 -38
- package/knowledge/worker-prompt-craft.md +66 -0
- package/knowledge/workflows/3d-viz.md +47 -47
- package/knowledge/workflows/data-pipeline.md +47 -47
- package/knowledge/workflows/db-migration.md +51 -51
- package/knowledge/workflows/feature-dev.md +41 -41
- package/knowledge/workflows/tdd-flow.md +52 -52
- package/knowledge/workflows/ui-verify.md +51 -51
- package/package.json +74 -74
- package/dist/claude-bridge.d.ts +0 -18
- package/dist/claude-bridge.js +0 -91
- package/dist/claude-bridge.js.map +0 -1
- package/dist/tools/claude-bridge-tool.d.ts +0 -4
- package/dist/tools/claude-bridge-tool.js +0 -44
- package/dist/tools/claude-bridge-tool.js.map +0 -1
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: tdd-flow
|
|
3
|
-
title: "TDD Full Flow"
|
|
4
|
-
type: tdd
|
|
5
|
-
triggers: [new feature, bug fix, refactor, critical logic]
|
|
6
|
-
checklist: [Tests pass, Coverage >= 80%, Edge cases covered, Property tests for critical paths]
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# TDD Full Flow
|
|
10
|
-
|
|
11
|
-
## Triggers
|
|
12
|
-
- new feature
|
|
13
|
-
- bug fix
|
|
14
|
-
- refactor
|
|
15
|
-
- critical logic
|
|
16
|
-
|
|
17
|
-
## Steps
|
|
18
|
-
### Step 1: Plan architecture
|
|
19
|
-
Use sequential thinking to plan the architecture
|
|
20
|
-
- Action: `plan`
|
|
21
|
-
- Depends on: none
|
|
22
|
-
|
|
23
|
-
### Step 2: RED - Write failing tests
|
|
24
|
-
Write unit tests covering all edge cases - must FAIL
|
|
25
|
-
- Action: `write-test`
|
|
26
|
-
- Depends on: plan
|
|
27
|
-
|
|
28
|
-
### Step 3: GREEN - Minimal implementation
|
|
29
|
-
Write minimal code to make tests pass
|
|
30
|
-
- Action: `implement`
|
|
31
|
-
- Depends on: write-test
|
|
32
|
-
|
|
33
|
-
### Step 4: REFACTOR
|
|
34
|
-
Clean up code while keeping tests green
|
|
35
|
-
- Action: `refactor`
|
|
36
|
-
- Depends on: implement
|
|
37
|
-
|
|
38
|
-
### Step 5: Property tests
|
|
39
|
-
Add property-based tests for critical functions
|
|
40
|
-
- Action: `property-test`
|
|
41
|
-
- Depends on: refactor
|
|
42
|
-
|
|
43
|
-
### Step 6: Mutation tests
|
|
44
|
-
Verify test quality with mutation testing
|
|
45
|
-
- Action: `mutation-test`
|
|
46
|
-
- Depends on: property-test
|
|
47
|
-
|
|
48
|
-
## Checklist
|
|
49
|
-
- [ ] Tests pass
|
|
50
|
-
- [ ] Coverage >= 80%
|
|
51
|
-
- [ ] Edge cases covered
|
|
52
|
-
- [ ] Property tests for critical paths
|
|
1
|
+
---
|
|
2
|
+
id: tdd-flow
|
|
3
|
+
title: "TDD Full Flow"
|
|
4
|
+
type: tdd
|
|
5
|
+
triggers: [new feature, bug fix, refactor, critical logic]
|
|
6
|
+
checklist: [Tests pass, Coverage >= 80%, Edge cases covered, Property tests for critical paths]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# TDD Full Flow
|
|
10
|
+
|
|
11
|
+
## Triggers
|
|
12
|
+
- new feature
|
|
13
|
+
- bug fix
|
|
14
|
+
- refactor
|
|
15
|
+
- critical logic
|
|
16
|
+
|
|
17
|
+
## Steps
|
|
18
|
+
### Step 1: Plan architecture
|
|
19
|
+
Use sequential thinking to plan the architecture
|
|
20
|
+
- Action: `plan`
|
|
21
|
+
- Depends on: none
|
|
22
|
+
|
|
23
|
+
### Step 2: RED - Write failing tests
|
|
24
|
+
Write unit tests covering all edge cases - must FAIL
|
|
25
|
+
- Action: `write-test`
|
|
26
|
+
- Depends on: plan
|
|
27
|
+
|
|
28
|
+
### Step 3: GREEN - Minimal implementation
|
|
29
|
+
Write minimal code to make tests pass
|
|
30
|
+
- Action: `implement`
|
|
31
|
+
- Depends on: write-test
|
|
32
|
+
|
|
33
|
+
### Step 4: REFACTOR
|
|
34
|
+
Clean up code while keeping tests green
|
|
35
|
+
- Action: `refactor`
|
|
36
|
+
- Depends on: implement
|
|
37
|
+
|
|
38
|
+
### Step 5: Property tests
|
|
39
|
+
Add property-based tests for critical functions
|
|
40
|
+
- Action: `property-test`
|
|
41
|
+
- Depends on: refactor
|
|
42
|
+
|
|
43
|
+
### Step 6: Mutation tests
|
|
44
|
+
Verify test quality with mutation testing
|
|
45
|
+
- Action: `mutation-test`
|
|
46
|
+
- Depends on: property-test
|
|
47
|
+
|
|
48
|
+
## Checklist
|
|
49
|
+
- [ ] Tests pass
|
|
50
|
+
- [ ] Coverage >= 80%
|
|
51
|
+
- [ ] Edge cases covered
|
|
52
|
+
- [ ] Property tests for critical paths
|
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: ui-verify
|
|
3
|
-
title: "UI Verification Loop"
|
|
4
|
-
type: ui-verify
|
|
5
|
-
triggers: [UI modify, frontend change, component update]
|
|
6
|
-
checklist: [App starts, Visual elements render, No console errors, Responsive layout]
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# UI Verification Loop
|
|
10
|
-
|
|
11
|
-
## Triggers
|
|
12
|
-
- UI modify
|
|
13
|
-
- frontend change
|
|
14
|
-
- component update
|
|
15
|
-
|
|
16
|
-
## Steps
|
|
17
|
-
### Step 1: Complete code modification
|
|
18
|
-
Finish all UI code changes
|
|
19
|
-
- Action: `code`
|
|
20
|
-
- Depends on: none
|
|
21
|
-
|
|
22
|
-
### Step 2: Start dev server
|
|
23
|
-
Run npm run dev to start the application
|
|
24
|
-
- Action: `npm run dev`
|
|
25
|
-
- Depends on: code
|
|
26
|
-
|
|
27
|
-
### Step 3: Navigate to component
|
|
28
|
-
Open browser and navigate to affected component
|
|
29
|
-
- Action: `navigate`
|
|
30
|
-
- Depends on: npm run dev
|
|
31
|
-
|
|
32
|
-
### Step 4: Verify visual rendering
|
|
33
|
-
Check visual elements render correctly
|
|
34
|
-
- Action: `verify`
|
|
35
|
-
- Depends on: navigate
|
|
36
|
-
|
|
37
|
-
### Step 5: Check console errors
|
|
38
|
-
Open DevTools and verify no console errors
|
|
39
|
-
- Action: `check-console`
|
|
40
|
-
- Depends on: navigate
|
|
41
|
-
|
|
42
|
-
### Step 6: Mark complete
|
|
43
|
-
Only mark task complete after visual verification
|
|
44
|
-
- Action: `complete`
|
|
45
|
-
- Depends on: verify, check-console
|
|
46
|
-
|
|
47
|
-
## Checklist
|
|
48
|
-
- [ ] App starts
|
|
49
|
-
- [ ] Visual elements render
|
|
50
|
-
- [ ] No console errors
|
|
51
|
-
- [ ] Responsive layout
|
|
1
|
+
---
|
|
2
|
+
id: ui-verify
|
|
3
|
+
title: "UI Verification Loop"
|
|
4
|
+
type: ui-verify
|
|
5
|
+
triggers: [UI modify, frontend change, component update]
|
|
6
|
+
checklist: [App starts, Visual elements render, No console errors, Responsive layout]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# UI Verification Loop
|
|
10
|
+
|
|
11
|
+
## Triggers
|
|
12
|
+
- UI modify
|
|
13
|
+
- frontend change
|
|
14
|
+
- component update
|
|
15
|
+
|
|
16
|
+
## Steps
|
|
17
|
+
### Step 1: Complete code modification
|
|
18
|
+
Finish all UI code changes
|
|
19
|
+
- Action: `code`
|
|
20
|
+
- Depends on: none
|
|
21
|
+
|
|
22
|
+
### Step 2: Start dev server
|
|
23
|
+
Run npm run dev to start the application
|
|
24
|
+
- Action: `npm run dev`
|
|
25
|
+
- Depends on: code
|
|
26
|
+
|
|
27
|
+
### Step 3: Navigate to component
|
|
28
|
+
Open browser and navigate to affected component
|
|
29
|
+
- Action: `navigate`
|
|
30
|
+
- Depends on: npm run dev
|
|
31
|
+
|
|
32
|
+
### Step 4: Verify visual rendering
|
|
33
|
+
Check visual elements render correctly
|
|
34
|
+
- Action: `verify`
|
|
35
|
+
- Depends on: navigate
|
|
36
|
+
|
|
37
|
+
### Step 5: Check console errors
|
|
38
|
+
Open DevTools and verify no console errors
|
|
39
|
+
- Action: `check-console`
|
|
40
|
+
- Depends on: navigate
|
|
41
|
+
|
|
42
|
+
### Step 6: Mark complete
|
|
43
|
+
Only mark task complete after visual verification
|
|
44
|
+
- Action: `complete`
|
|
45
|
+
- Depends on: verify, check-console
|
|
46
|
+
|
|
47
|
+
## Checklist
|
|
48
|
+
- [ ] App starts
|
|
49
|
+
- [ ] Visual elements render
|
|
50
|
+
- [ ] No console errors
|
|
51
|
+
- [ ] Responsive layout
|
package/package.json
CHANGED
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "bobo-ai-cli",
|
|
3
|
-
"version": "3.0.
|
|
4
|
-
"description": "Portable AI engineering assistant CLI with embedded knowledge, skills, and memory",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "dist/index.js",
|
|
7
|
-
"bin": {
|
|
8
|
-
"bobo": "dist/index.js"
|
|
9
|
-
},
|
|
10
|
-
"files": [
|
|
11
|
-
"dist/",
|
|
12
|
-
"knowledge/",
|
|
13
|
-
"bundled-skills/CORE_SKILLS.txt",
|
|
14
|
-
"bundled-skills/high-agency/",
|
|
15
|
-
"bundled-skills/memory-manager/",
|
|
16
|
-
"bundled-skills/context-budget-analyzer/",
|
|
17
|
-
"bundled-skills/context-compressor/",
|
|
18
|
-
"bundled-skills/context-optimization-suite/",
|
|
19
|
-
"bundled-skills/code-review/",
|
|
20
|
-
"bundled-skills/code-review-expert/",
|
|
21
|
-
"bundled-skills/planning-with-files/",
|
|
22
|
-
"bundled-skills/verify/",
|
|
23
|
-
"bundled-skills/skill-creator/",
|
|
24
|
-
"bundled-skills/github/",
|
|
25
|
-
"bundled-skills/backend-expert/",
|
|
26
|
-
"bundled-skills/frontend-expert/",
|
|
27
|
-
"bundled-skills/testing-expert/",
|
|
28
|
-
"bundled-skills/orchestrator/",
|
|
29
|
-
"README.md",
|
|
30
|
-
"LICENSE"
|
|
31
|
-
],
|
|
32
|
-
"scripts": {
|
|
33
|
-
"build": "tsc",
|
|
34
|
-
"dev": "tsx src/index.ts",
|
|
35
|
-
"start": "node dist/index.js",
|
|
36
|
-
"test": "vitest run",
|
|
37
|
-
"kb:extract": "node scripts/extract-knowledge.mjs",
|
|
38
|
-
"kb:validate": "node scripts/validate-knowledge.mjs",
|
|
39
|
-
"pack:check": "npm pack --dry-run",
|
|
40
|
-
"prepack": "npm run build"
|
|
41
|
-
},
|
|
42
|
-
"keywords": [
|
|
43
|
-
"ai",
|
|
44
|
-
"cli",
|
|
45
|
-
"assistant",
|
|
46
|
-
"agent",
|
|
47
|
-
"llm",
|
|
48
|
-
"engineering"
|
|
49
|
-
],
|
|
50
|
-
"author": "bobooo",
|
|
51
|
-
"license": "MIT",
|
|
52
|
-
"repository": {
|
|
53
|
-
"type": "git",
|
|
54
|
-
"url": "git+https://github.com/Arxchibobo/bobo-cli.git"
|
|
55
|
-
},
|
|
56
|
-
"homepage": "https://github.com/Arxchibobo/bobo-cli#readme",
|
|
57
|
-
"bugs": {
|
|
58
|
-
"url": "https://github.com/Arxchibobo/bobo-cli/issues"
|
|
59
|
-
},
|
|
60
|
-
"dependencies": {
|
|
61
|
-
"chalk": "^5.3.0",
|
|
62
|
-
"commander": "^12.1.0",
|
|
63
|
-
"glob": "^11.0.0",
|
|
64
|
-
"gray-matter": "^4.0.3",
|
|
65
|
-
"openai": "^4.73.0",
|
|
66
|
-
"zod": "^3.25.76"
|
|
67
|
-
},
|
|
68
|
-
"devDependencies": {
|
|
69
|
-
"@types/node": "^22.0.0",
|
|
70
|
-
"tsx": "^4.19.0",
|
|
71
|
-
"typescript": "^5.6.0",
|
|
72
|
-
"vitest": "^4.1.2"
|
|
73
|
-
}
|
|
74
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "bobo-ai-cli",
|
|
3
|
+
"version": "3.0.5",
|
|
4
|
+
"description": "Portable AI engineering assistant CLI with embedded knowledge, skills, and memory",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"bobo": "dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist/",
|
|
12
|
+
"knowledge/",
|
|
13
|
+
"bundled-skills/CORE_SKILLS.txt",
|
|
14
|
+
"bundled-skills/high-agency/",
|
|
15
|
+
"bundled-skills/memory-manager/",
|
|
16
|
+
"bundled-skills/context-budget-analyzer/",
|
|
17
|
+
"bundled-skills/context-compressor/",
|
|
18
|
+
"bundled-skills/context-optimization-suite/",
|
|
19
|
+
"bundled-skills/code-review/",
|
|
20
|
+
"bundled-skills/code-review-expert/",
|
|
21
|
+
"bundled-skills/planning-with-files/",
|
|
22
|
+
"bundled-skills/verify/",
|
|
23
|
+
"bundled-skills/skill-creator/",
|
|
24
|
+
"bundled-skills/github/",
|
|
25
|
+
"bundled-skills/backend-expert/",
|
|
26
|
+
"bundled-skills/frontend-expert/",
|
|
27
|
+
"bundled-skills/testing-expert/",
|
|
28
|
+
"bundled-skills/orchestrator/",
|
|
29
|
+
"README.md",
|
|
30
|
+
"LICENSE"
|
|
31
|
+
],
|
|
32
|
+
"scripts": {
|
|
33
|
+
"build": "tsc",
|
|
34
|
+
"dev": "tsx src/index.ts",
|
|
35
|
+
"start": "node dist/index.js",
|
|
36
|
+
"test": "vitest run",
|
|
37
|
+
"kb:extract": "node scripts/extract-knowledge.mjs",
|
|
38
|
+
"kb:validate": "node scripts/validate-knowledge.mjs",
|
|
39
|
+
"pack:check": "npm pack --dry-run",
|
|
40
|
+
"prepack": "npm run build"
|
|
41
|
+
},
|
|
42
|
+
"keywords": [
|
|
43
|
+
"ai",
|
|
44
|
+
"cli",
|
|
45
|
+
"assistant",
|
|
46
|
+
"agent",
|
|
47
|
+
"llm",
|
|
48
|
+
"engineering"
|
|
49
|
+
],
|
|
50
|
+
"author": "bobooo",
|
|
51
|
+
"license": "MIT",
|
|
52
|
+
"repository": {
|
|
53
|
+
"type": "git",
|
|
54
|
+
"url": "git+https://github.com/Arxchibobo/bobo-cli.git"
|
|
55
|
+
},
|
|
56
|
+
"homepage": "https://github.com/Arxchibobo/bobo-cli#readme",
|
|
57
|
+
"bugs": {
|
|
58
|
+
"url": "https://github.com/Arxchibobo/bobo-cli/issues"
|
|
59
|
+
},
|
|
60
|
+
"dependencies": {
|
|
61
|
+
"chalk": "^5.3.0",
|
|
62
|
+
"commander": "^12.1.0",
|
|
63
|
+
"glob": "^11.0.0",
|
|
64
|
+
"gray-matter": "^4.0.3",
|
|
65
|
+
"openai": "^4.73.0",
|
|
66
|
+
"zod": "^3.25.76"
|
|
67
|
+
},
|
|
68
|
+
"devDependencies": {
|
|
69
|
+
"@types/node": "^22.0.0",
|
|
70
|
+
"tsx": "^4.19.0",
|
|
71
|
+
"typescript": "^5.6.0",
|
|
72
|
+
"vitest": "^4.1.2"
|
|
73
|
+
}
|
|
74
|
+
}
|
package/dist/claude-bridge.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export interface ClaudeBridgeOptions {
|
|
2
|
-
task: string;
|
|
3
|
-
cwd?: string;
|
|
4
|
-
model?: string;
|
|
5
|
-
maxTimeout?: number;
|
|
6
|
-
systemPromptAppend?: string;
|
|
7
|
-
outputFormat?: 'text' | 'json';
|
|
8
|
-
}
|
|
9
|
-
export interface ClaudeBridgeResult {
|
|
10
|
-
success: boolean;
|
|
11
|
-
output: string;
|
|
12
|
-
exitCode: number | null;
|
|
13
|
-
durationMs: number;
|
|
14
|
-
error?: string;
|
|
15
|
-
}
|
|
16
|
-
export declare function isClaudeAvailable(): boolean;
|
|
17
|
-
export declare function delegateToClaude(options: ClaudeBridgeOptions): ClaudeBridgeResult;
|
|
18
|
-
export declare function delegateToClaudeFile(options: ClaudeBridgeOptions): ClaudeBridgeResult;
|
package/dist/claude-bridge.js
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { execSync } from 'node:child_process';
|
|
2
|
-
import { existsSync, mkdtempSync, writeFileSync, readFileSync, rmSync } from 'node:fs';
|
|
3
|
-
import { join } from 'node:path';
|
|
4
|
-
import { tmpdir } from 'node:os';
|
|
5
|
-
function findClaudeCli() {
|
|
6
|
-
try {
|
|
7
|
-
const result = execSync('where claude 2>nul || which claude 2>/dev/null', {
|
|
8
|
-
encoding: 'utf-8',
|
|
9
|
-
timeout: 5000,
|
|
10
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
11
|
-
});
|
|
12
|
-
const path = result.trim().split('\n')[0].trim();
|
|
13
|
-
return path && existsSync(path) ? path : null;
|
|
14
|
-
}
|
|
15
|
-
catch {
|
|
16
|
-
return null;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
export function isClaudeAvailable() {
|
|
20
|
-
return findClaudeCli() !== null;
|
|
21
|
-
}
|
|
22
|
-
export function delegateToClaude(options) {
|
|
23
|
-
const claudePath = findClaudeCli();
|
|
24
|
-
if (!claudePath) {
|
|
25
|
-
return {
|
|
26
|
-
success: false,
|
|
27
|
-
output: '',
|
|
28
|
-
exitCode: null,
|
|
29
|
-
durationMs: 0,
|
|
30
|
-
error: 'Claude Code CLI not found. Install: npm install -g @anthropic-ai/claude-code',
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
const startTime = Date.now();
|
|
34
|
-
const cwd = options.cwd || process.cwd();
|
|
35
|
-
const timeout = (options.maxTimeout || 120) * 1000;
|
|
36
|
-
const args = ['-p', options.task];
|
|
37
|
-
if (options.model)
|
|
38
|
-
args.push('--model', options.model);
|
|
39
|
-
if (options.outputFormat === 'json')
|
|
40
|
-
args.push('--output-format', 'json');
|
|
41
|
-
if (options.systemPromptAppend)
|
|
42
|
-
args.push('--append-system-prompt', options.systemPromptAppend);
|
|
43
|
-
try {
|
|
44
|
-
const result = execSync(`claude ${args.map(a => `"${a.replace(/"/g, '\\"')}"`).join(' ')}`, {
|
|
45
|
-
cwd,
|
|
46
|
-
encoding: 'utf-8',
|
|
47
|
-
timeout,
|
|
48
|
-
maxBuffer: 10 * 1024 * 1024,
|
|
49
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
50
|
-
});
|
|
51
|
-
return {
|
|
52
|
-
success: true,
|
|
53
|
-
output: result.trim(),
|
|
54
|
-
exitCode: 0,
|
|
55
|
-
durationMs: Date.now() - startTime,
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
catch (e) {
|
|
59
|
-
const err = e;
|
|
60
|
-
const output = (err.stdout || '').trim();
|
|
61
|
-
const stderr = (err.stderr || '').trim();
|
|
62
|
-
return {
|
|
63
|
-
success: false,
|
|
64
|
-
output: output || stderr,
|
|
65
|
-
exitCode: err.status ?? 1,
|
|
66
|
-
durationMs: Date.now() - startTime,
|
|
67
|
-
error: stderr || `Claude Code exited with code ${err.status}`,
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
export function delegateToClaudeFile(options) {
|
|
72
|
-
const task = options.task;
|
|
73
|
-
if (task.length < 4000) {
|
|
74
|
-
return delegateToClaude(options);
|
|
75
|
-
}
|
|
76
|
-
const tmpDir = mkdtempSync(join(tmpdir(), 'bobo-claude-'));
|
|
77
|
-
const taskFile = join(tmpDir, 'task.txt');
|
|
78
|
-
writeFileSync(taskFile, task, 'utf-8');
|
|
79
|
-
try {
|
|
80
|
-
const fileContent = readFileSync(taskFile, 'utf-8');
|
|
81
|
-
const opts = { ...options, task: fileContent };
|
|
82
|
-
return delegateToClaude(opts);
|
|
83
|
-
}
|
|
84
|
-
finally {
|
|
85
|
-
try {
|
|
86
|
-
rmSync(tmpDir, { recursive: true });
|
|
87
|
-
}
|
|
88
|
-
catch { /* ignore */ }
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
//# sourceMappingURL=claude-bridge.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claude-bridge.js","sourceRoot":"","sources":["../src/claude-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { ChatCompletionTool } from 'openai/resources/index.js';
|
|
2
|
-
export declare const claudeBridgeToolDefinitions: ChatCompletionTool[];
|
|
3
|
-
export declare function isClaudeBridgeTool(name: string): boolean;
|
|
4
|
-
export declare function executeClaudeBridgeTool(args: Record<string, unknown>): Promise<string>;
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { delegateToClaudeFile, isClaudeAvailable } from '../claude-bridge.js';
|
|
2
|
-
export const claudeBridgeToolDefinitions = [
|
|
3
|
-
{
|
|
4
|
-
type: 'function',
|
|
5
|
-
function: {
|
|
6
|
-
name: 'delegate_claude',
|
|
7
|
-
description: 'Delegate a heavy engineering or long-running task to local Claude Code CLI and return its result.',
|
|
8
|
-
parameters: {
|
|
9
|
-
type: 'object',
|
|
10
|
-
properties: {
|
|
11
|
-
task: { type: 'string', description: 'Task prompt to send to Claude Code' },
|
|
12
|
-
cwd: { type: 'string', description: 'Working directory for Claude Code' },
|
|
13
|
-
model: { type: 'string', description: 'Optional Claude model override' },
|
|
14
|
-
maxTimeout: { type: 'number', description: 'Timeout in seconds (default 120)' },
|
|
15
|
-
systemPromptAppend: { type: 'string', description: 'Extra system prompt appended to Claude Code' },
|
|
16
|
-
outputFormat: { type: 'string', enum: ['text', 'json'], description: 'Claude output format' },
|
|
17
|
-
},
|
|
18
|
-
required: ['task'],
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
},
|
|
22
|
-
];
|
|
23
|
-
export function isClaudeBridgeTool(name) {
|
|
24
|
-
return name === 'delegate_claude';
|
|
25
|
-
}
|
|
26
|
-
export async function executeClaudeBridgeTool(args) {
|
|
27
|
-
if (!isClaudeAvailable()) {
|
|
28
|
-
return 'Error: Claude Code CLI is not available in PATH';
|
|
29
|
-
}
|
|
30
|
-
const result = delegateToClaudeFile({
|
|
31
|
-
task: args.task,
|
|
32
|
-
cwd: args.cwd,
|
|
33
|
-
model: args.model,
|
|
34
|
-
maxTimeout: args.maxTimeout,
|
|
35
|
-
systemPromptAppend: args.systemPromptAppend,
|
|
36
|
-
outputFormat: args.outputFormat || 'text',
|
|
37
|
-
});
|
|
38
|
-
const duration = `${(result.durationMs / 1000).toFixed(1)}s`;
|
|
39
|
-
if (result.success) {
|
|
40
|
-
return `Claude Code delegation succeeded in ${duration}\n\n${result.output}`.trim();
|
|
41
|
-
}
|
|
42
|
-
return `Claude Code delegation failed in ${duration}\nExit code: ${result.exitCode ?? 'unknown'}\n${result.error || result.output}`.trim();
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=claude-bridge-tool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claude-bridge-tool.js","sourceRoot":"","sources":["../../src/tools/claude-bridge-tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,MAAM,CAAC,MAAM,2BAA2B,GAAyB;IAC/D;QACE,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE;YACR,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,mGAAmG;YAChH,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oCAAoC,EAAE;oBAC3E,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mCAAmC,EAAE;oBACzE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;oBACxE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE;oBAC/E,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6CAA6C,EAAE;oBAClG,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,sBAAsB,EAAE;iBAC9F;gBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;aACnB;SACF;KACF;CACF,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,IAAI,KAAK,iBAAiB,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAA6B;IACzE,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;QACzB,OAAO,iDAAiD,CAAC;IAC3D,CAAC;IAED,MAAM,MAAM,GAAG,oBAAoB,CAAC;QAClC,IAAI,EAAE,IAAI,CAAC,IAAc;QACzB,GAAG,EAAE,IAAI,CAAC,GAAyB;QACnC,KAAK,EAAE,IAAI,CAAC,KAA2B;QACvC,UAAU,EAAE,IAAI,CAAC,UAAgC;QACjD,kBAAkB,EAAE,IAAI,CAAC,kBAAwC;QACjE,YAAY,EAAG,IAAI,CAAC,YAA4C,IAAI,MAAM;KAC3E,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,uCAAuC,QAAQ,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IACtF,CAAC;IAED,OAAO,oCAAoC,QAAQ,gBAAgB,MAAM,CAAC,QAAQ,IAAI,SAAS,KAAK,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AAC7I,CAAC"}
|