opencode-swarm 7.164.5 → 7.164.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 (101) hide show
  1. package/.opencode/skills/swarm-pr-review/SKILL.md +12 -12
  2. package/README.md +1 -1
  3. package/dist/background/pending-delegations.d.ts +12 -2
  4. package/dist/background/pr-review-contract.d.ts +9 -0
  5. package/dist/background/pr-subscriptions.d.ts +1 -8
  6. package/dist/cli/{coder-settlement-x9wbqx46.js → coder-settlement-p8wwmtnn.js} +14 -14
  7. package/dist/cli/{config-doctor-axd9d6hs.js → config-doctor-wxf488mw.js} +5 -3
  8. package/dist/cli/{core-f1a1fk13.js → core-671ybpbt.js} +2 -2
  9. package/dist/cli/{curation-policy-2cy7wejw.js → curation-policy-de7emfqc.js} +7 -6
  10. package/dist/cli/{curator-drift-3s3q4wsy.js → curator-drift-nvxv8xkk.js} +7 -5
  11. package/dist/cli/{curator-b104f7a7.js → curator-eaz5rj6k.js} +39 -37
  12. package/dist/cli/curator-llm-factory-swzyfnh6.js +68 -0
  13. package/dist/cli/{dispatch-q4v8x2pk.js → dispatch-dqybvj8v.js} +10 -6
  14. package/dist/cli/{evidence-summary-service-5xsjs3x3.js → evidence-summary-service-deqsc8hj.js} +19 -16
  15. package/dist/cli/{gate-evidence-ypja4156.js → gate-evidence-mafg71qb.js} +14 -8
  16. package/dist/cli/guardrail-explain-ygq7cx9w.js +69 -0
  17. package/dist/cli/{guardrail-log-6t4e2j5f.js → guardrail-log-k3w9dq6x.js} +9 -8
  18. package/dist/cli/{guardrail-reset-es0bg976.js → guardrail-reset-ae2step4.js} +39 -37
  19. package/dist/cli/hive-promoter-a4cs5sbr.js +83 -0
  20. package/dist/cli/{index-hnjkpk57.js → index-0zjwnbze.js} +1 -1
  21. package/dist/cli/{index-er8ba9be.js → index-1ekzd5wf.js} +56 -15
  22. package/dist/cli/{index-fxxja498.js → index-2czt53wz.js} +1 -1
  23. package/dist/cli/{index-wbnyc50b.js → index-388sxv1b.js} +17 -8
  24. package/dist/cli/{index-1q2dwv69.js → index-3kgg2n6z.js} +12 -6
  25. package/dist/cli/{index-50s9q4c1.js → index-3sv8t7ca.js} +2 -2
  26. package/dist/cli/{index-4jmtdtm9.js → index-46yrz972.js} +3 -3
  27. package/dist/cli/{index-s09b63xg.js → index-4vx89ymn.js} +5 -5
  28. package/dist/cli/{index-aaqbhn9h.js → index-581bcqp9.js} +2 -2
  29. package/dist/cli/{index-0trtcm9n.js → index-63enf73z.js} +20 -15
  30. package/dist/cli/index-7qefgq4j.js +71 -0
  31. package/dist/cli/{index-yrsag0vs.js → index-8ck1jkhd.js} +3 -2
  32. package/dist/cli/{index-y42pra05.js → index-8ntf8jnj.js} +19 -18
  33. package/dist/cli/{index-m1nrd3yd.js → index-8psybzzf.js} +1 -1
  34. package/dist/cli/{index-rz87mx1c.js → index-8tqqmsav.js} +1 -1
  35. package/dist/cli/{index-25z5qwkk.js → index-93znbdam.js} +9 -5
  36. package/dist/cli/{index-maxz22c1.js → index-9qkytpwa.js} +185 -376
  37. package/dist/cli/{index-164m995b.js → index-9ydhzegh.js} +28 -17
  38. package/dist/cli/{index-3gb7bw7h.js → index-bvjwmmdc.js} +1332 -1217
  39. package/dist/cli/{index-ywtcznk2.js → index-c4j9sjcs.js} +4 -4
  40. package/dist/cli/index-cw912re7.js +200 -0
  41. package/dist/cli/{index-8h9nng7f.js → index-fq1wfsmw.js} +100 -97
  42. package/dist/cli/{index-7rat6nyh.js → index-gm65h7bh.js} +9 -6
  43. package/dist/cli/{index-rc6hec4j.js → index-h3k3rgyr.js} +4 -4
  44. package/dist/cli/{index-ea7sehgy.js → index-jkwfajh1.js} +4 -4
  45. package/dist/cli/{index-1dz8hv7p.js → index-kvq1e82k.js} +3 -3
  46. package/dist/cli/{index-4emx8hhh.js → index-mr3h3sm5.js} +2 -2
  47. package/dist/cli/{index-q0gtgwyr.js → index-rey1tzcw.js} +7 -7
  48. package/dist/cli/index-ry16d01s.js +107 -0
  49. package/dist/cli/{index-aper29nf.js → index-ry4mwbc2.js} +1 -1
  50. package/dist/cli/{index-xj4kbtdw.js → index-sxxh4ams.js} +2 -2
  51. package/dist/cli/{index-tfa2p4y4.js → index-t1qzjhnj.js} +13 -13
  52. package/dist/cli/{index-xm7dc14y.js → index-v1fj9exz.js} +12 -5
  53. package/dist/cli/{index-3f7hqtgg.js → index-w3gtqey0.js} +4 -1
  54. package/dist/cli/{index-4krjn1gn.js → index-wgqeqy68.js} +2 -2
  55. package/dist/cli/{index-3rrc5x4v.js → index-x2t2tbm2.js} +2 -2
  56. package/dist/cli/{index-0zbze3n6.js → index-x3qzt684.js} +71 -47
  57. package/dist/cli/{index-j9a4fsxg.js → index-xc3q62ev.js} +2 -2
  58. package/dist/cli/{index-553veay1.js → index-xy59dnvq.js} +1 -1
  59. package/dist/cli/{index-fwebva1m.js → index-y75xd50f.js} +36 -27
  60. package/dist/cli/{index-25jze7sf.js → index-yzn1fm9a.js} +1 -1
  61. package/dist/cli/{index-1f4nandk.js → index-zg34ngdf.js} +21 -11
  62. package/dist/cli/{index-ssb67ff6.js → index-zg8tvjb0.js} +41 -39
  63. package/dist/cli/index.js +39 -37
  64. package/dist/cli/{knowledge-escalator-evjd8g7y.js → knowledge-escalator-t532h2ym.js} +15 -14
  65. package/dist/cli/{knowledge-events-q46z1wy6.js → knowledge-events-hdtc0cxe.js} +13 -12
  66. package/dist/cli/{knowledge-link-ffmzf72f.js → knowledge-link-hhnmc4g1.js} +6 -5
  67. package/dist/cli/{knowledge-store-z82f5x9k.js → knowledge-store-45jadhmb.js} +7 -6
  68. package/dist/cli/{knowledge-validator-19gbnxx2.js → knowledge-validator-5e6qbq6h.js} +9 -8
  69. package/dist/cli/{model-preflight-pmnbfzjv.js → model-preflight-bq035tfh.js} +1 -1
  70. package/dist/cli/{pending-delegations-t4cqk5ha.js → pending-delegations-z0crvst3.js} +7 -7
  71. package/dist/cli/{pr-subscriptions-3enjtq0k.js → pr-subscriptions-73fs8y3n.js} +7 -6
  72. package/dist/cli/{pr-workflow-gate-3ecgfsge.js → pr-workflow-gate-rpdts7wy.js} +41 -37
  73. package/dist/cli/{runner-wqy2hbxn.js → runner-5qqh83e2.js} +6 -6
  74. package/dist/cli/{scan-cursor-8wcy0dvf.js → scan-cursor-t75qznf3.js} +8 -7
  75. package/dist/cli/{schema-hsw9r2tm.js → schema-8dfjsrk6.js} +2 -2
  76. package/dist/cli/{scope-persistence-mbwt4grd.js → scope-persistence-zfmz4sws.js} +12 -10
  77. package/dist/cli/{skill-generator-kg32a5jy.js → skill-generator-psdb10jw.js} +17 -16
  78. package/dist/cli/{telemetry-j14cj552.js → telemetry-85gxedng.js} +1 -1
  79. package/dist/cli/{workspace-snapshot-yq0tc49d.js → workspace-snapshot-eh18vgkn.js} +2 -1
  80. package/dist/cli/{worktree-collision-ownership-0rfw6kp3.js → worktree-collision-ownership-xrqssqzd.js} +12 -15
  81. package/dist/cli/{worktree-isolation-qcwt09ve.js → worktree-isolation-s9m3bgah.js} +39 -37
  82. package/dist/db/canonical-project.d.ts +10 -3
  83. package/dist/db/project-db.d.ts +4 -0
  84. package/dist/evidence/task-gate-repair.d.ts +1 -1
  85. package/dist/gate-evidence.d.ts +19 -1
  86. package/dist/hooks/delegation-gate.d.ts +3 -1
  87. package/dist/hooks/pr-workflow-gate.d.ts +10 -2
  88. package/dist/index.js +593 -590
  89. package/dist/plan/ledger.d.ts +2 -0
  90. package/dist/pr-review/authorization.d.ts +13 -3
  91. package/dist/tools/authorize-pr-review-reentry.d.ts +5 -4
  92. package/dist/tools/dispatch-lanes.d.ts +1 -0
  93. package/dist/tools/pr-workflow-status.d.ts +2 -0
  94. package/dist/tools/pre-check-batch.d.ts +1 -1
  95. package/dist/utils/canonical-root.d.ts +21 -1
  96. package/dist/utils/filesystem-identity.d.ts +59 -0
  97. package/package.json +2 -1
  98. package/dist/cli/curator-llm-factory-cv7ft0mb.js +0 -66
  99. package/dist/cli/guardrail-explain-cvha7b9p.js +0 -67
  100. package/dist/cli/hive-promoter-yzv5g7jy.js +0 -81
  101. package/dist/cli/index-ddszzne4.js +0 -42
