@devflow-tools/sdk 0.14.4 → 0.16.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 (96) hide show
  1. package/README.md +1 -1
  2. package/dist/api-client.d.ts +16 -14
  3. package/dist/api-client.d.ts.map +1 -1
  4. package/dist/api-client.js +24 -7
  5. package/dist/api-client.js.map +1 -1
  6. package/dist/auth.d.ts +8 -0
  7. package/dist/auth.d.ts.map +1 -0
  8. package/dist/auth.js +53 -0
  9. package/dist/auth.js.map +1 -0
  10. package/dist/data/LocalDataProvider.d.ts +6 -3
  11. package/dist/data/LocalDataProvider.d.ts.map +1 -1
  12. package/dist/data/LocalDataProvider.js +46 -55
  13. package/dist/data/LocalDataProvider.js.map +1 -1
  14. package/dist/data/LocalDataProvider.test.js +5 -2
  15. package/dist/data/LocalDataProvider.test.js.map +1 -1
  16. package/dist/data/default-enforcer-rules.d.ts +5 -0
  17. package/dist/data/default-enforcer-rules.d.ts.map +1 -0
  18. package/dist/data/default-enforcer-rules.js +163 -0
  19. package/dist/data/default-enforcer-rules.js.map +1 -0
  20. package/dist/data/devflow-schema.d.ts +3 -0
  21. package/dist/data/devflow-schema.d.ts.map +1 -0
  22. package/dist/data/devflow-schema.js +58 -0
  23. package/dist/data/devflow-schema.js.map +1 -0
  24. package/dist/index.d.ts +6 -0
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +6 -0
  27. package/dist/index.js.map +1 -1
  28. package/dist/interfaces/IDataProvider.d.ts +3 -1
  29. package/dist/interfaces/IDataProvider.d.ts.map +1 -1
  30. package/dist/interfaces/IMemoryEngine.d.ts +4 -12
  31. package/dist/interfaces/IMemoryEngine.d.ts.map +1 -1
  32. package/dist/llm/DirectAPIClient.d.ts.map +1 -1
  33. package/dist/llm/DirectAPIClient.js +11 -5
  34. package/dist/llm/DirectAPIClient.js.map +1 -1
  35. package/dist/llm/index.d.ts +0 -1
  36. package/dist/llm/index.d.ts.map +1 -1
  37. package/dist/llm/index.js +0 -1
  38. package/dist/llm/index.js.map +1 -1
  39. package/dist/paths.d.ts +7 -0
  40. package/dist/paths.d.ts.map +1 -0
  41. package/dist/paths.js +24 -0
  42. package/dist/paths.js.map +1 -0
  43. package/dist/paths.test.d.ts +2 -0
  44. package/dist/paths.test.d.ts.map +1 -0
  45. package/dist/paths.test.js +32 -0
  46. package/dist/paths.test.js.map +1 -0
  47. package/dist/plugin-loader.d.ts +1 -1
  48. package/dist/plugin-loader.d.ts.map +1 -1
  49. package/dist/plugin-loader.js +27 -19
  50. package/dist/plugin-loader.js.map +1 -1
  51. package/dist/plugin-workflow.d.ts +3 -0
  52. package/dist/plugin-workflow.d.ts.map +1 -0
  53. package/dist/plugin-workflow.js +31 -0
  54. package/dist/plugin-workflow.js.map +1 -0
  55. package/dist/types/benchmark.d.ts +84 -0
  56. package/dist/types/benchmark.d.ts.map +1 -1
  57. package/dist/types/context.d.ts +5 -0
  58. package/dist/types/context.d.ts.map +1 -1
  59. package/dist/types/enforcer.d.ts +16 -0
  60. package/dist/types/enforcer.d.ts.map +1 -1
  61. package/dist/types/index.d.ts +1 -0
  62. package/dist/types/index.d.ts.map +1 -1
  63. package/dist/types/index.js +1 -0
  64. package/dist/types/index.js.map +1 -1
  65. package/dist/types/knowledge.d.ts +9 -1
  66. package/dist/types/knowledge.d.ts.map +1 -1
  67. package/dist/types/memory.d.ts +70 -1
  68. package/dist/types/memory.d.ts.map +1 -1
  69. package/dist/types/memory.js +35 -1
  70. package/dist/types/memory.js.map +1 -1
  71. package/dist/types/memory.test.d.ts +2 -0
  72. package/dist/types/memory.test.d.ts.map +1 -0
  73. package/dist/types/memory.test.js +13 -0
  74. package/dist/types/memory.test.js.map +1 -0
  75. package/dist/types/plugin.d.ts +24 -2
  76. package/dist/types/plugin.d.ts.map +1 -1
  77. package/dist/types/retrieval.d.ts +12 -0
  78. package/dist/types/retrieval.d.ts.map +1 -0
  79. package/dist/types/retrieval.js +2 -0
  80. package/dist/types/retrieval.js.map +1 -0
  81. package/dist/types/telemetry.d.ts +3 -0
  82. package/dist/types/telemetry.d.ts.map +1 -1
  83. package/dist/types/workflow.d.ts +11 -0
  84. package/dist/types/workflow.d.ts.map +1 -1
  85. package/dist/utils/config.d.ts +6 -0
  86. package/dist/utils/config.d.ts.map +1 -1
  87. package/dist/utils/config.js.map +1 -1
  88. package/dist/utils/project-scanner.d.ts +20 -0
  89. package/dist/utils/project-scanner.d.ts.map +1 -0
  90. package/dist/utils/project-scanner.js +300 -0
  91. package/dist/utils/project-scanner.js.map +1 -0
  92. package/package.json +11 -2
  93. package/dist/llm/CliSubAgentClient.d.ts +0 -9
  94. package/dist/llm/CliSubAgentClient.d.ts.map +0 -1
  95. package/dist/llm/CliSubAgentClient.js +0 -68
  96. package/dist/llm/CliSubAgentClient.js.map +0 -1
