@wrongstack/core 0.265.1 → 0.267.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 (69) hide show
  1. package/dist/{agent-bridge-DrkBxszZ.d.ts → agent-bridge-STJ3JwwK.d.ts} +1 -1
  2. package/dist/{agent-subagent-runner-DM2pP-B6.d.ts → agent-subagent-runner-CzPGP3jA.d.ts} +25 -7
  3. package/dist/{brain-BXd_61kQ.d.ts → brain-Cdg77tVN.d.ts} +73 -1
  4. package/dist/{compactor-B8pOf45Y.d.ts → compactor-iMZ84CXq.d.ts} +19 -1
  5. package/dist/{config-BMCj_XDs.d.ts → config-Du3pYYln.d.ts} +54 -3
  6. package/dist/{context-MRk5PhNv.d.ts → context-dT5Ueund.d.ts} +65 -1
  7. package/dist/coordination/index.d.ts +17 -17
  8. package/dist/coordination/index.js +138 -114
  9. package/dist/coordination/index.js.map +1 -1
  10. package/dist/defaults/index.d.ts +25 -25
  11. package/dist/defaults/index.js +1729 -781
  12. package/dist/defaults/index.js.map +1 -1
  13. package/dist/execution/index.d.ts +15 -15
  14. package/dist/execution/index.js +1119 -229
  15. package/dist/execution/index.js.map +1 -1
  16. package/dist/execution/prompt-enhancer.d.ts +1 -1
  17. package/dist/extension/index.d.ts +6 -6
  18. package/dist/{goal-preamble-DvHDSKSe.d.ts → goal-preamble-SulMTowG.d.ts} +28 -11
  19. package/dist/{goal-store-DtLMySNb.d.ts → goal-store-CABDwdFE.d.ts} +1 -1
  20. package/dist/{index-CEDeNodM.d.ts → index-Bms0m4oy.d.ts} +5 -5
  21. package/dist/{index-B-ch8K9C.d.ts → index-DtCVWel4.d.ts} +8 -8
  22. package/dist/index-IEuxQd-E.d.ts +82 -0
  23. package/dist/index.d.ts +118 -45
  24. package/dist/index.js +3083 -1602
  25. package/dist/index.js.map +1 -1
  26. package/dist/infrastructure/index.d.ts +6 -6
  27. package/dist/infrastructure/index.js +72 -1
  28. package/dist/infrastructure/index.js.map +1 -1
  29. package/dist/kernel/index.d.ts +9 -9
  30. package/dist/kernel/index.js.map +1 -1
  31. package/dist/{mcp-servers-2x4w6Jn9.d.ts → mcp-servers-C2cBTxUR.d.ts} +3 -3
  32. package/dist/models/index.d.ts +5 -5
  33. package/dist/models/index.js +30 -1
  34. package/dist/models/index.js.map +1 -1
  35. package/dist/{models-registry-DmJlKuNp.d.ts → models-registry-BqGZNJQ-.d.ts} +1 -1
  36. package/dist/{multi-agent-coordinator-DyCkCZnU.d.ts → multi-agent-coordinator-B8R43uPz.d.ts} +1 -1
  37. package/dist/{null-fleet-bus-CG9QY2aP.d.ts → null-fleet-bus-CnXa5oTH.d.ts} +14 -9
  38. package/dist/observability/index.d.ts +2 -2
  39. package/dist/{parallel-eternal-engine-Jw9uhEoT.d.ts → parallel-eternal-engine-DdNnw9BQ.d.ts} +11 -9
  40. package/dist/{path-resolver-Dy2ej-gE.d.ts → path-resolver-COIMLCQL.d.ts} +3 -3
  41. package/dist/{permission-B9SB45lp.d.ts → permission-B75JAi3-.d.ts} +1 -1
  42. package/dist/{permission-policy-CkjSXabK.d.ts → permission-policy-DlR9eJAM.d.ts} +2 -2
  43. package/dist/{pipeline-DPDxH_7m.d.ts → pipeline-BfD2k1rT.d.ts} +2 -2
  44. package/dist/{plan-templates-CzD9GnAU.d.ts → plan-templates-DSIKCXZN.d.ts} +5 -5
  45. package/dist/{llm-selector-C0tfTCUe.d.ts → provider-model-resolve-BNRsNuJx.d.ts} +40 -3
  46. package/dist/{provider-runner-DMa70ODu.d.ts → provider-runner-CX7iIvox.d.ts} +3 -3
  47. package/dist/{retry-policy-CN0khdlj.d.ts → retry-policy-BilV1ujH.d.ts} +1 -1
  48. package/dist/sdd/index.d.ts +8 -8
  49. package/dist/sdd/index.js +12 -12
  50. package/dist/sdd/index.js.map +1 -1
  51. package/dist/{secret-vault-B2yw84VT.d.ts → secret-vault-gkvEZZfE.d.ts} +2 -2
  52. package/dist/security/index.d.ts +5 -67
  53. package/dist/security/index.js +96 -76
  54. package/dist/security/index.js.map +1 -1
  55. package/dist/{selector-CzHh_igB.d.ts → selector-Bc7eWtT3.d.ts} +1 -1
  56. package/dist/{session-event-bridge-BUI6Jf-4.d.ts → session-event-bridge-D-araDEz.d.ts} +1 -1
  57. package/dist/{session-reader-CMgdMSRP.d.ts → session-reader-D7Dapswh.d.ts} +1 -1
  58. package/dist/storage/index.d.ts +11 -11
  59. package/dist/storage/index.js +81 -84
  60. package/dist/storage/index.js.map +1 -1
  61. package/dist/tools/index.d.ts +4 -2
  62. package/dist/tools/index.js.map +1 -1
  63. package/dist/types/index.d.ts +19 -19
  64. package/dist/types/index.js +1265 -400
  65. package/dist/types/index.js.map +1 -1
  66. package/dist/utils/index.d.ts +454 -406
  67. package/dist/utils/index.js +2191 -1201
  68. package/dist/utils/index.js.map +1 -1
  69. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { M as Message } from './context-MRk5PhNv.js';
