synabun 2.0.5 → 2.0.7

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 (233) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/README.md +2 -1
  3. package/THIRD-PARTY-LICENSES.md +13 -0
  4. package/docs/whatsapp.md +151 -16
  5. package/hooks/claude-code/shared.mjs +6 -3
  6. package/lib/child-path.js +303 -0
  7. package/lib/claude-hooks.js +2 -1
  8. package/lib/data-home-migration.js +2 -0
  9. package/lib/desktop-app.js +265 -0
  10. package/lib/external-tools.js +7 -3
  11. package/lib/log-redact.js +102 -0
  12. package/lib/packaged-runtime.js +138 -11
  13. package/mcp-server/dist/http.d.ts +3 -1
  14. package/mcp-server/dist/http.d.ts.map +1 -1
  15. package/mcp-server/dist/http.js +15 -4
  16. package/mcp-server/dist/http.js.map +1 -1
  17. package/mcp-server/dist/index.d.ts.map +1 -1
  18. package/mcp-server/dist/index.js +9 -6
  19. package/mcp-server/dist/index.js.map +1 -1
  20. package/mcp-server/dist/services/budget-judgments.d.ts +108 -0
  21. package/mcp-server/dist/services/budget-judgments.d.ts.map +1 -0
  22. package/mcp-server/dist/services/budget-judgments.js +153 -0
  23. package/mcp-server/dist/services/budget-judgments.js.map +1 -0
  24. package/mcp-server/dist/services/codex-config-heal.d.ts +5 -1
  25. package/mcp-server/dist/services/codex-config-heal.d.ts.map +1 -1
  26. package/mcp-server/dist/services/codex-config-heal.js +41 -4
  27. package/mcp-server/dist/services/codex-config-heal.js.map +1 -1
  28. package/mcp-server/dist/services/identity.d.ts +11 -0
  29. package/mcp-server/dist/services/identity.d.ts.map +1 -1
  30. package/mcp-server/dist/services/identity.js +24 -0
  31. package/mcp-server/dist/services/identity.js.map +1 -1
  32. package/mcp-server/dist/services/neural-interface.d.ts +13 -0
  33. package/mcp-server/dist/services/neural-interface.d.ts.map +1 -1
  34. package/mcp-server/dist/services/neural-interface.js +34 -2
  35. package/mcp-server/dist/services/neural-interface.js.map +1 -1
  36. package/mcp-server/dist/services/typesafe-config.d.ts +1 -1
  37. package/mcp-server/dist/services/typesafe-config.d.ts.map +1 -1
  38. package/mcp-server/dist/services/typesafe-config.js +4 -1
  39. package/mcp-server/dist/services/typesafe-config.js.map +1 -1
  40. package/mcp-server/dist/tools/agents.d.ts +10 -7
  41. package/mcp-server/dist/tools/agents.d.ts.map +1 -1
  42. package/mcp-server/dist/tools/agents.js +34 -13
  43. package/mcp-server/dist/tools/agents.js.map +1 -1
  44. package/mcp-server/dist/tools/whatsapp-send-file.d.ts +17 -0
  45. package/mcp-server/dist/tools/whatsapp-send-file.d.ts.map +1 -0
  46. package/mcp-server/dist/tools/whatsapp-send-file.js +44 -0
  47. package/mcp-server/dist/tools/whatsapp-send-file.js.map +1 -0
  48. package/mcp-server/dist/tui.js +2 -1
  49. package/mcp-server/dist/tui.js.map +1 -1
  50. package/mcp-server/dist/version.d.ts +5 -0
  51. package/mcp-server/dist/version.d.ts.map +1 -0
  52. package/mcp-server/dist/version.js +21 -0
  53. package/mcp-server/dist/version.js.map +1 -0
  54. package/mcp-server/package-lock.json +2 -2
  55. package/mcp-server/package.json +1 -1
  56. package/mcp-server/run.mjs +15 -9
  57. package/mcp-server/src/http.ts +18 -3
  58. package/mcp-server/src/index.ts +9 -6
  59. package/mcp-server/src/services/budget-judgments.ts +183 -0
  60. package/mcp-server/src/services/codex-config-heal.ts +35 -4
  61. package/mcp-server/src/services/identity.ts +27 -0
  62. package/mcp-server/src/services/neural-interface.ts +34 -2
  63. package/mcp-server/src/services/typesafe-config.ts +4 -1
  64. package/mcp-server/src/tools/agents.ts +33 -14
  65. package/mcp-server/src/tools/whatsapp-send-file.ts +51 -0
  66. package/mcp-server/src/tui.ts +2 -1
  67. package/mcp-server/src/version.ts +22 -0
  68. package/neural-interface/i18n/en.json +627 -57
  69. package/neural-interface/i18n/pt-BR.json +626 -56
  70. package/neural-interface/lib/account-usage.js +163 -0
  71. package/neural-interface/lib/assistant-api.js +255 -52
  72. package/neural-interface/lib/assistant-brains/claude.js +15 -2
  73. package/neural-interface/lib/assistant-brains/codex.js +3 -0
  74. package/neural-interface/lib/assistant-brains/opencode.js +17 -4
  75. package/neural-interface/lib/assistant-budget-planner.js +390 -0
  76. package/neural-interface/lib/assistant-budget-split.js +408 -0
  77. package/neural-interface/lib/assistant-budget.js +94 -95
  78. package/neural-interface/lib/assistant-config.js +62 -14
  79. package/neural-interface/lib/assistant-dispatch.js +432 -125
  80. package/neural-interface/lib/assistant-jev.js +26 -3
  81. package/neural-interface/lib/assistant-persona.js +68 -11
  82. package/neural-interface/lib/assistant-plan-permissions.js +8 -1
  83. package/neural-interface/lib/assistant-route-accounts.js +14 -0
  84. package/neural-interface/lib/assistant-route-gate.js +19 -3
  85. package/neural-interface/lib/assistant-router.js +373 -42
  86. package/neural-interface/lib/assistant-runtime.js +307 -47
  87. package/neural-interface/lib/assistant-user-writer.js +4 -2
  88. package/neural-interface/lib/augmented-path.js +317 -53
  89. package/neural-interface/lib/claude-accounts.js +342 -31
  90. package/neural-interface/lib/claude-agent-bridge.js +90 -3
  91. package/neural-interface/lib/claude-executable.js +6 -1
  92. package/neural-interface/lib/claude-model-catalog.js +3 -3
  93. package/neural-interface/lib/claude-panel-auth.js +221 -0
  94. package/neural-interface/lib/claude-profile-api-key.js +62 -0
  95. package/neural-interface/lib/cli-install-api.js +137 -0
  96. package/neural-interface/lib/cli-install.js +797 -0
  97. package/neural-interface/lib/cli-path.js +130 -0
  98. package/neural-interface/lib/cli-resolver.js +744 -0
  99. package/neural-interface/lib/cli-update-planner.js +143 -7
  100. package/neural-interface/lib/codex-account-auth.js +178 -0
  101. package/neural-interface/lib/codex-accounts.js +489 -0
  102. package/neural-interface/lib/codex-capabilities.js +2 -1
  103. package/neural-interface/lib/codex-compat-rpc.js +8 -2
  104. package/neural-interface/lib/codex-mcp-approvals.js +5 -1
  105. package/neural-interface/lib/codex-panel-auth.js +62 -0
  106. package/neural-interface/lib/codex-session-settings.js +1 -1
  107. package/neural-interface/lib/codex-settings-schema.js +120 -0
  108. package/neural-interface/lib/desktop/config.js +3 -0
  109. package/neural-interface/lib/git-bash/bzip2.js +339 -0
  110. package/neural-interface/lib/git-bash/claude-settings.js +73 -0
  111. package/neural-interface/lib/git-bash/extract-worker.js +34 -0
  112. package/neural-interface/lib/git-bash/install.js +529 -0
  113. package/neural-interface/lib/git-bash/licenses/COPYING +360 -0
  114. package/neural-interface/lib/git-bash/licenses/LGPL-2.1 +511 -0
  115. package/neural-interface/lib/git-bash/manager.js +268 -0
  116. package/neural-interface/lib/git-bash/pins.js +206 -0
  117. package/neural-interface/lib/git-bash/pins.json +34 -0
  118. package/neural-interface/lib/git-bash/resolver.js +194 -0
  119. package/neural-interface/lib/git-read.js +34 -2
  120. package/neural-interface/lib/install-details.js +145 -0
  121. package/neural-interface/lib/mcp-installer.js +14 -2
  122. package/neural-interface/lib/native-loop-providers.js +16 -3
  123. package/neural-interface/lib/native-loop-runtime.js +9 -4
  124. package/neural-interface/lib/os-path.js +319 -0
  125. package/neural-interface/lib/provider-panel-api-key-auth.js +92 -0
  126. package/neural-interface/lib/provider-panel-terminal-auth.js +95 -0
  127. package/neural-interface/lib/pty-host/core.js +2 -1
  128. package/neural-interface/lib/pty-host/manager.js +27 -2
  129. package/neural-interface/lib/remote-policy.js +20 -11
  130. package/neural-interface/lib/session-title-generator.js +4 -3
  131. package/neural-interface/lib/system-about.js +340 -0
  132. package/neural-interface/lib/system-activity.js +66 -0
  133. package/neural-interface/lib/terminal-env.js +11 -3
  134. package/neural-interface/lib/terminal-path.js +55 -0
  135. package/neural-interface/lib/virtual-socket.js +12 -1
  136. package/neural-interface/lib/whatsapp/baileys-adapter.js +165 -45
  137. package/neural-interface/lib/whatsapp/bridge.js +78 -34
  138. package/neural-interface/lib/whatsapp/commands.js +13 -14
  139. package/neural-interface/lib/whatsapp/config.js +134 -20
  140. package/neural-interface/lib/whatsapp/fake-baileys.js +99 -14
  141. package/neural-interface/lib/whatsapp/host-core.js +168 -35
  142. package/neural-interface/lib/whatsapp/inbound.js +5 -3
  143. package/neural-interface/lib/whatsapp/local-file.js +524 -0
  144. package/neural-interface/lib/whatsapp/manager.js +92 -32
  145. package/neural-interface/lib/whatsapp/paths.js +11 -1
  146. package/neural-interface/lib/whatsapp/protocol.js +65 -5
  147. package/neural-interface/lib/whatsapp/redact.js +63 -0
  148. package/neural-interface/lib/whatsapp/service.js +343 -91
  149. package/neural-interface/lib/whatsapp/transcription.js +463 -0
  150. package/neural-interface/package-lock.json +2 -2
  151. package/neural-interface/package.json +1 -1
  152. package/neural-interface/public/index.html +2 -0
  153. package/neural-interface/public/index2d.html +2 -0
  154. package/neural-interface/public/offline.html +16 -1
  155. package/neural-interface/public/onboarding.html +96 -2
  156. package/neural-interface/public/shared/account-i18n.js +7 -0
  157. package/neural-interface/public/shared/account-menu.js +539 -0
  158. package/neural-interface/public/shared/account-usage.js +19 -0
  159. package/neural-interface/public/shared/account-view.js +335 -0
  160. package/neural-interface/public/shared/agent-runtime-options.js +28 -8
  161. package/neural-interface/public/shared/assistant/asst-accounts.js +182 -184
  162. package/neural-interface/public/shared/assistant/asst-api.js +32 -2
  163. package/neural-interface/public/shared/assistant/asst-brain-picker.js +124 -25
  164. package/neural-interface/public/shared/assistant/asst-budget.js +259 -303
  165. package/neural-interface/public/shared/assistant/asst-mascot.js +126 -7
  166. package/neural-interface/public/shared/assistant/asst-menu.js +15 -3
  167. package/neural-interface/public/shared/assistant/asst-panel.js +48 -14
  168. package/neural-interface/public/shared/assistant/asst-render.js +38 -7
  169. package/neural-interface/public/shared/assistant/asst-route.js +72 -14
  170. package/neural-interface/public/shared/assistant/asst-routes-editor.js +45 -6
  171. package/neural-interface/public/shared/assistant/asst-slash.js +1 -1
  172. package/neural-interface/public/shared/assistant/asst-state.js +1 -1
  173. package/neural-interface/public/shared/assistant/asst-styles.js +99 -17
  174. package/neural-interface/public/shared/cdx/cdx-commands.js +4 -1
  175. package/neural-interface/public/shared/cdx/cdx-features.js +22 -14
  176. package/neural-interface/public/shared/cdx/cdx-icons.js +2 -0
  177. package/neural-interface/public/shared/cdx/cdx-panel.js +48 -107
  178. package/neural-interface/public/shared/cdx/cdx-settings.js +231 -0
  179. package/neural-interface/public/shared/cdx/cdx-styles.js +128 -107
  180. package/neural-interface/public/shared/cdx/cdx-tabs.js +261 -664
  181. package/neural-interface/public/shared/cdx/cdx-ws.js +2 -0
  182. package/neural-interface/public/shared/claude-account-view.js +3 -0
  183. package/neural-interface/public/shared/cli-install-view.js +392 -0
  184. package/neural-interface/public/shared/cli-status.js +282 -22
  185. package/neural-interface/public/shared/cp/cp-events.js +2 -1
  186. package/neural-interface/public/shared/cp/cp-styles.js +46 -0
  187. package/neural-interface/public/shared/desktop-bridge.js +39 -0
  188. package/neural-interface/public/shared/desktop-titlebar-page.js +59 -0
  189. package/neural-interface/public/shared/desktop-titlebar-view.js +122 -0
  190. package/neural-interface/public/shared/desktop-titlebar.js +153 -0
  191. package/neural-interface/public/shared/desktop-update-view.js +462 -0
  192. package/neural-interface/public/shared/editor/editor-panel.js +1 -1
  193. package/neural-interface/public/shared/explorer/fx-main.js +1 -1
  194. package/neural-interface/public/shared/git-bash-view.js +145 -0
  195. package/neural-interface/public/shared/html-shell.js +1 -0
  196. package/neural-interface/public/shared/i18n.js +19 -1
  197. package/neural-interface/public/shared/install-details-view.js +86 -0
  198. package/neural-interface/public/shared/ocp-v2/ocp-v2-panel.js +32 -0
  199. package/neural-interface/public/shared/ocp-v2/ocp-v2-send.js +17 -0
  200. package/neural-interface/public/shared/ocp-v2/ocp-v2-styles.js +118 -0
  201. package/neural-interface/public/shared/pwa-install-page.js +3 -1
  202. package/neural-interface/public/shared/settings/settings-about-pane.js +271 -0
  203. package/neural-interface/public/shared/settings/settings-about.js +254 -0
  204. package/neural-interface/public/shared/settings/settings-ia.js +15 -0
  205. package/neural-interface/public/shared/showcase-privacy.js +489 -0
  206. package/neural-interface/public/shared/storage.js +30 -3
  207. package/neural-interface/public/shared/styles.css +278 -31
  208. package/neural-interface/public/shared/synabun-mascot.js +48 -2
  209. package/neural-interface/public/shared/ui-claude-panel.js +212 -213
  210. package/neural-interface/public/shared/ui-cli-banner.js +355 -0
  211. package/neural-interface/public/shared/ui-git-bash.js +124 -0
  212. package/neural-interface/public/shared/ui-judgments.js +10 -1
  213. package/neural-interface/public/shared/ui-loading.js +30 -6
  214. package/neural-interface/public/shared/ui-menubar.js +13 -3
  215. package/neural-interface/public/shared/ui-navbar.js +3 -1
  216. package/neural-interface/public/shared/ui-provider-auth.js +104 -0
  217. package/neural-interface/public/shared/ui-provider-terminal-auth.js +223 -0
  218. package/neural-interface/public/shared/ui-sessions.js +9 -3
  219. package/neural-interface/public/shared/ui-settings.js +55 -3
  220. package/neural-interface/public/shared/ui-sidepanel-sessions.js +3 -1
  221. package/neural-interface/public/shared/ui-sync.js +6 -0
  222. package/neural-interface/public/shared/ui-terminal.js +17 -0
  223. package/neural-interface/public/shared/ui-tool-updates.js +5 -0
  224. package/neural-interface/public/shared/ui-update.js +594 -5
  225. package/neural-interface/public/shared/ui-whatsapp.js +21 -6
  226. package/neural-interface/public/shared/whatsapp/wa-view.js +51 -8
  227. package/neural-interface/public/shared/worker-end.js +2 -0
  228. package/neural-interface/public/sw.js +1 -1
  229. package/neural-interface/public/variant/2d/main.js +10 -1
  230. package/neural-interface/public/variant/3d/main.js +10 -1
  231. package/neural-interface/server.js +1219 -608
  232. package/package.json +4 -1
  233. package/setup.js +9 -8
