apex-code 0.0.1-alpha.4 → 0.0.1-alpha.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 (106) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  3. package/dist/core/agent-session-runtime.js +2 -2
  4. package/dist/core/agent-session-runtime.js.map +1 -1
  5. package/dist/core/agent-session-services.d.ts +20 -1
  6. package/dist/core/agent-session-services.d.ts.map +1 -1
  7. package/dist/core/agent-session-services.js +91 -1
  8. package/dist/core/agent-session-services.js.map +1 -1
  9. package/dist/core/agent-session.d.ts +17 -0
  10. package/dist/core/agent-session.d.ts.map +1 -1
  11. package/dist/core/agent-session.js +10 -1
  12. package/dist/core/agent-session.js.map +1 -1
  13. package/dist/core/lsp/client.d.ts +76 -0
  14. package/dist/core/lsp/client.d.ts.map +1 -0
  15. package/dist/core/lsp/client.js +469 -0
  16. package/dist/core/lsp/client.js.map +1 -0
  17. package/dist/core/lsp/diagnostics.d.ts +47 -0
  18. package/dist/core/lsp/diagnostics.d.ts.map +1 -0
  19. package/dist/core/lsp/diagnostics.js +224 -0
  20. package/dist/core/lsp/diagnostics.js.map +1 -0
  21. package/dist/core/lsp/pool.d.ts +48 -0
  22. package/dist/core/lsp/pool.d.ts.map +1 -0
  23. package/dist/core/lsp/pool.js +150 -0
  24. package/dist/core/lsp/pool.js.map +1 -0
  25. package/dist/core/lsp/registry.d.ts +49 -0
  26. package/dist/core/lsp/registry.d.ts.map +1 -0
  27. package/dist/core/lsp/registry.js +215 -0
  28. package/dist/core/lsp/registry.js.map +1 -0
  29. package/dist/core/lsp/status.d.ts +23 -0
  30. package/dist/core/lsp/status.d.ts.map +1 -0
  31. package/dist/core/lsp/status.js +35 -0
  32. package/dist/core/lsp/status.js.map +1 -0
  33. package/dist/core/lsp/sync.d.ts +13 -0
  34. package/dist/core/lsp/sync.d.ts.map +1 -0
  35. package/dist/core/lsp/sync.js +71 -0
  36. package/dist/core/lsp/sync.js.map +1 -0
  37. package/dist/core/project-trust.d.ts.map +1 -1
  38. package/dist/core/project-trust.js +1 -1
  39. package/dist/core/project-trust.js.map +1 -1
  40. package/dist/core/sdk.d.ts +4 -0
  41. package/dist/core/sdk.d.ts.map +1 -1
  42. package/dist/core/sdk.js +10 -1
  43. package/dist/core/sdk.js.map +1 -1
  44. package/dist/core/settings-manager.d.ts +3 -0
  45. package/dist/core/settings-manager.d.ts.map +1 -1
  46. package/dist/core/settings-manager.js +3 -0
  47. package/dist/core/settings-manager.js.map +1 -1
  48. package/dist/core/tools/contract.d.ts +29 -2
  49. package/dist/core/tools/contract.d.ts.map +1 -1
  50. package/dist/core/tools/contract.js.map +1 -1
  51. package/dist/core/tools/diagnostics.d.ts +39 -0
  52. package/dist/core/tools/diagnostics.d.ts.map +1 -0
  53. package/dist/core/tools/diagnostics.js +62 -0
  54. package/dist/core/tools/diagnostics.js.map +1 -0
  55. package/dist/core/tools/edit.d.ts +10 -0
  56. package/dist/core/tools/edit.d.ts.map +1 -1
  57. package/dist/core/tools/edit.js +17 -8
  58. package/dist/core/tools/edit.js.map +1 -1
  59. package/dist/core/tools/index.d.ts +15 -2
  60. package/dist/core/tools/index.d.ts.map +1 -1
  61. package/dist/core/tools/index.js +6 -0
  62. package/dist/core/tools/index.js.map +1 -1
  63. package/dist/core/tools/lsp.d.ts +62 -0
  64. package/dist/core/tools/lsp.d.ts.map +1 -0
  65. package/dist/core/tools/lsp.js +216 -0
  66. package/dist/core/tools/lsp.js.map +1 -0
  67. package/dist/core/tools/write.d.ts +10 -0
  68. package/dist/core/tools/write.d.ts.map +1 -1
  69. package/dist/core/tools/write.js +16 -3
  70. package/dist/core/tools/write.js.map +1 -1
  71. package/dist/index.d.ts +1 -1
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js.map +1 -1
  74. package/dist/modes/interactive/components/custom-editor.d.ts +49 -1
  75. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  76. package/dist/modes/interactive/components/custom-editor.js +235 -1
  77. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  78. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
  79. package/dist/modes/interactive/components/first-time-setup.js +2 -1
  80. package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
  81. package/dist/modes/interactive/components/index.d.ts +1 -0
  82. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  83. package/dist/modes/interactive/components/index.js +1 -0
  84. package/dist/modes/interactive/components/index.js.map +1 -1
  85. package/dist/modes/interactive/components/splash-header.d.ts +41 -0
  86. package/dist/modes/interactive/components/splash-header.d.ts.map +1 -0
  87. package/dist/modes/interactive/components/splash-header.js +145 -0
  88. package/dist/modes/interactive/components/splash-header.js.map +1 -0
  89. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  90. package/dist/modes/interactive/interactive-mode.js +17 -14
  91. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  92. package/dist/modes/interactive/theme/apex.json +94 -0
  93. package/dist/modes/interactive/theme/light.json +1 -1
  94. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  95. package/dist/modes/interactive/theme/theme.js +6 -1
  96. package/dist/modes/interactive/theme/theme.js.map +1 -1
  97. package/dist/themes/apex-logo.d.ts +21 -0
  98. package/dist/themes/apex-logo.d.ts.map +1 -0
  99. package/dist/themes/apex-logo.js +31 -0
  100. package/dist/themes/apex-logo.js.map +1 -0
  101. package/dist/utils/changelog.d.ts +7 -2
  102. package/dist/utils/changelog.d.ts.map +1 -1
  103. package/dist/utils/changelog.js +82 -13
  104. package/dist/utils/changelog.js.map +1 -1
  105. package/npm-shrinkwrap.json +5 -5
  106. package/package.json +2 -2