1
+ import { M as Message } from './context-dT5Ueund.js';
2
2
 
3
3
  /**
4
4
  * Result of LLM-driven message importance analysis.
@@ -1,4 +1,4 @@
1
- import { S as SessionEvent, a as SessionWriter } from './context-MRk5PhNv.js';
1
+ import { S as SessionEvent, a as SessionWriter } from './context-dT5Ueund.js';
2
2
 
3
3
  type AuditLevel = 'minimal' | 'standard' | 'full';
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { g as ContentBlock, S as SessionEvent, h as SessionMetadata, i as SessionStore } from './context-MRk5PhNv.js';
1
+ import { g as ContentBlock, S as SessionEvent, h as SessionMetadata, i as SessionStore } from './context-dT5Ueund.js';
2
2
 
3
3
  type AttachmentKind = 'text' | 'image' | 'file';
4
4
  interface AttachmentMeta {
@@ -1,20 +1,20 @@
1
- import { M as MemoryBackend, j as FileMemoryBackendOptions } from '../plan-templates-CzD9GnAU.js';
2
- export { A as AbandonedSession, a as AttachmentStoreOptions, C as ConfigLoaderOptions, b as ConfigMigration, c as ConfigMigrationError, d as ConfigSource, D as DEFAULT_CONFIG_MIGRATIONS, e as DefaultAttachmentStore, f as DefaultConfigLoader, g as DefaultConfigStore, h as DefaultMemoryStore, i as DefaultSessionStore, F as FileMemoryBackend, k as MemoryStoreOptions, l as MigrationContext, m as MigrationResult, P as PersistedQueueItem, n as PlanFile, o as PlanItem, p as PlanTemplate, Q as QueueStore, R as RecoveryLock, q as RecoveryLockOptions, S as SessionAnalyzer, r as SessionStoreOptions, T as TodosCheckpointFile, s as addPlanItem, t as attachPlanCheckpoint, u as attachTodosCheckpoint, v as clearPlan, w as deriveTodosFromPlanItem, x as emptyPlan, y as formatPlan, z as formatPlanTemplates, B as getPlanTemplate, E as listPlanTemplates, G as loadPlan, H as loadTodosCheckpoint, I as mutatePlan, J as parseEntries, K as removePlanItem, L as runConfigMigrations, N as savePlan, O as saveTodosCheckpoint, U as setPlanItemStatus } from '../plan-templates-CzD9GnAU.js';
3
- import { M as MemoryScope, b as MemoryEntry, c as MemoryStore, E as EventBus } from '../brain-BXd_61kQ.js';
4
- import { l as AgentExtension, j as AfterRunHook } from '../index-CEDeNodM.js';
5
- import { P as Provider, R as Request, b as Response, S as SessionEvent } from '../context-MRk5PhNv.js';
6
- export { D as DefaultSessionReader, f as DefaultSessionReaderOptions, S as SessionReader } from '../session-reader-CMgdMSRP.js';
1
+ import { M as MemoryBackend, j as FileMemoryBackendOptions } from '../plan-templates-DSIKCXZN.js';
2
+ export { A as AbandonedSession, a as AttachmentStoreOptions, C as ConfigLoaderOptions, b as ConfigMigration, c as ConfigMigrationError, d as ConfigSource, D as DEFAULT_CONFIG_MIGRATIONS, e as DefaultAttachmentStore, f as DefaultConfigLoader, g as DefaultConfigStore, h as DefaultMemoryStore, i as DefaultSessionStore, F as FileMemoryBackend, k as MemoryStoreOptions, l as MigrationContext, m as MigrationResult, P as PersistedQueueItem, n as PlanFile, o as PlanItem, p as PlanTemplate, Q as QueueStore, R as RecoveryLock, q as RecoveryLockOptions, S as SessionAnalyzer, r as SessionStoreOptions, T as TodosCheckpointFile, s as addPlanItem, t as attachPlanCheckpoint, u as attachTodosCheckpoint, v as clearPlan, w as deriveTodosFromPlanItem, x as emptyPlan, y as formatPlan, z as formatPlanTemplates, B as getPlanTemplate, E as listPlanTemplates, G as loadPlan, H as loadTodosCheckpoint, I as mutatePlan, J as parseEntries, K as removePlanItem, L as runConfigMigrations, N as savePlan, O as saveTodosCheckpoint, U as setPlanItemStatus } from '../plan-templates-DSIKCXZN.js';
3
+ import { M as MemoryScope, b as MemoryEntry, c as MemoryStore, E as EventBus } from '../brain-Cdg77tVN.js';
4
+ import { l as AgentExtension, j as AfterRunHook } from '../index-Bms0m4oy.js';
5
+ import { P as Provider, R as Request, b as Response, S as SessionEvent } from '../context-dT5Ueund.js';
6
+ export { D as DefaultSessionReader, f as DefaultSessionReaderOptions, S as SessionReader } from '../session-reader-D7Dapswh.js';
7
7
  import { S as SessionRewinder, C as CheckpointInfo, a as RewindResultExtended } from '../session-rewinder-C9HnMkhP.js';
8
8
  import { T as TaskItem } from '../task-format-vGOIftmK.js';
9
9
  export { a as DirectorStateCheckpoint, D as DirectorStateSnapshot, b as DirectorSubagentState, c as DirectorTaskState, l as loadDirectorState } from '../director-state-BfeCUbmk.js';
10
- export { G as GoalFile, J as JournalEntry, M as MAX_JOURNAL_ENTRIES, a as MAX_PROGRESS_HISTORY, P as ProgressSnapshot, b as appendJournal, e as emptyGoal, f as formatGoal, g as goalFilePath, l as loadGoal, p as parseProgressFromText, r as recordProgress, s as saveGoal, c as setProgress, d as summarizeUsage } from '../goal-store-DtLMySNb.js';
10
+ export { G as GoalFile, J as JournalEntry, M as MAX_JOURNAL_ENTRIES, a as MAX_PROGRESS_HISTORY, P as ProgressSnapshot, b as appendJournal, e as emptyGoal, f as formatGoal, g as goalFilePath, l as loadGoal, p as parseProgressFromText, r as recordProgress, s as saveGoal, c as setProgress, d as summarizeUsage } from '../goal-store-CABDwdFE.js';
11
11
  import { W as WstackPaths } from '../wstack-paths-hOpNLmvf.js';
12
- import { G as SyncCategory, k as SyncConfig } from '../config-BMCj_XDs.js';
13
- export { A as AuditLevel, C as CORE_RECONSTRUCT_EVENTS, a as STANDARD_AUDIT_EVENTS, S as SessionEventBridge, b as SessionEventBridgeOptions, c as SessionSamplingOptions, T as ToolProgressSamplingOptions, d as createSessionEventBridge, r as resolveAuditLevel, e as resolveSessionLoggingConfig } from '../session-event-bridge-BUI6Jf-4.js';
14
- import '../permission-B9SB45lp.js';
12
+ import { G as SyncCategory, l as SyncConfig } from '../config-Du3pYYln.js';
13
+ export { A as AuditLevel, C as CORE_RECONSTRUCT_EVENTS, a as STANDARD_AUDIT_EVENTS, S as SessionEventBridge, b as SessionEventBridgeOptions, c as SessionSamplingOptions, T as ToolProgressSamplingOptions, d as createSessionEventBridge, r as resolveAuditLevel, e as resolveSessionLoggingConfig } from '../session-event-bridge-D-araDEz.js';
14
+ import '../permission-B75JAi3-.js';
15
15
  import '../secret-vault-BAKpgFw_.js';
16
16
  import '../logger-B63L5bTg.js';
17
- import '../pipeline-DPDxH_7m.js';
17
+ import '../pipeline-BfD2k1rT.js';
18
18
  import '../observability-D-HZN_mF.js';
19
19
  import '../task-graph-u1q9Jkyk.js';
20
20
 
@@ -219,26 +219,6 @@ function isEmptyMessage(msg) {
219
219
  return msg.content.length === 0;
220
220
  }
221
221
 
222
- // src/utils/error.ts
223
- function toErrorMessage(err) {
224
- return err instanceof Error ? err.message : String(err);
225
- }
226
-
227
- // src/utils/safe-json.ts
228
- function safeParse(input, maxBytes = 5e6) {
229
- if (input.length > maxBytes) {
230
- return { ok: false, error: `Input exceeds limit (${maxBytes} bytes)` };
231
- }
232
- try {
233
- return { ok: true, value: JSON.parse(input) };
234
- } catch (err) {
235
- return {
236
- ok: false,
237
- error: toErrorMessage(err)
238
- };
239
- }
240
- }
241
-
242
222
  // src/utils/term.ts
243
223
  var hasStdout = () => typeof process !== "undefined" && !!process.stdout;
244
224
  function isStdoutTTY() {
@@ -276,63 +256,6 @@ var color = {
276
256
  bgRed: wrap("41", "49"),
277
257
  bgGreen: wrap("42", "49")
278
258
  };
279
- function projectHash(absRoot) {
280
- return createHash("sha256").update(path2.resolve(absRoot)).digest("hex").slice(0, 12);
281
- }
282
- function projectSlug(absRoot) {
283
- const base = slugify(path2.basename(absRoot));
284
- const hash = createHash("sha256").update(path2.resolve(absRoot)).digest("hex").slice(0, 6);
285
- return `${base}-${hash}`;
286
- }
287
- function slugify(name) {
288
- return name.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 40) || "project";
289
- }
290
- function wstackGlobalRoot() {
291
- const fromEnv = process.env["WRONGSTACK_HOME"];
292
- if (fromEnv && fromEnv.trim().length > 0) return path2.resolve(fromEnv);
293
- return path2.join(os.homedir(), ".wrongstack");
294
- }
295
- function resolveWstackPaths(opts) {
296
- const globalRoot = opts.globalRoot ?? (opts.userHome ? path2.join(opts.userHome, ".wrongstack") : wstackGlobalRoot());
297
- const hash = projectHash(opts.projectRoot);
298
- const slug = projectSlug(opts.projectRoot);
299
- const projectDir = path2.join(globalRoot, "projects", slug);
300
- return {
301
- globalRoot,
302
- configDir: globalRoot,
303
- globalConfig: path2.join(globalRoot, "config.json"),
304
- secretsKey: path2.join(globalRoot, ".key"),
305
- globalMemory: path2.join(globalRoot, "memory.md"),
306
- globalSkills: path2.join(globalRoot, "skills"),
307
- globalPrompts: path2.join(globalRoot, "prompts"),
308
- cacheDir: path2.join(globalRoot, "cache"),
309
- modelsCache: path2.join(globalRoot, "cache", "models.dev.json"),
310
- modelsOverlayCache: path2.join(globalRoot, "cache", "models-overlay.json"),
311
- historyFile: path2.join(globalRoot, "history"),
312
- logFile: path2.join(globalRoot, "logs", "wrongstack.log"),
313
- projectDir,
314
- projectCodebaseIndex: path2.join(projectDir, "codebase-index"),
315
- projectMemory: path2.join(projectDir, "memory.md"),
316
- projectSessions: path2.join(projectDir, "sessions"),
317
- projectTrust: path2.join(projectDir, "trust.json"),
318
- projectMeta: path2.join(projectDir, "meta.json"),
319
- projectLocalConfig: path2.join(projectDir, "config.local.json"),
320
- inProjectConfig: path2.join(opts.projectRoot, ".wrongstack", "config.json"),
321
- inProjectAgentsFile: path2.join(opts.projectRoot, ".wrongstack", "AGENTS.md"),
322
- inProjectSkills: path2.join(opts.projectRoot, ".wrongstack", "skills"),
323
- inProjectWorktrees: path2.join(opts.projectRoot, ".wrongstack", "worktrees"),
324
- projectHash: hash,
325
- projectSlug: slug,
326
- projectGoal: path2.join(projectDir, "goal.json"),
327
- projectSpecs: path2.join(projectDir, "specs"),
328
- projectTaskGraphs: path2.join(projectDir, "task-graphs"),
329
- projectSddSession: path2.join(projectDir, "sdd-session.json"),
330
- projectPlan: path2.join(projectDir, "plan.json"),
331
- projectAutophase: path2.join(projectDir, "autophase"),
332
- syncConfig: path2.join(globalRoot, "sync.json"),
333
- projectStatus: (projectHash2) => path2.join(globalRoot, "projects", projectHash2, "status.json")
334
- };
335
- }
336
259
 
337
260
  // src/utils/deep-merge.ts
338
261
  var FORBIDDEN_PROTO_KEYS = /* @__PURE__ */ new Set([
@@ -393,6 +316,11 @@ function deepMerge(base, patch, options = {}) {
393
316
  return out;
394
317
  }
395
318
 
319
+ // src/utils/error.ts
320
+ function toErrorMessage(err) {
321
+ return err instanceof Error ? err.message : String(err);
322
+ }
323
+
396
324
  // src/utils/regex-guard.ts
397
325
  var MAX_PATTERN_LEN = 512;
398
326
  var DANGEROUS_PATTERNS = [
@@ -429,6 +357,78 @@ function compileUserRegex(pattern, flags) {
429
357
  }
430
358
  }
431
359
 
360
+ // src/utils/safe-json.ts
361
+ function safeParse(input, maxBytes = 5e6) {
362
+ if (input.length > maxBytes) {
363
+ return { ok: false, error: `Input exceeds limit (${maxBytes} bytes)` };
364
+ }
365
+ try {
366
+ return { ok: true, value: JSON.parse(input) };
367
+ } catch (err) {
368
+ return {
369
+ ok: false,
370
+ error: toErrorMessage(err)
371
+ };
372
+ }
373
+ }
374
+ function projectHash(absRoot) {
375
+ return createHash("sha256").update(path2.resolve(absRoot)).digest("hex").slice(0, 12);
376
+ }
377
+ function projectSlug(absRoot) {
378
+ const base = slugify(path2.basename(absRoot));
379
+ const hash = createHash("sha256").update(path2.resolve(absRoot)).digest("hex").slice(0, 6);
380
+ return `${base}-${hash}`;
381
+ }
382
+ function slugify(name) {
383
+ return name.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 40) || "project";
384
+ }
385
+ function wstackGlobalRoot() {
386
+ const fromEnv = process.env["WRONGSTACK_HOME"];
387
+ if (fromEnv && fromEnv.trim().length > 0) return path2.resolve(fromEnv);
388
+ return path2.join(os.homedir(), ".wrongstack");
389
+ }
390
+ function resolveWstackPaths(opts) {
391
+ const globalRoot = opts.globalRoot ?? (opts.userHome ? path2.join(opts.userHome, ".wrongstack") : wstackGlobalRoot());
392
+ const hash = projectHash(opts.projectRoot);
393
+ const slug = projectSlug(opts.projectRoot);
394
+ const projectDir = path2.join(globalRoot, "projects", slug);
395
+ return {
396
+ globalRoot,
397
+ configDir: globalRoot,
398
+ globalConfig: path2.join(globalRoot, "config.json"),
399
+ secretsKey: path2.join(globalRoot, ".key"),
400
+ globalMemory: path2.join(globalRoot, "memory.md"),
401
+ globalSkills: path2.join(globalRoot, "skills"),
402
+ globalPrompts: path2.join(globalRoot, "prompts"),
403
+ cacheDir: path2.join(globalRoot, "cache"),
404
+ modelsCache: path2.join(globalRoot, "cache", "models.dev.json"),
405
+ modelsOverlayCache: path2.join(globalRoot, "cache", "models-overlay.json"),
406
+ historyFile: path2.join(globalRoot, "history"),
407
+ logFile: path2.join(globalRoot, "logs", "wrongstack.log"),
408
+ projectDir,
409
+ projectCodebaseIndex: path2.join(projectDir, "codebase-index"),
410
+ projectMemory: path2.join(projectDir, "memory.md"),
411
+ projectSessions: path2.join(projectDir, "sessions"),
412
+ projectTrust: path2.join(projectDir, "trust.json"),
413
+ projectMeta: path2.join(projectDir, "meta.json"),
414
+ projectLocalConfig: path2.join(projectDir, "config.local.json"),
415
+ inProjectConfig: path2.join(opts.projectRoot, ".wrongstack", "config.json"),
416
+ inProjectAgentsFile: path2.join(opts.projectRoot, ".wrongstack", "AGENTS.md"),
417
+ inProjectSkills: path2.join(opts.projectRoot, ".wrongstack", "skills"),
418
+ inProjectWorktrees: path2.join(opts.projectRoot, ".wrongstack", "worktrees"),
419
+ projectHash: hash,
420
+ projectSlug: slug,
421
+ projectGoal: path2.join(projectDir, "goal.json"),
422
+ projectSpecs: path2.join(projectDir, "specs"),
423
+ projectTaskGraphs: path2.join(projectDir, "task-graphs"),
424
+ projectSddSession: path2.join(projectDir, "sdd-session.json"),
425
+ projectPlan: path2.join(projectDir, "plan.json"),
426
+ projectAutophase: path2.join(projectDir, "autophase"),
427
+ syncConfig: path2.join(globalRoot, "sync.json"),
428
+ projectStatus: (projectHash2) => path2.join(globalRoot, "projects", projectHash2, "status.json")
429
+ };
430
+ }
431
+
432
432
  // src/storage/session-store.ts
433
433
  function sanitizeModel(model) {
434
434
  return model.replace(/[^a-zA-Z0-9_-]/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "").slice(0, 40);
@@ -5985,13 +5985,10 @@ var FleetNotifier = class {
5985
5985
  }
5986
5986
  };
5987
5987
  async function defaultPost(url) {
5988
- const ac = new AbortController();
5989
- const t = setTimeout(() => ac.abort(), POST_TIMEOUT_MS);
5990
- try {
5991
- await fetch(url, { method: "POST", signal: ac.signal });
5992
- } finally {
5993
- clearTimeout(t);
5994
- }
5988
+ await fetch(url, {
5989
+ method: "POST",
5990
+ signal: AbortSignal.timeout(POST_TIMEOUT_MS)
5991
+ });
5995
5992
  }
5996
5993
  var DefaultSessionRewinder = class {
5997
5994
  constructor(sessionsDir, projectRoot) {