@@ -88,6 +88,7 @@ declare function getLedgerPath(directory: string): string;
88
88
  * Get the path to plan.json
89
89
  */
90
90
  declare function getPlanJsonPath(directory: string): string;
91
+ declare function readLedgerDirectory(directory: string): string[];
91
92
  /**
92
93
  * Durable atomic write: write `data` to `tempPath`, fsync the file descriptor so
93
94
  * the bytes are flushed to stable storage, then atomically rename it over
@@ -572,6 +573,7 @@ export declare const _internals: {
572
573
  getPlanJsonPath: typeof getPlanJsonPath;
573
574
  writeFileFsyncedThenRename: typeof writeFileFsyncedThenRename;
574
575
  fsyncRecoveryDirectory: typeof fsyncRecoveryDirectory;
576
+ readLedgerDirectory: typeof readLedgerDirectory;
575
577
  randomUUID: () => `${string}-${string}-${string}-${string}-${string}`;
576
578
  };
577
579
  export {};
@@ -82,9 +82,9 @@ declare function reentryAuthorizationFilePath(directory: string, sessionID: stri
82
82
  declare function renameWithRetryAsync(tempPath: string, targetPath: string): Promise<void>;
83
83
  declare function writeAuthorizationFile(filePath: string, file: AuthorizationFile): Promise<void>;
84
84
  /**
85
- * Drop expired records past the retention bound; keep newest first. A burst
86
- * of consumed records must never evict a still-live unconsumed authorization
87
- * before its TTL, so unconsumed records take priority within the cap.
85
+ * Drop expired records past the retention bound while preserving every live
86
+ * authorization. Consumed records are retained only as same-call replay
87
+ * evidence, so they fill the remaining bounded capacity after live records.
88
88
  */
