flavor-code 1.4.0-beta.1 → 1.4.0-beta.10

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 (169) hide show
  1. package/README.md +2 -0
  2. package/README.zh-CN.md +2 -0
  3. package/dist/agent/loop.d.ts +7 -2
  4. package/dist/{app-C5ZQUOKJ.js → app-SMIB6P23.js} +44 -11
  5. package/dist/{chunk-6MNOZ2TX.js → chunk-BYHO2CA5.js} +1925 -765
  6. package/dist/{chunk-URUVFECH.js → chunk-EXOSMO57.js} +12 -7
  7. package/dist/chunk-N5MXHJKD.js +107 -0
  8. package/dist/{chunk-2BF7CVWZ.js → chunk-RAYH6K2H.js} +2 -2
  9. package/dist/{chunk-FOTMP4ZS.js → chunk-UO4DLWU5.js} +8 -2
  10. package/dist/{chunk-ODRWR4KK.js → chunk-XMRKRPNC.js} +179 -14253
  11. package/dist/{chunk-3WCDZ6ZL.js → chunk-ZJCAQXA7.js} +2 -1
  12. package/dist/{claude-ink-LP32NSX5.js → claude-ink-6EZHF64C.js} +2 -2
  13. package/dist/cli-main.js +56 -25
  14. package/dist/cli.js +54 -10
  15. package/dist/config/schema.d.ts +8 -0
  16. package/dist/context/manager.d.ts +9 -0
  17. package/dist/desktop/main.js +2318 -1071
  18. package/dist/desktop-renderer/assets/index-RNe5Gtum.js +154 -0
  19. package/dist/desktop-renderer/assets/{interactive-terminal-C4o7MNPO.js → interactive-terminal-DestMQ2z.js} +1 -1
  20. package/dist/desktop-renderer/index.html +1 -1
  21. package/dist/git/service.d.ts +3 -3
  22. package/dist/git/tools.d.ts +1 -1
  23. package/dist/goal/classifier.d.ts +2 -0
  24. package/dist/goal/orchestrator.d.ts +23 -2
  25. package/dist/goal/planner.d.ts +2 -0
  26. package/dist/goal/store.d.ts +2 -0
  27. package/dist/goal/types.d.ts +14 -0
  28. package/dist/harness/journal.d.ts +2 -0
  29. package/dist/harness/local.d.ts +2 -0
  30. package/dist/init/project.d.ts +0 -6
  31. package/dist/jobs/registry.d.ts +7 -1
  32. package/dist/{load-V2UIYYQI.js → load-EW56Q2MM.js} +1 -1
  33. package/dist/loop/orchestrator.d.ts +20 -0
  34. package/dist/loop/types.d.ts +7 -0
  35. package/dist/loop/verifier.d.ts +2 -0
  36. package/dist/models/openai.d.ts +1 -1
  37. package/dist/models/structured.d.ts +7 -0
  38. package/dist/models/types.d.ts +1 -1
  39. package/dist/production.d.ts +17 -0
  40. package/dist/sdk/index.js +5 -5
  41. package/dist/session/tree.d.ts +2 -0
  42. package/dist/tools/lsp.d.ts +15 -10
  43. package/dist/tools/runtime.d.ts +2 -1
  44. package/dist/tools/search.d.ts +1 -0
  45. package/dist/tools/types.d.ts +1 -1
  46. package/dist/ui/session.d.ts +11 -0
  47. package/dist/ui/transcript.d.ts +9 -0
  48. package/dist/utils/abort.d.ts +20 -0
  49. package/dist/utils/execFileNoThrow.d.ts +1 -0
  50. package/dist/utils/heap.d.ts +58 -0
  51. package/dist/utils/memory-restart.d.ts +42 -3
  52. package/dist/utils/process-tree.d.ts +2 -0
  53. package/dist/utils/rotation-census.d.ts +36 -0
  54. package/package.json +3 -2
  55. package//346/212/200/346/234/257/346/226/271/346/241/210/346/212/245/345/221/212.md +7 -7
  56. package/dist/astgraph/db.mjs +0 -237
  57. package/dist/astgraph/extract.mjs +0 -239
  58. package/dist/astgraph/flavor-plugin.json +0 -25
  59. package/dist/astgraph/grammars.mjs +0 -68
  60. package/dist/astgraph/index.js +0 -301
  61. package/dist/astgraph/indexer.mjs +0 -175
  62. package/dist/astgraph/query.mjs +0 -165
  63. package/dist/astgraph/resolve.mjs +0 -93
  64. package/dist/astgraph/vendor/tree-sitter-javascript.wasm +0 -0
  65. package/dist/astgraph/vendor/tree-sitter-tsx.wasm +0 -0
  66. package/dist/astgraph/vendor/tree-sitter-typescript.wasm +0 -0
  67. package/dist/astgraph/vendor/tree-sitter.js +0 -3980
  68. package/dist/astgraph/vendor/tree-sitter.wasm +0 -0
  69. package/dist/astgraph/vendor/zod/LICENSE +0 -21
  70. package/dist/astgraph/vendor/zod/index.js +0 -4
  71. package/dist/astgraph/vendor/zod/locales/index.js +0 -1
  72. package/dist/astgraph/vendor/zod/locales/package.json +0 -7
  73. package/dist/astgraph/vendor/zod/package.json +0 -135
  74. package/dist/astgraph/vendor/zod/v4/classic/checks.js +0 -1
  75. package/dist/astgraph/vendor/zod/v4/classic/coerce.js +0 -17
  76. package/dist/astgraph/vendor/zod/v4/classic/compat.js +0 -31
  77. package/dist/astgraph/vendor/zod/v4/classic/errors.js +0 -48
  78. package/dist/astgraph/vendor/zod/v4/classic/external.js +0 -20
  79. package/dist/astgraph/vendor/zod/v4/classic/from-json-schema.js +0 -599
  80. package/dist/astgraph/vendor/zod/v4/classic/index.js +0 -4
  81. package/dist/astgraph/vendor/zod/v4/classic/iso.js +0 -30
  82. package/dist/astgraph/vendor/zod/v4/classic/package.json +0 -7
  83. package/dist/astgraph/vendor/zod/v4/classic/parse.js +0 -15
  84. package/dist/astgraph/vendor/zod/v4/classic/schemas.js +0 -1395
  85. package/dist/astgraph/vendor/zod/v4/core/api.js +0 -1087
  86. package/dist/astgraph/vendor/zod/v4/core/checks.js +0 -575
  87. package/dist/astgraph/vendor/zod/v4/core/core.js +0 -78
  88. package/dist/astgraph/vendor/zod/v4/core/doc.js +0 -35
  89. package/dist/astgraph/vendor/zod/v4/core/errors.js +0 -185
  90. package/dist/astgraph/vendor/zod/v4/core/index.js +0 -16
  91. package/dist/astgraph/vendor/zod/v4/core/json-schema-generator.js +0 -95
  92. package/dist/astgraph/vendor/zod/v4/core/json-schema-processors.js +0 -601
  93. package/dist/astgraph/vendor/zod/v4/core/json-schema.js +0 -1
  94. package/dist/astgraph/vendor/zod/v4/core/package.json +0 -7
  95. package/dist/astgraph/vendor/zod/v4/core/parse.js +0 -93
  96. package/dist/astgraph/vendor/zod/v4/core/regexes.js +0 -139
  97. package/dist/astgraph/vendor/zod/v4/core/registries.js +0 -51
  98. package/dist/astgraph/vendor/zod/v4/core/schemas.js +0 -2239
  99. package/dist/astgraph/vendor/zod/v4/core/standard-schema.js +0 -1
  100. package/dist/astgraph/vendor/zod/v4/core/to-json-schema.js +0 -448
  101. package/dist/astgraph/vendor/zod/v4/core/util.js +0 -674
  102. package/dist/astgraph/vendor/zod/v4/core/versions.js +0 -5
  103. package/dist/astgraph/vendor/zod/v4/index.js +0 -3
  104. package/dist/astgraph/vendor/zod/v4/locales/ar.js +0 -106
  105. package/dist/astgraph/vendor/zod/v4/locales/az.js +0 -105
  106. package/dist/astgraph/vendor/zod/v4/locales/be.js +0 -156
  107. package/dist/astgraph/vendor/zod/v4/locales/bg.js +0 -120
  108. package/dist/astgraph/vendor/zod/v4/locales/ca.js +0 -107
  109. package/dist/astgraph/vendor/zod/v4/locales/cs.js +0 -111
  110. package/dist/astgraph/vendor/zod/v4/locales/da.js +0 -115
  111. package/dist/astgraph/vendor/zod/v4/locales/de.js +0 -108
  112. package/dist/astgraph/vendor/zod/v4/locales/el.js +0 -109
  113. package/dist/astgraph/vendor/zod/v4/locales/en.js +0 -113
  114. package/dist/astgraph/vendor/zod/v4/locales/eo.js +0 -109
  115. package/dist/astgraph/vendor/zod/v4/locales/es.js +0 -132
  116. package/dist/astgraph/vendor/zod/v4/locales/fa.js +0 -114
  117. package/dist/astgraph/vendor/zod/v4/locales/fi.js +0 -112
  118. package/dist/astgraph/vendor/zod/v4/locales/fr-CA.js +0 -107
  119. package/dist/astgraph/vendor/zod/v4/locales/fr.js +0 -125
  120. package/dist/astgraph/vendor/zod/v4/locales/he.js +0 -214
  121. package/dist/astgraph/vendor/zod/v4/locales/hr.js +0 -122
  122. package/dist/astgraph/vendor/zod/v4/locales/hu.js +0 -108
  123. package/dist/astgraph/vendor/zod/v4/locales/hy.js +0 -147
  124. package/dist/astgraph/vendor/zod/v4/locales/id.js +0 -106
  125. package/dist/astgraph/vendor/zod/v4/locales/index.js +0 -52
  126. package/dist/astgraph/vendor/zod/v4/locales/is.js +0 -109
  127. package/dist/astgraph/vendor/zod/v4/locales/it.js +0 -108
  128. package/dist/astgraph/vendor/zod/v4/locales/ja.js +0 -107
  129. package/dist/astgraph/vendor/zod/v4/locales/ka.js +0 -112
  130. package/dist/astgraph/vendor/zod/v4/locales/kh.js +0 -5
  131. package/dist/astgraph/vendor/zod/v4/locales/km.js +0 -110
  132. package/dist/astgraph/vendor/zod/v4/locales/ko.js +0 -111
  133. package/dist/astgraph/vendor/zod/v4/locales/lt.js +0 -203
  134. package/dist/astgraph/vendor/zod/v4/locales/mk.js +0 -109
  135. package/dist/astgraph/vendor/zod/v4/locales/ms.js +0 -107
  136. package/dist/astgraph/vendor/zod/v4/locales/nl.js +0 -110
  137. package/dist/astgraph/vendor/zod/v4/locales/no.js +0 -108
  138. package/dist/astgraph/vendor/zod/v4/locales/ota.js +0 -109
  139. package/dist/astgraph/vendor/zod/v4/locales/package.json +0 -7
  140. package/dist/astgraph/vendor/zod/v4/locales/pl.js +0 -109
  141. package/dist/astgraph/vendor/zod/v4/locales/ps.js +0 -114
  142. package/dist/astgraph/vendor/zod/v4/locales/pt.js +0 -108
  143. package/dist/astgraph/vendor/zod/v4/locales/ro.js +0 -119
  144. package/dist/astgraph/vendor/zod/v4/locales/ru.js +0 -156
  145. package/dist/astgraph/vendor/zod/v4/locales/sl.js +0 -109
  146. package/dist/astgraph/vendor/zod/v4/locales/sv.js +0 -110
  147. package/dist/astgraph/vendor/zod/v4/locales/ta.js +0 -110
  148. package/dist/astgraph/vendor/zod/v4/locales/th.js +0 -110
  149. package/dist/astgraph/vendor/zod/v4/locales/tr.js +0 -105
  150. package/dist/astgraph/vendor/zod/v4/locales/ua.js +0 -5
  151. package/dist/astgraph/vendor/zod/v4/locales/uk.js +0 -108
  152. package/dist/astgraph/vendor/zod/v4/locales/ur.js +0 -110
  153. package/dist/astgraph/vendor/zod/v4/locales/uz.js +0 -110
  154. package/dist/astgraph/vendor/zod/v4/locales/vi.js +0 -108
  155. package/dist/astgraph/vendor/zod/v4/locales/yo.js +0 -107
  156. package/dist/astgraph/vendor/zod/v4/locales/zh-CN.js +0 -109
  157. package/dist/astgraph/vendor/zod/v4/locales/zh-TW.js +0 -107
  158. package/dist/astgraph/vendor/zod/v4/mini/checks.js +0 -1
  159. package/dist/astgraph/vendor/zod/v4/mini/coerce.js +0 -22
  160. package/dist/astgraph/vendor/zod/v4/mini/external.js +0 -14
  161. package/dist/astgraph/vendor/zod/v4/mini/index.js +0 -3
  162. package/dist/astgraph/vendor/zod/v4/mini/iso.js +0 -34
  163. package/dist/astgraph/vendor/zod/v4/mini/package.json +0 -7
  164. package/dist/astgraph/vendor/zod/v4/mini/parse.js +0 -1
  165. package/dist/astgraph/vendor/zod/v4/mini/schemas.js +0 -961
  166. package/dist/astgraph/vendor/zod/v4/package.json +0 -7
  167. package/dist/chunk-CIVPKHF4.js +0 -53
  168. package/dist/desktop-renderer/assets/index-CqRIr-hz.js +0 -154
  169. package/dist/devtools-4QTPKBKK.js +0 -2
