codex-anywhere 0.1.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 (104) hide show
  1. package/CONTRIBUTING.md +98 -0
  2. package/LICENSE +73 -0
  3. package/README.md +163 -0
  4. package/dist/agentMessageStreams.d.ts +3 -0
  5. package/dist/agentMessageStreams.d.ts.map +1 -0
  6. package/dist/agentMessageStreams.js +10 -0
  7. package/dist/agentMessageStreams.js.map +1 -0
  8. package/dist/app.d.ts +17 -0
  9. package/dist/app.d.ts.map +1 -0
  10. package/dist/app.js +18 -0
  11. package/dist/app.js.map +1 -0
  12. package/dist/approval.d.ts +12 -0
  13. package/dist/approval.d.ts.map +1 -0
  14. package/dist/approval.js +42 -0
  15. package/dist/approval.js.map +1 -0
  16. package/dist/bootstrap.d.ts +22 -0
  17. package/dist/bootstrap.d.ts.map +1 -0
  18. package/dist/bootstrap.js +31 -0
  19. package/dist/bootstrap.js.map +1 -0
  20. package/dist/bridge.d.ts +22 -0
  21. package/dist/bridge.d.ts.map +1 -0
  22. package/dist/bridge.js +2861 -0
  23. package/dist/bridge.js.map +1 -0
  24. package/dist/cli.d.ts +3 -0
  25. package/dist/cli.d.ts.map +1 -0
  26. package/dist/cli.js +58 -0
  27. package/dist/cli.js.map +1 -0
  28. package/dist/codexAppServer.d.ts +13 -0
  29. package/dist/codexAppServer.d.ts.map +1 -0
  30. package/dist/codexAppServer.js +115 -0
  31. package/dist/codexAppServer.js.map +1 -0
  32. package/dist/configuration.d.ts +17 -0
  33. package/dist/configuration.d.ts.map +1 -0
  34. package/dist/configuration.js +27 -0
  35. package/dist/configuration.js.map +1 -0
  36. package/dist/harnessState.d.ts +15 -0
  37. package/dist/harnessState.d.ts.map +1 -0
  38. package/dist/harnessState.js +55 -0
  39. package/dist/harnessState.js.map +1 -0
  40. package/dist/harnessStateCli.d.ts +3 -0
  41. package/dist/harnessStateCli.d.ts.map +1 -0
  42. package/dist/harnessStateCli.js +13 -0
  43. package/dist/harnessStateCli.js.map +1 -0
  44. package/dist/interactive.d.ts +8 -0
  45. package/dist/interactive.d.ts.map +1 -0
  46. package/dist/interactive.js +24 -0
  47. package/dist/interactive.js.map +1 -0
  48. package/dist/localCommandInteractions.d.ts +22 -0
  49. package/dist/localCommandInteractions.d.ts.map +1 -0
  50. package/dist/localCommandInteractions.js +412 -0
  51. package/dist/localCommandInteractions.js.map +1 -0
  52. package/dist/omxCommands.d.ts +10 -0
  53. package/dist/omxCommands.d.ts.map +1 -0
  54. package/dist/omxCommands.js +146 -0
  55. package/dist/omxCommands.js.map +1 -0
  56. package/dist/onboarding.d.ts +3 -0
  57. package/dist/onboarding.d.ts.map +1 -0
  58. package/dist/onboarding.js +41 -0
  59. package/dist/onboarding.js.map +1 -0
  60. package/dist/paths.d.ts +3 -0
  61. package/dist/paths.d.ts.map +1 -0
  62. package/dist/paths.js +22 -0
  63. package/dist/paths.js.map +1 -0
  64. package/dist/persistence.d.ts +6 -0
  65. package/dist/persistence.d.ts.map +1 -0
  66. package/dist/persistence.js +61 -0
  67. package/dist/persistence.js.map +1 -0
  68. package/dist/preflight.d.ts +3 -0
  69. package/dist/preflight.d.ts.map +1 -0
  70. package/dist/preflight.js +25 -0
  71. package/dist/preflight.js.map +1 -0
  72. package/dist/service.d.ts +58 -0
  73. package/dist/service.d.ts.map +1 -0
  74. package/dist/service.js +322 -0
  75. package/dist/service.js.map +1 -0
  76. package/dist/sessions.d.ts +7 -0
  77. package/dist/sessions.d.ts.map +1 -0
  78. package/dist/sessions.js +20 -0
  79. package/dist/sessions.js.map +1 -0
  80. package/dist/slashCommands.d.ts +13 -0
  81. package/dist/slashCommands.d.ts.map +1 -0
  82. package/dist/slashCommands.js +150 -0
  83. package/dist/slashCommands.js.map +1 -0
  84. package/dist/telegram.d.ts +21 -0
  85. package/dist/telegram.d.ts.map +1 -0
  86. package/dist/telegram.js +103 -0
  87. package/dist/telegram.js.map +1 -0
  88. package/dist/telegramFormatting.d.ts +18 -0
  89. package/dist/telegramFormatting.d.ts.map +1 -0
  90. package/dist/telegramFormatting.js +380 -0
  91. package/dist/telegramFormatting.js.map +1 -0
  92. package/dist/threadState.d.ts +3 -0
  93. package/dist/threadState.d.ts.map +1 -0
  94. package/dist/threadState.js +28 -0
  95. package/dist/threadState.js.map +1 -0
  96. package/dist/turnControls.d.ts +7 -0
  97. package/dist/turnControls.d.ts.map +1 -0
  98. package/dist/turnControls.js +20 -0
  99. package/dist/turnControls.js.map +1 -0
  100. package/dist/types.d.ts +121 -0
  101. package/dist/types.d.ts.map +1 -0
  102. package/dist/types.js +2 -0
  103. package/dist/types.js.map +1 -0
  104. package/package.json +62 -0
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+ import process from "node:process";
3
+ import { readLaunchRestoreStatus } from "./harnessState.js";
4
+ async function main() {
5
+ const status = await readLaunchRestoreStatus(process.cwd());
6
+ console.log(JSON.stringify(status, null, 2));
7
+ }
8
+ void main().catch((error) => {
9
+ const message = error instanceof Error ? error.message : String(error);
10
+ console.error(`Codex Anywhere harness-state failed: ${message}`);
11
+ process.exitCode = 1;
12
+ });
13
+ //# sourceMappingURL=harnessStateCli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harnessStateCli.js","sourceRoot":"","sources":["../src/harnessStateCli.ts"],"names":[],"mappings":";AAEA,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC1B,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,KAAK,CAAC,wCAAwC,OAAO,EAAE,CAAC,CAAC;IACjE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export type InteractiveAction = "choose" | "cancel" | "open" | "done";
2
+ export declare function formatInteractiveCallbackData(token: string, action: InteractiveAction, value?: string): string;
3
+ export declare function parseInteractiveCallbackData(data: string): {
4
+ token: string;
5
+ action: InteractiveAction;
6
+ value: string | null;
7
+ } | null;
8
+ //# sourceMappingURL=interactive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../src/interactive.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEtE,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,iBAAiB,EACzB,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAER;AAED,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,GACX;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAe3E"}
@@ -0,0 +1,24 @@
1
+ const INTERACTIVE_PREFIX = "ix";
2
+ export function formatInteractiveCallbackData(token, action, value) {
3
+ return [INTERACTIVE_PREFIX, token, action, value ?? ""].join(":");
4
+ }
5
+ export function parseInteractiveCallbackData(data) {
6
+ const parts = data.split(":");
7
+ if (parts.length < 3 || parts[0] !== INTERACTIVE_PREFIX) {
8
+ return null;
9
+ }
10
+ const token = parts[1];
11
+ const action = parts[2];
12
+ if (!token || typeof action !== "string" || !isInteractiveAction(action)) {
13
+ return null;
14
+ }
15
+ return {
16
+ token,
17
+ action,
18
+ value: parts.length > 3 ? parts.slice(3).join(":") : null,
19
+ };
20
+ }
21
+ function isInteractiveAction(value) {
22
+ return value === "choose" || value === "cancel" || value === "open" || value === "done";
23
+ }
24
+ //# sourceMappingURL=interactive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../src/interactive.ts"],"names":[],"mappings":"AAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAIhC,MAAM,UAAU,6BAA6B,CAC3C,KAAa,EACb,MAAyB,EACzB,KAAc;IAEd,OAAO,CAAC,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,IAAY;IAEZ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,kBAAkB,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,CAAC,KAAK,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,KAAK;QACL,MAAM;QACN,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;KAC1D,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,CAAC;AAC1F,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { ChatSessionState, JsonObject, PendingInteractiveSessionStep } from "./types.js";
2
+ export type LocalInteractiveCommand = "model" | "fast" | "permissions" | "experimental" | "personality" | "collab" | "plan" | "feedback" | "agent" | "mention" | "verbose" | "rename" | "review";
3
+ export interface LocalInteractiveSessionSpec {
4
+ title: string;
5
+ steps: PendingInteractiveSessionStep[];
6
+ meta: JsonObject;
7
+ }
8
+ export declare function buildModelInteractiveSession(models: unknown[], state: ChatSessionState): LocalInteractiveSessionSpec | null;
9
+ export declare function buildFastInteractiveSession(state: ChatSessionState): LocalInteractiveSessionSpec;
10
+ export declare function buildVerboseInteractiveSession(state: ChatSessionState): LocalInteractiveSessionSpec;
11
+ export declare function buildApprovalPolicyInteractiveSession(state: ChatSessionState): LocalInteractiveSessionSpec;
12
+ export declare function buildExperimentalInteractiveSession(features: unknown[]): LocalInteractiveSessionSpec | null;
13
+ export declare function buildPersonalityInteractiveSession(state: ChatSessionState): LocalInteractiveSessionSpec;
14
+ export declare function buildCollaborationInteractiveSession(modes: unknown[], state: ChatSessionState): LocalInteractiveSessionSpec | null;
15
+ export declare function buildPlanInteractiveSession(modes: unknown[], state: ChatSessionState): LocalInteractiveSessionSpec | null;
16
+ export declare function buildFeedbackInteractiveSession(): LocalInteractiveSessionSpec;
17
+ export declare function buildAgentThreadInteractiveSession(threads: unknown[], currentThreadId: string | null): LocalInteractiveSessionSpec | null;
18
+ export declare function buildMentionInteractiveSession(files: string[]): LocalInteractiveSessionSpec | null;
19
+ export declare function buildRenameInteractiveSession(): LocalInteractiveSessionSpec;
20
+ export declare function buildReviewInteractiveSession(): LocalInteractiveSessionSpec;
21
+ export declare function buildLocalInteractiveFollowUpSteps(command: LocalInteractiveCommand, answers: Record<string, unknown>): PendingInteractiveSessionStep[];
22
+ //# sourceMappingURL=localCommandInteractions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localCommandInteractions.d.ts","sourceRoot":"","sources":["../src/localCommandInteractions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EACV,6BAA6B,EAC9B,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,uBAAuB,GAC/B,OAAO,GACP,MAAM,GACN,aAAa,GACb,cAAc,GACd,aAAa,GACb,QAAQ,GACR,MAAM,GACN,UAAU,GACV,OAAO,GACP,SAAS,GACT,SAAS,GACT,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,6BAA6B,EAAE,CAAC;IACvC,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,OAAO,EAAE,EACjB,KAAK,EAAE,gBAAgB,GACtB,2BAA2B,GAAG,IAAI,CAoCpC;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,gBAAgB,GAAG,2BAA2B,CAiBhG;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,gBAAgB,GAAG,2BAA2B,CAiBnG;AAED,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,gBAAgB,GACtB,2BAA2B,CAmB7B;AAED,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,OAAO,EAAE,GAClB,2BAA2B,GAAG,IAAI,CAkCpC;AAED,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,gBAAgB,GACtB,2BAA2B,CAmB7B;AAED,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,OAAO,EAAE,EAChB,KAAK,EAAE,gBAAgB,GACtB,2BAA2B,GAAG,IAAI,CAqBpC;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,OAAO,EAAE,EAChB,KAAK,EAAE,gBAAgB,GACtB,2BAA2B,GAAG,IAAI,CAqBpC;AAED,wBAAgB,+BAA+B,IAAI,2BAA2B,CA0B7E;AAED,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,OAAO,EAAE,EAClB,eAAe,EAAE,MAAM,GAAG,IAAI,GAC7B,2BAA2B,GAAG,IAAI,CAoCpC;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,MAAM,EAAE,GACd,2BAA2B,GAAG,IAAI,CAoBpC;AAED,wBAAgB,6BAA6B,IAAI,2BAA2B,CAa3E;AAED,wBAAgB,6BAA6B,IAAI,2BAA2B,CAmB3E;AAED,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,uBAAuB,EAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,6BAA6B,EAAE,CAgEjC"}
@@ -0,0 +1,412 @@
1
+ export function buildModelInteractiveSession(models, state) {
2
+ const options = models
3
+ .map((entry) => {
4
+ if (!entry || typeof entry !== "object") {
5
+ return null;
6
+ }
7
+ const model = asString(entry.model);
8
+ if (!model) {
9
+ return null;
10
+ }
11
+ const isDefault = entry.isDefault === true ? " (default)" : "";
12
+ const current = state.model === model ? " (current)" : "";
13
+ return { label: `${model}${isDefault}${current}`, value: model };
14
+ })
15
+ .filter((entry) => Boolean(entry))
16
+ .slice(0, 20);
17
+ if (options.length === 0) {
18
+ return null;
19
+ }
20
+ options.unshift({ label: "Reset to default", value: "__reset__" });
21
+ return {
22
+ title: "Choose the active model.",
23
+ steps: [
24
+ {
25
+ key: "model",
26
+ prompt: `Current model: ${state.model ?? "default"}${state.reasoningEffort ? ` (${state.reasoningEffort})` : ""}`,
27
+ kind: "choice",
28
+ options,
29
+ required: true,
30
+ },
31
+ ],
32
+ meta: { command: "model", followUpAdded: false },
33
+ };
34
+ }
35
+ export function buildFastInteractiveSession(state) {
36
+ return {
37
+ title: "Choose Fast mode.",
38
+ steps: [
39
+ {
40
+ key: "serviceTier",
41
+ prompt: `Fast mode is currently ${state.serviceTier === "fast" ? "on" : "off"}.`,
42
+ kind: "choice",
43
+ options: [
44
+ { label: "On", value: "fast" },
45
+ { label: "Off", value: "default" },
46
+ ],
47
+ required: true,
48
+ },
49
+ ],
50
+ meta: { command: "fast" },
51
+ };
52
+ }
53
+ export function buildVerboseInteractiveSession(state) {
54
+ return {
55
+ title: "Choose verbose mode.",
56
+ steps: [
57
+ {
58
+ key: "verboseMode",
59
+ prompt: `Detailed tool/file messages are currently ${state.verbose ? "on" : "off"}.`,
60
+ kind: "choice",
61
+ options: [
62
+ { label: "On", value: "on" },
63
+ { label: "Off", value: "off" },
64
+ ],
65
+ required: true,
66
+ },
67
+ ],
68
+ meta: { command: "verbose" },
69
+ };
70
+ }
71
+ export function buildApprovalPolicyInteractiveSession(state) {
72
+ return {
73
+ title: "Choose the approval policy.",
74
+ steps: [
75
+ {
76
+ key: "approvalPolicy",
77
+ prompt: `Current approval policy: ${state.approvalPolicy ?? "on-request"}`,
78
+ kind: "choice",
79
+ options: [
80
+ { label: "Untrusted", value: "untrusted" },
81
+ { label: "On failure", value: "on-failure" },
82
+ { label: "On request", value: "on-request" },
83
+ { label: "Never", value: "never" },
84
+ ],
85
+ required: true,
86
+ },
87
+ ],
88
+ meta: { command: "permissions" },
89
+ };
90
+ }
91
+ export function buildExperimentalInteractiveSession(features) {
92
+ const options = features
93
+ .map((entry) => {
94
+ if (!entry || typeof entry !== "object") {
95
+ return null;
96
+ }
97
+ const name = asString(entry.name);
98
+ if (!name) {
99
+ return null;
100
+ }
101
+ const enabled = entry.enabled === true ? "on" : "off";
102
+ const stage = asString(entry.stage) ?? "unknown";
103
+ return { label: `${name} (${enabled}, ${stage})`, value: name };
104
+ })
105
+ .filter((entry) => Boolean(entry))
106
+ .slice(0, 20);
107
+ if (options.length === 0) {
108
+ return null;
109
+ }
110
+ return {
111
+ title: "Choose an experimental feature.",
112
+ steps: [
113
+ {
114
+ key: "featureName",
115
+ prompt: "Select the feature you want to change.",
116
+ kind: "choice",
117
+ options,
118
+ required: true,
119
+ },
120
+ ],
121
+ meta: { command: "experimental", followUpAdded: false },
122
+ };
123
+ }
124
+ export function buildPersonalityInteractiveSession(state) {
125
+ return {
126
+ title: "Choose Codex personality.",
127
+ steps: [
128
+ {
129
+ key: "personality",
130
+ prompt: `Current personality: ${state.personality ?? "default"}`,
131
+ kind: "choice",
132
+ options: [
133
+ { label: "Default", value: "__default__" },
134
+ { label: "Friendly", value: "friendly" },
135
+ { label: "Pragmatic", value: "pragmatic" },
136
+ { label: "None", value: "none" },
137
+ ],
138
+ required: true,
139
+ },
140
+ ],
141
+ meta: { command: "personality" },
142
+ };
143
+ }
144
+ export function buildCollaborationInteractiveSession(modes, state) {
145
+ const options = collaborationModeOptions(modes, state.collaborationModeName);
146
+ if (options.length === 0) {
147
+ return null;
148
+ }
149
+ options.unshift({ label: "Default (off)", value: "__reset__" });
150
+ return {
151
+ title: "Choose collaboration mode.",
152
+ steps: [
153
+ {
154
+ key: "collaborationModeName",
155
+ prompt: `Current collaboration mode: ${state.collaborationModeName ?? "default"}`,
156
+ kind: "choice",
157
+ options,
158
+ required: true,
159
+ },
160
+ ],
161
+ meta: { command: "collab" },
162
+ };
163
+ }
164
+ export function buildPlanInteractiveSession(modes, state) {
165
+ const options = collaborationModeOptions(modes, state.collaborationModeName).filter((entry) => entry.value.toLowerCase().includes("plan"));
166
+ if (options.length === 0) {
167
+ return null;
168
+ }
169
+ return {
170
+ title: "Choose Plan mode.",
171
+ steps: [
172
+ {
173
+ key: "collaborationModeName",
174
+ prompt: `Current collaboration mode: ${state.collaborationModeName ?? "default"}`,
175
+ kind: "choice",
176
+ options,
177
+ required: true,
178
+ },
179
+ ],
180
+ meta: { command: "plan" },
181
+ };
182
+ }
183
+ export function buildFeedbackInteractiveSession() {
184
+ return {
185
+ title: "Send feedback.",
186
+ steps: [
187
+ {
188
+ key: "classification",
189
+ prompt: "Choose a feedback category.",
190
+ kind: "choice",
191
+ options: [
192
+ { label: "Bad result", value: "bad_result" },
193
+ { label: "Good result", value: "good_result" },
194
+ { label: "Bug", value: "bug" },
195
+ { label: "Safety check", value: "safety_check" },
196
+ { label: "Other", value: "other" },
197
+ ],
198
+ required: true,
199
+ },
200
+ {
201
+ key: "includeLogs",
202
+ prompt: "Include logs with the feedback?",
203
+ kind: "boolean",
204
+ required: true,
205
+ },
206
+ ],
207
+ meta: { command: "feedback" },
208
+ };
209
+ }
210
+ export function buildAgentThreadInteractiveSession(threads, currentThreadId) {
211
+ const options = threads
212
+ .map((entry) => {
213
+ if (!entry || typeof entry !== "object") {
214
+ return null;
215
+ }
216
+ const thread = entry;
217
+ const id = asString(thread.id);
218
+ if (!id) {
219
+ return null;
220
+ }
221
+ return {
222
+ label: formatThreadOptionLabel(thread, currentThreadId),
223
+ value: id,
224
+ };
225
+ })
226
+ .filter((entry) => Boolean(entry))
227
+ .slice(0, 20);
228
+ if (options.length === 0) {
229
+ return null;
230
+ }
231
+ return {
232
+ title: "Choose the active agent thread.",
233
+ steps: [
234
+ {
235
+ key: "threadId",
236
+ prompt: "Select a thread to make active.",
237
+ kind: "choice",
238
+ options,
239
+ required: true,
240
+ },
241
+ ],
242
+ meta: { command: "agent" },
243
+ };
244
+ }
245
+ export function buildMentionInteractiveSession(files) {
246
+ const options = files
247
+ .slice(0, 12)
248
+ .map((file) => ({ label: file, value: file }));
249
+ if (options.length === 0) {
250
+ return null;
251
+ }
252
+ return {
253
+ title: "Choose a file to mention.",
254
+ steps: [
255
+ {
256
+ key: "mentionPath",
257
+ prompt: "Select a file to attach to your next message.",
258
+ kind: "choice",
259
+ options,
260
+ required: true,
261
+ },
262
+ ],
263
+ meta: { command: "mention" },
264
+ };
265
+ }
266
+ export function buildRenameInteractiveSession() {
267
+ return {
268
+ title: "Rename the current thread.",
269
+ steps: [
270
+ {
271
+ key: "threadName",
272
+ prompt: "Reply with the new thread name.",
273
+ kind: "text",
274
+ required: true,
275
+ },
276
+ ],
277
+ meta: { command: "rename" },
278
+ };
279
+ }
280
+ export function buildReviewInteractiveSession() {
281
+ return {
282
+ title: "Start a review.",
283
+ steps: [
284
+ {
285
+ key: "targetKind",
286
+ prompt: "Choose what to review.",
287
+ kind: "choice",
288
+ options: [
289
+ { label: "Uncommitted changes", value: "uncommittedChanges" },
290
+ { label: "Base branch", value: "baseBranch" },
291
+ { label: "Commit", value: "commit" },
292
+ { label: "Custom instructions", value: "custom" },
293
+ ],
294
+ required: true,
295
+ },
296
+ ],
297
+ meta: { command: "review", followUpAdded: false },
298
+ };
299
+ }
300
+ export function buildLocalInteractiveFollowUpSteps(command, answers) {
301
+ switch (command) {
302
+ case "model": {
303
+ const selectedModel = asString(answers.model);
304
+ if (!selectedModel || selectedModel === "__reset__") {
305
+ return [];
306
+ }
307
+ return [
308
+ {
309
+ key: "reasoningEffort",
310
+ prompt: "Choose the reasoning effort.",
311
+ kind: "choice",
312
+ options: [
313
+ { label: "Default", value: "__default__" },
314
+ { label: "Minimal", value: "minimal" },
315
+ { label: "Low", value: "low" },
316
+ { label: "Medium", value: "medium" },
317
+ { label: "High", value: "high" },
318
+ ],
319
+ required: true,
320
+ },
321
+ ];
322
+ }
323
+ case "experimental":
324
+ if (!asString(answers.featureName)) {
325
+ return [];
326
+ }
327
+ return [
328
+ {
329
+ key: "enabled",
330
+ prompt: "Set the feature state.",
331
+ kind: "choice",
332
+ options: [
333
+ { label: "On", value: "on" },
334
+ { label: "Off", value: "off" },
335
+ ],
336
+ required: true,
337
+ },
338
+ ];
339
+ case "personality":
340
+ case "collab":
341
+ case "plan":
342
+ case "feedback":
343
+ case "agent":
344
+ case "mention":
345
+ case "verbose":
346
+ return [];
347
+ case "review": {
348
+ const targetKind = asString(answers.targetKind);
349
+ if (!targetKind || targetKind === "uncommittedChanges") {
350
+ return [];
351
+ }
352
+ return [
353
+ {
354
+ key: "targetValue",
355
+ prompt: reviewValuePrompt(targetKind),
356
+ kind: "text",
357
+ required: true,
358
+ },
359
+ ];
360
+ }
361
+ default:
362
+ return [];
363
+ }
364
+ }
365
+ function reviewValuePrompt(targetKind) {
366
+ switch (targetKind) {
367
+ case "baseBranch":
368
+ return "Reply with the base branch name to diff against.";
369
+ case "commit":
370
+ return "Reply with the commit SHA to review.";
371
+ case "custom":
372
+ return "Reply with the review instructions.";
373
+ default:
374
+ return "Reply with the value for this review target.";
375
+ }
376
+ }
377
+ function collaborationModeOptions(modes, currentModeName) {
378
+ return modes
379
+ .map((entry) => {
380
+ if (!entry || typeof entry !== "object") {
381
+ return null;
382
+ }
383
+ const mode = entry;
384
+ const name = asString(mode.name);
385
+ if (!name) {
386
+ return null;
387
+ }
388
+ const modeKind = asString(mode.mode);
389
+ const model = asString(mode.model);
390
+ const current = currentModeName === name ? " (current)" : "";
391
+ const details = [modeKind, model].filter(Boolean).join(", ");
392
+ return {
393
+ label: details ? `${name}${current} [${details}]` : `${name}${current}`,
394
+ value: name,
395
+ };
396
+ })
397
+ .filter((entry) => Boolean(entry));
398
+ }
399
+ function formatThreadOptionLabel(thread, currentThreadId) {
400
+ const id = asString(thread.id) ?? "unknown";
401
+ const nickname = asString(thread.agentNickname);
402
+ const role = asString(thread.agentRole);
403
+ const name = asString(thread.name);
404
+ const preview = asString(thread.preview);
405
+ const label = name
406
+ ?? (nickname && role ? `${nickname} [${role}]` : nickname ?? role ?? preview ?? id);
407
+ return `${label}${currentThreadId === id ? " (current)" : ""}`;
408
+ }
409
+ function asString(value) {
410
+ return typeof value === "string" ? value : null;
411
+ }
412
+ //# sourceMappingURL=localCommandInteractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localCommandInteractions.js","sourceRoot":"","sources":["../src/localCommandInteractions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface OmxCommandPlan {
2
+ kind: "help" | "execute" | "skill" | "unsupported";
3
+ argv: string[];
4
+ message?: string;
5
+ skillText?: string;
6
+ }
7
+ export declare function buildOmxHelpText(): string;
8
+ export declare function tokenizeOmxArgs(input: string): string[];
9
+ export declare function planOmxCommand(args: string): OmxCommandPlan;
10
+ //# sourceMappingURL=omxCommands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omxCommands.d.ts","sourceRoot":"","sources":["../src/omxCommands.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;IACnD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAyCD,wBAAgB,gBAAgB,IAAI,MAAM,CA6BzC;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CA6CvD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAuC3D"}