@@ -0,0 +1,163 @@
1
+ const constitutional = (rule) => ({
2
+ ...rule,
3
+ gate: 1,
4
+ level: "constitutional",
5
+ enabled: true,
6
+ });
7
+ export const DEFAULT_ENFORCER_RULES = [
8
+ constitutional({
9
+ id: "C001",
10
+ name: "Session Token 缺失",
11
+ condition: { requireFields: ["_devflow_token"] },
12
+ action: "warn",
13
+ message: "缺少 Session Token。当前调用处于降级认证模式。",
14
+ }),
15
+ constitutional({
16
+ id: "C002",
17
+ name: "Session Token 过期",
18
+ condition: { paramPatterns: { "_devflow_token.expired": "^true$" } },
19
+ action: "warn",
20
+ message: "Session Token 已过期,DevFlow 将自动续期。",
21
+ }),
22
+ constitutional({
23
+ id: "C003",
24
+ name: "调用速率限制",
25
+ condition: { maxCallsPerMinute: 60 },
26
+ action: "warn",
27
+ message: "调用频率超过每分钟 60 次,请降低请求速率。",
28
+ }),
29
+ constitutional({
30
+ id: "C004",
31
+ name: "危险 Shell 命令",
32
+ condition: {
33
+ toolPatterns: ["^(bash|shell|run_command|execute_command)$"],
34
+ forbidPatterns: ["(^|\\s)(rm\\s+-rf|mkfs(\\.|\\s)|dd\\s+if=|shutdown|reboot)(\\s|$)"],
35
+ },
36
+ action: "deny",
37
+ message: "检测到高风险系统命令,执行已阻止。",
38
+ }),
39
+ constitutional({
40
+ id: "C005",
41
+ name: "禁止强制推送",
42
+ condition: { forbidPatterns: ["git\\s+push(?:\\s+[^\\n]*)?\\s(?:--force|-f)(?:\\s|$)"] },
43
+ action: "deny",
44
+ message: "禁止未经显式治理规则批准的 Git 强制推送。",
45
+ }),
46
+ constitutional({
47
+ id: "C006",
48
+ name: "保护敏感文件",
49
+ condition: {
50
+ toolPatterns: ["(write|edit|patch|create|delete|remove|move|rename)"],
51
+ forbidPatterns: ["(^|/)(\\.env(?:\\.[^/]*)?|id_rsa|id_ed25519|credentials(?:\\.json)?|secrets?\\.(?:json|ya?ml))$"],
52
+ },
53
+ action: "deny",
54
+ message: "目标包含敏感凭据文件,写入已阻止。",
55
+ }),
56
+ constitutional({
57
+ id: "C007",
58
+ name: "阻止明文凭据",
59
+ condition: {
60
+ toolPatterns: ["(write|edit|patch|create|save|update)"],
61
+ forbidPatterns: ["(?:sk-[A-Za-z0-9_-]{20,}|AKIA[0-9A-Z]{16}|-----BEGIN (?:RSA |OPENSSH )?PRIVATE KEY-----)"],
62
+ },
63
+ action: "deny",
64
+ message: "检测到疑似明文凭据或私钥,写入已阻止。",
65
+ }),
66
+ constitutional({
67
+ id: "C008",
68
+ name: "Token 预算上限",
69
+ condition: { maxNumericFields: { maxTokens: 200000, max_tokens: 200000, tokenBudget: 200000, token_budget: 200000 } },
70
+ action: "warn",
71
+ message: "请求的 Token 预算超过 200000,请拆分任务或降低预算。",
72
+ }),
73
+ constitutional({
74
+ id: "C009",
75
+ name: "项目根目录必填",
76
+ condition: {
77
+ toolPatterns: ["^(get_project_context|search_symbol|get_dependency_graph|react_|vue_|nest_|next_|express_)"],
78
+ requireFields: ["projectRoot"],
79
+ },
80
+ action: "deny",
81
+ message: "该工具必须显式提供 projectRoot,禁止使用进程 cwd 推断。",
82
+ }),
83
+ constitutional({
84
+ id: "C010",
85
+ name: "破坏性 SQL",
86
+ condition: {
87
+ toolPatterns: ["(sql|query|database|db)"],
88
+ forbidPatterns: ["\\b(?:DROP\\s+(?:DATABASE|TABLE)|TRUNCATE\\s+TABLE|DELETE\\s+FROM\\s+[^;]+(?:;|$))"],
89
+ },
90
+ action: "deny",
91
+ message: "检测到破坏性 SQL,执行已阻止。",
92
+ }),
93
+ {
94
+ id: "S001",
95
+ name: "领域工具先获取项目上下文",
96
+ gate: 2,
97
+ level: "project",
98
+ condition: {
99
+ toolPatterns: ["^(react|vue|nest|next|express|typescript|testing|security|database)_"],
100
+ requirePriorTools: ["get_project_context"],
101
+ },
102
+ action: "warn",
103
+ message: "Gate 2:调用领域能力前应先执行 get_project_context。",
104
+ enabled: true,
105
+ },
106
+ {
107
+ id: "S002",
108
+ name: "代码生成先获取项目上下文",
109
+ gate: 2,
110
+ level: "project",
111
+ condition: {
112
+ toolPatterns: ["(generate|scaffold|refactor|code_write)"],
113
+ requirePriorTools: ["get_project_context"],
114
+ },
115
+ action: "warn",
116
+ message: "Gate 2:生成或重构代码前必须先获取项目上下文。",
117
+ enabled: true,
118
+ },
119
+ {
120
+ id: "I001",
121
+ name: "上下文告警拦截写入",
122
+ gate: 3,
123
+ level: "session",
124
+ condition: {
125
+ toolPatterns: ["(write|edit|patch|create|generate|refactor|code_write)"],
126
+ requiresContextWarning: true,
127
+ },
128
+ action: "warn",
129
+ message: "Gate 3:最近的项目上下文包含告警或低置信度,请先补充检索再写代码。",
130
+ enabled: true,
131
+ },
132
+ {
133
+ id: "I002",
134
+ name: "低置信度上下文拦截工作流",
135
+ gate: 3,
136
+ level: "session",
137
+ condition: {
138
+ toolPatterns: ["(workflow|execute|run)_"],
139
+ requiresContextWarning: true,
140
+ },
141
+ action: "warn",
142
+ message: "Gate 3:上下文质量不足,执行工作流前应确认告警并缩小范围。",
143
+ enabled: true,
144
+ },
145
+ {
146
+ id: "R001",
147
+ name: "失败后自动纠正",
148
+ gate: 4,
149
+ level: "session",
150
+ condition: { tools: ["*"], requiresPreviousFailure: true },
151
+ action: "warn",
152
+ message: "Gate 4:上一工具调用失败。请根据失败信息调整参数、缩小操作范围后重试。",
153
+ enabled: true,
154
+ },
155
+ ];
156
+ export async function seedDefaultEnforcerRules(provider) {
157
+ const existing = new Set((await provider.ruleGetAll({ includeDisabled: true })).map((rule) => rule.id));
158
+ for (const rule of DEFAULT_ENFORCER_RULES) {
159
+ if (!existing.has(rule.id))
160
+ await provider.ruleSave(rule);
161
+ }
162
+ }
163
+ //# sourceMappingURL=default-enforcer-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-enforcer-rules.js","sourceRoot":"","sources":["../../src/data/default-enforcer-rules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const DEVFLOW_TABLE_NAMES: readonly ["devflow_kv", "devflow_sessions", "devflow_telemetry_runs", "devflow_benchmark_reports", "devflow_workflow_runs", "devflow_knowledge_entries", "devflow_tool_calls", "devflow_rules", "devflow_audit_chain"];
2
+ export declare const DEVFLOW_SCHEMA_SQL = "\n CREATE TABLE IF NOT EXISTS devflow_kv (\n key TEXT PRIMARY KEY, value TEXT\n );\n CREATE TABLE IF NOT EXISTS devflow_sessions (\n session_id TEXT, timestamp INTEGER, event TEXT, data TEXT\n );\n CREATE TABLE IF NOT EXISTS devflow_telemetry_runs (\n id TEXT PRIMARY KEY, agent TEXT, mode TEXT, status TEXT,\n started_at INTEGER, finished_at INTEGER, token_used INTEGER, data TEXT\n );\n CREATE TABLE IF NOT EXISTS devflow_benchmark_reports (\n id TEXT PRIMARY KEY, task TEXT, score REAL, started_at INTEGER,\n finished_at INTEGER, data TEXT\n );\n CREATE TABLE IF NOT EXISTS devflow_workflow_runs (\n run_id TEXT PRIMARY KEY, type TEXT, status TEXT, input TEXT,\n steps TEXT, started_at INTEGER, finished_at INTEGER,\n failure_category TEXT, failure_reason TEXT, failure_evidence TEXT\n );\n CREATE TABLE IF NOT EXISTS devflow_knowledge_entries (\n id TEXT PRIMARY KEY, source TEXT, title TEXT, content TEXT\n );\n CREATE TABLE IF NOT EXISTS devflow_tool_calls (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n tool TEXT NOT NULL,\n args TEXT,\n timestamp INTEGER NOT NULL,\n duration_ms INTEGER NOT NULL,\n error TEXT\n );\n CREATE TABLE IF NOT EXISTS devflow_rules (\n id TEXT PRIMARY KEY, name TEXT NOT NULL, level TEXT NOT NULL DEFAULT 'project',\n gate INTEGER NOT NULL DEFAULT 1,\n condition_json TEXT NOT NULL, action TEXT NOT NULL DEFAULT 'warn',\n message TEXT NOT NULL, enabled INTEGER NOT NULL DEFAULT 1,\n created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL\n );\n CREATE TABLE IF NOT EXISTS devflow_audit_chain (\n seq INTEGER PRIMARY KEY AUTOINCREMENT, ts INTEGER NOT NULL,\n tool TEXT NOT NULL, args_hash TEXT NOT NULL,\n decision TEXT NOT NULL, rule_id TEXT,\n session_id TEXT NOT NULL, prev_hash TEXT NOT NULL,\n signature TEXT NOT NULL\n );\n";
3
+ //# sourceMappingURL=devflow-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devflow-schema.d.ts","sourceRoot":"","sources":["../../src/data/devflow-schema.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,wNAUtB,CAAC;AAEX,eAAO,MAAM,kBAAkB,s0DA6C9B,CAAC"}
@@ -0,0 +1,58 @@
1
+ export const DEVFLOW_TABLE_NAMES = [
2
+ 'devflow_kv',
3
+ 'devflow_sessions',
4
+ 'devflow_telemetry_runs',
5
+ 'devflow_benchmark_reports',
6
+ 'devflow_workflow_runs',
7
+ 'devflow_knowledge_entries',
8
+ 'devflow_tool_calls',
9
+ 'devflow_rules',
10
+ 'devflow_audit_chain',
11
+ ];
12
+ export const DEVFLOW_SCHEMA_SQL = `
13
+ CREATE TABLE IF NOT EXISTS devflow_kv (
14
+ key TEXT PRIMARY KEY, value TEXT
15
+ );
16
+ CREATE TABLE IF NOT EXISTS devflow_sessions (
17
+ session_id TEXT, timestamp INTEGER, event TEXT, data TEXT
18
+ );
19
+ CREATE TABLE IF NOT EXISTS devflow_telemetry_runs (
20
+ id TEXT PRIMARY KEY, agent TEXT, mode TEXT, status TEXT,
21
+ started_at INTEGER, finished_at INTEGER, token_used INTEGER, data TEXT
22
+ );
23
+ CREATE TABLE IF NOT EXISTS devflow_benchmark_reports (
24
+ id TEXT PRIMARY KEY, task TEXT, score REAL, started_at INTEGER,
25
+ finished_at INTEGER, data TEXT
26
+ );
27
+ CREATE TABLE IF NOT EXISTS devflow_workflow_runs (
28
+ run_id TEXT PRIMARY KEY, type TEXT, status TEXT, input TEXT,
29
+ steps TEXT, started_at INTEGER, finished_at INTEGER,
30
+ failure_category TEXT, failure_reason TEXT, failure_evidence TEXT
31
+ );
32
+ CREATE TABLE IF NOT EXISTS devflow_knowledge_entries (
33
+ id TEXT PRIMARY KEY, source TEXT, title TEXT, content TEXT
34
+ );
35
+ CREATE TABLE IF NOT EXISTS devflow_tool_calls (
36
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
37
+ tool TEXT NOT NULL,
38
+ args TEXT,
39
+ timestamp INTEGER NOT NULL,
40
+ duration_ms INTEGER NOT NULL,
41
+ error TEXT
42
+ );
43
+ CREATE TABLE IF NOT EXISTS devflow_rules (
44
+ id TEXT PRIMARY KEY, name TEXT NOT NULL, level TEXT NOT NULL DEFAULT 'project',
45
+ gate INTEGER NOT NULL DEFAULT 1,
46
+ condition_json TEXT NOT NULL, action TEXT NOT NULL DEFAULT 'warn',
47
+ message TEXT NOT NULL, enabled INTEGER NOT NULL DEFAULT 1,
48
+ created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL
49
+ );
50
+ CREATE TABLE IF NOT EXISTS devflow_audit_chain (
51
+ seq INTEGER PRIMARY KEY AUTOINCREMENT, ts INTEGER NOT NULL,
52
+ tool TEXT NOT NULL, args_hash TEXT NOT NULL,
53
+ decision TEXT NOT NULL, rule_id TEXT,
54
+ session_id TEXT NOT NULL, prev_hash TEXT NOT NULL,
55
+ signature TEXT NOT NULL
56
+ );
57
+ `;
58
+ //# sourceMappingURL=devflow-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devflow-schema.js","sourceRoot":"","sources":["../../src/data/devflow-schema.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,YAAY;IACZ,kBAAkB;IAClB,wBAAwB;IACxB,2BAA2B;IAC3B,uBAAuB;IACvB,2BAA2B;IAC3B,oBAAoB;IACpB,eAAe;IACf,qBAAqB;CACb,CAAC;AAEX,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CjC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -6,9 +6,15 @@ export * from "./utils/token-counter.js";
6
6
  export * from "./utils/config.js";