@@ -0,0 +1,108 @@
1
+ /**
2
+ * The SynaBun Assistant's budget split (surface budget-split) — the questions,
3
+ * not the transport.
4
+ *
5
+ * A session has one dollar budget for the assistant's own turns and every
6
+ * worker run. What is left is divided across the providers (Claude Code,
7
+ * Codex, OpenCode) so each provider's runs draw from a share. Jev cannot
8
+ * answer an amount, so each provider gets one Score question over the same
9
+ * state: how much of the spend still to come will land on it. The questions
10
+ * cannot see each other's answers; the caller (neural-interface
11
+ * lib/assistant-budget-split.js) turns the scores into weights, normalises
12
+ * them, applies the brain's reserve, rounds to cents and makes the shares add
13
+ * up to exactly what is left.
14
+ *
15
+ * Jev only divides money the user already allowed: the total, what was spent
16
+ * and what is left are facts in the state, never something it sets. It never
17
+ * picks a model for a task: the questions are about providers' shares of the
18
+ * spend, and routing stays with the brain and the router.
19
+ *
20
+ * Keep the wording of the instructions and levels stable: changing it
21
+ * invalidates the cache and moves the numbers the split was tuned on (the
22
+ * caller's SHARE_LEVEL_FRACTIONS map these five levels). Returns null
23
+ * whenever no judgment is available, including an answer missing for any
24
+ * provider asked; the caller then uses its deterministic split.
25
+ */
26
+ import type { JudgeContext } from './memory-judgments.js';
27
+ export declare const BUDGET_PROVIDERS: readonly ["claude-code", "codex", "opencode"];
28
+ export type BudgetProvider = typeof BUDGET_PROVIDERS[number];
29
+ /** The ordered levels of every provider's question, lowest first. */
30
+ export declare const SHARE_LEVELS: readonly ["None of it: no remaining work is likely to run on this provider, or it cannot run anything now.", "A small part: an occasional task, such as one review or a side task, or only cheap work.", "A moderate part: a regular share of the remaining tasks, alongside the other providers.", "A large part: most of the expensive remaining work, such as the main coding tasks.", "Nearly all of it: practically every remaining dollar is spent on this provider."];
31
+ export interface BudgetSplitModel {
32
+ id?: string | null;
33
+ price?: string | null;
34
+ billing?: string | null;
35
+ tier?: string | null;
36
+ }
37
+ export interface BudgetSplitProvider {
38
+ eligible?: boolean;
39
+ why?: string | null;
40
+ spentUsd?: number;
41
+ brainUsd?: number;
42
+ runsUsd?: number;
43
+ shareUsd?: number | null;
44
+ leftUsd?: number | null;
45
+ liveRuns?: number;
46
+ runningRuns?: number;
47
+ recentUsd?: number | null;
48
+ account?: {
49
+ mode?: string | null;
50
+ usageLeftPercent?: number | null;
51
+ limited?: boolean | null;
52
+ } | null;
53
+ models?: BudgetSplitModel[];
54
+ }
55
+ export interface BudgetSplitTask {
56
+ taskClass?: string | null;
57
+ summary?: string | null;
58
+ provider?: string | null;
59
+ model?: string | null;
60
+ }
61
+ export interface BudgetSplitInput {
62
+ /** The providers to ask about (eligible ones); the rest get no share. */
63
+ ask: string[];
64
+ budget: {
65
+ amountUsd: number;
66
+ spentUsd: number;
67
+ leftUsd: number;
68
+ warnAtUsd?: number | null;
69
+ };
70
+ checkpoint?: {
71
+ reason?: string | null;
72
+ needs?: string[];
73
+ } | null;
74
+ brain?: {
75
+ provider?: string | null;
76
+ model?: string | null;
77
+ price?: string | null;
78
+ billing?: string | null;
79
+ } | null;
80
+ routeMode?: string | null;
81
+ savedRoutes?: Array<{
82
+ taskClass?: string | null;
83
+ provider?: string | null;
84
+ model?: string | null;
85
+ effort?: string | null;
86
+ price?: string | null;
87
+ billing?: string | null;
88
+ }>;
89
+ providers?: Partial<Record<string, BudgetSplitProvider>>;
90
+ tasks?: BudgetSplitTask[];
91
+ task?: BudgetSplitTask | null;
92
+ }
93
+ export interface BudgetShareScore {
94
+ score: number;
95
+ confidence: number;
96
+ probabilities: Record<string, number> | null;
97
+ }
98
+ export interface BudgetSplitJudgment {
99
+ scores: Partial<Record<BudgetProvider, BudgetShareScore>>;
100
+ }
101
+ /** The state every provider's question reads, bounded and redacted. Amounts in US dollars. */
102
+ export declare function budgetSplitState(input: BudgetSplitInput): Record<string, unknown>;
103
+ /**
104
+ * One request: a Score for each provider in `input.ask`. All or nothing: a
105
+ * missing or wrong-typed answer for any provider asked is no judgment (null).
106
+ */
107
+ export declare function judgeBudgetSplit(input: BudgetSplitInput, options?: JudgeContext): Promise<BudgetSplitJudgment | null>;
108
+ //# sourceMappingURL=budget-judgments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget-judgments.d.ts","sourceRoot":"","sources":["../../src/services/budget-judgments.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * The SynaBun Assistant's budget split (surface budget-split) — the questions,
3
+ * not the transport.
4
+ *
5
+ * A session has one dollar budget for the assistant's own turns and every
6
+ * worker run. What is left is divided across the providers (Claude Code,
7
+ * Codex, OpenCode) so each provider's runs draw from a share. Jev cannot
8
+ * answer an amount, so each provider gets one Score question over the same
9
+ * state: how much of the spend still to come will land on it. The questions
10
+ * cannot see each other's answers; the caller (neural-interface
11
+ * lib/assistant-budget-split.js) turns the scores into weights, normalises
12
+ * them, applies the brain's reserve, rounds to cents and makes the shares add
13
+ * up to exactly what is left.
14
+ *
15
+ * Jev only divides money the user already allowed: the total, what was spent
16
+ * and what is left are facts in the state, never something it sets. It never
17
+ * picks a model for a task: the questions are about providers' shares of the
18
+ * spend, and routing stays with the brain and the router.
19
+ *
20
+ * Keep the wording of the instructions and levels stable: changing it
21
+ * invalidates the cache and moves the numbers the split was tuned on (the
22
+ * caller's SHARE_LEVEL_FRACTIONS map these five levels). Returns null
23
+ * whenever no judgment is available, including an answer missing for any
24
+ * provider asked; the caller then uses its deterministic split.
25
+ */
26
+ import { judge, score, readScore } from './typesafe.js';
27
+ import { redactCredentials } from './typesafe-config.js';
28
+ export const BUDGET_PROVIDERS = ['claude-code', 'codex', 'opencode'];
29
+ const NAMES = { 'claude-code': 'Claude Code', codex: 'Codex', opencode: 'OpenCode' };
30
+ /** Question ids (code only; never sent as meaning). */
31
+ const QUESTION_IDS = { 'claude-code': 'share_claude_code', codex: 'share_codex', opencode: 'share_opencode' };
32
+ /** The ordered levels of every provider's question, lowest first. */
33
+ export const SHARE_LEVELS = [
34
+ 'None of it: no remaining work is likely to run on this provider, or it cannot run anything now.',
35
+ 'A small part: an occasional task, such as one review or a side task, or only cheap work.',
36
+ 'A moderate part: a regular share of the remaining tasks, alongside the other providers.',
37
+ 'A large part: most of the expensive remaining work, such as the main coding tasks.',
38
+ 'Nearly all of it: practically every remaining dollar is spent on this provider.',
39
+ ];
40
+ // State budgets (characters, items).
41
+ const SUMMARY_CLIP = 200;
42
+ const MAX_TASKS = 12;
43
+ const MAX_ROUTES = 16;
44
+ const MAX_MODELS = 4;
45
+ const text = (value) => (typeof value === 'string' ? value : value === null || value === undefined ? '' : String(value));
46
+ /** Credentials out first, then the cut: a secret split by a cut would slip past the patterns. */
47
+ const safe = (value, max) => {
48
+ const clean = redactCredentials(text(value));
49
+ return clean.length > max ? `${clean.slice(0, max - 1)}…` : clean;
50
+ };
51
+ const usd = (value) => (Number.isFinite(Number(value)) ? Math.round(Number(value) * 100) / 100 : null);
52
+ const isProvider = (value) => typeof value === 'string' && BUDGET_PROVIDERS.includes(value);
53
+ const label = (value) => (isProvider(value) ? value : value ? safe(value, 40) : null);
54
+ function taskRow(row) {
55
+ if (!row || typeof row !== 'object')
56
+ return null;
57
+ return { task_class: row.taskClass ? safe(row.taskClass, 20) : null, summary: row.summary ? safe(row.summary, SUMMARY_CLIP) : null, provider: label(row.provider), model: row.model ? safe(row.model, 80) : null };
58
+ }
59
+ /** The state every provider's question reads, bounded and redacted. Amounts in US dollars. */
60
+ export function budgetSplitState(input) {
61
+ const budget = input.budget || { amountUsd: 0, spentUsd: 0, leftUsd: 0 };
62
+ const providers = {};
63
+ for (const provider of BUDGET_PROVIDERS) {
64
+ const row = input.providers?.[provider];
65
+ if (!row)
66
+ continue;
67
+ providers[provider] = {
68
+ name: NAMES[provider],
69
+ can_run: row.eligible !== false,
70
+ why_not: row.eligible === false && row.why ? safe(row.why, 40) : null,
71
+ spent_usd: usd(row.spentUsd) ?? 0,
72
+ spent_by_assistant_usd: usd(row.brainUsd) ?? 0,
73
+ spent_by_workers_usd: usd(row.runsUsd) ?? 0,
74
+ current_share_usd: usd(row.shareUsd),
75
+ current_share_left_usd: usd(row.leftUsd),
76
+ runs_live: Math.max(0, Math.floor(Number(row.liveRuns) || 0)),
77
+ runs_working_now: Math.max(0, Math.floor(Number(row.runningRuns) || 0)),
78
+ recent_spend_usd: usd(row.recentUsd),
79
+ account: row.account ? {
80
+ billing: row.account.mode ? safe(row.account.mode, 20) : null,
81
+ usage_left_percent: Number.isFinite(Number(row.account.usageLeftPercent)) ? Math.round(Number(row.account.usageLeftPercent)) : null,
82
+ limited: typeof row.account.limited === 'boolean' ? row.account.limited : null,
83
+ } : null,
84
+ models_routed_here: (Array.isArray(row.models) ? row.models : []).slice(0, MAX_MODELS).map((m) => ({
85
+ model: m?.id ? safe(m.id, 80) : null, list_price_per_mtok: m?.price ? safe(m.price, 40) : null, billing: m?.billing ? safe(m.billing, 20) : null, tier: m?.tier ? safe(m.tier, 10) : null,
86
+ })),
87
+ };
88
+ }
89
+ return {
90
+ session_budget: {
91
+ total_usd: usd(budget.amountUsd) ?? 0,
92
+ spent_usd: usd(budget.spentUsd) ?? 0,
93
+ left_usd: usd(budget.leftUsd) ?? 0,
94
+ warning_at_usd: usd(budget.warnAtUsd),
95
+ note: 'Spend is counted at list price for every provider, subscription work included. The budget pays for the assistant\'s own turns and every worker run.',
96
+ },
97
+ checkpoint: {
98
+ reason: input.checkpoint?.reason ? safe(input.checkpoint.reason, 40) : null,
99
+ providers_short_of_money: (Array.isArray(input.checkpoint?.needs) ? input.checkpoint.needs : []).filter(isProvider),
100
+ },
101
+ assistant: input.brain ? {
102
+ runs_on: label(input.brain.provider), model: input.brain.model ? safe(input.brain.model, 80) : null,
103
+ list_price_per_mtok: input.brain.price ? safe(input.brain.price, 40) : null, billing: input.brain.billing ? safe(input.brain.billing, 20) : null,
104
+ } : null,
105
+ route_mode: input.routeMode ? safe(input.routeMode, 20) : null,
106
+ saved_routes: (Array.isArray(input.savedRoutes) ? input.savedRoutes : []).slice(0, MAX_ROUTES).map((r) => ({
107
+ task_class: r?.taskClass ? safe(r.taskClass, 20) : null, provider: label(r?.provider), model: r?.model ? safe(r.model, 80) : null,
108
+ list_price_per_mtok: r?.price ? safe(r.price, 40) : null, billing: r?.billing ? safe(r.billing, 20) : null,
109
+ })),
110
+ providers,
111
+ session_tasks_so_far: (Array.isArray(input.tasks) ? input.tasks : []).slice(-MAX_TASKS).map(taskRow).filter(Boolean),
112
+ task_being_routed_now: taskRow(input.task),
113
+ };
114
+ }
115
+ const shareQuestion = (provider) => score('An AI assistant session has a dollar budget (`session_budget`). It pays for the assistant\'s own turns (the assistant runs on `assistant.runs_on`) ' +
116
+ 'and for worker runs on three providers (`providers`). `saved_routes` say which provider each kind of task is sent to, `session_tasks_so_far` are the tasks routed so far, ' +
117
+ '`task_being_routed_now` is the task being routed at this moment, and `checkpoint` says why the budget is being divided again. ' +
118
+ `Of the money still to be spent in this session (\`session_budget.left_usd\`), how much will go to work on ${NAMES[provider]} (\`providers.${provider}\`): its worker runs, ` +
119
+ `plus the assistant's own turns when \`assistant.runs_on\` is ${provider}? Judge from the tasks likely to come next, where the saved routes send them, the runs still working, and what the models cost.`, [...SHARE_LEVELS]);
120
+ function probabilitiesOf(answer) {
121
+ if (answer?.type !== 'score' || !answer.probabilities || typeof answer.probabilities !== 'object')
122
+ return null;
123
+ const out = {};
124
+ for (const [key, value] of Object.entries(answer.probabilities))
125
+ if (Number.isFinite(Number(value)))
126
+ out[key] = Number(value);
127
+ return Object.keys(out).length ? out : null;
128
+ }
129
+ /**
130
+ * One request: a Score for each provider in `input.ask`. All or nothing: a
131
+ * missing or wrong-typed answer for any provider asked is no judgment (null).
132
+ */
133
+ export async function judgeBudgetSplit(input, options = {}) {
134
+ const ask = [...new Set((Array.isArray(input?.ask) ? input.ask : []).filter(isProvider))];
135
+ if (!ask.length)
136
+ return null;
137
+ const questions = {};
138
+ for (const provider of ask)
139
+ questions[QUESTION_IDS[provider]] = shareQuestion(provider);
140
+ const answers = await judge(budgetSplitState(input), questions, { ...options, surface: 'budget-split' });
141
+ if (!answers)
142
+ return null;
143
+ const scores = {};
144
+ for (const provider of ask) {
145
+ const answer = answers[QUESTION_IDS[provider]];
146
+ const read = readScore(answer);
147
+ if (!read)
148
+ return null;
149
+ scores[provider] = { score: read.score, confidence: read.confidence, probabilities: probabilitiesOf(answer) };
150
+ }
151
+ return { scores };
152
+ }
153
+ //# sourceMappingURL=budget-judgments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget-judgments.js","sourceRoot":"","sources":["../../src/services/budget-judgments.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ export interface CodexMcpDefinition {
11
11
  args: string[];
12
12
  env: Record<string, string>;
13
13
  }
