@orquentra/codebuddy 0.0.0-stage → 2.4.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 (82) hide show
  1. package/ARCHITECTURE.md +269 -0
  2. package/CLAUDE_CODEX.md +433 -0
  3. package/LICENSE +21 -0
  4. package/README.md +1118 -2
  5. package/WORKFLOW.md +152 -0
  6. package/dist/chunk-3ZELDCR3.js +204 -0
  7. package/dist/chunk-3ZELDCR3.js.map +1 -0
  8. package/dist/chunk-5OWZVZSO.js +476 -0
  9. package/dist/chunk-5OWZVZSO.js.map +1 -0
  10. package/dist/chunk-DSN5CEHO.js +175 -0
  11. package/dist/chunk-DSN5CEHO.js.map +1 -0
  12. package/dist/chunk-GDJH7XJC.js +119 -0
  13. package/dist/chunk-GDJH7XJC.js.map +1 -0
  14. package/dist/chunk-IBMJYIEP.js +1578 -0
  15. package/dist/chunk-IBMJYIEP.js.map +1 -0
  16. package/dist/chunk-IE2OUO54.js +199 -0
  17. package/dist/chunk-IE2OUO54.js.map +1 -0
  18. package/dist/chunk-IHQM2ZDV.js +19 -0
  19. package/dist/chunk-IHQM2ZDV.js.map +1 -0
  20. package/dist/chunk-ITGRANYW.js +63 -0
  21. package/dist/chunk-ITGRANYW.js.map +1 -0
  22. package/dist/chunk-K63EOA4B.js +416 -0
  23. package/dist/chunk-K63EOA4B.js.map +1 -0
  24. package/dist/chunk-PQK3GKZH.js +98 -0
  25. package/dist/chunk-PQK3GKZH.js.map +1 -0
  26. package/dist/chunk-PYLH4MH5.js +34 -0
  27. package/dist/chunk-PYLH4MH5.js.map +1 -0
  28. package/dist/chunk-PZ5AY32C.js +10 -0
  29. package/dist/chunk-PZ5AY32C.js.map +1 -0
  30. package/dist/chunk-SYHB3AMM.js +8580 -0
  31. package/dist/chunk-SYHB3AMM.js.map +1 -0
  32. package/dist/chunk-TI5TQD6D.js +324 -0
  33. package/dist/chunk-TI5TQD6D.js.map +1 -0
  34. package/dist/chunk-WHZSVY2L.js +144 -0
  35. package/dist/chunk-WHZSVY2L.js.map +1 -0
  36. package/dist/cli/index.d.ts +1 -0
  37. package/dist/cli/index.js +15 -0
  38. package/dist/cli/index.js.map +1 -0
  39. package/dist/codebuddy-D2xJ6hFk.d.ts +841 -0
  40. package/dist/config-S2TULOMK.js +11 -0
  41. package/dist/config-S2TULOMK.js.map +1 -0
  42. package/dist/index.d.ts +2527 -0
  43. package/dist/index.js +116 -0
  44. package/dist/index.js.map +1 -0
  45. package/dist/langgraph/index.d.ts +53 -0
  46. package/dist/langgraph/index.js +143 -0
  47. package/dist/langgraph/index.js.map +1 -0
  48. package/dist/lean-command-D6TZJEFX.js +13 -0
  49. package/dist/lean-command-D6TZJEFX.js.map +1 -0
  50. package/dist/main-ZZ3EQLYA.js +4575 -0
  51. package/dist/main-ZZ3EQLYA.js.map +1 -0
  52. package/dist/memory-NIBFAMY4.js +57 -0
  53. package/dist/memory-NIBFAMY4.js.map +1 -0
  54. package/dist/pretool-command-MQQ2UNQM.js +10 -0
  55. package/dist/pretool-command-MQQ2UNQM.js.map +1 -0
  56. package/dist/rerank-Q7MIFNKA.js +60 -0
  57. package/dist/rerank-Q7MIFNKA.js.map +1 -0
  58. package/dist/summaries-TSE44KUQ.js +18 -0
  59. package/dist/summaries-TSE44KUQ.js.map +1 -0
  60. package/dist/zvec-F27AR357.js +23 -0
  61. package/dist/zvec-F27AR357.js.map +1 -0
  62. package/docker-compose.yml +20 -0
  63. package/examples/claude-code/README.md +67 -0
  64. package/examples/claude-desktop/README.md +54 -0
  65. package/examples/claude-desktop/claude_desktop_config.json +13 -0
  66. package/examples/langgraph-agent/README.md +32 -0
  67. package/examples/langgraph-agent/index.ts +71 -0
  68. package/examples/multi-agent-handoff/README.md +35 -0
  69. package/examples/multi-agent-handoff/index.ts +68 -0
  70. package/package.json +108 -4
  71. package/src/db/migrations/0000_cultured_satana.sql +144 -0
  72. package/src/db/migrations/0001_embedding_lease.sql +3 -0
  73. package/src/db/migrations/0002_embedding_lease_token.sql +1 -0
  74. package/src/db/migrations/0003_embedding_space.sql +9 -0
  75. package/src/db/migrations/0004_markdown_reconcile.sql +5 -0
  76. package/src/db/migrations/0005_fact_propositions.sql +1 -0
  77. package/src/db/migrations/meta/0000_snapshot.json +1169 -0
  78. package/src/db/migrations/meta/0002_snapshot.json +1181 -0
  79. package/src/db/migrations/meta/0003_snapshot.json +1214 -0
  80. package/src/db/migrations/meta/0004_snapshot.json +1225 -0
  81. package/src/db/migrations/meta/0005_snapshot.json +1231 -0
  82. package/src/db/migrations/meta/_journal.json +48 -0