7
7
  export * from "./utils/paths.js";
8
8
  export * from "./utils/logger.js";
9
+ export * from "./utils/project-scanner.js";
9
10
  export * from "./data/LocalDataProvider.js";
11
+ export * from "./data/devflow-schema.js";
12
+ export * from "./data/default-enforcer-rules.js";
10
13
  export * from "./plugin-loader.js";
11
14
  export { DevFlowApiClient } from "./api-client.js";
12
15
  export * from "./step-templates/index.js";
13
16
  export * from "./llm/index.js";
17
+ export * from "./paths.js";
18
+ export * from "./auth.js";
19
+ export * from "./plugin-workflow.js";
14
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -6,9 +6,15 @@ export * from "./utils/token-counter.js";
6
6
  export * from "./utils/config.js";
7
7
  export * from "./utils/paths.js";
8
8
  export * from "./utils/logger.js";
9
+ export * from "./utils/project-scanner.js";
9
10
  export * from "./data/LocalDataProvider.js";
11
+ export * from "./data/devflow-schema.js";
12
+ export * from "./data/default-enforcer-rules.js";
10
13
  export * from "./plugin-loader.js";
11
14
  export { DevFlowApiClient } from "./api-client.js";
12
15
  export * from "./step-templates/index.js";
13
16
  export * from "./llm/index.js";
