@elyracode/coding-agent 0.2.0 → 0.3.0

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 (157) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/cli/config-selector.d.ts +1 -1
  3. package/dist/cli/config-selector.d.ts.map +1 -1
  4. package/dist/cli/config-selector.js +1 -1
  5. package/dist/cli/config-selector.js.map +1 -1
  6. package/dist/config.d.ts +1 -1
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/config.js +2 -2
  9. package/dist/config.js.map +1 -1
  10. package/dist/core/agent-session.d.ts +1 -1
  11. package/dist/core/agent-session.d.ts.map +1 -1
  12. package/dist/core/agent-session.js +8 -3
  13. package/dist/core/agent-session.js.map +1 -1
  14. package/dist/core/bash-executor.d.ts.map +1 -1
  15. package/dist/core/bash-executor.js +1 -1
  16. package/dist/core/bash-executor.js.map +1 -1
  17. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  18. package/dist/core/compaction/branch-summarization.js +1 -1
  19. package/dist/core/compaction/branch-summarization.js.map +1 -1
  20. package/dist/core/compaction/compaction.d.ts.map +1 -1
  21. package/dist/core/compaction/compaction.js +1 -1
  22. package/dist/core/compaction/compaction.js.map +1 -1
  23. package/dist/core/extensions/loader.d.ts.map +1 -1
  24. package/dist/core/extensions/loader.js +3 -3
  25. package/dist/core/extensions/loader.js.map +1 -1
  26. package/dist/core/extensions/runner.d.ts.map +1 -1
  27. package/dist/core/extensions/runner.js +1 -1
  28. package/dist/core/extensions/runner.js.map +1 -1
  29. package/dist/core/extensions/types.d.ts +9 -9
  30. package/dist/core/extensions/types.d.ts.map +1 -1
  31. package/dist/core/extensions/types.js.map +1 -1
  32. package/dist/core/package-manager.d.ts.map +1 -1
  33. package/dist/core/package-manager.js +12 -12
  34. package/dist/core/package-manager.js.map +1 -1
  35. package/dist/core/session-manager.d.ts +6 -6
  36. package/dist/core/session-manager.d.ts.map +1 -1
  37. package/dist/core/session-manager.js +4 -4
  38. package/dist/core/session-manager.js.map +1 -1
  39. package/dist/core/stack-detector.d.ts +21 -0
  40. package/dist/core/stack-detector.d.ts.map +1 -0
  41. package/dist/core/stack-detector.js +120 -0
  42. package/dist/core/stack-detector.js.map +1 -0
  43. package/dist/core/system-prompt.d.ts +2 -0
  44. package/dist/core/system-prompt.d.ts.map +1 -1
  45. package/dist/core/system-prompt.js +13 -1
  46. package/dist/core/system-prompt.js.map +1 -1
  47. package/dist/core/tools/bash.d.ts +2 -2
  48. package/dist/core/tools/bash.d.ts.map +1 -1
  49. package/dist/core/tools/bash.js +3 -3
  50. package/dist/core/tools/bash.js.map +1 -1
  51. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  52. package/dist/core/tools/output-accumulator.js +1 -1
  53. package/dist/core/tools/output-accumulator.js.map +1 -1
  54. package/dist/migrations.d.ts.map +1 -1
  55. package/dist/migrations.js +1 -1
  56. package/dist/migrations.js.map +1 -1
  57. package/dist/modes/interactive/interactive-mode.d.ts +1 -0
  58. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  59. package/dist/modes/interactive/interactive-mode.js +18 -0
  60. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  61. package/dist/package-manager-cli.d.ts.map +1 -1
  62. package/dist/package-manager-cli.js +10 -10
  63. package/dist/package-manager-cli.js.map +1 -1
  64. package/dist/utils/clipboard-image.d.ts.map +1 -1
  65. package/dist/utils/clipboard-image.js +1 -1
  66. package/dist/utils/clipboard-image.js.map +1 -1
  67. package/docs/extensions.md +17 -17
  68. package/docs/index.md +1 -1
  69. package/docs/prompt-templates.md +1 -1
  70. package/docs/providers.md +1 -1
  71. package/docs/quickstart.md +5 -5
  72. package/docs/rpc.md +6 -6
  73. package/docs/sdk.md +2 -2
  74. package/docs/session-format.md +3 -3
  75. package/docs/settings.md +4 -4
  76. package/docs/skills.md +2 -2
  77. package/docs/termux.md +3 -3
  78. package/docs/themes.md +1 -1
  79. package/docs/tui.md +1 -1
  80. package/docs/usage.md +2 -2
  81. package/examples/extensions/auto-commit-on-exit.ts +5 -5
  82. package/examples/extensions/bash-spawn-hook.ts +2 -2
  83. package/examples/extensions/bookmark.ts +5 -5
  84. package/examples/extensions/border-status-editor.ts +7 -7
  85. package/examples/extensions/built-in-tool-renderer.ts +5 -5
  86. package/examples/extensions/claude-rules.ts +3 -3
  87. package/examples/extensions/commands.ts +4 -4
  88. package/examples/extensions/confirm-destructive.ts +3 -3
  89. package/examples/extensions/custom-compaction.ts +2 -2
  90. package/examples/extensions/custom-footer.ts +2 -2
  91. package/examples/extensions/custom-header.ts +3 -3
  92. package/examples/extensions/custom-provider-anthropic/index.ts +2 -2
  93. package/examples/extensions/custom-provider-anthropic/package.json +2 -2
  94. package/examples/extensions/custom-provider-gitlab-duo/index.ts +2 -2
  95. package/examples/extensions/custom-provider-gitlab-duo/package.json +2 -2
  96. package/examples/extensions/dirty-repo-guard.ts +7 -7
  97. package/examples/extensions/doom-overlay/index.ts +2 -2
  98. package/examples/extensions/dynamic-resources/index.ts +2 -2
  99. package/examples/extensions/dynamic-tools.ts +4 -4
  100. package/examples/extensions/event-bus.ts +8 -8
  101. package/examples/extensions/file-trigger.ts +3 -3
  102. package/examples/extensions/git-checkpoint.ts +7 -7
  103. package/examples/extensions/github-issue-autocomplete.ts +6 -6
  104. package/examples/extensions/handoff.ts +2 -2
  105. package/examples/extensions/hello.ts +2 -2
  106. package/examples/extensions/hidden-thinking-label.ts +3 -3
  107. package/examples/extensions/inline-bash.ts +3 -3
  108. package/examples/extensions/input-transform.ts +2 -2
  109. package/examples/extensions/interactive-shell.ts +2 -2
  110. package/examples/extensions/mac-system-theme.ts +3 -3
  111. package/examples/extensions/message-renderer.ts +4 -4
  112. package/examples/extensions/minimal-mode.ts +8 -8
  113. package/examples/extensions/modal-editor.ts +2 -2
  114. package/examples/extensions/model-status.ts +2 -2
  115. package/examples/extensions/notify.ts +2 -2
  116. package/examples/extensions/overlay-qa-tests.ts +14 -14
  117. package/examples/extensions/overlay-test.ts +2 -2
  118. package/examples/extensions/permission-gate.ts +2 -2
  119. package/examples/extensions/pirate.ts +3 -3
  120. package/examples/extensions/plan-mode/index.ts +22 -22
  121. package/examples/extensions/preset.ts +23 -23
  122. package/examples/extensions/prompt-customizer.ts +2 -2
  123. package/examples/extensions/protected-paths.ts +2 -2
  124. package/examples/extensions/provider-payload.ts +3 -3
  125. package/examples/extensions/qna.ts +2 -2
  126. package/examples/extensions/question.ts +2 -2
  127. package/examples/extensions/questionnaire.ts +2 -2
  128. package/examples/extensions/rainbow-editor.ts +2 -2
  129. package/examples/extensions/reload-runtime.ts +4 -4
  130. package/examples/extensions/rpc-demo.ts +10 -10
  131. package/examples/extensions/sandbox/index.ts +8 -8
  132. package/examples/extensions/sandbox/package.json +2 -2
  133. package/examples/extensions/send-user-message.ts +13 -13
  134. package/examples/extensions/session-name.ts +4 -4
  135. package/examples/extensions/shutdown-command.ts +10 -10
  136. package/examples/extensions/snake.ts +3 -3
  137. package/examples/extensions/space-invaders.ts +3 -3
  138. package/examples/extensions/ssh.ts +10 -10
  139. package/examples/extensions/status-line.ts +4 -4
  140. package/examples/extensions/structured-output.ts +2 -2
  141. package/examples/extensions/subagent/index.ts +3 -3
  142. package/examples/extensions/summarize.ts +2 -2
  143. package/examples/extensions/system-prompt-header.ts +3 -3
  144. package/examples/extensions/tic-tac-toe.ts +15 -15
  145. package/examples/extensions/timed-confirm.ts +4 -4
  146. package/examples/extensions/titlebar-spinner.ts +8 -8
  147. package/examples/extensions/todo.ts +5 -5
  148. package/examples/extensions/tool-override.ts +3 -3
  149. package/examples/extensions/tools.ts +9 -9
  150. package/examples/extensions/trigger-compact.ts +3 -3
  151. package/examples/extensions/truncated-tool.ts +3 -3
  152. package/examples/extensions/widget-placement.ts +2 -2
  153. package/examples/extensions/with-deps/index.ts +2 -2
  154. package/examples/extensions/with-deps/package.json +2 -2
  155. package/examples/extensions/working-indicator.ts +5 -5
  156. package/examples/extensions/working-message-test.ts +2 -2
  157. package/package.json +5 -5