14
- export type HealReason = 'removed_duplicate_inline_env' | 'normalized_inline_env' | 'removed_managed_profile_override' | 'set_full_profile' | 'enabled_deferred_catalog' | 'removed_orphan_sections';
14
+ export type HealReason = 'removed_ignored_settings' | 'removed_duplicate_inline_env' | 'normalized_inline_env' | 'removed_managed_profile_override' | 'set_full_profile' | 'enabled_deferred_catalog' | 'removed_orphan_sections';
15
15
  export type HealResult = {
16
16
  healed: false;
17
17
  reason: 'not_found';
@@ -44,6 +44,10 @@ export declare function upsertCodexMcpContent(content: string, definition: Codex
44
44
  export declare function removeCodexMcpContent(content: string): string;
45
45
  export declare function inspectCodexConfig(configPath: string): CodexConfigInspection;
46
46
  export declare function healCodexConfig(configPath: string): HealResult;
47
+ /** Narrow repair for keys emitted by the old Settings writer. These literal
48
+ * dotted keys are ignored by Codex; personality's feature flag is removed.
49
+ * Do not sweep arbitrary user flags or normalize unrelated TOML. */
50
+ export declare function removeIgnoredCodexSettings(content: string): string;
47
51
  export declare function upsertCodexMcpConfig(configPath: string, definition: CodexMcpDefinition): CodexConfigInspection;
48
52
  export declare function removeCodexMcpConfig(configPath: string): CodexConfigInspection;
49
53
  //# sourceMappingURL=codex-config-heal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"codex-config-heal.d.ts","sourceRoot":"","sources":["../../src/services/codex-config-heal.ts"],"names":[],"mappings":"AAkCA,MAAM,MAAM,gBAAgB,GACxB,eAAe,GACf,mBAAmB,GACnB,0BAA0B,GAC1B,0BAA0B,GAC1B,mBAAmB,GACnB,YAAY,GACZ,cAAc,CAAC;AAEnB,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,MAAM,MAAM,UAAU,GAClB,8BAA8B,GAC9B,uBAAuB,GACvB,kCAAkC,GAClC,kBAAkB,GAClB,0BAA0B,GAC1B,yBAAyB,CAAC;AAE9B,MAAM,MAAM,UAAU,GAClB;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GACtC;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,oBAAoB,CAAA;CAAE,GAC/C;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,cAAc,CAAC;IAAC,UAAU,EAAE,qBAAqB,CAAA;CAAE,GAC5E;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAgK5E,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,CAoChF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;CAAE,CAgCxG;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,GAAG,MAAM,CAkB7F;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM7D;AAmBD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,qBAAqB,CAK5E;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,CA6B9D;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,GAAG,qBAAqB,CAM9G;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,qBAAqB,CAQ9E"}
1
+ {"version":3,"file":"codex-config-heal.d.ts","sourceRoot":"","sources":["../../src/services/codex-config-heal.ts"],"names":[],"mappings":"AAmCA,MAAM,MAAM,gBAAgB,GACxB,eAAe,GACf,mBAAmB,GACnB,0BAA0B,GAC1B,0BAA0B,GAC1B,mBAAmB,GACnB,YAAY,GACZ,cAAc,CAAC;AAEnB,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,MAAM,MAAM,UAAU,GAClB,0BAA0B,GAC1B,8BAA8B,GAC9B,uBAAuB,GACvB,kCAAkC,GAClC,kBAAkB,GAClB,0BAA0B,GAC1B,yBAAyB,CAAC;AAE9B,MAAM,MAAM,UAAU,GAClB;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GACtC;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,oBAAoB,CAAA;CAAE,GAC/C;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,cAAc,CAAC;IAAC,UAAU,EAAE,qBAAqB,CAAA;CAAE,GAC5E;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAgK5E,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,CAoChF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;CAAE,CAgCxG;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,GAAG,MAAM,CAkB7F;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM7D;AAmBD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,qBAAqB,CAK5E;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,CAkC9D;AAED;;oEAEoE;AACpE,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAmBlE;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,GAAG,qBAAqB,CAM9G;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,qBAAqB,CAQ9E"}
@@ -7,8 +7,9 @@
7
7
  * Having both forms defines the same TOML key twice, so Codex rejects the
8
8
  * configuration and starts with defaults.
9
9
  *
10
- * This module deliberately edits only the SynaBun MCP tables. All unrelated
11
- * Codex configuration is left byte-for-byte intact. File writes are atomic,
10
+ * This module edits the SynaBun MCP tables and the known ignored feature keys
11
+ * emitted by its old Settings writer. All unrelated configuration is left
12
+ * byte-for-byte intact. Repairs keep a backup; file writes are atomic,
12
13
  * preserve the original mode, and are idempotent.
13
14
  */
14
15
  import { chmodSync, copyFileSync, existsSync, readFileSync, renameSync, statSync, unlinkSync, writeFileSync, } from 'fs';
@@ -305,14 +306,20 @@ export function healCodexConfig(configPath) {
305
306
  return { healed: false, reason: 'read_error', error: err instanceof Error ? err.message : String(err) };
306
307
  }
307
308
  const before = inspectCodexConfigContent(content);
308
- if (!before.connected && !before.issues.length) {
309
+ const cleaned = removeIgnoredCodexSettings(content);
310
+ if (cleaned === content && !before.connected && !before.issues.length) {
309
311
  return { healed: false, reason: 'no_synabun_section' };
310
312
  }
311
- const repaired = repairCodexConfigContent(content);
313
+ const repaired = repairCodexConfigContent(cleaned);
314
+ if (cleaned !== content)
315
+ repaired.reason = 'removed_ignored_settings';
312
316
  if (!repaired.reason || repaired.content === content) {
313
317
  return { healed: false, reason: 'no_duplicate', inspection: before };
314
318
  }
315
319
  try {
320
+ // Keep the exact original, including unrelated tables and its permissions.
321
+ const backup = `${configPath}.synabun-backup-${Date.now()}-${process.pid}`;
322
+ copyFileSync(configPath, backup);
316
323
  atomicWrite(configPath, repaired.content);
317
324
  }
318
325
  catch (err) {
@@ -324,6 +331,36 @@ export function healCodexConfig(configPath) {
324
331
  inspection: inspectCodexConfigContent(repaired.content),
325
332
  };
326
333
  }
334
+ /** Narrow repair for keys emitted by the old Settings writer. These literal
335
+ * dotted keys are ignored by Codex; personality's feature flag is removed.
336
+ * Do not sweep arbitrary user flags or normalize unrelated TOML. */
337
+ export function removeIgnoredCodexSettings(content) {
338
+ let section = '';
339
+ let multiline = null;
340
+ return content.split(/(?<=\n)/).filter(line => {
341
+ // Avoid treating text inside TOML multiline strings as configuration.
342
+ const delimiters = line.match(/"""|'''/g) || [];
343
+ if (multiline) {
344
+ if (delimiters.filter(d => d === multiline).length % 2)
345
+ multiline = null;
346
+ return true;
347
+ }
348
+ for (const delimiter of delimiters)
349
+ if (delimiters.filter(d => d === delimiter).length % 2)
350
+ multiline = delimiter;
351
+ const header = /^\s*\[([^\]]+)\]\s*(?:#.*)?$/.exec(line.trim());
352
+ if (header)
353
+ section = header[1].replace(/["']/g, '').trim();
354
+ else if (/^\s*\[/.test(line))
355
+ section = '__other_table__';
356
+ if (!section && /^\s*["']features\.(?:personality|fast_mode|apps|unified_exec)["']\s*=\s*(?:true|false)\s*(?:#.*)?$/.test(line.trim()))
357
+ return false;
358
+ if ((!section && /^\s*features\.personality\s*=\s*(?:true|false)\s*(?:#.*)?$/.test(line.trim()))
359
+ || (section === 'features' && /^\s*(?:personality|"personality"|'personality')\s*=\s*(?:true|false)\s*(?:#.*)?$/.test(line.trim())))
360
+ return false;
361
+ return true;
362
+ }).join('');
363
+ }
327
364
  export function upsertCodexMcpConfig(configPath, definition) {
328
365
  let content = '';
329
366
  if (existsSync(configPath))
@@ -1 +1 @@
1
- {"version":3,"file":"codex-config-heal.js","sourceRoot":"","sources":["../../src/services/codex-config-heal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-config-heal.js","sourceRoot":"","sources":["../../src/services/codex-config-heal.ts"],"names":[],"mappings":"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"}
@@ -86,6 +86,17 @@ export declare function sanitizeDesktopGrant(v: string | undefined | null): stri
86
86
  * children. Never the host's own env for an unidentified HTTP caller.
87
87
  */
88
88
  export declare function callerDesktopGrant(): string | null;
89
+ /** WhatsApp brain credentials look exactly like the ones the Neural Interface mints (assistant-runtime.js mintBrainCredential). */
90
+ export declare function sanitizeBrainCredential(v: string | undefined | null): string | null;
91
+ /** Run `fn` with this request's brain credential (http.ts, around every transport.handleRequest). */
92
+ export declare function runWithBrainCredential<T>(credential: string | null, fn: () => T): T;
93
+ /**
94
+ * The WhatsApp brain credential of the current caller (whatsapp_send_file sends it on its one request
95
+ * and nowhere else): the request's own header over HTTP (X-Synabun-Brain-Token, the Claude brain),
96
+ * SYNABUN_BRAIN_TOKEN for stdio children (the Codex and OpenCode brains). Never the host process's
97
+ * env for an HTTP caller.
98
+ */
99
+ export declare function callerBrainCredential(): string | null;
89
100
  /**
90
101
  * Role of the current caller: the ALS identity's role over HTTP (derived from
91
102
  * X-Synabun-Role on every request), or SYNABUN_ROLE for stdio children —
@@ -1 +1 @@
1
- {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/services/identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/services/identity.ts"],"names":[],"mappings":"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"}
@@ -122,6 +122,30 @@ export function callerDesktopGrant() {
122
122
  return null;
123
123
  return sanitizeDesktopGrant(process.env.SYNABUN_DESKTOP_GRANT);
124
124
  }
125
+ /** WhatsApp brain credentials look exactly like the ones the Neural Interface mints (assistant-runtime.js mintBrainCredential). */
126
+ export function sanitizeBrainCredential(v) {
127
+ return typeof v === 'string' && /^sbb_[A-Za-z0-9_-]{43}$/.test(v.trim()) ? v.trim() : null;
128
+ }
129
+ // The brain credential of the request being handled (whatsapp_send_file). Its own context per HTTP
130
+ // request, never a field of the CallerIdentity: identities are shared by every request that names the
131
+ // same X-Synabun-Terminal pin (not a secret), so a credential kept there could be read by a concurrent
132
+ // request that only forged the pin.
133
+ const credentialAls = new AsyncLocalStorage();
134
+ /** Run `fn` with this request's brain credential (http.ts, around every transport.handleRequest). */
135
+ export function runWithBrainCredential(credential, fn) {
136
+ return credentialAls.run(credential, fn);
137
+ }
138
+ /**
139
+ * The WhatsApp brain credential of the current caller (whatsapp_send_file sends it on its one request
140
+ * and nowhere else): the request's own header over HTTP (X-Synabun-Brain-Token, the Claude brain),
141
+ * SYNABUN_BRAIN_TOKEN for stdio children (the Codex and OpenCode brains). Never the host process's
142
+ * env for an HTTP caller.
143
+ */
144
+ export function callerBrainCredential() {
145
+ if (httpMode)
146
+ return credentialAls.getStore() ?? null;
147
+ return sanitizeBrainCredential(process.env.SYNABUN_BRAIN_TOKEN);
148
+ }
125
149
  /**
126
150
  * Role of the current caller: the ALS identity's role over HTTP (derived from
127
151
  * X-Synabun-Role on every request), or SYNABUN_ROLE for stdio children —
@@ -1 +1 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/services/identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/services/identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA2CzC,MAAM,UAAU,GAAG,GAAkB,EAAE,CAAC,CAAC;IACvC,iBAAiB,EAAE,IAAI;IACvB,oBAAoB,EAAE,IAAI;IAC1B,gBAAgB,EAAE,IAAI;IACtB,kBAAkB,EAAE,IAAI;IACxB,cAAc,EAAE,IAAI;IACpB,qBAAqB,EAAE,IAAI;IAC3B,iBAAiB,EAAE,IAAI;IACvB,sBAAsB,EAAE,IAAI;IAC5B,gBAAgB,EAAE,CAAC;CACpB,CAAC,CAAC;AAEH,MAAM,GAAG,GAAG,IAAI,iBAAiB,EAAkB,CAAC;AACpD,MAAM,UAAU,mBAAmB;IACjC,OAAO,GAAG,CAAC,QAAQ,EAAE,EAAE,aAAa,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;QACpC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB;QAC7C,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B;KACnD,CAAC,CAAC;AACL,CAAC;AACD,MAAM,UAAU,GAAG,IAAI,GAAG,EAA0B,CAAC;AAErD,8EAA8E;AAC9E,8EAA8E;AAC9E,4EAA4E;AAC5E,IAAI,QAAQ,GAAG,KAAK,CAAC;AACrB,MAAM,UAAU,YAAY,KAAW,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;AAEzD,wEAAwE;AACxE,4EAA4E;AAC5E,0EAA0E;AAC1E,gCAAgC;AAChC,IAAI,cAAc,GAA0B,IAAI,CAAC;AACjD,SAAS,aAAa;IACpB,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG;YACf,GAAG,EAAE,OAAO;YACZ,MAAM,EAAE,OAAO;YACf,QAAQ,EAAE,UAAU,EAAE;YACtB,IAAI,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;YAC7E,KAAK,EAAE,UAAU,EAAE;YACnB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;SACrB,CAAC;IACJ,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,iBAAiB;IAC/B,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,UAAU,KAAc,OAAO,QAAQ,CAAC,CAAC,CAAC;AAE1D,MAAM,UAAU,eAAe,CAAI,QAAwB,EAAE,EAAW;IACtE,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC7B,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,QAAQ,EAAE,CAAC;QACb,yEAAyE;QACzE,0EAA0E;QAC1E,OAAO,CAAC,KAAK,CAAC,2FAA2F,CAAC,CAAC;QAC3G,MAAM,GAAG,GAAG,aAAa,UAAU,EAAE,EAAE,CAAC;QACxC,OAAO;YACL,GAAG;YACH,MAAM,EAAE,aAAa;YACrB,QAAQ,EAAE,GAAG;YACb,IAAI,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;YAC7E,KAAK,EAAE,UAAU,EAAE;YACnB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;SACrB,CAAC;IACJ,CAAC;IACD,OAAO,aAAa,EAAE,CAAC;AACzB,CAAC;AAED;uEACuE;AACvE,MAAM,UAAU,WAAW,CAAC,CAA4B;IACtD,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC;AAED;sEACsE;AACtE,MAAM,UAAU,YAAY,CAAC,CAA4B;IACvD,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9F,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,oBAAoB,CAAC,CAA4B;IAC/D,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7F,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC7B,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC;IAC7C,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AACjE,CAAC;AAED,mIAAmI;AACnI,MAAM,UAAU,uBAAuB,CAAC,CAA4B;IAClE,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7F,CAAC;AAED,mGAAmG;AACnG,sGAAsG;AACtG,uGAAuG;AACvG,oCAAoC;AACpC,MAAM,aAAa,GAAG,IAAI,iBAAiB,EAAiB,CAAC;AAE7D,qGAAqG;AACrG,MAAM,UAAU,sBAAsB,CAAI,UAAyB,EAAE,EAAW;IAC9E,OAAO,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB;IACnC,IAAI,QAAQ;QAAE,OAAO,aAAa,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC;IACtD,OAAO,uBAAuB,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC7B,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC;IACrC,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAChD,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,cAAc,CAC5B,GAAW,EACX,IAA0H;IAE1H,IAAI,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,EAAE,GAAG;YACH,GAAG;YACH,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,GAAG;YACb,IAAI,EAAE;gBACJ,iBAAiB,EAAE,IAAI,CAAC,IAAI,EAAE,iBAAiB,IAAI,IAAI;gBACvD,gBAAgB,EAAE,IAAI,CAAC,IAAI,EAAE,gBAAgB,IAAI,IAAI;gBACrD,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,IAAI,IAAI;aAC9C;YACD,KAAK,EAAE,UAAU,EAAE;YACnB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;SACrB,CAAC;QACF,IAAI,IAAI,CAAC,IAAI;YAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,IAAI,IAAI,CAAC,YAAY;YAAE,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC3D,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,0EAA0E;QAC1E,IAAI,IAAI,CAAC,IAAI,EAAE,iBAAiB,KAAK,SAAS;YAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACxG,IAAI,IAAI,CAAC,IAAI,EAAE,gBAAgB,KAAK,SAAS;YAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACrG,IAAI,IAAI,CAAC,IAAI,EAAE,YAAY,KAAK,SAAS;YAAE,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QACzF,yEAAyE;QACzE,oEAAoE;QACpE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;QAC9D,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;YAAE,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC;QACtF,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;mDACmD;AACnD,MAAM,UAAU,aAAa,CAAC,EAAkB;IAC9C,IAAI,EAAE,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC1B,OAAO;YACL,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,IAAI;YAC/D,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,IAAI;YAC7D,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,IAAI;SACtD,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC,IAAI,CAAC;AACjB,CAAC;AAED;;;yDAGyD;AACzD,MAAM,UAAU,aAAa,CAAC,EAAkB;IAC9C,OAAO,aAAa,CAAC,EAAE,CAAC,CAAC,iBAAiB,IAAI,EAAE,CAAC,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,QAAQ,CAAC;AAC/F,CAAC;AAMD,IAAI,WAAW,GAAuB,IAAI,CAAC;AAC3C,MAAM,UAAU,cAAc,CAAC,EAAe,IAAU,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC;AAE3E;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE;QAAE,OAAO;IAChB,IAAI,EAAE,CAAC,KAAK,CAAC,oBAAoB,IAAI,WAAW,EAAE,CAAC;QACjD,IAAI,CAAC;YAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACtD,CAAC;IACD,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,aAAa,KAAa,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAEnE,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEtG,IAAI,cAAc,GAAG,KAAK,CAAC;AAC3B,MAAM,UAAU,oBAAoB;IAClC,IAAI,cAAc;QAAE,OAAO;IAC3B,cAAc,GAAG,IAAI,CAAC;IACtB,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,GAAG,GAAG,EAAE,CAAC,QAAQ,GAAG,eAAe,EAAE,CAAC;gBACxC,eAAe,CAAC,GAAG,CAAC,CAAC;gBACrB,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,sBAAsB,OAAO,qBAAqB,UAAU,CAAC,IAAI,UAAU,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC,EAAE,MAAM,CAAC,CAAC;IACX,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC"}
@@ -435,5 +435,18 @@ export declare function assistantKillAll(body?: {
435
435
  reason?: string;
436
436
  }): Promise<NiResponse>;
437
437
  export declare function assistantFocus(runId: string, focus: boolean): Promise<NiResponse>;
438
+ export declare const WHATSAPP_SEND_FILE_UNCERTAIN = "SynaBun did not answer in time: the file may or may not have arrived. Do not send it again unless the user asks.";
439
+ export declare const WHATSAPP_SEND_FILE_LOST = "SynaBun's answer was lost: the file may or may not have arrived. Do not send it again unless the user asks.";
440
+ /**
441
+ * whatsapp_send_file → POST /api/assistant/whatsapp/send-file: exactly one request (requestOnce, no
442
+ * retry of any kind), because a timeout may come after WhatsApp took the file. `credential` (the
443
+ * WhatsApp brain's own, identity.ts callerBrainCredential) rides on this request alone; without it
444
+ * the server refuses (403).
445
+ */
446
+ export declare function whatsappSendFile(body: {
447
+ path: string;
448
+ caption?: string;
449
+ as?: string;
450
+ }, credential: string | null): Promise<NiResponse>;
438
451
  export {};
439
452
  //# sourceMappingURL=neural-interface.d.ts.map