17
+ export * from "./paths.js";
18
+ export * from "./auth.js";
19
+ export * from "./plugin-workflow.js";
14
20
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC"}
@@ -59,7 +59,9 @@ export interface IDataProvider {
59
59
  auditGetAll(): Promise<AuditEntry[]>;
60
60
  auditGetSecret(): Promise<string>;
61
61
  ruleSave(rule: Rule): Promise<void>;
62
- ruleGetAll(): Promise<Rule[]>;
62
+ ruleGetAll(options?: {
63
+ includeDisabled?: boolean;
64
+ }): Promise<Rule[]>;
63
65
  ruleDelete(id: string): Promise<void>;
64
66
  }
65
67
  //# sourceMappingURL=IDataProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IDataProvider.d.ts","sourceRoot":"","sources":["../../src/interfaces/IDataProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IDataProvider.d.ts","sourceRoot":"","sources":["../../src/interfaces/IDataProvider.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { UserPrefs, Convention, ProjectContext, SessionEntry, SessionMemory, MemoryCandidate, MemoryEntryRecord, MemoryFilter, MemorySearchOptions, MemorySearchResult } from "../types/memory.js";
1
+ import type { UserPrefs, Convention, ProjectContext, SessionEntry, SessionMemory, MemoryCandidate, MemoryEntryRecord, MemoryFilter, MemorySearchOptions, MemorySearchResult, GetMemoryOptions, GetMemoryResult, MemorySnapshotItem } from "../types/memory.js";
2
2
  import type { KnowledgeEntry } from "../types/plugin.js";