@@ -31,6 +31,7 @@ import { expandPromptTemplate } from "./prompt-templates.js";
31
31
  import { CURRENT_SESSION_VERSION, getLatestCompactionEntry } from "./session-manager.js";
32
32
  import { routeNextTurn } from "./smart-router.js";
33
33
  import { createSyntheticSourceInfo } from "./source-info.js";
34
+ import { detectStack } from "./stack-detector.js";
34
35
  import { buildSystemPrompt } from "./system-prompt.js";
35
36
  import { createLocalBashOperations } from "./tools/bash.js";
36
37
  import { createAllToolDefinitions } from "./tools/index.js";
@@ -509,7 +510,7 @@ export class AgentSession {
509
510
  * Call this when completely done with the session.
510
511
  */
511
512
  dispose() {
512
- this._extensionRunner.invalidate("This extension ctx is stale after session replacement or reload. Do not use a captured pi or command ctx after ctx.newSession(), ctx.fork(), ctx.switchSession(), or ctx.reload(). For newSession, fork, and switchSession, move post-replacement work into withSession and use the ctx passed to withSession. For reload, do not use the old ctx after await ctx.reload().");
513
+ this._extensionRunner.invalidate("This extension ctx is stale after session replacement or reload. Do not use a captured elyra or command ctx after ctx.newSession(), ctx.fork(), ctx.switchSession(), or ctx.reload(). For newSession, fork, and switchSession, move post-replacement work into withSession and use the ctx passed to withSession. For reload, do not use the old ctx after await ctx.reload().");
513
514
  this._disconnectFromAgent();
514
515
  this._eventListeners = [];
515
516
  cleanupSessionResources(this.sessionId);
@@ -668,6 +669,9 @@ export class AgentSession {
668
669
  const loadedContextFiles = this._resourceLoader.getAgentsFiles().agentsFiles;
669
670
  // Load codebase memory if enabled
670
671
  const memoryContent = this.settingsManager.getCodebaseMemory() ? loadMemory(this._cwd) : undefined;
672
+ // Detect project technology stack
673
+ const stackResult = detectStack(this._cwd);
674
+ const stackInfo = stackResult.summary || undefined;
671
675
  this._baseSystemPromptOptions = {
672
676
  cwd: this._cwd,
673
677
  skills: loadedSkills,
@@ -678,6 +682,7 @@ export class AgentSession {
678
682
  toolSnippets,
679
683
  promptGuidelines,
680
684
  memoryContent,
685
+ stackInfo,
681
686
  };
682
687
  return buildSystemPrompt(this._baseSystemPromptOptions);
683
688
  }
@@ -686,7 +691,7 @@ export class AgentSession {
686
691
  // =========================================================================
687
692
  /**
688
693
  * Send a prompt to the agent.
689
- * - Handles extension commands (registered via pi.registerCommand) immediately, even during streaming
694
+ * - Handles extension commands (registered via elyra.registerCommand) immediately, even during streaming
690
695
  * - Expands file-based prompt templates by default
691
696
  * - During streaming, queues via steer() or followUp() based on streamingBehavior option
692
697
  * - Validates model and API key before sending (when not streaming)
@@ -699,7 +704,7 @@ export class AgentSession {
699
704
  let messages;
700
705
  try {
701
706
  // Handle extension commands first (execute immediately, even during streaming)
702
- // Extension commands manage their own LLM interaction via pi.sendMessage()
707
+ // Extension commands manage their own LLM interaction via elyra.sendMessage()
703
708
  if (expandPromptTemplates && text.startsWith("/")) {
704
709
  const handled = await this._tryExecuteExtensionCommand(text);
705
710
  if (handled) {