@kolisachint/hoocode-agent 0.5.29 → 0.5.31
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 +127 -0
- package/dist/core/agent-selection-eval.d.ts +91 -0
- package/dist/core/agent-selection-eval.d.ts.map +1 -0
- package/dist/core/agent-selection-eval.js +186 -0
- package/dist/core/agent-selection-eval.js.map +1 -0
- package/dist/core/builtin-skills.d.ts +61 -0
- package/dist/core/builtin-skills.d.ts.map +1 -0
- package/dist/core/builtin-skills.js +106 -0
- package/dist/core/builtin-skills.js.map +1 -0
- package/dist/core/extensions/plugins/default-marketplace/.agents-plugin/marketplace.json +5 -1
- package/dist/core/extensions/plugins/trigger-judge.d.ts +42 -0
- package/dist/core/extensions/plugins/trigger-judge.d.ts.map +1 -0
- package/dist/core/extensions/plugins/trigger-judge.js +121 -0
- package/dist/core/extensions/plugins/trigger-judge.js.map +1 -0
- package/dist/core/external-tools.d.ts +67 -0
- package/dist/core/external-tools.d.ts.map +1 -0
- package/dist/core/external-tools.js +120 -0
- package/dist/core/external-tools.js.map +1 -0
- package/dist/core/light.d.ts +9 -0
- package/dist/core/light.d.ts.map +1 -1
- package/dist/core/light.js +12 -4
- package/dist/core/light.js.map +1 -1
- package/dist/core/mode-prompts.d.ts +15 -3
- package/dist/core/mode-prompts.d.ts.map +1 -1
- package/dist/core/mode-prompts.js +17 -29
- package/dist/core/mode-prompts.js.map +1 -1
- package/dist/core/tools/propose-plugin.d.ts.map +1 -1
- package/dist/core/tools/propose-plugin.js +7 -7
- package/dist/core/tools/propose-plugin.js.map +1 -1
- package/dist/core/tools/subagent.d.ts +7 -1
- package/dist/core/tools/subagent.d.ts.map +1 -1
- package/dist/core/tools/subagent.js +12 -24
- package/dist/core/tools/subagent.js.map +1 -1
- package/dist/extensions/core/modes.d.ts.map +1 -1
- package/dist/extensions/core/modes.js +21 -23
- package/dist/extensions/core/modes.js.map +1 -1
- package/dist/extensions/core/scaffold.d.ts.map +1 -1
- package/dist/extensions/core/scaffold.js +28 -24
- package/dist/extensions/core/scaffold.js.map +1 -1
- package/dist/init-templates.generated.d.ts +3 -0
- package/dist/init-templates.generated.d.ts.map +1 -1
- package/dist/init-templates.generated.js +12 -0
- package/dist/init-templates.generated.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +14 -1
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +27 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +256 -45
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +26 -1
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/utils/tools-manager.d.ts +30 -0
- package/dist/utils/tools-manager.d.ts.map +1 -1
- package/dist/utils/tools-manager.js +35 -0
- package/dist/utils/tools-manager.js.map +1 -1
- package/docs/modes.md +4 -0
- package/docs/plugins.md +10 -0
- package/docs/settings.md +63 -0
- package/docs/skills.md +30 -0
- package/docs/usage.md +3 -3
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/with-deps/package.json +1 -1
- package/package.json +5 -4
- package/templates/prompts/grill-bridge.md +1 -0
- package/templates/prompts/grill-me.md +7 -0
- package/templates/prompts/grill-plan.md +9 -0
- package/templates/prompts/task-background-agents.md +2 -0
- package/templates/prompts/task-background-none.md +1 -0
- package/templates/prompts/task-main.md +19 -0
- package/templates/skills/plugin-authoring/SKILL.md +81 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
You are attacking the plan below, not executing it.
|
|
2
|
+
|
|
3
|
+
Review it as a skeptical reviewer would:
|
|
4
|
+
- Which steps rest on assumptions you have not verified in the codebase? Read the relevant files and verify them now.
|
|
5
|
+
- Where could this fail silently — wrong-but-plausible behaviour rather than a loud error?
|
|
6
|
+
- What does the goal require that the plan does not cover? What does the plan cover that the goal does not need?
|
|
7
|
+
- Does the verification section prove the goal is met, or only that the code runs?
|
|
8
|
+
|
|
9
|
+
Report what you find. Where a weakness is real, revise the plan file and state what changed. Where the plan holds up, say so plainly rather than inventing criticism. Do not implement anything.
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
- Background agents run non-blocking (or force per call with `background: true`): you get a short "explore#1 finished" notification and pull the full result with `TaskOutput` (e.g. `TaskOutput("explore#1")`); `TaskOutput(list: true)` shows what's running.
|
|
2
|
+
- After dispatching, don't idle — keep doing independent work (read/edit unrelated files, draft, dispatch more); barrier with `TaskOutput(wait: true)` (a named task, or all outstanding when no id) only when you genuinely can't proceed.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
- You can force any task to run in the background with `background: true` (non-blocking): keep working, then pull its result with `TaskOutput` (e.g. `TaskOutput("explore#1")`) or block on it with `TaskOutput(wait: true)`.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
You have access to the **Task** tool. Use it to delegate self-contained tasks to specialized subagents that run in their own isolated context and return only their final answer. Pick an agent by name from the <available_agents> list in this prompt and pass it as `subagent_type`.
|
|
2
|
+
|
|
3
|
+
When to delegate:
|
|
4
|
+
1. The work is self-contained and you only need the final result, not intermediate steps.
|
|
5
|
+
2. You want to investigate or edit something in parallel without losing your current context or reasoning chain.
|
|
6
|
+
3. The task is a discrete unit (explore one module, run one test file, review one PR, fix one isolated bug).
|
|
7
|
+
4. You need to run a long command or test suite and wait for its output without blocking your own reasoning.
|
|
8
|
+
|
|
9
|
+
Model tier (optional `complexity`): set `fast` for quick reads/lookups, `standard` for multi-file edits, `capable` for deep architecture work. It maps to a model from `settings.modelCategories`. Omit it to use the agent's default; an agent that pins its own model ignores `complexity`.
|
|
10
|
+
|
|
11
|
+
Guidelines:
|
|
12
|
+
- Choose the agent whose description best matches the task.
|
|
13
|
+
- Make every task specific and self-contained. The subagent cannot see this conversation; pass all necessary context (files, constraints, prior findings) in `prompt`.
|
|
14
|
+
- Do NOT delegate tasks that require tight back-and-forth with your current reasoning, or edits to files you are actively reasoning about.
|
|
15
|
+
- The subagent returns ONLY its final answer. Its intermediate reasoning, tool calls, and output are hidden from you.
|
|
16
|
+
- Delegate proactively when work is self-contained or parallelizable: multi-step investigation, read-only exploration (use `explore`), research before changes (use `plan`), drafting a standalone file/section, or running a long command/test suite. Dispatch independent subtasks in the same turn. Handle only trivial single-step edits or tightly interactive back-and-forth inline.
|
|
17
|
+
{{BACKGROUND_GUIDANCE}}
|
|
18
|
+
- When working through a TodoWrite plan, mark the plan item in_progress BEFORE dispatching subagents for it: each dispatch is attributed to the current in_progress item in the user's task panel, so dispatching first (or with several items in_progress) leaves the run unattributed.
|
|
19
|
+
- To continue a previous subagent (for example one that returned partial results), call Task again with `resume_task_id` set to its task_id; it resumes with its full prior transcript and `prompt` is your follow-up.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plugin-authoring
|
|
3
|
+
description: How to author a portable, reusable hoocode plugin — when a capability is worth extracting, how to name and describe it so it triggers again, and what makes content portable across repos and machines. Use before calling ProposePlugin or UpdatePlugin, or when deciding whether a recipe you just completed is worth keeping.
|
|
4
|
+
allowed-tools: read, write, edit, grep, find, ls
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Authoring a plugin
|
|
8
|
+
|
|
9
|
+
This is the craft half of the plugin tools. `ProposePlugin` and `UpdatePlugin`
|
|
10
|
+
know how to *write* a plugin; this describes how to write a *good* one. Read it
|
|
11
|
+
before authoring, not after.
|
|
12
|
+
|
|
13
|
+
## When a capability is worth extracting
|
|
14
|
+
|
|
15
|
+
Extract when both are true:
|
|
16
|
+
|
|
17
|
+
- You completed a multi-step recipe you would plausibly repeat — or you repeated
|
|
18
|
+
the same pattern twice in one session.
|
|
19
|
+
- `SearchPlugins` found nothing that already covers it.
|
|
20
|
+
|
|
21
|
+
Do not extract a one-off. A job that came up twice may just be a job that came up
|
|
22
|
+
twice; the test is whether the *shape* recurs, not whether the task did.
|
|
23
|
+
|
|
24
|
+
## Name and describe by the capability, not the occasion
|
|
25
|
+
|
|
26
|
+
The description is the only thing loaded on every turn, and it is the entire
|
|
27
|
+
basis on which the plugin is chosen later. Write it for the next situation, not
|
|
28
|
+
for the one that prompted it.
|
|
29
|
+
|
|
30
|
+
- Bad: `fix-flaky-auth-test` — names the incident. It will never trigger again.
|
|
31
|
+
- Good: `flaky-test-triage` — names the capability, with a description saying
|
|
32
|
+
when to reach for it.
|
|
33
|
+
|
|
34
|
+
Say *when to use it* in the description, in the words someone would use when
|
|
35
|
+
they need it. A description that only says what the plugin is will not trigger.
|
|
36
|
+
|
|
37
|
+
## Portability
|
|
38
|
+
|
|
39
|
+
The plugin has to work in a repo you have never seen, on a machine you do not
|
|
40
|
+
control:
|
|
41
|
+
|
|
42
|
+
- No absolute paths, no machine-specific paths. Prefer relative paths and
|
|
43
|
+
runtime discovery.
|
|
44
|
+
- No embedded secrets, tokens, or environment-specific values.
|
|
45
|
+
- No assumptions about the current repo unless that *is* the capability's point.
|
|
46
|
+
- State prerequisites in the body rather than assuming them.
|
|
47
|
+
|
|
48
|
+
The layout is the session's target platform. You never choose it.
|
|
49
|
+
|
|
50
|
+
## Shape
|
|
51
|
+
|
|
52
|
+
Put the whole plugin in one call — skills plus a hook go together, not in two
|
|
53
|
+
passes. The risk gate is computed from the content, so do not pre-classify:
|
|
54
|
+
read-only subagents, skills and commands go straight through; hooks, MCP
|
|
55
|
+
servers, or a subagent needing bash/write/edit/MCP or `tools: *` pause for human
|
|
56
|
+
confirmation.
|
|
57
|
+
|
|
58
|
+
Passive content activates immediately and is reversible with `UninstallPlugin`.
|
|
59
|
+
Announce what you created and why.
|
|
60
|
+
|
|
61
|
+
## Growing one you already authored
|
|
62
|
+
|
|
63
|
+
`UpdatePlugin` is additive: supply only the delta, and existing capabilities are
|
|
64
|
+
preserved (a matching name replaces just that one). It cannot remove anything —
|
|
65
|
+
that is `RemovePluginCapability`.
|
|
66
|
+
|
|
67
|
+
Hooks are the exception to "additive is safe". They have no name, so supplying a
|
|
68
|
+
changed command **adds a second hook alongside the old one** and both fire. To
|
|
69
|
+
change a hook, remove the old one first, then add the new one.
|
|
70
|
+
|
|
71
|
+
Adding a passive skill to an already-executable plugin does not re-prompt; only
|
|
72
|
+
executable *additions* trigger confirmation.
|
|
73
|
+
|
|
74
|
+
## Two things that are never yours to do
|
|
75
|
+
|
|
76
|
+
- Never grant a subagent a plugin-system tool (`InstallPlugin`, `ProposePlugin`,
|
|
77
|
+
…). It is rejected, and the reason is that an agent that can install plugins
|
|
78
|
+
for other agents is a self-propagation primitive.
|
|
79
|
+
- Never publish to a marketplace autonomously. Packaging is yours; publishing is
|
|
80
|
+
a human action, because pushing executable code into a marketplace other
|
|
81
|
+
agents install from unattended is a supply-chain compromise.
|