@kolisachint/hoocode-agent 0.4.24 → 0.4.25

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.
Files changed (58) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/cli/args.d.ts +2 -0
  3. package/dist/cli/args.d.ts.map +1 -1
  4. package/dist/cli/args.js +13 -4
  5. package/dist/cli/args.js.map +1 -1
  6. package/dist/core/agent-session.d.ts.map +1 -1
  7. package/dist/core/agent-session.js +27 -3
  8. package/dist/core/agent-session.js.map +1 -1
  9. package/dist/core/extensions/types.d.ts +2 -0
  10. package/dist/core/extensions/types.d.ts.map +1 -1
  11. package/dist/core/extensions/types.js.map +1 -1
  12. package/dist/core/prompt-templates.d.ts +23 -0
  13. package/dist/core/prompt-templates.d.ts.map +1 -1
  14. package/dist/core/prompt-templates.js +48 -11
  15. package/dist/core/prompt-templates.js.map +1 -1
  16. package/dist/core/resource-loader.d.ts +5 -0
  17. package/dist/core/resource-loader.d.ts.map +1 -1
  18. package/dist/core/resource-loader.js +40 -5
  19. package/dist/core/resource-loader.js.map +1 -1
  20. package/dist/core/settings-defaults.d.ts +1 -0
  21. package/dist/core/settings-defaults.d.ts.map +1 -1
  22. package/dist/core/settings-defaults.js +1 -0
  23. package/dist/core/settings-defaults.js.map +1 -1
  24. package/dist/core/settings-manager.d.ts +4 -0
  25. package/dist/core/settings-manager.d.ts.map +1 -1
  26. package/dist/core/settings-manager.js +14 -0
  27. package/dist/core/settings-manager.js.map +1 -1
  28. package/dist/core/tools/edit.d.ts.map +1 -1
  29. package/dist/core/tools/edit.js +1 -1
  30. package/dist/core/tools/edit.js.map +1 -1
  31. package/dist/core/tools/subagent.d.ts +1 -1
  32. package/dist/core/tools/subagent.d.ts.map +1 -1
  33. package/dist/core/tools/subagent.js +1 -1
  34. package/dist/core/tools/subagent.js.map +1 -1
  35. package/dist/extensions/core/hoo-core.d.ts.map +1 -1
  36. package/dist/extensions/core/hoo-core.js +4 -1
  37. package/dist/extensions/core/hoo-core.js.map +1 -1
  38. package/dist/main.d.ts.map +1 -1
  39. package/dist/main.js +4 -1
  40. package/dist/main.js.map +1 -1
  41. package/dist/modes/interactive/command-executor.d.ts +64 -0
  42. package/dist/modes/interactive/command-executor.d.ts.map +1 -0
  43. package/dist/modes/interactive/command-executor.js +547 -0
  44. package/dist/modes/interactive/command-executor.js.map +1 -0
  45. package/dist/modes/interactive/components/ask-options.d.ts.map +1 -1
  46. package/dist/modes/interactive/components/ask-options.js +2 -0
  47. package/dist/modes/interactive/components/ask-options.js.map +1 -1
  48. package/dist/modes/interactive/interactive-mode.d.ts +9 -20
  49. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  50. package/dist/modes/interactive/interactive-mode.js +86 -552
  51. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  52. package/docs/prompt-templates.md +34 -2
  53. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  54. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  55. package/examples/extensions/sandbox/package.json +1 -1
  56. package/examples/extensions/with-deps/package.json +1 -1
  57. package/examples/sdk/08-prompt-templates.ts +1 -0
  58. package/package.json +4 -4
@@ -27,7 +27,7 @@ import { exportSessionToHtml } from "./export-html/index.js";
27
27
  import { createToolHtmlRenderer } from "./export-html/tool-renderer.js";
28
28
  import { ExtensionRunner, wrapRegisteredTools, } from "./extensions/index.js";
29
29
  import { emitSessionShutdownEvent } from "./extensions/runner.js";
30
- import { expandPromptTemplate } from "./prompt-templates.js";
30
+ import { expandPromptTemplate, tryExpandPromptTemplate } from "./prompt-templates.js";
31
31
  import { clearProviderExhaustion, isProviderQuotaError, markProviderExhausted } from "./provider-health.js";
32
32
  import { CURRENT_SESSION_VERSION, getLatestCompactionEntry } from "./session-manager.js";
33
33
  import { createSyntheticSourceInfo } from "./source-info.js";
@@ -739,9 +739,14 @@ export class AgentSession {
739
739
  }
740
740
  // Expand skill commands (/skill:name args) and prompt templates (/template args)
741
741
  let expandedText = currentText;
742
+ let expansionTemplate;
743
+ let expansionArgsString = "";
742
744
  if (expandPromptTemplates) {
743
745
  expandedText = this._expandSkillCommand(expandedText);
744
- expandedText = expandPromptTemplate(expandedText, [...this.promptTemplates]);
746
+ const expansion = tryExpandPromptTemplate(expandedText, [...this.promptTemplates]);
747
+ expandedText = expansion.text;
748
+ expansionTemplate = expansion.template;
749
+ expansionArgsString = expansion.argsString;
745
750
  }
746
751
  // If streaming, queue via steer() or followUp() based on option
747
752
  if (this.isStreaming) {
@@ -779,8 +784,22 @@ export class AgentSession {
779
784
  }
780
785
  // Build messages array (custom message if any, then user message)
781
786
  messages = [];
787
+ // For system/context slash commands, user message is the raw args if present
788
+ const userMessageText = expansionTemplate && expansionTemplate.type !== "user" && expansionArgsString.trim()
789
+ ? expansionArgsString
790
+ : expandedText;
791
+ // Inject context-type slash command as a custom message
792
+ if (expansionTemplate?.type === "context") {
793
+ messages.push({
794
+ role: "custom",
795
+ customType: "slash_command",
796
+ content: expandedText,
797
+ display: false,
798
+ timestamp: Date.now(),
799
+ });
800
+ }
782
801
  // Add user message
783
- const userContent = [{ type: "text", text: expandedText }];
802
+ const userContent = [{ type: "text", text: userMessageText }];
784
803
  if (currentImages) {
785
804
  userContent.push(...currentImages);
786
805
  }
@@ -817,6 +836,11 @@ export class AgentSession {
817
836
  // Ensure we're using the base prompt (in case previous turn had modifications)
818
837
  this.agent.state.systemPrompt = this._baseSystemPrompt;
819
838
  }
839
+ // Inject system-type slash command into system prompt
840
+ if (expansionTemplate?.type === "system") {
841
+ const prefix = this.agent.state.systemPrompt ? "\n\n" : "";
842
+ this.agent.state.systemPrompt += prefix + expandedText;
843
+ }
820
844
  }
821
845
  catch (error) {
822
846
  preflightResult?.(false);