89
89
  declare function pruneAuthorizations(records: readonly PrReviewReentryAuthorizationRecord[], nowMs: number): PrReviewReentryAuthorizationRecord[];
90
90
  /**
@@ -99,6 +99,15 @@ export declare function issuePrReviewReentryAuthorization(directory: string, ses
99
99
  role: PrReviewReentryRole;
100
100
  }): Promise<PrReviewReentryAuthorizationRecord>;
101
101
  declare function authorizationMatchesBinding(record: PrReviewReentryAuthorizationRecord, binding: PrReviewReentryBindingContext): boolean;
102
+ /**
103
+ * Read-only admission check for the PR workflow hook. The workflow-session
104
+ * lock is held by the caller while this authorization-store lock is acquired,
105
+ * so the binding used for the check cannot change underneath the read. The
106
+ * token remains unconsumed until the delegation gate has accepted the Task.
107
+ */
108
+ export declare function hasPrReviewReentryAuthorizationAgainstBinding(directory: string, sessionID: string, request: {
109
+ role: PrReviewReentryRole;
110
+ }, binding: PrReviewReentryBindingContext): Promise<boolean>;
102
111
  /**
103
112
  * Reserve or verify one authorization against a binding whose owning workflow
104
113
  * lock is held by the caller. The authorization-file lock is always acquired
@@ -115,6 +124,7 @@ export declare const _internals: {
115
124
  reentryAuthorizationFilePath: typeof reentryAuthorizationFilePath;
116
125
  pruneAuthorizations: typeof pruneAuthorizations;
117
126
  authorizationMatchesBinding: typeof authorizationMatchesBinding;
127
+ hasPrReviewReentryAuthorizationAgainstBinding: typeof hasPrReviewReentryAuthorizationAgainstBinding;
118
128
  /** DI seam: the rename implementation (tests inject failure modes). */
