@offerpilot/axiomruntime 0.0.1

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 (99) hide show
  1. package/README.md +185 -0
  2. package/dist/cli/commands/add.js +29 -0
  3. package/dist/cli/commands/context.js +29 -0
  4. package/dist/cli/commands/doctor.js +62 -0
  5. package/dist/cli/commands/edit.js +85 -0
  6. package/dist/cli/commands/help.js +16 -0
  7. package/dist/cli/commands/list.js +25 -0
  8. package/dist/cli/commands/log.js +63 -0
  9. package/dist/cli/commands/memory.js +241 -0
  10. package/dist/cli/commands/report.js +35 -0
  11. package/dist/cli/commands/session.js +74 -0
  12. package/dist/cli/commands/setup.js +86 -0
  13. package/dist/cli/commands/status.js +50 -0
  14. package/dist/cli/commands/telegram.js +701 -0
  15. package/dist/cli/commands/use.js +108 -0
  16. package/dist/cli/commands/version.js +12 -0
  17. package/dist/cli/index.js +276 -0
  18. package/dist/cli/output/table.js +22 -0
  19. package/dist/cli/prompts/prompt.js +37 -0
  20. package/dist/cli/registry.js +16 -0
  21. package/dist/core/config/cache-store.js +193 -0
  22. package/dist/core/config/json-store.js +114 -0
  23. package/dist/core/config/paths.js +85 -0
  24. package/dist/core/config/providers-store.js +89 -0
  25. package/dist/core/config/schema.js +60 -0
  26. package/dist/core/config/session-store.js +30 -0
  27. package/dist/core/config/usage-store.js +18 -0
  28. package/dist/core/context/context-service.js +186 -0
  29. package/dist/core/integrations/integration-state.js +105 -0
  30. package/dist/core/logs/log-service.js +56 -0
  31. package/dist/core/memory/embedding-check.js +121 -0
  32. package/dist/core/memory/memory-config.js +122 -0
  33. package/dist/core/models/model-discovery.js +430 -0
  34. package/dist/core/models/model-filter.js +13 -0
  35. package/dist/core/providers/provider-service.js +212 -0
  36. package/dist/core/reports/report-service.js +166 -0
  37. package/dist/core/runner/command-resolver.js +60 -0
  38. package/dist/core/runner/engine-registry.js +93 -0
  39. package/dist/core/runner/fallback.js +114 -0
  40. package/dist/core/runner/openai-usage-http.js +82 -0
  41. package/dist/core/runner/openai-usage-proxy.js +1 -0
  42. package/dist/core/runner/openai-usage-recording.js +172 -0
  43. package/dist/core/runner/openai-usage-responses.js +469 -0
  44. package/dist/core/runner/openai-usage-server.js +319 -0
  45. package/dist/core/runner/openai-usage-types.js +1 -0
  46. package/dist/core/runner/tool-runner.js +138 -0
  47. package/dist/core/sessions/session-service.js +47 -0
  48. package/dist/core/status/doctor-service.js +391 -0
  49. package/dist/core/status/status-service.js +60 -0
  50. package/dist/core/types.js +1 -0
  51. package/dist/core/usage/pricing.js +113 -0
  52. package/dist/core/usage/usage-service.js +30 -0
  53. package/dist/core/utils/is-record.js +3 -0
  54. package/dist/server/index.js +28 -0
  55. package/dist/server/runtime-server.js +430 -0
  56. package/dist/telegram/bot-registry.js +80 -0
  57. package/dist/telegram/bot.js +128 -0
  58. package/dist/telegram/config.js +235 -0
  59. package/dist/telegram/engine/claude-engine.js +240 -0
  60. package/dist/telegram/engine/codex-engine.js +437 -0
  61. package/dist/telegram/engine/engine-utils.js +67 -0
  62. package/dist/telegram/engine/process-utils.js +132 -0
  63. package/dist/telegram/engine/registry.js +31 -0
  64. package/dist/telegram/engine/types.js +1 -0
  65. package/dist/telegram/handler-registry.js +28 -0
  66. package/dist/telegram/handlers/callback.js +311 -0
  67. package/dist/telegram/handlers/command.js +272 -0
  68. package/dist/telegram/handlers/document.js +108 -0
  69. package/dist/telegram/handlers/memory.js +305 -0
  70. package/dist/telegram/handlers/message.js +701 -0
  71. package/dist/telegram/handlers/provider.js +332 -0
  72. package/dist/telegram/handlers/setup.js +527 -0
  73. package/dist/telegram/handlers/usage.js +124 -0
  74. package/dist/telegram/index.js +93 -0
  75. package/dist/telegram/interaction/approval.js +108 -0
  76. package/dist/telegram/interaction/command-menu.js +253 -0
  77. package/dist/telegram/interaction/formatter.js +487 -0
  78. package/dist/telegram/interaction/keyboards.js +145 -0
  79. package/dist/telegram/interaction/progress-reporter.js +160 -0
  80. package/dist/telegram/interaction/prompt-middleware.js +168 -0
  81. package/dist/telegram/interaction/result-store.js +41 -0
  82. package/dist/telegram/interaction/token-budget.js +21 -0
  83. package/dist/telegram/interaction/tool-name.js +41 -0
  84. package/dist/telegram/lifecycle-registry.js +47 -0
  85. package/dist/telegram/log.js +46 -0
  86. package/dist/telegram/memory/memory-inject.js +52 -0
  87. package/dist/telegram/memory/memory-service.js +413 -0
  88. package/dist/telegram/memory/memory-store.js +216 -0
  89. package/dist/telegram/memory/types.js +1 -0
  90. package/dist/telegram/network-retry.js +22 -0
  91. package/dist/telegram/network.js +53 -0
  92. package/dist/telegram/session/manager.js +229 -0
  93. package/dist/telegram/session/store.js +363 -0
  94. package/dist/telegram/session/types.js +1 -0
  95. package/dist/telegram/supervisor.js +57 -0
  96. package/dist/telegram/templates/messages.js +1 -0
  97. package/docs/README.md +98 -0
  98. package/docs/USAGE.html +853 -0
  99. package/package.json +57 -0