package/dist/index.js ADDED
@@ -0,0 +1,116 @@
1
+ import {
2
+ ACTIVE_PLAN_STATUSES,
3
+ ActivePlanExistsError,
4
+ CodeBuddy,
5
+ DefaultPolicy,
6
+ EmbeddingWorker,
7
+ FACT_CATEGORIES,
8
+ HuggingFaceProvider,
9
+ INCIDENT_SEVERITIES,
10
+ MemoryFileStore,
11
+ PLAN_STATUSES,
12
+ PlanFileStore,
13
+ PlanLifecycle,
14
+ PlanLockError,
15
+ PlanNotFoundError,
16
+ PlanTransitionError,
17
+ PlanValidationError,
18
+ RiskAssessor,
19
+ assessRisk,
20
+ createChurnSignal,
21
+ createIncidentSignal,
22
+ createPolicySignal,
23
+ createPostgresRepository,
24
+ createRuntime,
25
+ createTracer,
26
+ decodeFactCursor,
27
+ encodeFactCursor,
28
+ inspectNamespace,
29
+ isLangSmithTracingEnabled,
30
+ listFactsPage,
31
+ mcpToolInputSchemas,
32
+ migrateMemoryToFiles,
33
+ readPolicyFile,
34
+ registerCodeBuddyTools,
35
+ resolveRiskPaths,
36
+ runDoctor,
37
+ startMcpServer
38
+ } from "./chunk-SYHB3AMM.js";
39
+ import {
40
+ clampBudgetForCallerModel,
41
+ countTokens
42
+ } from "./chunk-5OWZVZSO.js";
43
+ import "./chunk-TI5TQD6D.js";
44
+ import {
45
+ buildArchitectureMap,
46
+ neighbours,
47
+ queryMap
48
+ } from "./chunk-IBMJYIEP.js";
49
+ import "./chunk-PQK3GKZH.js";
50
+ import "./chunk-IHQM2ZDV.js";
51
+ import "./chunk-GDJH7XJC.js";
52
+ import {
53
+ PLAN_POLICIES,
54
+ checkConfigPermissions,
55
+ configPath,
56
+ initConfigFile,
57
+ initProjectScaffold,
58
+ loadPlanPolicy,
59
+ loadRuntimeConfig,
60
+ redactSecrets,
61
+ setPlanPolicy
62
+ } from "./chunk-K63EOA4B.js";
63
+ import "./chunk-PZ5AY32C.js";
64
+ export {
65
+ ACTIVE_PLAN_STATUSES,
66
+ ActivePlanExistsError,
67
+ CodeBuddy,
68
+ DefaultPolicy,
69
+ EmbeddingWorker,
70
+ FACT_CATEGORIES,
71
+ HuggingFaceProvider,
72
+ INCIDENT_SEVERITIES,
73
+ MemoryFileStore,
74
+ PLAN_POLICIES,
75
+ PLAN_STATUSES,
76
+ PlanFileStore,
77
+ PlanLifecycle,
78
+ PlanLockError,
79
+ PlanNotFoundError,
80
+ PlanTransitionError,
81
+ PlanValidationError,
82
+ RiskAssessor,
83
+ assessRisk,
84
+ buildArchitectureMap,
85
+ checkConfigPermissions,
86
+ clampBudgetForCallerModel,
87
+ configPath,
88
+ countTokens,
89
+ createChurnSignal,
90
+ createIncidentSignal,
91
+ createPolicySignal,
92
+ createPostgresRepository,
93
+ createRuntime,
94
+ createTracer,
95
+ decodeFactCursor,
96
+ encodeFactCursor,
97
+ initConfigFile,
98
+ initProjectScaffold,
99
+ inspectNamespace,
100
+ isLangSmithTracingEnabled,
101
+ listFactsPage,
102
+ loadPlanPolicy,
103
+ loadRuntimeConfig,
104
+ mcpToolInputSchemas,
105
+ migrateMemoryToFiles,
106
+ neighbours,
107
+ queryMap,
108
+ readPolicyFile,
109
+ redactSecrets,
110
+ registerCodeBuddyTools,
111
+ resolveRiskPaths,
112
+ runDoctor,
113
+ setPlanPolicy,
114
+ startMcpServer
115
+ };
116
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,53 @@
1
+ import { P as PlannedContext, C as CodeBuddy } from '../codebuddy-D2xJ6hFk.js';
2
+ import 'zod';
3
+
4
+ type CodeBuddyCheckpointerOptions = {
5
+ namespace?: string;
6
+ };
7
+ type CheckpointConfig = {
8
+ configurable?: {
9
+ thread_id?: string;
10
+ checkpoint_id?: string;
11
+ checkpoint_ns?: string;
12
+ [key: string]: unknown;
13
+ };
14
+ };
15
+ type CheckpointTuple = {
16
+ config: CheckpointConfig;
17
+ checkpoint: unknown;
18
+ metadata?: unknown;
19
+ parentConfig?: CheckpointConfig;
20
+ pendingWrites?: Array<[string, string, unknown]>;
21
+ };
22
+ declare class CodeBuddyCheckpointer {
23
+ readonly options: CodeBuddyCheckpointerOptions;
24
+ private readonly checkpoints;
25
+ constructor(options?: CodeBuddyCheckpointerOptions);
26
+ getTuple(config: CheckpointConfig): Promise<CheckpointTuple | undefined>;
27
+ put(config: CheckpointConfig, checkpoint: unknown, metadata?: unknown, newVersions?: unknown): Promise<CheckpointConfig>;
28
+ putWrites(config: CheckpointConfig, writes: Array<[string, unknown]>, taskId: string): Promise<void>;
29
+ list(config: CheckpointConfig): AsyncGenerator<CheckpointTuple>;
30
+ private scope;
31
+ }
32
+
33
+ type CodeBuddyState = {
34
+ messages: unknown[];
35
+ memory?: PlannedContext;
36
+ sessionId: string;
37
+ agentId?: string;
38
+ };
39
+
40
+ type CodeBuddyNodeOptions = {
41
+ memory: CodeBuddy;
42
+ mode: "recall" | "remember";
43
+ cacheTtlSeconds?: number;
44
+ };
45
+ declare class CodeBuddyNode {
46
+ readonly options: CodeBuddyNodeOptions;
47
+ private readonly cache;
48
+ constructor(options: CodeBuddyNodeOptions);
49
+ invoke(_state: CodeBuddyState): Promise<Partial<CodeBuddyState>>;
50
+ call(state: CodeBuddyState): Promise<Partial<CodeBuddyState>>;
51
+ }
52
+
53
+ export { CodeBuddyCheckpointer, CodeBuddyNode, type CodeBuddyState };
@@ -0,0 +1,143 @@
1
+ import "../chunk-PZ5AY32C.js";
2
+
3
+ // src/langgraph/checkpointer.ts
4
+ var CodeBuddyCheckpointer = class {
5
+ options;
6
+ checkpoints = /* @__PURE__ */ new Map();
7
+ constructor(options = {}) {
8
+ this.options = options;
9
+ }
10
+ async getTuple(config) {
11
+ const threadId = requireThreadId(config);
12
+ const checkpointId = config.configurable?.checkpoint_id;
13
+ const scope = this.scope(config);
14
+ if (checkpointId) return this.checkpoints.get(key(scope, threadId, checkpointId));
15
+ const tuples = Array.from(this.checkpoints.values()).filter(
16
+ (tuple) => tuple.config.configurable?.thread_id === threadId && this.scope(tuple.config) === scope
17
+ );
18
+ return tuples.at(-1);
19
+ }
20
+ async put(config, checkpoint, metadata, newVersions) {
21
+ const threadId = requireThreadId(config);
22
+ const checkpointId = checkpointIdFrom(checkpoint);
23
+ if (!checkpointId) throw new Error("CodeBuddyCheckpointer requires checkpoint.id.");
24
+ const nextConfig = {
25
+ ...config,
26
+ configurable: {
27
+ ...config.configurable,
28
+ thread_id: threadId,
29
+ checkpoint_ns: config.configurable?.checkpoint_ns ?? "",
30
+ checkpoint_id: checkpointId
31
+ }
32
+ };
33
+ const tuple = {
34
+ config: nextConfig,
35
+ checkpoint,
36
+ metadata: { ...metadata && typeof metadata === "object" ? metadata : {}, newVersions }
37
+ };
38
+ if (config.configurable?.checkpoint_id) {
39
+ tuple.parentConfig = config;
40
+ }
41
+ this.checkpoints.set(key(this.scope(config), threadId, checkpointId), tuple);
42
+ return nextConfig;
43
+ }
44
+ async putWrites(config, writes, taskId) {
45
+ const tuple = await this.getTuple(config);
46
+ if (!tuple || !config.configurable?.checkpoint_id) {
47
+ throw new Error("CodeBuddyCheckpointer requires an existing checkpoint for writes.");
48
+ }
49
+ const pending = tuple.pendingWrites ?? [];
50
+ for (const [channel, value] of writes) pending.push([taskId, channel, value]);
51
+ tuple.pendingWrites = pending;
52
+ }
53
+ async *list(config) {
54
+ const threadId = requireThreadId(config);
55
+ const scope = this.scope(config);
56
+ const tuples = Array.from(this.checkpoints.values()).filter(
57
+ (tuple) => tuple.config.configurable?.thread_id === threadId && this.scope(tuple.config) === scope
58
+ ).reverse();
59
+ for (const tuple of tuples) yield tuple;
60
+ }
61
+ scope(config) {
62
+ return `${this.options.namespace ?? ""}${config.configurable?.checkpoint_ns ?? ""}`;
63
+ }
64
+ };
65
+ function key(scope, threadId, checkpointId) {
66
+ return JSON.stringify([scope, threadId, checkpointId]);
67
+ }
68
+ function requireThreadId(config) {
69
+ const threadId = config.configurable?.thread_id;
70
+ if (!threadId || typeof threadId !== "string") {
71
+ throw new Error("CodeBuddyCheckpointer requires configurable.thread_id.");
72
+ }
73
+ return threadId;
74
+ }
75
+ function checkpointIdFrom(checkpoint) {
76
+ if (!checkpoint || typeof checkpoint !== "object") return void 0;
77
+ const value = checkpoint.id;
78
+ return typeof value === "string" ? value : void 0;
79
+ }
80
+
81
+ // src/langgraph/node.ts
82
+ var CodeBuddyNode = class {
83
+ options;
84
+ cache = /* @__PURE__ */ new Map();
85
+ constructor(options) {
86
+ this.options = options;
87
+ }
88
+ async invoke(_state) {
89
+ if (this.options.mode === "recall") {
90
+ const query = lastMessageText(_state.messages);
91
+ const namespace = this.options.memory.config.namespace;
92
+ const key2 = `${namespace}${_state.sessionId}${query}`;
93
+ const cached = this.cache.get(key2);
94
+ if (cached && cached.expiresAt > Date.now()) {
95
+ return cached.memory ? { memory: cached.memory } : {};
96
+ }
97
+ const memory = await this.options.memory.recall({
98
+ sessionId: _state.sessionId,
99
+ query
100
+ });
101
+ const ttl = Math.max(0, this.options.cacheTtlSeconds ?? 30);
102
+ if (ttl > 0) {
103
+ this.cache.set(key2, { expiresAt: Date.now() + ttl * 1e3, memory });
104
+ }
105
+ return { memory };
106
+ }
107
+ const content = lastMessageText(_state.messages);
108
+ if (!content) return {};
109
+ await this.options.memory.remember({
110
+ sessionId: _state.sessionId,
111
+ content,
112
+ ...typeof _state.agentId === "string" ? { agentId: _state.agentId } : {}
113
+ });
114
+ return {};
115
+ }
116
+ async call(state) {
117
+ return this.invoke(state);
118
+ }
119
+ };
120
+ function lastMessageText(messages) {
121
+ const message = messages.at(-1);
122
+ if (!message) return "";
123
+ if (typeof message === "string") return message;
124
+ if (typeof message !== "object") return String(message);
125
+ const maybe = message;
126
+ const content = maybe.content ?? maybe.text ?? "";
127
+ if (typeof content === "string") return content;
128
+ if (Array.isArray(content)) {
129
+ return content.map((part) => {
130
+ if (typeof part === "string") return part;
131
+ if (part && typeof part === "object" && "text" in part) {
132
+ return String(part.text);
133
+ }
134
+ return "";
135
+ }).filter(Boolean).join("\n");
136
+ }
137
+ return String(content);
138
+ }
139
+ export {
140
+ CodeBuddyCheckpointer,
141
+ CodeBuddyNode
142
+ };
143
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/langgraph/checkpointer.ts","../../src/langgraph/node.ts"],"sourcesContent":["export type CodeBuddyCheckpointerOptions = {\n namespace?: string;\n};\n\nexport type CheckpointConfig = {\n configurable?: {\n thread_id?: string;\n checkpoint_id?: string;\n checkpoint_ns?: string;\n [key: string]: unknown;\n };\n};\n\nexport type CheckpointTuple = {\n config: CheckpointConfig;\n checkpoint: unknown;\n metadata?: unknown;\n parentConfig?: CheckpointConfig;\n pendingWrites?: Array<[string, string, unknown]>;\n};\n\nexport class CodeBuddyCheckpointer {\n readonly options: CodeBuddyCheckpointerOptions;\n private readonly checkpoints = new Map<string, CheckpointTuple>();\n\n constructor(options: CodeBuddyCheckpointerOptions = {}) {\n this.options = options;\n }\n\n async getTuple(config: CheckpointConfig): Promise<CheckpointTuple | undefined> {\n const threadId = requireThreadId(config);\n const checkpointId = config.configurable?.checkpoint_id;\n const scope = this.scope(config);\n if (checkpointId) return this.checkpoints.get(key(scope, threadId, checkpointId));\n const tuples = Array.from(this.checkpoints.values()).filter(\n (tuple) =>\n tuple.config.configurable?.thread_id === threadId && this.scope(tuple.config) === scope,\n );\n return tuples.at(-1);\n }\n\n async put(\n config: CheckpointConfig,\n checkpoint: unknown,\n metadata?: unknown,\n newVersions?: unknown,\n ): Promise<CheckpointConfig> {\n const threadId = requireThreadId(config);\n const checkpointId = checkpointIdFrom(checkpoint);\n if (!checkpointId) throw new Error(\"CodeBuddyCheckpointer requires checkpoint.id.\");\n const nextConfig = {\n ...config,\n configurable: {\n ...config.configurable,\n thread_id: threadId,\n checkpoint_ns: config.configurable?.checkpoint_ns ?? \"\",\n checkpoint_id: checkpointId,\n },\n };\n const tuple: CheckpointTuple = {\n config: nextConfig,\n checkpoint,\n metadata: { ...(metadata && typeof metadata === \"object\" ? metadata : {}), newVersions },\n };\n if (config.configurable?.checkpoint_id) {\n tuple.parentConfig = config;\n }\n this.checkpoints.set(key(this.scope(config), threadId, checkpointId), tuple);\n return nextConfig;\n }\n\n async putWrites(\n config: CheckpointConfig,\n writes: Array<[string, unknown]>,\n taskId: string,\n ): Promise<void> {\n const tuple = await this.getTuple(config);\n if (!tuple || !config.configurable?.checkpoint_id) {\n throw new Error(\"CodeBuddyCheckpointer requires an existing checkpoint for writes.\");\n }\n const pending = tuple.pendingWrites ?? [];\n for (const [channel, value] of writes) pending.push([taskId, channel, value]);\n tuple.pendingWrites = pending;\n }\n\n async *list(config: CheckpointConfig): AsyncGenerator<CheckpointTuple> {\n const threadId = requireThreadId(config);\n const scope = this.scope(config);\n const tuples = Array.from(this.checkpoints.values())\n .filter(\n (tuple) =>\n tuple.config.configurable?.thread_id === threadId && this.scope(tuple.config) === scope,\n )\n .reverse();\n for (const tuple of tuples) yield tuple;\n }\n\n private scope(config: CheckpointConfig): string {\n return `${this.options.namespace ?? \"\"}\\u001f${config.configurable?.checkpoint_ns ?? \"\"}`;\n }\n}\n\nfunction key(scope: string, threadId: string, checkpointId: string): string {\n return JSON.stringify([scope, threadId, checkpointId]);\n}\n\nfunction requireThreadId(config: CheckpointConfig): string {\n const threadId = config.configurable?.thread_id;\n if (!threadId || typeof threadId !== \"string\") {\n throw new Error(\"CodeBuddyCheckpointer requires configurable.thread_id.\");\n }\n return threadId;\n}\n\nfunction checkpointIdFrom(checkpoint: unknown): string | undefined {\n if (!checkpoint || typeof checkpoint !== \"object\") return undefined;\n const value = (checkpoint as { id?: unknown }).id;\n return typeof value === \"string\" ? value : undefined;\n}\n","import type { CodeBuddy } from \"../core/codebuddy.js\";\nimport type { CodeBuddyState } from \"./types.js\";\n\nexport type CodeBuddyNodeOptions = {\n memory: CodeBuddy;\n mode: \"recall\" | \"remember\";\n cacheTtlSeconds?: number;\n};\n\nexport class CodeBuddyNode {\n readonly options: CodeBuddyNodeOptions;\n private readonly cache = new Map<\n string,\n { expiresAt: number; memory: CodeBuddyState[\"memory\"] }\n >();\n\n constructor(options: CodeBuddyNodeOptions) {\n this.options = options;\n }\n\n async invoke(_state: CodeBuddyState): Promise<Partial<CodeBuddyState>> {\n if (this.options.mode === \"recall\") {\n const query = lastMessageText(_state.messages);\n const namespace = this.options.memory.config.namespace;\n const key = `${namespace}\\x1f${_state.sessionId}\\x1f${query}`;\n const cached = this.cache.get(key);\n if (cached && cached.expiresAt > Date.now()) {\n return cached.memory ? { memory: cached.memory } : {};\n }\n const memory = await this.options.memory.recall({\n sessionId: _state.sessionId,\n query,\n });\n const ttl = Math.max(0, this.options.cacheTtlSeconds ?? 30);\n if (ttl > 0) {\n this.cache.set(key, { expiresAt: Date.now() + ttl * 1000, memory });\n }\n return { memory };\n }\n\n const content = lastMessageText(_state.messages);\n if (!content) return {};\n await this.options.memory.remember({\n sessionId: _state.sessionId,\n content,\n ...(typeof _state.agentId === \"string\" ? { agentId: _state.agentId } : {}),\n });\n return {};\n }\n\n async call(state: CodeBuddyState): Promise<Partial<CodeBuddyState>> {\n return this.invoke(state);\n }\n}\n\nfunction lastMessageText(messages: unknown[]): string {\n const message = messages.at(-1);\n if (!message) return \"\";\n if (typeof message === \"string\") return message;\n if (typeof message !== \"object\") return String(message);\n const maybe = message as { content?: unknown; text?: unknown };\n const content = maybe.content ?? maybe.text ?? \"\";\n if (typeof content === \"string\") return content;\n if (Array.isArray(content)) {\n return content\n .map((part) => {\n if (typeof part === \"string\") return part;\n if (part && typeof part === \"object\" && \"text\" in part) {\n return String((part as { text: unknown }).text);\n }\n return \"\";\n })\n .filter(Boolean)\n .join(\"\\n\");\n }\n return String(content);\n}\n"],"mappings":"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","names":["key"]}
@@ -0,0 +1,13 @@
1
+ import {
2
+ runLeanHookCommand
3
+ } from "./chunk-DSN5CEHO.js";
4
+ import "./chunk-PYLH4MH5.js";
5
+ import "./chunk-5OWZVZSO.js";
6
+ import "./chunk-IBMJYIEP.js";
7
+ import "./chunk-PQK3GKZH.js";
8
+ import "./chunk-K63EOA4B.js";
9
+ import "./chunk-PZ5AY32C.js";
10
+ export {
11
+ runLeanHookCommand
12
+ };
13
+ //# sourceMappingURL=lean-command-D6TZJEFX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}