@vincemakes/kiso-core 0.16.6 → 0.16.8

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.
@@ -146,7 +146,27 @@ export interface LoopConfig {
146
146
  /** P3: the session's id — carried to tools via ToolContext.sessionId. */
147
147
  readonly sessionId?: string;
148
148
  }
149
- export declare const DEFAULT_MAX_TURNS = 10;
149
+ /**
150
+ * R3e (owner ruling, 2026-08-28) — there is NO default turn limit.
151
+ *
152
+ * `maxTurns` stays: a caller that wants a bound sets one, and the
153
+ * `max_turns` terminal is unchanged. What is retired is the DEFAULT.
154
+ *
155
+ * The reasoning, from the incident that found it: a real session read a
156
+ * doc, listed a directory, read four files and ran four commands — 43
157
+ * calls — and stopped at 20 turns, mid-task, saying nothing. A guardrail
158
+ * for "you set it running and walked away" was firing on someone sitting
159
+ * at the keyboard, where esc, the context window and the balance are
160
+ * already the bounds. Both reference implementations agree: neither puts
161
+ * a turn limit on an interactive session, and the one that has the
162
+ * mechanism spends it on forked subagents and non-interactive SDK calls,
163
+ * where nobody is watching.
164
+ *
165
+ * `Number.POSITIVE_INFINITY` rather than deleting the check: the
166
+ * comparison, the terminal and every test that sets a limit stay exactly
167
+ * as they were, and one line says what changed.
168
+ */
169
+ export declare const DEFAULT_MAX_TURNS: number;
150
170
  export declare const DEFAULT_MAX_RETRIES = 2;
151
171
  export declare function loop(config: LoopConfig): AsyncGenerator<Event>;
152
172
  /**
@@ -41,7 +41,27 @@ import { NoOpHooks } from "./hooks.js";
41
41
  import { resolveModeProfile } from "./mode.js";
42
42
  import { denialResult } from "./permission.js";
43
43
  import { messagesToEvents, MICROCOMPACTABLE, DO_NOT_COMPACT, projectMessages } from "./project.js";
44
- export const DEFAULT_MAX_TURNS = 10;
44
+ /**
45
+ * R3e (owner ruling, 2026-08-28) — there is NO default turn limit.
46
+ *
47
+ * `maxTurns` stays: a caller that wants a bound sets one, and the
48
+ * `max_turns` terminal is unchanged. What is retired is the DEFAULT.
49
+ *
50
+ * The reasoning, from the incident that found it: a real session read a
51
+ * doc, listed a directory, read four files and ran four commands — 43
52
+ * calls — and stopped at 20 turns, mid-task, saying nothing. A guardrail
53
+ * for "you set it running and walked away" was firing on someone sitting
54
+ * at the keyboard, where esc, the context window and the balance are
55
+ * already the bounds. Both reference implementations agree: neither puts
56
+ * a turn limit on an interactive session, and the one that has the
57
+ * mechanism spends it on forked subagents and non-interactive SDK calls,
58
+ * where nobody is watching.
59
+ *
60
+ * `Number.POSITIVE_INFINITY` rather than deleting the check: the
61
+ * comparison, the terminal and every test that sets a limit stay exactly
62
+ * as they were, and one line says what changed.
63
+ */
64
+ export const DEFAULT_MAX_TURNS = Number.POSITIVE_INFINITY;
45
65
  export const DEFAULT_MAX_RETRIES = 2;
46
66
  export async function* loop(config) {
47
67
  const log = config.log ?? new EventLog();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vincemakes/kiso-core",
3
- "version": "0.16.6",
3
+ "version": "0.16.8",
4
4
  "description": "kiso (foundation) core — protocol, event log, loop, hooks, modes, permissions, compaction, delivery truth. The 2,000-line kernel at the bottom of the kiso framework.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -33,7 +33,7 @@
33
33
  "openai"
34
34
  ],
35
35
  "devDependencies": {
36
- "@vincemakes/kiso-evals": "0.16.6",
36
+ "@vincemakes/kiso-evals": "0.16.8",
37
37
  "@types/node": "^26.1.2",
38
38
  "typescript": "^5.7.2",
39
39
  "vitest": "^3.0.0"