@@ -0,0 +1,57 @@
1
+ #!/usr/bin/env node
2
+ import { spawn } from "node:child_process";
3
+ import { fileURLToPath } from "node:url";
4
+ import { listBots, migrateLegacyConfig } from "./bot-registry.js";
5
+ const entry = fileURLToPath(new URL("./index.js", import.meta.url));
6
+ const children = new Set();
7
+ let stopping = false;
8
+ await migrateLegacyConfig();
9
+ const configuredBots = listBots();
10
+ const botNames = configuredBots.length
11
+ ? configuredBots.map((bot) => bot.name)
12
+ : [null];
13
+ for (const botName of botNames) {
14
+ const child = spawn(process.execPath, [entry], {
15
+ stdio: "inherit",
16
+ env: {
17
+ ...process.env,
18
+ AI_GATEWAY_SOURCE: "telegram-service",
19
+ ...(botName ? { AI_TELEGRAM_BOT_NAME: botName } : {})
20
+ }
21
+ });
22
+ children.add(child);
23
+ child.once("error", (error) => {
24
+ console.error(`Telegram bot ${botName ?? "default"} failed to start: ${error.message}`);
25
+ if (!stopping)
26
+ void stopChildren("SIGTERM", 1);
27
+ });
28
+ child.once("exit", (code, signal) => {
29
+ children.delete(child);
30
+ if (!stopping) {
31
+ console.error(`Telegram bot ${botName ?? "default"} exited (${signal ?? code ?? "unknown"}).`);
32
+ void stopChildren("SIGTERM", code && code > 0 ? code : 1);
33
+ }
34
+ });
35
+ }
36
+ for (const signal of ["SIGINT", "SIGTERM", "SIGHUP"]) {
37
+ process.once(signal, () => {
38
+ void stopChildren(signal === "SIGHUP" ? "SIGTERM" : signal, 0);
39
+ });
40
+ }
41
+ console.log(`Telegram service supervising ${botNames.length} bot(s): ${botNames.map((name) => name ?? "default").join(", ")}`);
42
+ await new Promise(() => undefined);
43
+ async function stopChildren(signal, exitCode) {
44
+ if (stopping)
45
+ return;
46
+ stopping = true;
47
+ const pending = [...children].map((child) => new Promise((resolve) => {
48
+ if (child.exitCode !== null || child.signalCode !== null) {
49
+ resolve();
50
+ return;
51
+ }
52
+ child.once("exit", () => resolve());
53
+ child.kill(signal);
54
+ }));
55
+ await Promise.all(pending);
56
+ process.exit(exitCode);
57
+ }
@@ -0,0 +1 @@
1
+ export { Formatter as Msg } from "../interaction/formatter.js";
package/docs/README.md ADDED
@@ -0,0 +1,98 @@
1
+ # AI Runtime 文档总览
2
+
3
+ 本项目采用分层文档体系:英文正典(`AGENTS.md`、`AI_RUNTIME_ARCHITECTURE.md`、`CONVENTIONS.md`)定义仓库规则与目标架构;中英混合的 `doc_2.0` 文档层(根文档在 `docs/`,模块文档在 `docs/modules/`)承载产品规范、宪法摘要、模块设计与强制条款;面向用户的中文文档负责操作说明。各层描述的是同一个产品,不是多套路线。
4
+
5
+ ## 给用户和中文评审者
6
+
7
+ | 文档 | 内容 |
8
+ |---|---|
9
+ | [项目 README](../README.md) | 产品定位、当前能力、安装与常用入口 |
10
+ | [doc_2.0 规范层完整索引](#doc_20-规范层完整索引) | 分层架构、模块文档、规范条款、路线图的统一索引(见下方章节)|
11
+ | [使用指南](usage.md) | CLI、Provider、Telegram、会话和诊断操作 |
12
+ | [HTML 命令手册](USAGE.html) | 可浏览的命令索引 |
13
+ | [整体架构与当前实现快照](00-overview.md) | 分层俯瞰、现状映射与从旧 ARCHITECTURE 迁入的实现快照 |
14
+ | [产品架构全景图](architecture-map.md) | 中文架构图、执行主链、学习闭环与权威所有权说明 |
15
+ | [自动记忆系统方案](modules/06-memory.md) | Memory、Knowledge、Skill 与学习治理设计(配套 [contracts](contracts.md)、[07-learning-governance](modules/07-learning-governance.md))|
16
+ | [Telegram Bot 方案](modules/01-surfaces.md) | Telegram 入口的交互和实现设计 |
17
+
18
+ ## 给 AI 和维护者
19
+
20
+ 以下文档使用英文,并作为架构与实现的权威来源:
21
+
22
+ | 文档 | 内容 |
23
+ |---|---|
24
+ | [Repository Instructions](../AGENTS.md) | AI 在仓库内工作的规则、文档优先级和交付标准 |
25
+ | [Target Architecture](AI_RUNTIME_ARCHITECTURE.md) | Enterprise AI Runtime 目标架构与演进路径 |
26
+ | [Development Conventions](CONVENTIONS.md) | 工程、发布、文档同步和模块边界规范 |
27
+ | [Portable AI Specification](AI_RUNTIME_PORTABLE_SPEC.md) | 可直接提供给其他 AI 的英文单文件完整上下文;仓库内属于便携快照,不替代分层权威文档 |
28
+
29
+ 产品宪法摘要、产品规范与验收标准构成中英混合的 `doc_2.0` 文档层:宪法摘要见 [00-overview.md](00-overview.md),跨模块强制条款(R1–R36 / Q1–Q6)见 [enforcement-decisions.md](enforcement-decisions.md)。
30
+
31
+ 除宪法摘要外,正典文档与 `doc_2.0` 规范层都是随开发持续更新的 Living Documents:每个开发任务结束前检查影响,每个里程碑或发布进行完整审计。宪法摘要(见 [00-overview.md](00-overview.md))只在人类明确调整使命、北极星或三条硬不变量时修改。
32
+
33
+ ## doc_2.0 规范层完整索引
34
+
35
+ > `doc_2.0` 是按**分层架构**重构的文档集:一份项目整体文档 + 每个独立模块一份文档。语言模式为**中英混合**(叙述中文,标识符英文原样保留,以保 AI 识别准确率)。权威顺序与冲突处理见下方「文档冲突处理」。
36
+
37
+ ### 起点
38
+
39
+ | 文档 | 内容 |
40
+ |---|---|
41
+ | [00-overview.md](00-overview.md) | ⭐项目整体文档:三条不变量、分层全景、模块清单、现状映射 |
42
+ | [glossary.md](glossary.md) | 中英术语表(一致性锁) |
43
+ | [contracts.md](contracts.md) | L0 端口契约清单,含统一 Capability Observability envelope、Sink 与授权查询契约 |
44
+ | [extraction-readiness.md](extraction-readiness.md) | 模块产品化就绪度判据 |
45
+ | [enforcement-decisions.md](enforcement-decisions.md) | ⭐规范约定 + R1–R36 强制实施决策 + Q1–Q6 质量/运维决策(跨模块权威引用源)|
46
+ | [roadmap.md](roadmap.md) | Release R0–R3 纵向产品闭环、Phase 0–13 技术计划与贯穿全程可观测性 |
47
+ | [testing.md](testing.md) | 测试计划:核心记忆/Telegram/CLI/Auth/检索质量/长期仿真/Memory、Skill 与 Capability 可观测性 |
48
+ | [service-level-objectives.md](service-level-objectives.md) | `local/team/enterprise` 的 SLO、RTO、RPO、容量与恢复演练门槛 |
49
+ | [usage.md](usage.md) | 用户使用指南:逐命令用法(交互模式/Claude·Codex/Telegram/Provider/会话/日志等)|
50
+
51
+ ### 模块文档(每个独立模块单独维护,位于 `modules/`)
52
+
53
+ | # | 模块 | 文档 | 状态 |
54
+ |---|---|---|---|
55
+ | ① | Surfaces | [modules/01-surfaces.md](modules/01-surfaces.md) | ✅ |
56
+ | ② | Orchestration | [modules/02-orchestration.md](modules/02-orchestration.md) | ✅ |
57
+ | ③ | Capabilities | [modules/03-capabilities.md](modules/03-capabilities.md) | ✅ |
58
+ | ④ | Execution Kernel | [modules/04-execution-kernel.md](modules/04-execution-kernel.md) | ✅ |
59
+ | ⑤ | Transport Proxy | [modules/05-transport-proxy.md](modules/05-transport-proxy.md) | ✅ |
60
+ | ⑥ | Memory | [modules/06-memory.md](modules/06-memory.md) | ✅ |
61
+ | ⑦ | Learning & Governance | [modules/07-learning-governance.md](modules/07-learning-governance.md) | ✅ |
62
+ | ⑧ | Policy | [modules/08-policy.md](modules/08-policy.md) | ✅ |
63
+ | ⑨ | Security | [modules/09-security.md](modules/09-security.md) | ✅ |
64
+ | ⑩ | Adapters/Plugins | [modules/10-adapters-plugins.md](modules/10-adapters-plugins.md) | ✅ |
65
+ | ⑪ | Storage | [modules/11-storage.md](modules/11-storage.md) | ✅ |
66
+
67
+ 每份模块文档固定 11 节:`定位 → 单一职责边界 → 内部构件 → 对外/消费端口 → 依赖 → 数据所有权 → 降级/kill switch → 产品化就绪度 → 现状映射 → 验收标准 → 相关文档`。以 [modules/05-transport-proxy.md](modules/05-transport-proxy.md) 为样板。
68
+
69
+ ## 文档冲突处理
70
+
71
+ 不同问题只有一个权威归属:
72
+
73
+ | 问题 | 唯一权威位置 |
74
+ |---|---|
75
+ | mission / North Star / 三条硬不变量 | [00-overview.md](00-overview.md) 的宪法摘要;仅人类明确决策可修改 |
76
+ | 分层、模块 ownership、依赖方向、插件原则 | [AI_RUNTIME_ARCHITECTURE.md](AI_RUNTIME_ARCHITECTURE.md) + [CONVENTIONS.md](CONVENTIONS.md) |
77
+ | canonical identifier、Port、跨进程 schema、错误/版本语义 | [contracts.md](contracts.md) |
78
+ | 跨模块产品行为和安全/质量硬门槛 | [enforcement-decisions.md](enforcement-decisions.md) 的 R/Q 条款 |
79
+ | 单模块职责、数据所有权、降级和模块验收 | 对应 `modules/*.md` 的正文 1–11 节 |
80
+ | 交付顺序与测试覆盖 | [roadmap.md](roadmap.md) + [testing.md](testing.md) |
81
+ | 历史实现、迁移代码、旧文档保留材料 | 模块附录,仅作 supporting material,不是独立权威源 |
82
+
83
+ 模块附录中的旧字段、代码块、状态说明或实现建议不得覆盖当前 L0 契约、R/Q 条款或模块正文。发现冲突时不能按“更具体”或“更旧”自动取舍:当前任务必须同步修正文档,无法当场修复时显式记录 conflict、owner 和 exit condition。`doc_2.0` 中的 canonical identifier 必须与 `contracts.md` 一致。
84
+
85
+ 所有附录标题下必须声明 `Appendix Status`:
86
+
87
+ | `Appendix Status` | 含义 | 可否作为新实现依据 |
88
+ |---|---|---|
89
+ | `CONSTITUTION SUMMARY` | 经人类批准的使命/North Star/硬不变量摘要 | 可以,仅限宪章范围 |
90
+ | `SUPPORTING SPEC` | 补充正文的详细行为;不得覆盖正文/L0/RQ | 可以,但先归一化到 canonical contract |
91
+ | `CURRENT SNAPSHOT` | 某一时点实现事实 | 不可以直接推导目标设计 |
92
+ | `MIGRATION FIXTURE` | legacy schema/样本/兼容输入 | 仅用于 migration 与 compatibility test |
93
+ | `DESIGN SOURCE` | 保留的方案、推理或成熟设计来源 | 只能作为 ADR 输入 |
94
+ | `DEPRECATED REFERENCE` | 已被新规范取代、等待删除的材料 | 不可以 |
95
+
96
+ 缺少状态标签的附录视为 `DEPRECATED REFERENCE`。引用附录时必须同时引用它所服从的正文、contract 或 R/Q 条款。
97
+
98
+ 宪法摘要只能由人类明确决策后修改。代码、单次模型输出或局部功能文档不能反向改变项目定位。