@kolisachint/hoocode-agent 0.5.30 → 0.5.32
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 +234 -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/agent-session-runtime.d.ts +28 -0
- package/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/dist/core/agent-session-runtime.js +61 -2
- package/dist/core/agent-session-runtime.js.map +1 -1
- 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/keybindings.d.ts +102 -30
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +123 -29
- package/dist/core/keybindings.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/settings-defaults.d.ts +1 -1
- package/dist/core/settings-defaults.d.ts.map +1 -1
- package/dist/core/settings-defaults.js +1 -1
- package/dist/core/settings-defaults.js.map +1 -1
- package/dist/core/settings-manager.d.ts +10 -3
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +19 -8
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/settings-types.d.ts +1 -1
- package/dist/core/settings-types.d.ts.map +1 -1
- package/dist/core/settings-types.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +5 -1
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/tool-output-view.d.ts +33 -0
- package/dist/core/tool-output-view.d.ts.map +1 -0
- package/dist/core/tool-output-view.js +31 -0
- package/dist/core/tool-output-view.js.map +1 -0
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +4 -0
- package/dist/core/tools/edit.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/command-executor.d.ts +20 -0
- package/dist/modes/interactive/command-executor.d.ts.map +1 -1
- package/dist/modes/interactive/command-executor.js +138 -9
- package/dist/modes/interactive/command-executor.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts +4 -0
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +31 -2
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +2 -2
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js +2 -2
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector.js +2 -2
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +10 -2
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +165 -23
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/tool-chain-summary.d.ts +65 -0
- package/dist/modes/interactive/components/tool-chain-summary.d.ts.map +1 -0
- package/dist/modes/interactive/components/tool-chain-summary.js +216 -0
- package/dist/modes/interactive/components/tool-chain-summary.js.map +1 -0
- package/dist/modes/interactive/components/tool-chain.d.ts +61 -0
- package/dist/modes/interactive/components/tool-chain.d.ts.map +1 -0
- package/dist/modes/interactive/components/tool-chain.js +156 -0
- package/dist/modes/interactive/components/tool-chain.js.map +1 -0
- package/dist/modes/interactive/components/tool-execution.d.ts +55 -9
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +173 -33
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/components/tool-signal.d.ts +50 -0
- package/dist/modes/interactive/components/tool-signal.d.ts.map +1 -0
- package/dist/modes/interactive/components/tool-signal.js +151 -0
- package/dist/modes/interactive/components/tool-signal.js.map +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts +50 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +244 -29
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/resource-display.d.ts +9 -0
- package/dist/modes/interactive/resource-display.d.ts.map +1 -1
- package/dist/modes/interactive/resource-display.js +13 -0
- package/dist/modes/interactive/resource-display.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 +42 -0
- package/docs/skills.md +30 -0
- 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,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.
|