@apholdings/jensen-code 0.0.4 → 0.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.
Files changed (157) hide show
  1. package/dist/cli/args.d.ts.map +1 -1
  2. package/dist/cli/args.js +6 -6
  3. package/dist/cli/args.js.map +1 -1
  4. package/dist/config.d.ts +6 -5
  5. package/dist/config.d.ts.map +1 -1
  6. package/dist/config.js +32 -25
  7. package/dist/config.js.map +1 -1
  8. package/dist/core/agent-session.d.ts.map +1 -1
  9. package/dist/core/agent-session.js +10 -0
  10. package/dist/core/agent-session.js.map +1 -1
  11. package/dist/index.d.ts +1 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +1 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/modes/interactive/components/assistant-message.d.ts +1 -6
  16. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  17. package/dist/modes/interactive/components/assistant-message.js +10 -40
  18. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  19. package/dist/modes/interactive/components/custom-editor.d.ts +1 -0
  20. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  21. package/dist/modes/interactive/components/custom-editor.js +5 -0
  22. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  23. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  24. package/dist/modes/interactive/components/tool-execution.js +1 -2
  25. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  26. package/dist/modes/interactive/components/top-bar.d.ts.map +1 -1
  27. package/dist/modes/interactive/components/top-bar.js +1 -1
  28. package/dist/modes/interactive/components/top-bar.js.map +1 -1
  29. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  30. package/dist/modes/interactive/components/user-message.js +1 -1
  31. package/dist/modes/interactive/components/user-message.js.map +1 -1
  32. package/dist/modes/interactive/interactive-mode.d.ts +6 -3
  33. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  34. package/dist/modes/interactive/interactive-mode.js +204 -86
  35. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  36. package/dist/utils/frontmatter.d.ts.map +1 -1
  37. package/dist/utils/frontmatter.js +8 -4
  38. package/dist/utils/frontmatter.js.map +1 -1
  39. package/dist/utils/tools-manager.d.ts.map +1 -1
  40. package/dist/utils/tools-manager.js +2 -2
  41. package/dist/utils/tools-manager.js.map +1 -1
  42. package/examples/extensions/osgrep.ts +643 -0
  43. package/examples/extensions/subagent/agents.ts +150 -37
  44. package/examples/extensions/subagent/index.ts +634 -513
  45. package/package.json +2 -2
  46. package/examples/README.md +0 -25
  47. package/examples/extensions/README.md +0 -206
  48. package/examples/extensions/antigravity-image-gen.ts +0 -415
  49. package/examples/extensions/auto-commit-on-exit.ts +0 -49
  50. package/examples/extensions/bash-spawn-hook.ts +0 -30
  51. package/examples/extensions/bookmark.ts +0 -50
  52. package/examples/extensions/built-in-tool-renderer.ts +0 -246
  53. package/examples/extensions/claude-rules.ts +0 -86
  54. package/examples/extensions/commands.ts +0 -72
  55. package/examples/extensions/confirm-destructive.ts +0 -59
  56. package/examples/extensions/custom-compaction.ts +0 -114
  57. package/examples/extensions/custom-footer.ts +0 -64
  58. package/examples/extensions/custom-header.ts +0 -73
  59. package/examples/extensions/custom-provider-anthropic/index.ts +0 -604
  60. package/examples/extensions/custom-provider-anthropic/package-lock.json +0 -24
  61. package/examples/extensions/custom-provider-anthropic/package.json +0 -19
  62. package/examples/extensions/custom-provider-gitlab-duo/index.ts +0 -349
  63. package/examples/extensions/custom-provider-gitlab-duo/package.json +0 -16
  64. package/examples/extensions/custom-provider-gitlab-duo/test.ts +0 -82
  65. package/examples/extensions/custom-provider-qwen-cli/index.ts +0 -345
  66. package/examples/extensions/custom-provider-qwen-cli/package.json +0 -16
  67. package/examples/extensions/dirty-repo-guard.ts +0 -56
  68. package/examples/extensions/doom-overlay/README.md +0 -46
  69. package/examples/extensions/doom-overlay/doom/build/doom.js +0 -21
  70. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  71. package/examples/extensions/doom-overlay/doom/build.sh +0 -152
  72. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +0 -72
  73. package/examples/extensions/doom-overlay/doom-component.ts +0 -132
  74. package/examples/extensions/doom-overlay/doom-engine.ts +0 -173
  75. package/examples/extensions/doom-overlay/doom-keys.ts +0 -104
  76. package/examples/extensions/doom-overlay/index.ts +0 -74
  77. package/examples/extensions/doom-overlay/wad-finder.ts +0 -51
  78. package/examples/extensions/dynamic-resources/SKILL.md +0 -8
  79. package/examples/extensions/dynamic-resources/dynamic.json +0 -79
  80. package/examples/extensions/dynamic-resources/dynamic.md +0 -5
  81. package/examples/extensions/dynamic-resources/index.ts +0 -15
  82. package/examples/extensions/dynamic-tools.ts +0 -74
  83. package/examples/extensions/event-bus.ts +0 -43
  84. package/examples/extensions/file-trigger.ts +0 -41
  85. package/examples/extensions/git-checkpoint.ts +0 -53
  86. package/examples/extensions/handoff.ts +0 -150
  87. package/examples/extensions/hello.ts +0 -25
  88. package/examples/extensions/inline-bash.ts +0 -94
  89. package/examples/extensions/input-transform.ts +0 -43
  90. package/examples/extensions/interactive-shell.ts +0 -196
  91. package/examples/extensions/mac-system-theme.ts +0 -47
  92. package/examples/extensions/message-renderer.ts +0 -59
  93. package/examples/extensions/minimal-mode.ts +0 -426
  94. package/examples/extensions/modal-editor.ts +0 -85
  95. package/examples/extensions/model-status.ts +0 -31
  96. package/examples/extensions/notify.ts +0 -55
  97. package/examples/extensions/overlay-qa-tests.ts +0 -1348
  98. package/examples/extensions/overlay-test.ts +0 -150
  99. package/examples/extensions/permission-gate.ts +0 -34
  100. package/examples/extensions/pirate.ts +0 -47
  101. package/examples/extensions/plan-mode/README.md +0 -65
  102. package/examples/extensions/plan-mode/index.ts +0 -340
  103. package/examples/extensions/plan-mode/utils.ts +0 -168
  104. package/examples/extensions/preset.ts +0 -398
  105. package/examples/extensions/protected-paths.ts +0 -30
  106. package/examples/extensions/provider-payload.ts +0 -14
  107. package/examples/extensions/qna.ts +0 -119
  108. package/examples/extensions/question.ts +0 -264
  109. package/examples/extensions/questionnaire.ts +0 -427
  110. package/examples/extensions/rainbow-editor.ts +0 -88
  111. package/examples/extensions/reload-runtime.ts +0 -37
  112. package/examples/extensions/rpc-demo.ts +0 -124
  113. package/examples/extensions/sandbox/index.ts +0 -318
  114. package/examples/extensions/sandbox/package-lock.json +0 -92
  115. package/examples/extensions/sandbox/package.json +0 -19
  116. package/examples/extensions/send-user-message.ts +0 -97
  117. package/examples/extensions/session-name.ts +0 -27
  118. package/examples/extensions/shutdown-command.ts +0 -63
  119. package/examples/extensions/snake.ts +0 -343
  120. package/examples/extensions/space-invaders.ts +0 -560
  121. package/examples/extensions/ssh.ts +0 -220
  122. package/examples/extensions/status-line.ts +0 -40
  123. package/examples/extensions/subagent/README.md +0 -172
  124. package/examples/extensions/subagent/agents/planner.md +0 -37
  125. package/examples/extensions/subagent/agents/reviewer.md +0 -35
  126. package/examples/extensions/subagent/agents/scout.md +0 -50
  127. package/examples/extensions/subagent/agents/worker.md +0 -24
  128. package/examples/extensions/subagent/prompts/implement-and-review.md +0 -10
  129. package/examples/extensions/subagent/prompts/implement.md +0 -10
  130. package/examples/extensions/subagent/prompts/scout-and-plan.md +0 -9
  131. package/examples/extensions/summarize.ts +0 -195
  132. package/examples/extensions/system-prompt-header.ts +0 -17
  133. package/examples/extensions/timed-confirm.ts +0 -70
  134. package/examples/extensions/titlebar-spinner.ts +0 -58
  135. package/examples/extensions/todo.ts +0 -299
  136. package/examples/extensions/tool-override.ts +0 -143
  137. package/examples/extensions/tools.ts +0 -146
  138. package/examples/extensions/trigger-compact.ts +0 -40
  139. package/examples/extensions/truncated-tool.ts +0 -192
  140. package/examples/extensions/widget-placement.ts +0 -17
  141. package/examples/extensions/with-deps/index.ts +0 -32
  142. package/examples/extensions/with-deps/package-lock.json +0 -31
  143. package/examples/extensions/with-deps/package.json +0 -22
  144. package/examples/rpc-extension-ui.ts +0 -632
  145. package/examples/sdk/01-minimal.ts +0 -22
  146. package/examples/sdk/02-custom-model.ts +0 -49
  147. package/examples/sdk/03-custom-prompt.ts +0 -55
  148. package/examples/sdk/04-skills.ts +0 -46
  149. package/examples/sdk/05-tools.ts +0 -56
  150. package/examples/sdk/06-extensions.ts +0 -88
  151. package/examples/sdk/07-context-files.ts +0 -40
  152. package/examples/sdk/08-prompt-templates.ts +0 -47
  153. package/examples/sdk/09-api-keys-and-oauth.ts +0 -48
  154. package/examples/sdk/10-settings.ts +0 -51
  155. package/examples/sdk/11-sessions.ts +0 -48
  156. package/examples/sdk/12-full-control.ts +0 -82
  157. package/examples/sdk/README.md +0 -145
