@gajae-code/coding-agent 0.10.0 → 0.10.2

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 (65) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/dist/types/cli.d.ts +1 -0
  3. package/dist/types/config/settings.d.ts +2 -0
  4. package/dist/types/coordinator/contract.d.ts +1 -1
  5. package/dist/types/coordinator-mcp/policy.d.ts +3 -0
  6. package/dist/types/coordinator-mcp/server.d.ts +17 -5
  7. package/dist/types/coordinator-mcp/session-reaper.d.ts +53 -0
  8. package/dist/types/extensibility/extensions/types.d.ts +3 -1
  9. package/dist/types/modes/components/gajae-pet-widget.d.ts +1 -0
  10. package/dist/types/modes/components/pet-capability.d.ts +37 -0
  11. package/dist/types/modes/components/pet-selector.d.ts +1 -1
  12. package/dist/types/modes/components/settings-selector.d.ts +9 -0
  13. package/dist/types/modes/components/status-line/types.d.ts +1 -1
  14. package/dist/types/modes/components/status-line.d.ts +0 -10
  15. package/dist/types/modes/interactive-mode.d.ts +2 -1
  16. package/dist/types/modes/print-mode.d.ts +3 -4
  17. package/dist/types/modes/rpc/rpc-client.d.ts +7 -1
  18. package/dist/types/modes/rpc/rpc-mode.d.ts +2 -1
  19. package/dist/types/modes/rpc/rpc-types.d.ts +17 -1
  20. package/dist/types/modes/types.d.ts +11 -1
  21. package/dist/types/modes/utils/context-usage.d.ts +4 -19
  22. package/dist/types/session/agent-session.d.ts +14 -1
  23. package/dist/types/session/context-estimation.d.ts +31 -0
  24. package/package.json +7 -7
  25. package/src/cli.ts +1 -0
  26. package/src/config/model-profiles.ts +19 -19
  27. package/src/config/settings.ts +96 -45
  28. package/src/coordinator/contract.ts +1 -0
  29. package/src/coordinator-mcp/policy.ts +30 -0
  30. package/src/coordinator-mcp/server.ts +294 -66
  31. package/src/coordinator-mcp/session-reaper.ts +129 -0
  32. package/src/extensibility/extensions/runner.ts +1 -1
  33. package/src/extensibility/extensions/types.ts +3 -1
  34. package/src/extensibility/slash-commands.ts +3 -3
  35. package/src/gjc-runtime/tmux-owner-isolation.ts +4 -1
  36. package/src/internal-urls/docs-index.generated.ts +7 -7
  37. package/src/main.ts +3 -5
  38. package/src/modes/acp/acp-agent.ts +2 -2
  39. package/src/modes/components/custom-editor.ts +1 -0
  40. package/src/modes/components/footer.ts +3 -3
  41. package/src/modes/components/gajae-pet-widget.ts +169 -20
  42. package/src/modes/components/pet-capability.ts +115 -0
  43. package/src/modes/components/pet-selector.ts +4 -6
  44. package/src/modes/components/settings-selector.ts +28 -2
  45. package/src/modes/components/status-line/segments.ts +13 -6
  46. package/src/modes/components/status-line/types.ts +1 -1
  47. package/src/modes/components/status-line.ts +4 -171
  48. package/src/modes/controllers/extension-ui-controller.ts +10 -9
  49. package/src/modes/controllers/input-controller.ts +43 -13
  50. package/src/modes/controllers/selector-controller.ts +7 -18
  51. package/src/modes/interactive-mode.ts +65 -4
  52. package/src/modes/print-mode.ts +228 -92
  53. package/src/modes/rpc/rpc-client.ts +58 -1
  54. package/src/modes/rpc/rpc-mode.ts +286 -85
  55. package/src/modes/rpc/rpc-types.ts +15 -1
  56. package/src/modes/shared/agent-wire/command-dispatch.ts +33 -1
  57. package/src/modes/shared/agent-wire/command-validation.ts +10 -0
  58. package/src/modes/shared/agent-wire/scopes.ts +1 -0
  59. package/src/modes/types.ts +11 -1
  60. package/src/modes/utils/context-usage.ts +56 -92
  61. package/src/session/agent-session.ts +337 -90
  62. package/src/session/context-estimation.ts +91 -0
  63. package/src/session/session-manager.ts +9 -2
  64. package/src/slash-commands/builtin-registry.ts +31 -19
  65. package/src/slash-commands/helpers/context-report.ts +26 -4
@@ -35,7 +35,7 @@ function buildArgumentCompletions(subcommands: SubcommandDef[]): (prefix: string
35
35
  if (argumentPrefix.includes(" ")) return null; // past the subcommand
36
36
  const lower = argumentPrefix.toLowerCase();
37
37
  const matches = subcommands
38
- .filter(s => s.name.startsWith(lower))
38
+ .filter(s => s.name.toLowerCase().startsWith(lower))
39
39
  .map(s => ({
40
40
  value: `${s.name} `,
41
41
  label: s.name,
@@ -59,7 +59,7 @@ function buildSubcommandInlineHint(subcommands: SubcommandDef[]): (argumentText:
59
59
  // Still typing subcommand name — show remaining chars + usage
60
60
  const prefix = trimmed.toLowerCase();
61
61
  if (prefix.length === 0) return null;
62
- const match = subcommands.find(s => s.name.startsWith(prefix));
62
+ const match = subcommands.find(s => s.name.toLowerCase().startsWith(prefix));
63
63
  if (!match) return null;
64
64
  const remaining = match.name.slice(prefix.length);
65
65
  return remaining + (match.usage ? ` ${match.usage}` : "");
@@ -68,7 +68,7 @@ function buildSubcommandInlineHint(subcommands: SubcommandDef[]): (argumentText:
68
68
  // Subcommand typed — show remaining usage params
69
69
  const subName = trimmed.slice(0, spaceIndex).toLowerCase();
70
70
  const afterSub = trimmed.slice(spaceIndex + 1);
71
- const sub = subcommands.find(s => s.name === subName);
71
+ const sub = subcommands.find(s => s.name.toLowerCase() === subName);
72
72
  if (!sub?.usage) return null;
73
73
 
74
74
  if (afterSub.length > 0) {
@@ -86,7 +86,10 @@ export function classifyCgroup(input: { platform: NodeJS.Platform; cgroupText?:
86
86
  diagnostic: "service_cgroup_inheritance",
87
87
  };
88
88
  const scope = paths.find(value => /(?:^|\/)(?:user|session|app|init|gjc)[^/]*\.scope(?:\/|$)/.test(value));
89
- if (scope) return { classification: "safe", scope };
89
+ const vteScope = paths.find(value =>
90
+ /^\/user\.slice\/user-(\d+)\.slice\/user@\1\.service(?:\/[^/]+)*\/vte-spawn-[A-Za-z0-9_.-]+\.scope$/.test(value),
91
+ );
92
+ if (scope || vteScope) return { classification: "safe", scope: scope ?? vteScope };
90
93
  if (paths.every(value => value === "/")) return { classification: "safe", scope: "/" };
91
94
  return {
92
95
  classification: "unverifiable",