3
3
  export interface IMemoryEngine {
4
4
  getUserPreferences(): Promise<UserPrefs>;
@@ -12,12 +12,11 @@ export interface IMemoryEngine {
12
12
  closeSession(sessionId: string): Promise<void>;
13
13
  searchGlobal(query: string): Promise<KnowledgeEntry[]>;
14
14
  upsertGlobal(entries: KnowledgeEntry[]): Promise<void>;
15
- getAll(): Promise<{
16
- project: ProjectContext;
17
- user: UserPrefs;
15
+ getAll(options?: string | GetMemoryOptions): Promise<GetMemoryResult & {
18
16
  session?: SessionMemory;
19
- relevant: KnowledgeEntry[];
17
+ relevant?: KnowledgeEntry[];
20
18
  }>;
19
+ saveExplicitMemoryIntent(content: string, sessionId?: string): Promise<MemorySnapshotItem>;
21
20
  getCandidates(): Promise<MemoryCandidate[]>;
22
21
  approveCandidate(id: string): Promise<void>;
23
22
  rejectCandidate(id: string): Promise<void>;
@@ -29,12 +28,5 @@ export interface IMemoryEngine {
29
28
  getPendingMemories(): Promise<MemoryEntryRecord[]>;
30
29
  approveMemory(id: string): Promise<void>;
31
30
  rejectMemory(id: string): Promise<void>;
32
- extractMemories(events: Array<Record<string, unknown>>): Promise<MemoryEntryRecord[]>;
33
- getOllamaStatus(): Promise<{
34
- installed: boolean;
35
- running: boolean;
36
- modelAvailable: boolean;
37
- modelName: string;
38
- }>;
39
31
  }
40
32
  //# sourceMappingURL=IMemoryEngine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IMemoryEngine.d.ts","sourceRoot":"","sources":["../../src/interfaces/IMemoryEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxM,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,WAAW,aAAa;IAE5B,kBAAkB,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGjE,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7C,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,kBAAkB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAG5C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACtD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAG/C,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IACvD,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGvD,MAAM,IAAI,OAAO,CAAC;QAChB,OAAO,EAAE,cAAc,CAAC;QACxB,IAAI,EAAE,SAAS,CAAC;QAChB,OAAO,CAAC,EAAE,aAAa,CAAC;QACxB,QAAQ,EAAE,cAAc,EAAE,CAAC;KAC5B,CAAC,CAAC;IAGH,aAAa,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAC5C,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAG3C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACpF,YAAY,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAClE,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,WAAW,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACrG,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,kBAAkB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACnD,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACtF,eAAe,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,cAAc,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClH"}
1
+ {"version":3,"file":"IMemoryEngine.d.ts","sourceRoot":"","sources":["../../src/interfaces/IMemoryEngine.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DirectAPIClient.d.ts","sourceRoot":"","sources":["../../src/llm/DirectAPIClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAEjF,qBAAa,eAAgB,YAAW,SAAS;IAC/C,QAAQ,CAAC,IAAI,gBAAgB;IAE7B,IAAI,WAAW,IAAI,OAAO,CAMzB;IAEK,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;YAWvC,aAAa;YAiCb,oBAAoB;CAuCnC"}
1
+ {"version":3,"file":"DirectAPIClient.d.ts","sourceRoot":"","sources":["../../src/llm/DirectAPIClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAEjF,qBAAa,eAAgB,YAAW,SAAS;IAC/C,QAAQ,CAAC,IAAI,gBAAgB;IAE7B,IAAI,WAAW,IAAI,OAAO,CAOzB;IAEK,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;YAWvC,aAAa;YAqCb,oBAAoB;CAwCnC"}
@@ -2,28 +2,32 @@ export class DirectAPIClient {
2
2
  name = 'direct-api';
3
3
  get isAvailable() {
4
4
  return !!(process.env.ANTHROPIC_API_KEY ||
5
+ process.env.ANTHROPIC_AUTH_TOKEN ||
5
6
  process.env.OPENROUTER_API_KEY ||
6
7
  process.env.OPENAI_API_KEY);
7
8
  }
8
9
  async chat(request) {
9
- if (process.env.ANTHROPIC_API_KEY) {
10
+ if (process.env.ANTHROPIC_API_KEY || process.env.ANTHROPIC_AUTH_TOKEN) {
10
11
  return this.chatAnthropic(request);
11
12
  }
12
13
  const key = process.env.OPENROUTER_API_KEY || process.env.OPENAI_API_KEY;
13
14
  if (key) {
14
15
  return this.chatOpenAICompatible(request, key);
15
16
  }
16
- throw new Error('No API key configured. Set ANTHROPIC_API_KEY, OPENROUTER_API_KEY, or OPENAI_API_KEY.');
17
+ throw new Error('No API key configured. Set ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN, OPENROUTER_API_KEY, or OPENAI_API_KEY.');
17
18
  }
18
19
  async chatAnthropic(request) {
19
- const model = process.env.ANTHROPIC_MODEL || 'claude-haiku-4-5-20251001';
20
+ const apiKey = process.env.ANTHROPIC_API_KEY || process.env.ANTHROPIC_AUTH_TOKEN || '';
21
+ const baseUrl = process.env.ANTHROPIC_BASE_URL || 'https://api.anthropic.com';
22
+ const model = process.env.ANTHROPIC_MODEL || process.env.ANTHROPIC_DEFAULT_SONNET_MODEL || 'claude-haiku-4-5-20251001';
20
23
  const system = request.systemPrompt || undefined;
21
24
  const messages = request.messages.map(m => ({ role: m.role, content: m.content }));
22
- const resp = await fetch('https://api.anthropic.com/v1/messages', {
25
+ const timeoutMs = 15_000;
26
+ const resp = await fetch(`${baseUrl}/v1/messages`, {
23
27
  method: 'POST',
24
28
  headers: {
25
29
  'Content-Type': 'application/json',
26
- 'x-api-key': process.env.ANTHROPIC_API_KEY,
30
+ 'x-api-key': apiKey,
27
31
  'anthropic-version': '2023-06-01',
28
32
  },
29
33
  body: JSON.stringify({
@@ -32,6 +36,7 @@ export class DirectAPIClient {
32
36
  ...(system ? { system } : {}),
33
37
  messages,
34
38
  }),
39
+ signal: AbortSignal.timeout(timeoutMs),
35
40
  });
36
41
  if (!resp.ok) {
37
42
  const err = await resp.text().catch(() => '');
@@ -67,6 +72,7 @@ export class DirectAPIClient {
67
72
  temperature: request.temperature ?? 0.1,
68
73
  messages,
69
74
  }),
75
+ signal: AbortSignal.timeout(15_000),
70
76
  });
71
77
  if (!resp.ok) {
72
78
  const err = await resp.text().catch(() => '');
@@ -1 +1 @@
1
- {"version":3,"file":"DirectAPIClient.js","sourceRoot":"","sources":["../../src/llm/DirectAPIClient.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,eAAe;IACjB,IAAI,GAAG,YAAY,CAAC;IAE7B,IAAI,WAAW;QACb,OAAO,CAAC,CAAC,CACP,OAAO,CAAC,GAAG,CAAC,iBAAiB;YAC7B,OAAO,CAAC,GAAG,CAAC,kBAAkB;YAC9B,OAAO,CAAC,GAAG,CAAC,cAAc,CAC3B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAmB;QAC5B,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QACzE,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAC;IAC1G,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,OAAmB;QAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,2BAA2B,CAAC;QACzE,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,IAAI,SAAS,CAAC;QACjD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAEnF,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,uCAAuC,EAAE;YAChE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAkB;gBAC3C,mBAAmB,EAAE,YAAY;aAClC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK;gBACL,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;gBACrC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7B,QAAQ;aACT,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAS,CAAC;QACtC,OAAO;YACL,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE;YACvC,KAAK,EAAE,IAAI,EAAE,KAAK;YAClB,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS;SACtG,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,OAAmB,EAAE,MAAc;QACpE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB;YAC7C,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC;QAC9F,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,4BAA4B,CAAC;QAEvG,MAAM,QAAQ,GAA6C,EAAE,CAAC;QAC9D,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,mBAAmB,EAAE;YACtD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,eAAe,EAAE,UAAU,MAAM,EAAE;aACpC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK;gBACL,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;gBACrC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,GAAG;gBACvC,QAAQ;aACT,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAS,CAAC;QACtC,OAAO;YACL,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE;YACnD,KAAK,EAAE,IAAI,EAAE,KAAK;YAClB,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,SAAS;SAC3G,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"DirectAPIClient.js","sourceRoot":"","sources":["../../src/llm/DirectAPIClient.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- export { CliSubAgentClient } from './CliSubAgentClient.js';
2
1
  export { DirectAPIClient } from './DirectAPIClient.js';
3
2
  export { FallbackLLMClient } from './FallbackLLMClient.js';
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
package/dist/llm/index.js CHANGED
@@ -1,4 +1,3 @@
1
- export { CliSubAgentClient } from './CliSubAgentClient.js';
2
1
  export { DirectAPIClient } from './DirectAPIClient.js';
3
2
  export { FallbackLLMClient } from './FallbackLLMClient.js';
4
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare function getProjectHash(rootPath: string): string;
2
+ export declare function getDaemonSocketPath(rootPath: string): string;
3
+ export declare function getDaemonPidPath(rootPath: string): string;
4
+ export declare function getProjectStateDir(rootPath: string): string;
5
+ export declare function getDaemonRegistryPath(): string;
6
+ export declare function getBackupDir(rootPath: string, ts?: number): string;
7
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAIA,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvD;AAID,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAE,MAAmB,GAAG,MAAM,CAG9E"}
package/dist/paths.js ADDED
@@ -0,0 +1,24 @@
1
+ import { createHash } from "node:crypto";
2
+ import { homedir } from "node:os";
3
+ import { join } from "node:path";
4
+ export function getProjectHash(rootPath) {
5
+ return createHash("sha256").update(rootPath).digest("hex").slice(0, 16);
6
+ }
7
+ const DEVFLOW_HOME = () => join(homedir(), ".devflow");
8
+ export function getDaemonSocketPath(rootPath) {
9
+ return join(DEVFLOW_HOME(), "daemons", `${getProjectHash(rootPath)}.sock`);
10
+ }
11
+ export function getDaemonPidPath(rootPath) {
12
+ return join(DEVFLOW_HOME(), "daemons", `${getProjectHash(rootPath)}.pid`);
13
+ }
14
+ export function getProjectStateDir(rootPath) {
15
+ return join(DEVFLOW_HOME(), "state", getProjectHash(rootPath));
16
+ }
17
+ export function getDaemonRegistryPath() {
18
+ return join(DEVFLOW_HOME(), "daemons.json");
19
+ }
20
+ export function getBackupDir(rootPath, ts = Date.now()) {
21
+ const iso = new Date(ts).toISOString().slice(0, 10);
22
+ return join(DEVFLOW_HOME(), "backup", iso, getProjectHash(rootPath));
23
+ }
24
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;AAEvD,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,cAAc,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,KAAa,IAAI,CAAC,GAAG,EAAE;IACpE,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=paths.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.test.d.ts","sourceRoot":"","sources":["../src/paths.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { homedir } from "node:os";
3
+ import { getProjectHash, getDaemonSocketPath, getDaemonPidPath, getProjectStateDir, getDaemonRegistryPath, getBackupDir, } from "./paths.js";
4
+ describe("paths", () => {
5
+ const root = "/Users/alice/Desktop/rsbuild-react";
6
+ const hash = "d535bced6a262437";
7
+ it("getProjectHash returns 16-char sha256 prefix", () => {
8
+ expect(getProjectHash(root)).toBe(hash);
9
+ expect(getProjectHash(root)).toMatch(/^[a-f0-9]{16}$/);
10
+ expect(getProjectHash("/tmp/other")).not.toBe(hash);
11
+ });
12
+ it("daemon socket path is per-project", () => {
13
+ const p = getDaemonSocketPath(root);
14
+ expect(p).toBe(`${homedir()}/.devflow/daemons/${hash}.sock`);
15
+ });
16
+ it("daemon pid path is per-project", () => {
17
+ const p = getDaemonPidPath(root);
18
+ expect(p).toBe(`${homedir()}/.devflow/daemons/${hash}.pid`);
19
+ });
20
+ it("state dir has trailing slash-friendly join", () => {
21
+ const p = getProjectStateDir(root);
22
+ expect(p.endsWith(`/state/${hash}`)).toBe(true);
23
+ });
24
+ it("registry path is global", () => {
25
+ expect(getDaemonRegistryPath()).toBe(`${homedir()}/.devflow/daemons.json`);
26
+ });
27
+ it("backup dir includes date", () => {
28
+ const p = getBackupDir(root, new Date("2026-07-17T00:00:00Z").getTime());
29
+ expect(p).toBe(`${homedir()}/.devflow/backup/2026-07-17/${hash}`);
30
+ });
31
+ });
32
+ //# sourceMappingURL=paths.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.test.js","sourceRoot":"","sources":["../src/paths.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,MAAM,IAAI,GAAG,oCAAoC,CAAC;IAClD,MAAM,IAAI,GAAG,kBAAkB,CAAC;IAEhC,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACvD,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,qBAAqB,IAAI,OAAO,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,qBAAqB,IAAI,MAAM,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,wBAAwB,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACzE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,+BAA+B,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { DevFlowPlugin } from "./types/plugin.js";
2
- export declare const KNOWN_PLUGINS: string[];
2
+ export declare function loadPluginPackageNames(registryPath?: string): string[];
3
3
  export declare function loadPlugins(): Promise<Map<string, DevFlowPlugin>>;
4
4
  export declare function loadPluginsSync(): Map<string, DevFlowPlugin>;
5
5
  export declare function clearPluginCache(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-loader.d.ts","sourceRoot":"","sources":["../src/plugin-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAOvD,eAAO,MAAM,aAAa,UAezB,CAAC;AAuBF,wBAAsB,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAUvE;AAED,wBAAgB,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAE5D;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAMtC"}
1
+ {"version":3,"file":"plugin-loader.d.ts","sourceRoot":"","sources":["../src/plugin-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAavD,wBAAgB,sBAAsB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAqBtE;AAuBD,wBAAsB,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAUvE;AAED,wBAAgB,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAE5D;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAMtC"}