@@ -1 +1 @@
1
- {"version":3,"file":"top-bar.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/top-bar.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Component } from \"@apholdings/jensen-tui\";\nimport { visibleWidth } from \"@apholdings/jensen-tui\";\nimport type { AppAction, KeybindingsManager } from \"../../../core/keybindings.js\";\nimport { type ThemeColor, theme } from \"../theme/theme.js\";\nimport { appKey } from \"./keybinding-hints.js\";\n\ntype ModelLike =\n\t| {\n\t\t\tprovider?: string;\n\t\t\tapiProvider?: string;\n\t\t\tid?: string;\n\t\t\tmodelId?: string;\n\t\t\tname?: string;\n\t\t\treasoning?: boolean;\n\t }\n\t| undefined;\n\nexport interface TopBarOptions {\n\tgetModel: () => ModelLike;\n\tgetThinkingLevel: () => string;\n\tkeybindings: KeybindingsManager;\n}\n\nfunction shortenProvider(input: string): string {\n\treturn input\n\t\t.replace(/^anthropic$/i, \"claude\")\n\t\t.replace(/^openai$/i, \"openai\")\n\t\t.replace(/^google$/i, \"google\")\n\t\t.replace(/^zai$/i, \"z.ai\")\n\t\t.replace(/^openrouter$/i, \"orouter\");\n}\n\nfunction shortenModelName(input: string): string {\n\treturn input\n\t\t.replace(/^anthropic\\//, \"\")\n\t\t.replace(/^openai\\//, \"\")\n\t\t.replace(/^google\\//, \"\")\n\t\t.replace(/^zai\\//, \"\")\n\t\t.replace(/^openrouter\\//, \"\")\n\t\t.replace(/^claude-/, \"\")\n\t\t.replace(/^models\\//, \"\");\n}\n\nfunction capitalizeKey(key: string): string {\n\treturn key\n\t\t.split(\"/\")\n\t\t.map((k) =>\n\t\t\tk\n\t\t\t\t.split(\"+\")\n\t\t\t\t.map((part) => part.charAt(0).toUpperCase() + part.slice(1))\n\t\t\t\t.join(\"+\"),\n\t\t)\n\t\t.join(\"/\");\n}\n\nexport class TopBar implements Component {\n\tconstructor(private options: TopBarOptions) {}\n\n\tprivate getAppKeyDisplay(action: AppAction): string {\n\t\treturn capitalizeKey(appKey(this.options.keybindings, action));\n\t}\n\n\tprivate getProviderModel(): { provider: string; model: string } {\n\t\tconst model = this.options.getModel();\n\t\tif (!model) {\n\t\t\treturn { provider: \"no-provider\", model: \"no-model\" };\n\t\t}\n\n\t\tconst provider = model.provider ?? model.apiProvider ?? \"unknown\";\n\t\tconst rawModel = model.id ?? model.modelId ?? model.name ?? \"unknown-model\";\n\n\t\treturn {\n\t\t\tprovider: shortenProvider(String(provider)),\n\t\t\tmodel: shortenModelName(String(rawModel)),\n\t\t};\n\t}\n\n\trender(width: number): string[] {\n\t\tconst model = this.options.getModel();\n\t\tconst parts: string[] = [];\n\n\t\tif (model?.reasoning) {\n\t\t\tconst level = this.options.getThinkingLevel();\n\t\t\tconst colorKey = `thinking${level.charAt(0).toUpperCase()}${level.slice(1)}` as ThemeColor;\n\n\t\t\tparts.push(\n\t\t\t\ttheme.fg(\"muted\", this.getAppKeyDisplay(\"cycleThinkingLevel\")) +\n\t\t\t\t\ttheme.fg(\"dim\", \" Thinking: \") +\n\t\t\t\t\ttheme.fg(colorKey, level),\n\t\t\t);\n\t\t}\n\n\t\tparts.push(theme.fg(\"muted\", this.getAppKeyDisplay(\"selectModel\")) + theme.fg(\"dim\", \" Model\"));\n\n\t\tconst leftString = ` ${parts.join(theme.fg(\"dim\", \" · \"))}`;\n\t\tconst pm = this.getProviderModel();\n\n\t\tconst rightCandidates = [theme.fg(\"dim\", `${pm.provider}/${pm.model} `), theme.fg(\"dim\", `${pm.model} `), \"\"];\n\n\t\tconst maxRightWidth = Math.max(0, width - visibleWidth(leftString));\n\t\tconst rightString = rightCandidates.find((candidate) => visibleWidth(candidate) <= maxRightWidth) ?? \"\";\n\n\t\tconst leftWidth = visibleWidth(leftString);\n\t\tconst rightWidth = visibleWidth(rightString);\n\t\tconst spaces = Math.max(0, width - leftWidth - rightWidth);\n\n\t\treturn [\"\", leftString + \" \".repeat(spaces) + rightString];\n\t}\n\n\tinvalidate(): void {}\n}\n"]}
1
+ {"version":3,"file":"top-bar.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/top-bar.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Component } from \"@apholdings/jensen-tui\";\nimport { visibleWidth } from \"@apholdings/jensen-tui\";\nimport type { AppAction, KeybindingsManager } from \"../../../core/keybindings.js\";\nimport { type ThemeColor, theme } from \"../theme/theme.js\";\nimport { appKey } from \"./keybinding-hints.js\";\n\ntype ModelLike =\n\t| {\n\t\t\tprovider?: string;\n\t\t\tapiProvider?: string;\n\t\t\tid?: string;\n\t\t\tmodelId?: string;\n\t\t\tname?: string;\n\t\t\treasoning?: boolean;\n\t }\n\t| undefined;\n\nexport interface TopBarOptions {\n\tgetModel: () => ModelLike;\n\tgetThinkingLevel: () => string;\n\tkeybindings: KeybindingsManager;\n}\n\nfunction shortenProvider(input: string): string {\n\treturn input\n\t\t.replace(/^anthropic$/i, \"claude\")\n\t\t.replace(/^openai$/i, \"openai\")\n\t\t.replace(/^google$/i, \"google\")\n\t\t.replace(/^zai$/i, \"z.ai\")\n\t\t.replace(/^openrouter$/i, \"orouter\");\n}\n\nfunction shortenModelName(input: string): string {\n\treturn input\n\t\t.replace(/^anthropic\\//, \"\")\n\t\t.replace(/^openai\\//, \"\")\n\t\t.replace(/^google\\//, \"\")\n\t\t.replace(/^zai\\//, \"\")\n\t\t.replace(/^openrouter\\//, \"\")\n\t\t.replace(/^claude-/, \"\")\n\t\t.replace(/^models\\//, \"\");\n}\n\nfunction capitalizeKey(key: string): string {\n\treturn key\n\t\t.split(\"/\")\n\t\t.map((k) =>\n\t\t\tk\n\t\t\t\t.split(\"+\")\n\t\t\t\t.map((part) => part.charAt(0).toUpperCase() + part.slice(1))\n\t\t\t\t.join(\"+\"),\n\t\t)\n\t\t.join(\"/\");\n}\n\nexport class TopBar implements Component {\n\tconstructor(private options: TopBarOptions) {}\n\n\tprivate getAppKeyDisplay(action: AppAction): string {\n\t\treturn capitalizeKey(appKey(this.options.keybindings, action));\n\t}\n\n\tprivate getProviderModel(): { provider: string; model: string } {\n\t\tconst model = this.options.getModel();\n\t\tif (!model) {\n\t\t\treturn { provider: \"no-provider\", model: \"no-model\" };\n\t\t}\n\n\t\tconst provider = model.provider ?? model.apiProvider ?? \"unknown\";\n\t\tconst rawModel = model.id ?? model.modelId ?? model.name ?? \"unknown-model\";\n\n\t\treturn {\n\t\t\tprovider: shortenProvider(String(provider)),\n\t\t\tmodel: shortenModelName(String(rawModel)),\n\t\t};\n\t}\n\n\trender(width: number): string[] {\n\t\tconst model = this.options.getModel();\n\t\tconst parts: string[] = [];\n\n\t\tif (model?.reasoning) {\n\t\t\tconst level = this.options.getThinkingLevel();\n\t\t\tconst colorKey = `thinking${level.charAt(0).toUpperCase()}${level.slice(1)}` as ThemeColor;\n\n\t\t\tparts.push(\n\t\t\t\ttheme.fg(\"muted\", this.getAppKeyDisplay(\"cycleThinkingLevel\")) +\n\t\t\t\t\ttheme.fg(\"dim\", \" Thinking: \") +\n\t\t\t\t\ttheme.fg(colorKey, level),\n\t\t\t);\n\t\t}\n\n\t\tparts.push(theme.fg(\"muted\", this.getAppKeyDisplay(\"selectModel\")) + theme.fg(\"dim\", \" Model\"));\n\n\t\tconst leftString = ` ${parts.join(theme.fg(\"dim\", \" · \"))}`;\n\t\tconst pm = this.getProviderModel();\n\n\t\tconst rightCandidates = [theme.fg(\"dim\", `${pm.provider}/${pm.model} `), theme.fg(\"dim\", `${pm.model} `), \"\"];\n\n\t\tconst maxRightWidth = Math.max(0, width - visibleWidth(leftString));\n\t\tconst rightString = rightCandidates.find((candidate) => visibleWidth(candidate) <= maxRightWidth) ?? \"\";\n\n\t\tconst leftWidth = visibleWidth(leftString);\n\t\tconst rightWidth = visibleWidth(rightString);\n\t\tconst spaces = Math.max(0, width - leftWidth - rightWidth);\n\n\t\treturn [leftString + \" \".repeat(spaces) + rightString];\n\t}\n\n\tinvalidate(): void {}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"user-message.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/user-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,KAAK,aAAa,EAAU,MAAM,wBAAwB,CAAC;AAMzF;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,SAAS;IAClD,YAAY,IAAI,EAAE,MAAM,EAAE,aAAa,GAAE,aAAkC,EAW1E;IAEQ,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CASvC;CACD","sourcesContent":["import { Container, Markdown, type MarkdownTheme, Spacer } from \"@apholdings/jensen-tui\";\nimport { getMarkdownTheme, theme } from \"../theme/theme.js\";\n\nconst OSC133_ZONE_START = \"\\x1b]133;A\\x07\";\nconst OSC133_ZONE_END = \"\\x1b]133;B\\x07\";\n\n/**\n * Component that renders a user message\n */\nexport class UserMessageComponent extends Container {\n\tconstructor(text: string, markdownTheme: MarkdownTheme = getMarkdownTheme()) {\n\t\tsuper();\n\n\t\tthis.addChild(\n\t\t\tnew Markdown(text, 1, 1, markdownTheme, {\n\t\t\t\tbgColor: (text: string) => theme.bg(\"userMessageBg\", text),\n\t\t\t\tcolor: (text: string) => theme.fg(\"userMessageText\", text),\n\t\t\t}),\n\t\t);\n\n\t\tthis.addChild(new Spacer(1));\n\t}\n\n\toverride render(width: number): string[] {\n\t\tconst lines = super.render(width);\n\t\tif (lines.length === 0) {\n\t\t\treturn lines;\n\t\t}\n\n\t\tlines[0] = OSC133_ZONE_START + lines[0];\n\t\tlines[lines.length - 1] = lines[lines.length - 1] + OSC133_ZONE_END;\n\t\treturn lines;\n\t}\n}\n"]}
1
+ {"version":3,"file":"user-message.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/user-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,KAAK,aAAa,EAAU,MAAM,wBAAwB,CAAC;AAMzF;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,SAAS;IAClD,YAAY,IAAI,EAAE,MAAM,EAAE,aAAa,GAAE,aAAkC,EAS1E;IAEQ,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CASvC;CACD","sourcesContent":["import { Container, Markdown, type MarkdownTheme, Spacer } from \"@apholdings/jensen-tui\";\nimport { getMarkdownTheme, theme } from \"../theme/theme.js\";\n\nconst OSC133_ZONE_START = \"\\x1b]133;A\\x07\";\nconst OSC133_ZONE_END = \"\\x1b]133;B\\x07\";\n\n/**\n * Component that renders a user message\n */\nexport class UserMessageComponent extends Container {\n\tconstructor(text: string, markdownTheme: MarkdownTheme = getMarkdownTheme()) {\n\t\tsuper();\n\t\tthis.addChild(new Spacer(1));\n\t\tthis.addChild(\n\t\t\tnew Markdown(text, 1, 1, markdownTheme, {\n\t\t\t\tbgColor: (text: string) => theme.bg(\"userMessageBg\", text),\n\t\t\t\tcolor: (text: string) => theme.fg(\"userMessageText\", text),\n\t\t\t}),\n\t\t);\n\t}\n\n\toverride render(width: number): string[] {\n\t\tconst lines = super.render(width);\n\t\tif (lines.length === 0) {\n\t\t\treturn lines;\n\t\t}\n\n\t\tlines[0] = OSC133_ZONE_START + lines[0];\n\t\tlines[lines.length - 1] = lines[lines.length - 1] + OSC133_ZONE_END;\n\t\treturn lines;\n\t}\n}\n"]}
@@ -8,11 +8,11 @@ const OSC133_ZONE_END = "\x1b]133;B\x07";
8
8
  export class UserMessageComponent extends Container {
9
9
  constructor(text, markdownTheme = getMarkdownTheme()) {
10
10
  super();
11
+ this.addChild(new Spacer(1));
11
12
  this.addChild(new Markdown(text, 1, 1, markdownTheme, {
12
13
  bgColor: (text) => theme.bg("userMessageBg", text),
13
14
  color: (text) => theme.fg("userMessageText", text),
14
15
  }));
15
- this.addChild(new Spacer(1));
16
16
  }
17
17
  render(width) {
18
18
  const lines = super.render(width);
@@ -1 +1 @@
1
- {"version":3,"file":"user-message.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/user-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAsB,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAC3C,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAEzC;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IAClD,YAAY,IAAY,EAAE,aAAa,GAAkB,gBAAgB,EAAE,EAAE;QAC5E,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,QAAQ,CACZ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE;YACvC,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC;YAC1D,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC;SAC1D,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAAA,CAC7B;IAEQ,MAAM,CAAC,KAAa,EAAY;QACxC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACd,CAAC;QAED,KAAK,CAAC,CAAC,CAAC,GAAG,iBAAiB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACxC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC;QACpE,OAAO,KAAK,CAAC;IAAA,CACb;CACD","sourcesContent":["import { Container, Markdown, type MarkdownTheme, Spacer } from \"@apholdings/jensen-tui\";\nimport { getMarkdownTheme, theme } from \"../theme/theme.js\";\n\nconst OSC133_ZONE_START = \"\\x1b]133;A\\x07\";\nconst OSC133_ZONE_END = \"\\x1b]133;B\\x07\";\n\n/**\n * Component that renders a user message\n */\nexport class UserMessageComponent extends Container {\n\tconstructor(text: string, markdownTheme: MarkdownTheme = getMarkdownTheme()) {\n\t\tsuper();\n\n\t\tthis.addChild(\n\t\t\tnew Markdown(text, 1, 1, markdownTheme, {\n\t\t\t\tbgColor: (text: string) => theme.bg(\"userMessageBg\", text),\n\t\t\t\tcolor: (text: string) => theme.fg(\"userMessageText\", text),\n\t\t\t}),\n\t\t);\n\n\t\tthis.addChild(new Spacer(1));\n\t}\n\n\toverride render(width: number): string[] {\n\t\tconst lines = super.render(width);\n\t\tif (lines.length === 0) {\n\t\t\treturn lines;\n\t\t}\n\n\t\tlines[0] = OSC133_ZONE_START + lines[0];\n\t\tlines[lines.length - 1] = lines[lines.length - 1] + OSC133_ZONE_END;\n\t\treturn lines;\n\t}\n}\n"]}
1
+ {"version":3,"file":"user-message.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/user-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAsB,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAC3C,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAEzC;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IAClD,YAAY,IAAY,EAAE,aAAa,GAAkB,gBAAgB,EAAE,EAAE;QAC5E,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,CACZ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE;YACvC,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC;YAC1D,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC;SAC1D,CAAC,CACF,CAAC;IAAA,CACF;IAEQ,MAAM,CAAC,KAAa,EAAY;QACxC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACd,CAAC;QAED,KAAK,CAAC,CAAC,CAAC,GAAG,iBAAiB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACxC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC;QACpE,OAAO,KAAK,CAAC;IAAA,CACb;CACD","sourcesContent":["import { Container, Markdown, type MarkdownTheme, Spacer } from \"@apholdings/jensen-tui\";\nimport { getMarkdownTheme, theme } from \"../theme/theme.js\";\n\nconst OSC133_ZONE_START = \"\\x1b]133;A\\x07\";\nconst OSC133_ZONE_END = \"\\x1b]133;B\\x07\";\n\n/**\n * Component that renders a user message\n */\nexport class UserMessageComponent extends Container {\n\tconstructor(text: string, markdownTheme: MarkdownTheme = getMarkdownTheme()) {\n\t\tsuper();\n\t\tthis.addChild(new Spacer(1));\n\t\tthis.addChild(\n\t\t\tnew Markdown(text, 1, 1, markdownTheme, {\n\t\t\t\tbgColor: (text: string) => theme.bg(\"userMessageBg\", text),\n\t\t\t\tcolor: (text: string) => theme.fg(\"userMessageText\", text),\n\t\t\t}),\n\t\t);\n\t}\n\n\toverride render(width: number): string[] {\n\t\tconst lines = super.render(width);\n\t\tif (lines.length === 0) {\n\t\t\treturn lines;\n\t\t}\n\n\t\tlines[0] = OSC133_ZONE_START + lines[0];\n\t\tlines[lines.length - 1] = lines[lines.length - 1] + OSC133_ZONE_END;\n\t\treturn lines;\n\t}\n}\n"]}
@@ -76,6 +76,9 @@ export declare class InteractiveMode {
76
76
  private shutdownRequested;
77
77
  private uiEpoch;
78
78
  private sessionEpoch;
79
+ private isInitialMessagesRendered;
80
+ private statusOwner;
81
+ private promptOwner;
79
82
  private extensionSelector;
80
83
  private extensionInput;
81
84
  private extensionEditor;
@@ -280,11 +283,11 @@ export declare class InteractiveMode {
280
283
  private toggleThinkingBlockVisibility;
281
284
  private openExternalEditor;
282
285
  clearEditor(): void;
283
- showError(errorMessage: string): void;
286
+ showError(errorMessage: string, ownerEpoch?: number): void;
284
287
  private enqueueStartupNotice;
285
288
  private flushDeferredStartupNotices;
286
- showWarning(warningMessage: string): void;
287
- showNewVersionNotification(newVersion: string): void;
289
+ showWarning(warningMessage: string, ownerEpoch?: number): void;
290
+ showNewVersionNotification(newVersion: string, ownerEpoch?: number): void;
288
291
  /**
289
292
  * Get all queued messages (read-only).
290
293
  * Combines session queue and compaction queue.