119
129
  renameImpl: (from: string, to: string) => Promise<void>;
120
130
  /** DI seam: retry backoff schedule (tests shrink to avoid real sleeps). */
@@ -9,10 +9,11 @@ import { createSwarmTool } from './create-tool.js';
9
9
  * requirement; every other delegation gate stays authoritative. Bindings are
10
10
  * exact (session, workflow, run, head SHA, worktree revision digest, role,
11
11
  * gate generation): replay, cross-session use, wrong role, expiry, or any
12
- * workflow progress since issuance fails closed. A Task the delegation gate
13
- * later rejects for an unrelated reason still burns the authorization
14
- * issue a fresh one before retrying. Issue immediately before the Task
15
- * dispatchauthorizations are not stockpilable.
12
+ * workflow progress since issuance fails closed. If a plan or task workflow
13
+ * state exists, the dispatch must identify the exact task; taskless dispatches
14
+ * are limited to plan-free standalone review. A later unrelated gate rejection
15
+ * still burns the authorization issue a fresh one before retrying. Issue
16
+ * immediately before the Task dispatch — authorizations are not stockpilable.
16
17
  */
17
18
  export declare function executeAuthorizePrReviewReentry(args: unknown, directory: string, context?: {
18
19
  sessionID?: string;
@@ -676,6 +676,7 @@ declare function applyExplorerFormatSuffix(lanes: DispatchLaneSpec[], options?:
676
676
  declare function prReviewLaneResponseBudgetChars(mode: string, lane: DispatchLaneSpec): number | undefined;
677
677
  declare function applyPrWorkflowPromptContract(lanes: DispatchLaneSpec[], options: {
678
678
  mode?: string;
679
+ batchId?: string;
679
680
  prHeadSha?: string;
680
681
  revisionDigest?: string;
681
682
  scope?: string;
@@ -17,6 +17,7 @@ declare function truncateToByteBudget(value: string, maxBytes: number): string;
17
17
  * finally. Never runs a PR-controlled script — only fixed read verbs are passed.
18
18
  */
19
19
  declare function runGitCapture(directory: string, args: string[]): Promise<string | null>;
20
+ declare function resolveWorkflowGateSession(directory: string, sessionID: string): Promise<string | null>;
20
21
  export declare const pr_workflow_status: ReturnType<typeof createSwarmTool>;
21
22
  /** Test seam mirroring gh-evidence's `_internals` (issue #507 DI convention). */
22
23
  export declare const _internals: {
@@ -26,5 +27,6 @@ export declare const _internals: {
26
27
  runGitCapture: typeof runGitCapture;
27
28
  classifyGitState: typeof classifyPrWorkflowGitState;
28
29
  truncateToByteBudget: typeof truncateToByteBudget;
30
+ resolveWorkflowGateSession: typeof resolveWorkflowGateSession;
29
31
  };
30
32
  export {};
@@ -104,7 +104,7 @@ export interface PreCheckBatchResult {
104
104
  * field and replace optional payloads with bounded, UTF-8-safe summaries.
105
105
  */
106
106
  declare function serializePreCheckResult(result: PreCheckBatchResult): string;
107
- declare function isAcceptedProjectRootForPlatform(dir: string, workspaceDir: string, platform: NodeJS.Platform, hasExplicitBoundary: boolean): boolean;
107
+ declare function isAcceptedProjectRootForPlatform(dir: string, workspaceDir: string, platform: NodeJS.Platform, hasExplicitBoundary: boolean, exactPhysicalRoot?: boolean): boolean;
108
108
  export declare const _test_exports: {
109
109
  isAcceptedProjectRootForPlatform: typeof isAcceptedProjectRootForPlatform;
110
110
  };
@@ -13,6 +13,7 @@
13
13
  * `validateSwarmPath`, so the aliasing this resolves lives strictly ABOVE
14
14
  * `.swarm`. One shared implementation so the three maps cannot drift.
15
15
  */
16
+ import * as fsSync from 'node:fs';
16
17
  /**
17
18
  * Separator between canonical root and session id in composite keys.
18
19
  * `String.fromCharCode(0)` rather than an escape literal so the source stays
@@ -20,10 +21,29 @@
20
21
  * binary); NUL cannot appear in a path on any supported platform.
21
22
  */
22
23
  export declare const SESSION_KEY_SEPARATOR: string;
24
+ /** Keep filesystem and platform access behind a narrow test seam. */
25
+ export declare const _internals: {
26
+ realpathSyncNative: (path: fsSync.PathLike) => string;
27
+ realpathSync: typeof fsSync.realpathSync;
28
+ lstatSync: typeof fsSync.lstatSync;
29
+ platform: () => NodeJS.Platform;
30
+ };
31
+ /**
32
+ * Normalize only the caller's lexical spelling of a root.
33
+ *
34
+ * This is deliberately not physical project identity. It exists solely for
35
+ * bounded resource-lifecycle alias tables that must remember how a caller
36
+ * spelled a root after that path is deleted or becomes inaccessible. New
37
+ * equality, cache, authority, or persistence decisions must use
38
+ * {@link canonicalRootKeyFresh} instead.
39
+ */
40
+ export declare function lexicalRootAliasKey(directory: string): string;
23
41
  export declare function canonicalRootKey(directory: string): string;
24
42
  /** Resolve a root without consulting the bounded memoized cache. */
25
43
  export declare function canonicalRootKeyFresh(directory: string): string;
26
- /** Composite map key: canonical root + NUL + session id. */
44
+ /** Compare current physical project-root identity, bypassing the memo. */
45
+ export declare function sameProjectRoot(a: string, b: string): boolean;
46
+ /** Composite map key: current physical root + NUL + session id. */
27
47
  export declare function compositeSessionKey(directory: string, sessionId: string): string;
28
48
  /**
29
49
  * Suffix every root's key for a session ends with. Suffix-scan clear paths
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Fail-closed physical filesystem identity for existing entries.
3
+ *
4
+ * Unlike canonicalRootKey, this helper never falls back to a lexical path:
5
+ * callers use it only when equality must be proven for entries that exist.
6
+ * It does not establish containment, authorization, hard-link equivalence, or
7
+ * race-free safety; it proves pathname identity at the instant of resolution.
8
+ */
9
+ import * as fsSync from 'node:fs';
10
+ export declare const _internals: {
11
+ realpathSyncNative: (path: fsSync.PathLike) => string;
12
+ realpathSync: typeof fsSync.realpathSync;
13
+ lstatSync: typeof fsSync.lstatSync;
14
+ platform: () => NodeJS.Platform;
15
+ };
16
+ /**
17
+ * Return a canonical pathname only when the entry physically resolves.
18
+ * Native realpath expands Windows 8.3 names; ordinary realpath is a portable
19
+ * fallback for runtimes/filesystems where the native binding is unavailable.
20
+ */
21
+ export declare function canonicalExistingFilesystemPath(entryPath: string): string | null;
22
+ /**
23
+ * Return the pre-#2474 canonical spelling used in persisted scope bindings.
24
+ *
25
+ * It deliberately skips the native Windows resolver: old releases used the
26
+ * ordinary `realpathSync` result (then slash-normalized and case-folded). The
27
+ * scope persistence reader uses this as a narrow dual-read compatibility
28
+ * witness and always rewrites a recovered binding with the current native-first
29
+ * identity on its next durable write.
30
+ */
31
+ export declare function legacyCanonicalExistingFilesystemPath(entryPath: string): string | null;
32
+ export interface CanonicalPathFromExistingAncestor {
33
+ canonicalPath: string;
34
+ existingAncestor: string;
35
+ existingAncestorIsLink: boolean;
36
+ identityWitnesses: FilesystemIdentityWitness[];
37
+ }
38
+ export interface FilesystemIdentityWitness {
39
+ lexicalPath: string;
40
+ canonicalPath: string;
41
+ }
42
+ /** Capture the entry plus linked ancestors whose identity can prove retarget. */
43
+ export declare function filesystemIdentityWitnesses(entryPath: string): FilesystemIdentityWitness[];
44
+ /**
45
+ * Resolve a not-yet-existing path through its nearest existing physical
46
+ * ancestor, then append the normalized missing suffix. This does not prove the
47
+ * leaf exists and must not be used for equality or authorization decisions; it
48
+ * binds future lazy I/O to the mount/alias target observed at acquisition time.
49
+ */
50
+ export declare function canonicalPathFromExistingAncestor(entryPath: string): CanonicalPathFromExistingAncestor | null;
51
+ /**
52
+ * Capture the path a future lazy filesystem operation must use. Existing paths
53
+ * resolve exactly; missing paths inherit the physical identity of their nearest
54
+ * existing ancestor. A wholly unresolvable path returns null so authority or
55
+ * storage callers can fail closed rather than bind to a mutable lexical alias.
56
+ */
57
+ export declare function canonicalPathForFutureIo(entryPath: string): string | null;
58
+ /** Compare two existing entries, failing closed if either cannot resolve. */
59
+ export declare function sameExistingFilesystemPath(a: string, b: string): boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-swarm",
3
- "version": "7.164.5",
3
+ "version": "7.164.7",
4
4
  "description": "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -127,6 +127,7 @@
127
127
  "check:gate-portability": "bun run scripts/check-gate-portability.ts",
128
128
  "check:bare-spawn": "bun run scripts/check-bare-executable-spawn.ts",
129
129
  "check:error-channel-discard": "bun run scripts/check-error-channel-discard.ts",
130
+ "check:path-identity": "bun run scripts/check-path-identity.ts",
130
131
  "check:registry-citations": "bun run scripts/check-registry-citations.ts",
131
132
  "check:memory-recall": "bun run scripts/memory-recall-regression.ts"
132
133
  },
@@ -1,66 +0,0 @@
1
- // @bun
2
- import {
3
- createCuratorLLMDelegate
4
- } from "./index-3gb7bw7h.js";
5
- import"./index-25jze7sf.js";
6
- import"./index-ea7sehgy.js";
7
- import"./index-1q2dwv69.js";
8
- import"./index-maxz22c1.js";
9
- import"./index-4krjn1gn.js";
10
- import"./index-txdagbh7.js";
11
- import"./index-3146wmgv.js";
12
- import"./index-7rat6nyh.js";
13
- import"./index-s09b63xg.js";
14
- import"./index-aaqbhn9h.js";
15
- import"./index-70ha9e09.js";
16
- import"./index-1f4nandk.js";
17
- import"./index-0zbze3n6.js";
18
- import"./index-zaab1wz9.js";
19
- import"./index-y42pra05.js";
20
- import"./index-zsrtt42s.js";
21
- import"./index-fwebva1m.js";
22
- import"./index-3f7hqtgg.js";
23
- import"./index-xj4kbtdw.js";
24
- import"./index-rc6hec4j.js";
25
- import"./index-hnjkpk57.js";
26
- import"./index-rtry5xyf.js";
27
- import"./index-wbnyc50b.js";
28
- import"./index-j9a4fsxg.js";
29
- import"./index-er8ba9be.js";
30
- import"./index-ddszzne4.js";
31
- import"./index-8h9nng7f.js";
32
- import"./index-xm7dc14y.js";
33
- import"./index-50s9q4c1.js";
34
- import"./index-556ja8an.js";
35
- import"./index-4fwbbad3.js";
36
- import"./index-b43rt5ph.js";
37
- import"./index-q7sjgr1y.js";
38
- import"./index-q0gtgwyr.js";
39
- import"./index-0trtcm9n.js";
40
- import"./index-4jmtdtm9.js";
41
- import"./index-zg9d392c.js";
42
- import"./index-n832052r.js";
43
- import"./index-rz87mx1c.js";
44
- import"./index-z6xqpmqg.js";
45
- import"./index-r3mvsbtq.js";
46
- import"./index-553veay1.js";
47
- import"./index-yrsag0vs.js";
48
- import"./index-9e6fdz2h.js";
49
- import"./index-4rhhvd1a.js";
50
- import"./index-164m995b.js";
51
- import"./index-m1nrd3yd.js";
52
- import"./index-zjygnfay.js";
53
- import"./index-ae75rja9.js";
54
- import"./index-25z5qwkk.js";
55
- import"./index-4emx8hhh.js";
56
- import"./index-bk5tah7q.js";
57
- import"./index-fxxja498.js";
58
- import"./index-tfa2p4y4.js";
59
- import"./index-1dz8hv7p.js";
60
- import"./index-7g4c7s5r.js";
61
- import"./index-bpmtbmy9.js";
62
- import"./index-zgwm4ryv.js";
63
- import"./index-a76rekgs.js";
64
- export {
65
- createCuratorLLMDelegate
66
- };
@@ -1,67 +0,0 @@
1
- // @bun
2
- import {
3
- handleGuardrailExplain
4
- } from "./index-3rrc5x4v.js";
5
- import"./index-3gb7bw7h.js";
6
- import"./index-25jze7sf.js";
7
- import"./index-ea7sehgy.js";
8
- import"./index-1q2dwv69.js";
9
- import"./index-maxz22c1.js";
10
- import"./index-4krjn1gn.js";
11
- import"./index-txdagbh7.js";
12
- import"./index-3146wmgv.js";
13
- import"./index-7rat6nyh.js";
14
- import"./index-s09b63xg.js";
15
- import"./index-aaqbhn9h.js";
16
- import"./index-70ha9e09.js";
17
- import"./index-1f4nandk.js";
18
- import"./index-0zbze3n6.js";
19
- import"./index-zaab1wz9.js";
20
- import"./index-y42pra05.js";
21
- import"./index-zsrtt42s.js";
22
- import"./index-fwebva1m.js";
23
- import"./index-3f7hqtgg.js";
24
- import"./index-xj4kbtdw.js";
25
- import"./index-rc6hec4j.js";
26
- import"./index-hnjkpk57.js";
27
- import"./index-rtry5xyf.js";
28
- import"./index-wbnyc50b.js";
29
- import"./index-j9a4fsxg.js";
30
- import"./index-er8ba9be.js";
31
- import"./index-ddszzne4.js";
32
- import"./index-8h9nng7f.js";
33
- import"./index-xm7dc14y.js";
34
- import"./index-50s9q4c1.js";
35
- import"./index-556ja8an.js";
36
- import"./index-4fwbbad3.js";
37
- import"./index-b43rt5ph.js";
38
- import"./index-q7sjgr1y.js";
39
- import"./index-q0gtgwyr.js";
40
- import"./index-0trtcm9n.js";
41
- import"./index-4jmtdtm9.js";
42
- import"./index-zg9d392c.js";
43
- import"./index-n832052r.js";
44
- import"./index-rz87mx1c.js";
45
- import"./index-z6xqpmqg.js";
46
- import"./index-r3mvsbtq.js";
47
- import"./index-553veay1.js";
48
- import"./index-yrsag0vs.js";
49
- import"./index-9e6fdz2h.js";
50
- import"./index-4rhhvd1a.js";
51
- import"./index-164m995b.js";
52
- import"./index-m1nrd3yd.js";
53
- import"./index-zjygnfay.js";
54
- import"./index-ae75rja9.js";
55
- import"./index-25z5qwkk.js";
56
- import"./index-4emx8hhh.js";
57
- import"./index-bk5tah7q.js";
58
- import"./index-fxxja498.js";
59
- import"./index-tfa2p4y4.js";
60
- import"./index-1dz8hv7p.js";
61
- import"./index-7g4c7s5r.js";
62
- import"./index-bpmtbmy9.js";
63
- import"./index-zgwm4ryv.js";
64
- import"./index-a76rekgs.js";
65
- export {
66
- handleGuardrailExplain
67
- };
@@ -1,81 +0,0 @@
1
- // @bun
2
- import {
3
- _internals2 as _internals,
4
- checkHivePromotions,
5
- countDistinctProjects,
6
- createHivePromoterHook,
7
- isHiveEligible,
8
- promoteFromSwarm,
9
- promoteToHive
10
- } from "./index-3gb7bw7h.js";
11
- import"./index-25jze7sf.js";
12
- import"./index-ea7sehgy.js";
13
- import"./index-1q2dwv69.js";
14
- import"./index-maxz22c1.js";
15
- import"./index-4krjn1gn.js";
16
- import"./index-txdagbh7.js";
17
- import"./index-3146wmgv.js";
18
- import"./index-7rat6nyh.js";
19
- import"./index-s09b63xg.js";
20
- import"./index-aaqbhn9h.js";
21
- import"./index-70ha9e09.js";
22
- import"./index-1f4nandk.js";
23
- import"./index-0zbze3n6.js";
24
- import"./index-zaab1wz9.js";
25
- import"./index-y42pra05.js";
26
- import"./index-zsrtt42s.js";
27
- import"./index-fwebva1m.js";
28
- import"./index-3f7hqtgg.js";
29
- import"./index-xj4kbtdw.js";
30
- import"./index-rc6hec4j.js";
31
- import"./index-hnjkpk57.js";
32
- import"./index-rtry5xyf.js";
33
- import"./index-wbnyc50b.js";
34
- import"./index-j9a4fsxg.js";
35
- import"./index-er8ba9be.js";
36
- import"./index-ddszzne4.js";
37
- import"./index-8h9nng7f.js";
38
- import"./index-xm7dc14y.js";
39
- import"./index-50s9q4c1.js";
40
- import"./index-556ja8an.js";
41
- import"./index-4fwbbad3.js";
42
- import"./index-b43rt5ph.js";
43
- import"./index-q7sjgr1y.js";
44
- import {
45
- resolveHiveKnowledgePath
46
- } from "./index-q0gtgwyr.js";
47
- import"./index-0trtcm9n.js";
48
- import"./index-4jmtdtm9.js";
49
- import"./index-zg9d392c.js";
50
- import"./index-n832052r.js";
51
- import"./index-rz87mx1c.js";
52
- import"./index-z6xqpmqg.js";
53
- import"./index-r3mvsbtq.js";
54
- import"./index-553veay1.js";
55
- import"./index-yrsag0vs.js";
56
- import"./index-9e6fdz2h.js";
57
- import"./index-4rhhvd1a.js";
58
- import"./index-164m995b.js";
59
- import"./index-m1nrd3yd.js";
60
- import"./index-zjygnfay.js";
61
- import"./index-ae75rja9.js";
62
- import"./index-25z5qwkk.js";
63
- import"./index-4emx8hhh.js";
64
- import"./index-bk5tah7q.js";
65
- import"./index-fxxja498.js";
66
- import"./index-tfa2p4y4.js";
67
- import"./index-1dz8hv7p.js";
68
- import"./index-7g4c7s5r.js";
69
- import"./index-bpmtbmy9.js";
70
- import"./index-zgwm4ryv.js";
71
- import"./index-a76rekgs.js";
72
- export {
73
- resolveHiveKnowledgePath,
74
- promoteToHive,
75
- promoteFromSwarm,
76
- isHiveEligible,
77
- createHivePromoterHook,
78
- countDistinctProjects,
79
- checkHivePromotions,
80
- _internals
81
- };
@@ -1,42 +0,0 @@
1
- // @bun
2
- // src/utils/canonical-root.ts
3
- import * as fsSync from "fs";
4
- import * as path from "path";
5
- var SESSION_KEY_SEPARATOR = String.fromCharCode(0);
6
- var canonicalRootMemo = new Map;
7
- var MAX_CANONICAL_ROOT_CACHE = 128;
8
- function resolveCanonicalRootKey(directory) {
9
- let resolved = path.resolve(directory);
10
- try {
11
- resolved = fsSync.realpathSync(resolved);
12
- } catch {}
13
- const key = process.platform === "win32" ? resolved.toLowerCase() : resolved;
14
- return key;
15
- }
16
- function canonicalRootKey(directory) {
17
- const memoized = canonicalRootMemo.get(directory);
18
- if (memoized !== undefined)
19
- return memoized;
20
- const key = resolveCanonicalRootKey(directory);
21
- if (!canonicalRootMemo.has(directory)) {
22
- while (canonicalRootMemo.size >= MAX_CANONICAL_ROOT_CACHE) {
23
- const oldest = canonicalRootMemo.keys().next().value;
24
- if (oldest === undefined)
25
- break;
26
- canonicalRootMemo.delete(oldest);
27
- }
28
- }
29
- canonicalRootMemo.set(directory, key);
30
- return key;
31
- }
32
- function canonicalRootKeyFresh(directory) {
33
- return resolveCanonicalRootKey(directory);
34
- }
35
- function compositeSessionKey(directory, sessionId) {
36
- return `${canonicalRootKey(directory)}${SESSION_KEY_SEPARATOR}${sessionId}`;
37
- }
38
- function sessionKeySuffix(sessionId) {
39
- return `${SESSION_KEY_SEPARATOR}${sessionId}`;
40
- }
41
-
42
- export { canonicalRootKeyFresh, compositeSessionKey, sessionKeySuffix };