@@ -63,6 +63,7 @@ import { ScopedModelsSelectorComponent } from "./components/scoped-models-select
63
63
  import { SessionSelectorComponent } from "./components/session-selector.js";
64
64
  import { SettingsSelectorComponent } from "./components/settings-selector.js";
65
65
  import { SkillInvocationMessageComponent } from "./components/skill-invocation-message.js";
66
+ import { ApexSplashHeader } from "./components/splash-header.js";
66
67
  import { BranchSummaryStatusIndicator, CompactionStatusIndicator, IdleStatus, RetryStatusIndicator, WorkingStatusIndicator, } from "./components/status-indicator.js";
67
68
  import { ToolExecutionComponent } from "./components/tool-execution.js";
68
69
  import { TreeSelectorComponent } from "./components/tree-selector.js";
@@ -362,6 +363,11 @@ export class InteractiveMode {
362
363
  this.defaultEditor = new CustomEditor(this.ui, getEditorTheme(), this.keybindings, {
363
364
  paddingX: editorPaddingX,
364
365
  autocompleteMaxVisible,
366
+ promptPrefix: "> ",
367
+ promptColor: (text) => theme.fg("accent", text),
368
+ placeholder: "Ask anything, / for commands, ! for bash",
369
+ placeholderColor: (text) => theme.fg("dim", text),
370
+ commandColor: (text) => theme.fg("accent", text),
365
371
  });
366
372
  this.editor = this.defaultEditor;
367
373
  this.editorContainer = new Container();
@@ -517,7 +523,7 @@ export class InteractiveMode {
517
523
  }
518
524
  this.chatContainer.addChild(new DynamicBorder());
519
525
  if (this.settingsManager.getCollapseChangelog()) {
520
- const versionMatch = this.changelogMarkdown.match(/##\s+\[?(\d+\.\d+\.\d+)\]?/);
526
+ const versionMatch = this.changelogMarkdown.match(/##\s+\[?(\d+\.\d+\.\d+(?:-[0-9A-Za-z][0-9A-Za-z.-]*)?)\]?/);
521
527
  const latestVersion = versionMatch ? versionMatch[1] : this.version;
522
528
  const condensedText = `Updated to v${latestVersion}. Use ${theme.bold("/changelog")} to view full changelog.`;
523
529
  this.chatContainer.addChild(new Text(condensedText, 1, 0));
@@ -657,11 +663,14 @@ export class InteractiveMode {
657
663
  this.ui.start();
658
664
  this.isInitialized = true;
659
665
  await this.themeController.applyFromSettings();
660
- // Add header with keybindings from config (unless silenced)
666
+ // Brand splash: mark on the left, runtime metadata on the right. The model
667
+ // and cwd are read through live getters, so they fill in once the session
668
+ // binds in rebindCurrentSession below.
661
669
  if (this.options.verbose || !this.settingsManager.getQuietStartup()) {
662
- const logo = theme.bold(theme.fg("accent", APP_NAME)) + theme.fg("dim", ` v${this.version}`);
663
670
  // Build startup instructions using keybinding hint helpers
664
671
  const hint = (keybinding, description) => keyHint(keybinding, description);
672
+ // The full cheatsheet is verbose-only. The default screen leads with the
673
+ // mark and the runtime facts that actually differ between launches.
665
674
  const expandedInstructions = [
666
675
  hint("app.interrupt", "to interrupt"),
667
676
  hint("app.clear", "to clear"),
@@ -683,18 +692,12 @@ export class InteractiveMode {
683
692
  hint("app.clipboard.pasteImage", "to paste image (with text fallback)"),
684
693
  rawKeyHint("drop files", "to attach"),
685
694
  ].join("\n");
686
- const compactInstructions = [
687
- hint("app.interrupt", "interrupt"),
688
- rawKeyHint(`${keyText("app.clear")}/${keyText("app.exit")}`, "clear/exit"),
689
- rawKeyHint("/", "commands"),
690
- rawKeyHint("!", "bash"),
691
- hint("app.tools.expand", "more"),
692
- ].join(theme.fg("muted", " · "));
693
- const compactOnboarding = theme.fg("dim", `Press ${keyText("app.tools.expand")} to show full startup help and loaded resources.`);
694
- const onboarding = theme.fg("dim", `Apex Code can explain its own features and look up its docs. Ask it how to use or extend Apex Code.`);
695
- this.builtInHeader = new ExpandableText(() => `${logo}\n${compactInstructions}\n${compactOnboarding}\n\n${onboarding}`, () => `${logo}\n${expandedInstructions}\n\n${onboarding}`, this.getStartupExpansionState(), 1, 0);
695
+ this.builtInHeader = new ApexSplashHeader(this.version, () => this.session.state.model?.id, () => this.session.sessionManager.getCwd(), this.options.verbose ? expandedInstructions : undefined, {
696
+ topPadding: true,
697
+ getSymbolPreset: () => this.settingsManager.getSymbolPreset(),
698
+ getHint: () => "Apex Code can explain its own features and look up its docs.",
699
+ });
696
700
  // Setup UI layout
697
- this.headerContainer.addChild(new Spacer(1));
698
701
  this.headerContainer.addChild(this.builtInHeader);
699
702
  this.headerContainer.addChild(new Spacer(1));
700
703
  }