@@ -37,9 +37,10 @@ var ProviderConfigSchema = z.object({
37
37
  // Defaults to DEFAULT_THINKING_BUDGET; set to 0 to disable the request
38
38
  // parameter. Provider thinking deltas are forwarded whenever they arrive.
39
39
  thinkingBudget: z.number().int().min(0).optional(),
40
- // Reasoning effort requested from the OpenAI Responses protocol. Omitted by
41
- // default so strict compatible gateways never see an unknown parameter.
42
- thinkingEffort: z.enum(["low", "medium", "high"]).optional(),
40
+ // Reasoning effort requested from the OpenAI Responses protocol (sent as
41
+ // reasoning.effort). Omitted by default so strict compatible gateways never
42
+ // see an unknown parameter and the endpoint uses its server-side default.
43
+ thinkingEffort: z.enum(["minimal", "low", "medium", "high", "xhigh"]).optional(),
43
44
  // Send the Claude Code client fingerprint (User-Agent/x-app) with Anthropic requests,
44
45
  // for gateways that restrict the Anthropic protocol to Claude clients.
45
46
  claudeClient: z.boolean().optional(),
@@ -117,16 +118,20 @@ var FlavorConfigSchema = z.object({
117
118
  evaluationTimeoutMs: z.number().int().min(100).max(3e4).default(2e3)
118
119
  }).prefault({}),
119
120
  maxIterations: z.object({
120
- main: z.number().int().min(10).max(500).default(80),
121
- subagent: z.number().int().min(10).max(200).default(40),
121
+ main: z.number().int().min(10).max(500).default(300),
122
+ subagent: z.number().int().min(10).max(200).default(100),
122
123
  softLimitFactor: z.number().min(0.5).max(1).default(0.8),
123
- extendBy: z.number().int().min(5).max(100).default(20)
124
+ extendBy: z.number().int().min(5).max(100).default(50)
124
125
  }).prefault({}),
125
126
  loop: z.object({
126
- maxCycles: z.number().int().positive().max(1e4).default(20),
127
+ maxCycles: z.number().int().positive().max(1e4).default(100),
127
128
  maxTokens: z.number().int().positive().max(Number.MAX_SAFE_INTEGER).default(5e5),
128
129
  isolation: z.literal("auto").default("auto")
129
130
  }).prefault({}),
131
+ goal: z.object({
132
+ maxRounds: z.number().int().positive().max(1e4).default(100),
133
+ maxStallStreak: z.number().int().positive().max(100).default(3)
134
+ }).prefault({}),
130
135
  context: z.object({
131
136
  windowTokens: z.number().int().positive().default(2e5),
132
137
  reservedOutputTokens: z.number().int().nonnegative().default(2e4),
@@ -0,0 +1,107 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
3
+
4
+ // src/utils/memory-restart.ts
5
+ import { join } from "path";
6
+ var MEMORY_RESTART_EXIT_CODE = 75;
7
+ var MEMORY_RESTART_MARKER_FILE = "memory-restart.json";
8
+ var MEMORY_RESTART_MAX_ATTEMPTS = 24;
9
+ var MEMORY_RESTART_WINDOW_MS = 60 * 60 * 1e3;
10
+ var MEMORY_RESTART_MIN_GAP_MS = 5 * 60 * 1e3;
11
+ var MEMORY_RESTART_CONTINUATION_TTL_MS = 24 * 60 * 60 * 1e3;
12
+ var SESSION_ID_PATTERN = /^session-[A-Za-z0-9_-]+$/u;
13
+ var rotationActive = false;
14
+ function markMemoryRotation() {
15
+ rotationActive = true;
16
+ }
17
+ function memoryRotationActive() {
18
+ return rotationActive;
19
+ }
20
+ function memoryRestartMarkerPath(workspace) {
21
+ return join(workspace, ".flavor", "tmp", MEMORY_RESTART_MARKER_FILE);
22
+ }
23
+ function nextMemoryRestartMarker(previous, sessionId, now, continuation) {
24
+ const previousWindowStart = previous?.windowStartedAt ?? previous?.requestedAt;
25
+ const reusable = previous !== void 0 && previous.sessionId === sessionId && previousWindowStart !== void 0 && now.getTime() - Date.parse(previousWindowStart) < MEMORY_RESTART_WINDOW_MS && Number.isInteger(previous.attempts) && previous.attempts > 0;
26
+ return {
27
+ sessionId,
28
+ windowStartedAt: reusable ? previousWindowStart : now.toISOString(),
29
+ requestedAt: now.toISOString(),
30
+ attempts: reusable ? previous.attempts + 1 : 1,
31
+ ...continuation === void 0 ? {} : { continuation }
32
+ };
33
+ }
34
+ function consumedMemoryRestartMarker(marker) {
35
+ return {
36
+ sessionId: marker.sessionId,
37
+ ...marker.windowStartedAt === void 0 ? {} : { windowStartedAt: marker.windowStartedAt },
38
+ requestedAt: marker.requestedAt,
39
+ attempts: marker.attempts
40
+ };
41
+ }
42
+ function rotationCooldownActive(marker, sessionId, now) {
43
+ return marker !== void 0 && marker.sessionId === sessionId && now.getTime() - Date.parse(marker.requestedAt) < MEMORY_RESTART_MIN_GAP_MS;
44
+ }
45
+ function pendingContinuation(marker, sessionId, now) {
46
+ if (marker === void 0 || marker.sessionId !== sessionId) return void 0;
47
+ if (now.getTime() - Date.parse(marker.requestedAt) > MEMORY_RESTART_CONTINUATION_TTL_MS) return void 0;
48
+ const continuation = marker.continuation;
49
+ if (continuation === void 0) return void 0;
50
+ if (continuation.kind !== "loop" && continuation.kind !== "goal") return void 0;
51
+ if (typeof continuation.id !== "string" || continuation.id.length === 0) return void 0;
52
+ return continuation;
53
+ }
54
+ function shouldRelaunchForMemoryRestart(marker) {
55
+ return marker !== void 0 && SESSION_ID_PATTERN.test(marker.sessionId) && Number.isInteger(marker.attempts) && marker.attempts >= 1 && marker.attempts <= MEMORY_RESTART_MAX_ATTEMPTS;
56
+ }
57
+ function memoryRestartArgs(argv, marker) {
58
+ if (!shouldRelaunchForMemoryRestart(marker)) return void 0;
59
+ const stripped = [];
60
+ for (let index = 0; index < argv.length; index += 1) {
61
+ const argument = argv[index];
62
+ if (argument === "--resume") {
63
+ if (index + 1 < argv.length && !argv[index + 1].startsWith("-")) index += 1;
64
+ continue;
65
+ }
66
+ if (argument.startsWith("--resume=")) continue;
67
+ if (argument === "--memory-restart") continue;
68
+ stripped.push(argument);
69
+ }
70
+ return [...stripped, "--resume", marker.sessionId, "--memory-restart"];
71
+ }
72
+ function parseMemoryRestartMarker(json) {
73
+ try {
74
+ const value = JSON.parse(json);
75
+ if (typeof value.sessionId !== "string" || typeof value.requestedAt !== "string" || typeof value.attempts !== "number") {
76
+ return void 0;
77
+ }
78
+ const continuation = value.continuation;
79
+ if (continuation !== void 0 && (typeof continuation !== "object" || continuation === null || continuation.kind !== "loop" && continuation.kind !== "goal" || typeof continuation.id !== "string")) {
80
+ return void 0;
81
+ }
82
+ const windowStartedAt = value.windowStartedAt;
83
+ if (windowStartedAt !== void 0 && typeof windowStartedAt !== "string") return void 0;
84
+ return {
85
+ sessionId: value.sessionId,
86
+ ...windowStartedAt === void 0 ? {} : { windowStartedAt },
87
+ requestedAt: value.requestedAt,
88
+ attempts: value.attempts,
89
+ ...continuation === void 0 ? {} : { continuation }
90
+ };
91
+ } catch {
92
+ return void 0;
93
+ }
94
+ }
95
+
96
+ export {
97
+ MEMORY_RESTART_EXIT_CODE,
98
+ markMemoryRotation,
99
+ memoryRotationActive,
100
+ memoryRestartMarkerPath,
101
+ nextMemoryRestartMarker,
102
+ consumedMemoryRestartMarker,
103
+ rotationCooldownActive,
104
+ pendingContinuation,
105
+ memoryRestartArgs,
106
+ parseMemoryRestartMarker
107
+ };
@@ -28,13 +28,13 @@ function statusPresentation(block, elapsedMs, interactive) {
28
28
  if (block.state === "running" && block.activity === "model") {
29
29
  return interactive ? {
30
30
  glyph: activityFrame(elapsedMs),
31
- text: "Flavoring",
31
+ text: block.text,
32
32
  color: "#81c8f2",
33
33
  metaLabel: formatElapsed(elapsedMs),
34
34
  metaColor: "ansi:blackBright"
35
35
  } : {
36
36
  glyph: "\xB7",
37
- text: "Flavoring",
37
+ text: block.text,
38
38
  color: "#81c8f2"
39
39
  };
40
40
  }
@@ -4,7 +4,7 @@ import {
4
4
  message,
5
5
  redactErrorText,
6
6
  redactSecrets
7
- } from "./chunk-6MNOZ2TX.js";
7
+ } from "./chunk-BYHO2CA5.js";
8
8
 
9
9
  // src/rpc/server.ts
10
10
  import { createInterface } from "readline";
@@ -44,7 +44,13 @@ var FlavorRpcServer = class {
44
44
  this.#runtime = await this.#options.createRuntime({
45
45
  workspace: this.#options.workspace,
46
46
  output: (event) => {
47
- void this.#emit({ type: "event", sessionId: this.#runtime?.sessionId, event }, "output");
47
+ const emitted = this.#emit({ type: "event", sessionId: this.#runtime?.sessionId, event }, "output");
48
+ if (event.type === "exit") {
49
+ void emitted.finally(() => {
50
+ this.#closing = true;
51
+ this.#lines?.close();
52
+ });
53
+ }
48
54
  }
49
55
  });
50
56
  await this.#runtime.session.start();