pi-harness-runtime 0.10.13 → 0.10.15
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.
- package/harness/notification-events.ts +2 -2
- package/package.json +4 -7
- package/packages/auth/src/minimax-browser-auth.js +889 -0
- package/packages/capability-registry/src/types.js +10 -0
- package/packages/checkpoint/src/checkpoint-manager.js +29 -0
- package/packages/clipboard/src/copy-sync.js +169 -0
- package/packages/clipboard/src/gist-relay.js +185 -0
- package/packages/clipboard/src/github-login.js +68 -0
- package/packages/config-capture/src/index.js +268 -0
- package/packages/cookie-sanitizer/src/atomic-write.js +66 -0
- package/packages/cookie-sanitizer/src/detect-format.js +87 -0
- package/packages/cookie-sanitizer/src/index.js +38 -0
- package/packages/cookie-sanitizer/src/infer-provider.js +95 -0
- package/packages/cookie-sanitizer/src/normalize.js +74 -0
- package/packages/cookie-sanitizer/src/parse-json.js +107 -0
- package/packages/cookie-sanitizer/src/parse-netscape.js +98 -0
- package/packages/cookie-sanitizer/src/sync.js +268 -0
- package/packages/cookie-sanitizer/src/types.js +12 -0
- package/packages/cookie-sanitizer/src/watcher.js +147 -0
- package/packages/evaluation-engine/src/engine.js +343 -0
- package/packages/evaluation-engine/src/index.js +7 -0
- package/packages/evaluation-engine/src/types.js +14 -0
- package/packages/event-store/src/types.js +5 -0
- package/packages/experience-replay/src/index.js +6 -0
- package/packages/experience-replay/src/replay.js +228 -0
- package/packages/experience-replay/src/types.js +6 -0
- package/packages/learning-engine/src/engine.js +294 -0
- package/packages/learning-engine/src/index.js +7 -0
- package/packages/learning-engine/src/types.js +63 -0
- package/packages/memory-engine/src/engine.js +507 -0
- package/packages/memory-engine/src/index.js +7 -0
- package/packages/memory-engine/src/types.js +39 -0
- package/packages/model-registry/src/types.js +5 -0
- package/packages/performance-optimizer/src/index.js +6 -0
- package/packages/performance-optimizer/src/optimizer.js +304 -0
- package/packages/performance-optimizer/src/types.js +6 -0
- package/packages/projection-engine/src/types.js +5 -0
- package/packages/providers/src/provider-id.js +112 -0
- package/packages/quota-manager/src/quota-manager.js +259 -0
- package/packages/quota-manager/src/tui-usage-monitor.js +267 -0
- package/packages/todo-bd-sync/src/detector.js +131 -0
- package/packages/todo-bd-sync/src/extension.js +104 -0
- package/packages/todo-bd-sync/src/sync.js +289 -0
- package/packages/todo-bd-sync/src/task-analyzer.js +239 -0
- package/packages/todo-bd-sync/src/types.js +66 -0
- package/packages/token-estimation/src/index.js +114 -0
- package/packages/types/src/agent-worker-types.js +41 -0
- package/packages/types/src/ai-providers.js +66 -0
- package/packages/types/src/runtime-types.js +3 -0
- package/packages/workflow-events/src/types.js +5 -0
- package/packages/write-review/src/blackboard.js +228 -0
- package/packages/write-review/src/gate.js +137 -0
- package/packages/write-review/src/index.js +17 -0
- package/packages/write-review/src/injection.js +141 -0
- package/packages/write-review/src/review.js +153 -0
- package/packages/write-review/src/trigger.js +106 -0
- package/packages/write-review/src/types.js +25 -0
- package/IMPLEMENTATION/RFC-0010/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0010/AI_BRIEF.md +0 -20
- package/IMPLEMENTATION/RFC-0010/FILES.md +0 -11
- package/IMPLEMENTATION/RFC-0010/TASKS.md +0 -10
- package/IMPLEMENTATION/RFC-0010/TESTS.md +0 -6
- package/IMPLEMENTATION/RFC-0011/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0011/AI_BRIEF.md +0 -19
- package/IMPLEMENTATION/RFC-0011/FILES.md +0 -11
- package/IMPLEMENTATION/RFC-0011/TASKS.md +0 -10
- package/IMPLEMENTATION/RFC-0011/TESTS.md +0 -6
- package/IMPLEMENTATION/RFC-0012/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0012/AI_BRIEF.md +0 -18
- package/IMPLEMENTATION/RFC-0012/FILES.md +0 -11
- package/IMPLEMENTATION/RFC-0012/TASKS.md +0 -10
- package/IMPLEMENTATION/RFC-0012/TESTS.md +0 -6
- package/IMPLEMENTATION/RFC-0013/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0013/AI_BRIEF.md +0 -19
- package/IMPLEMENTATION/RFC-0013/FILES.md +0 -11
- package/IMPLEMENTATION/RFC-0013/TASKS.md +0 -10
- package/IMPLEMENTATION/RFC-0013/TESTS.md +0 -6
- package/IMPLEMENTATION/RFC-0014/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0014/AI_BRIEF.md +0 -20
- package/IMPLEMENTATION/RFC-0014/FILES.md +0 -11
- package/IMPLEMENTATION/RFC-0014/TASKS.md +0 -10
- package/IMPLEMENTATION/RFC-0014/TESTS.md +0 -6
- package/IMPLEMENTATION/RFC-0015/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0015/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0015/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0015/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0015/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0016/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0016/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0016/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0016/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0016/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0017/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0017/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0017/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0017/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0017/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0018/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0018/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0018/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0018/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0018/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0019/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0019/AI_BRIEF.md +0 -18
- package/IMPLEMENTATION/RFC-0019/TASKS.md +0 -10
- package/IMPLEMENTATION/RFC-0020/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0020/AI_BRIEF.md +0 -18
- package/IMPLEMENTATION/RFC-0020/TASKS.md +0 -10
- package/IMPLEMENTATION/RFC-0021/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0021/AI_BRIEF.md +0 -18
- package/IMPLEMENTATION/RFC-0021/TASKS.md +0 -10
- package/IMPLEMENTATION/RFC-0022/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0022/AI_BRIEF.md +0 -18
- package/IMPLEMENTATION/RFC-0022/TASKS.md +0 -10
- package/IMPLEMENTATION/RFC-0023/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0023/AI_BRIEF.md +0 -18
- package/IMPLEMENTATION/RFC-0023/TASKS.md +0 -10
- package/IMPLEMENTATION/RFC-0024/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0024/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0025/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0025/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0026/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0026/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0027/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0027/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0028/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0028/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0029/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0029/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0030/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0030/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0031/AI_BRIEF.md +0 -45
- package/IMPLEMENTATION/RFC-0031/TASKS.md +0 -48
- package/IMPLEMENTATION/RFC-0032/AI_BRIEF.md +0 -45
- package/IMPLEMENTATION/RFC-0032/TASKS.md +0 -44
- package/IMPLEMENTATION/RFC-0033/AI_BRIEF.md +0 -46
- package/IMPLEMENTATION/RFC-0033/TASKS.md +0 -49
- package/IMPLEMENTATION/RFC-0034/AI_BRIEF.md +0 -54
- package/IMPLEMENTATION/RFC-0034/TASKS.md +0 -57
- package/IMPLEMENTATION/RFC-0035/AI_BRIEF.md +0 -55
- package/IMPLEMENTATION/RFC-0035/TASKS.md +0 -75
- package/IMPLEMENTATION/RFC-0036/AI_BRIEF.md +0 -62
- package/IMPLEMENTATION/RFC-0036/TASKS.md +0 -60
- package/IMPLEMENTATION/RFC-0037/AI_BRIEF.md +0 -59
- package/IMPLEMENTATION/RFC-0037/TASKS.md +0 -63
- package/IMPLEMENTATION/RFC-0038/AI_BRIEF.md +0 -67
- package/IMPLEMENTATION/RFC-0038/TASKS.md +0 -65
- package/IMPLEMENTATION/RFC-0039/AI_BRIEF.md +0 -68
- package/IMPLEMENTATION/RFC-0039/TASKS.md +0 -74
- package/IMPLEMENTATION/RFC-0040/AI_BRIEF.md +0 -79
- package/IMPLEMENTATION/RFC-0040/TASKS.md +0 -77
- package/IMPLEMENTATION/RFC-0041/ACCEPTANCE_CRITERIA.md +0 -8
- package/IMPLEMENTATION/RFC-0041/AI_BRIEF.md +0 -26
- package/IMPLEMENTATION/RFC-0041/FILES.md +0 -12
- package/IMPLEMENTATION/RFC-0041/TASKS.md +0 -12
- package/IMPLEMENTATION/RFC-0041/TESTS.md +0 -12
- package/IMPLEMENTATION/RFC-0042/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0042/AI_BRIEF.md +0 -5
- package/IMPLEMENTATION/RFC-0042/FILES.md +0 -14
- package/IMPLEMENTATION/RFC-0042/TASKS.md +0 -12
- package/IMPLEMENTATION/RFC-0042/TESTS.md +0 -11
- package/IMPLEMENTATION/RFC-0043/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0043/AI_BRIEF.md +0 -5
- package/IMPLEMENTATION/RFC-0043/FILES.md +0 -14
- package/IMPLEMENTATION/RFC-0043/TASKS.md +0 -12
- package/IMPLEMENTATION/RFC-0043/TESTS.md +0 -10
- package/IMPLEMENTATION/RFC-0044/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0044/AI_BRIEF.md +0 -5
- package/IMPLEMENTATION/RFC-0044/FILES.md +0 -13
- package/IMPLEMENTATION/RFC-0044/TASKS.md +0 -12
- package/IMPLEMENTATION/RFC-0044/TESTS.md +0 -10
- package/IMPLEMENTATION/RFC-0045/ACCEPTANCE_CRITERIA.md +0 -30
- package/IMPLEMENTATION/RFC-0045/AI_BRIEF.md +0 -53
- package/IMPLEMENTATION/RFC-0045/FILES.md +0 -13
- package/IMPLEMENTATION/RFC-0045/TASKS.md +0 -31
- package/IMPLEMENTATION/RFC-0045/TESTS.md +0 -62
- package/IMPLEMENTATION/RFC-0046/ACCEPTANCE_CRITERIA.md +0 -1
- package/IMPLEMENTATION/RFC-0046/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0046/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0046/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0046/TESTS.md +0 -1
- package/IMPLEMENTATION/RFC-0047/ACCEPTANCE_CRITERIA.md +0 -1
- package/IMPLEMENTATION/RFC-0047/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0047/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0047/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0047/TESTS.md +0 -1
- package/IMPLEMENTATION/RFC-0048/ACCEPTANCE_CRITERIA.md +0 -1
- package/IMPLEMENTATION/RFC-0048/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0048/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0048/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0048/TESTS.md +0 -1
- package/IMPLEMENTATION/RFC-0049/ACCEPTANCE_CRITERIA.md +0 -1
- package/IMPLEMENTATION/RFC-0049/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0049/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0049/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0049/TESTS.md +0 -1
- package/IMPLEMENTATION/RFC-0050/ACCEPTANCE_CRITERIA.md +0 -1
- package/IMPLEMENTATION/RFC-0050/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0050/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0050/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0050/TESTS.md +0 -1
- package/IMPLEMENTATION/RFC-0051/ACCEPTANCE_CRITERIA.md +0 -6
- package/IMPLEMENTATION/RFC-0051/AI_BRIEF.md +0 -20
- package/IMPLEMENTATION/RFC-0051/FILES.md +0 -8
- package/IMPLEMENTATION/RFC-0051/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0051/TESTS.md +0 -4
- package/IMPLEMENTATION/RFC-0052/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0052/AI_BRIEF.md +0 -19
- package/IMPLEMENTATION/RFC-0052/FILES.md +0 -8
- package/IMPLEMENTATION/RFC-0052/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0052/TESTS.md +0 -1
- package/IMPLEMENTATION/RFC-0053/ACCEPTANCE_CRITERIA.md +0 -8
- package/IMPLEMENTATION/RFC-0053/AI_BRIEF.md +0 -20
- package/IMPLEMENTATION/RFC-0053/FILES.md +0 -9
- package/IMPLEMENTATION/RFC-0053/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0053/TESTS.md +0 -1
- package/IMPLEMENTATION/RFC-0054/ACCEPTANCE_CRITERIA.md +0 -8
- package/IMPLEMENTATION/RFC-0054/AI_BRIEF.md +0 -19
- package/IMPLEMENTATION/RFC-0054/FILES.md +0 -8
- package/IMPLEMENTATION/RFC-0054/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0054/TESTS.md +0 -1
- package/IMPLEMENTATION/RFC-0055/ACCEPTANCE_CRITERIA.md +0 -8
- package/IMPLEMENTATION/RFC-0055/AI_BRIEF.md +0 -17
- package/IMPLEMENTATION/RFC-0055/FILES.md +0 -9
- package/IMPLEMENTATION/RFC-0055/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0055/TESTS.md +0 -1
- package/IMPLEMENTATION/RFC-0056/ACCEPTANCE_CRITERIA.md +0 -6
- package/IMPLEMENTATION/RFC-0056/AI_BRIEF.md +0 -18
- package/IMPLEMENTATION/RFC-0056/FILES.md +0 -9
- package/IMPLEMENTATION/RFC-0056/TASKS.md +0 -9
- package/IMPLEMENTATION/RFC-0056/TESTS.md +0 -7
- package/IMPLEMENTATION/RFC-0057/ACCEPTANCE_CRITERIA.md +0 -5
- package/IMPLEMENTATION/RFC-0057/AI_BRIEF.md +0 -5
- package/IMPLEMENTATION/RFC-0057/FILES.md +0 -11
- package/IMPLEMENTATION/RFC-0057/TASKS.md +0 -9
- package/IMPLEMENTATION/RFC-0057/TESTS.md +0 -7
- package/IMPLEMENTATION/RFC-0058/ACCEPTANCE_CRITERIA.md +0 -6
- package/IMPLEMENTATION/RFC-0058/AI_BRIEF.md +0 -5
- package/IMPLEMENTATION/RFC-0058/FILES.md +0 -11
- package/IMPLEMENTATION/RFC-0058/TASKS.md +0 -9
- package/IMPLEMENTATION/RFC-0058/TESTS.md +0 -7
- package/IMPLEMENTATION/RFC-0059/ACCEPTANCE_CRITERIA.md +0 -6
- package/IMPLEMENTATION/RFC-0059/AI_BRIEF.md +0 -5
- package/IMPLEMENTATION/RFC-0059/FILES.md +0 -11
- package/IMPLEMENTATION/RFC-0059/TASKS.md +0 -9
- package/IMPLEMENTATION/RFC-0059/TESTS.md +0 -7
- package/IMPLEMENTATION/RFC-0060/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0060/AI_BRIEF.md +0 -5
- package/IMPLEMENTATION/RFC-0060/FILES.md +0 -14
- package/IMPLEMENTATION/RFC-0060/TASKS.md +0 -12
- package/IMPLEMENTATION/RFC-0060/TESTS.md +0 -10
- package/IMPLEMENTATION/RFC-0061/ACCEPTANCE_CRITERIA.md +0 -1
- package/IMPLEMENTATION/RFC-0061/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0061/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0061/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0061/TESTS.md +0 -2
- package/IMPLEMENTATION/RFC-0062/ACCEPTANCE_CRITERIA.md +0 -1
- package/IMPLEMENTATION/RFC-0062/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0062/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0062/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0062/TESTS.md +0 -2
- package/IMPLEMENTATION/RFC-0063/ACCEPTANCE_CRITERIA.md +0 -1
- package/IMPLEMENTATION/RFC-0063/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0063/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0063/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0063/TESTS.md +0 -2
- package/IMPLEMENTATION/RFC-0064/ACCEPTANCE_CRITERIA.md +0 -1
- package/IMPLEMENTATION/RFC-0064/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0064/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0064/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0064/TESTS.md +0 -2
- package/IMPLEMENTATION/RFC-0065/ACCEPTANCE_CRITERIA.md +0 -1
- package/IMPLEMENTATION/RFC-0065/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0065/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0065/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0065/TESTS.md +0 -2
- package/IMPLEMENTATION/RFC-0066/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0066/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0066/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0066/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0066/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0067/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0067/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0067/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0067/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0067/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0068/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0068/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0068/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0068/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0068/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0069/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0069/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0069/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0069/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0069/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0070/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0070/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0070/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0070/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0070/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0071/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0071/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0071/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0071/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0071/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0072/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0072/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0072/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0072/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0072/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0073/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0073/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0073/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0073/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0073/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0074/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0074/AI_BRIEF.md +0 -17
- package/IMPLEMENTATION/RFC-0074/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0074/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0074/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0075/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0075/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0075/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0075/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0075/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0076/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0076/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0076/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0076/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0076/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0077/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0077/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0077/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0077/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0077/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0078/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0078/AI_BRIEF.md +0 -17
- package/IMPLEMENTATION/RFC-0078/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0078/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0078/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0079/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0079/AI_BRIEF.md +0 -7
- package/IMPLEMENTATION/RFC-0079/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0079/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0079/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0080/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0080/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0080/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0080/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0080/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0081/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0081/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0081/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0081/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0081/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0082/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0082/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0082/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0082/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0082/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0083/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0083/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0083/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0083/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0083/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0084/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0084/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0084/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0084/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0084/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0085/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0085/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0085/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0085/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0085/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0086/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0086/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0086/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0086/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0086/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0087/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0087/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0087/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0087/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0087/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0088/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0088/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0088/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0088/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0088/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0089/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0089/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0089/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0089/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0089/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0090/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0090/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0090/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0090/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0090/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0091/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0091/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0091/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0091/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0091/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0092/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0092/AI_BRIEF.md +0 -20
- package/IMPLEMENTATION/RFC-0092/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0092/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0092/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0093/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0093/AI_BRIEF.md +0 -22
- package/IMPLEMENTATION/RFC-0093/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0093/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0093/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0094/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0094/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0094/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0094/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0094/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0095/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0095/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0095/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0095/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0095/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0096/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0096/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0096/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0096/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0096/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0097/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0097/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0097/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0097/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0097/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0098/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0098/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0098/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0098/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0098/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0099/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0099/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0099/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0099/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0099/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0100/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0100/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0100/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0100/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0100/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0101/ACCEPTANCE_CRITERIA.md +0 -74
- package/IMPLEMENTATION/RFC-0101/AI_BRIEF.md +0 -80
- package/IMPLEMENTATION/RFC-0101/FILES.md +0 -82
- package/IMPLEMENTATION/RFC-0101/TASKS.md +0 -92
- package/IMPLEMENTATION/RFC-0101/TESTS.md +0 -127
- package/IMPLEMENTATION/RFC-0102/ACCEPTANCE_CRITERIA.md +0 -33
- package/IMPLEMENTATION/RFC-0102/AI_BRIEF.md +0 -34
- package/IMPLEMENTATION/RFC-0102/FILES.md +0 -73
- package/IMPLEMENTATION/RFC-0102/TASKS.md +0 -75
- package/IMPLEMENTATION/RFC-0102/TESTS.md +0 -78
- package/IMPLEMENTATION/RFC-0103/ACCEPTANCE_CRITERIA.md +0 -45
- package/IMPLEMENTATION/RFC-0103/AI_BRIEF.md +0 -46
- package/IMPLEMENTATION/RFC-0103/FILES.md +0 -121
- package/IMPLEMENTATION/RFC-0103/TASKS.md +0 -97
- package/IMPLEMENTATION/RFC-0103/TESTS.md +0 -118
- package/IMPLEMENTATION/RFC-0104/ACCEPTANCE_CRITERIA.md +0 -29
- package/IMPLEMENTATION/RFC-0104/FILES.md +0 -33
- package/IMPLEMENTATION/RFC-0105/ACCEPTANCE_CRITERIA.md +0 -29
- package/IMPLEMENTATION/RFC-0105/FILES.md +0 -41
- package/IMPLEMENTATION/RFC-0106/ACCEPTANCE_CRITERIA.md +0 -29
- package/IMPLEMENTATION/RFC-0106/FILES.md +0 -43
- package/RFC/0001_LOOP_RUNTIME.md +0 -14
- package/RFC/0002_PROVIDER_ADAPTER.md +0 -3
- package/RFC/0003_QUOTA_MANAGER.md +0 -3
- package/RFC/0004_PLAYWRIGHT_ADAPTER.md +0 -3
- package/RFC/0005_GIT_WORKTREE.md +0 -3
- package/RFC/0006_CHECKPOINT_MANAGER.md +0 -56
- package/RFC/0007_SCHEDULER.md +0 -32
- package/RFC/0008_PROVIDER_ROUTER.md +0 -44
- package/RFC/0009_SHARED_CONTEXT.md +0 -32
- package/RFC/0010_CONTEXT_WINDOW_MANAGER.md +0 -50
- package/RFC/0011_SHARED_BLACKBOARD.md +0 -42
- package/RFC/0012_AGENT_HANDOFF_PROTOCOL.md +0 -41
- package/RFC/0013_E2E_TEST_ENGINE.md +0 -42
- package/RFC/0014_PROJECT_DETECTOR_AND_TEST_DATA_ENGINE.md +0 -35
- package/RFC/0015_JOB_STATE_MACHINE.md +0 -45
- package/RFC/0016_TASK_GRAPH.md +0 -31
- package/RFC/0017_MASTER_PLANNER.md +0 -32
- package/RFC/0018_REPAIR_ENGINE.md +0 -36
- package/RFC/0019_AUTO_COMPACT_AND_CONTINUE.md +0 -51
- package/RFC/0020_OUTPUT_TOKEN_LIMIT_HANDLER.md +0 -49
- package/RFC/0021_PARTIAL_RESPONSE_RECOVERY.md +0 -49
- package/RFC/0022_NOTIFICATION_CENTER.md +0 -47
- package/RFC/0023_LOCAL_BROWSER_AGENT.md +0 -67
- package/RFC/0024_LOCAL_RUNTIME_AGENT.md +0 -3
- package/RFC/0025_COMMAND_EXECUTOR.md +0 -3
- package/RFC/0026_WORKSPACE_MANAGER.md +0 -3
- package/RFC/0027_RUNTIME_API.md +0 -3
- package/RFC/0028_POLICY_ENGINE.md +0 -3
- package/RFC/0029_DEEPAGENTS_ADAPTER.md +0 -2
- package/RFC/0030_AGENT_WORKER_INTERFACE.md +0 -2
- package/RFC/0031_PROVIDER_ADAPTER_SDK.md +0 -171
- package/RFC/0032_CHECKPOINT_ENGINE.md +0 -217
- package/RFC/0033_SESSION_MANAGER.md +0 -262
- package/RFC/0034_OBSERVABILITY.md +0 -416
- package/RFC/0035_ROADMAP_V1.md +0 -295
- package/RFC/0036_CODE_REVIEW_ENGINE.md +0 -430
- package/RFC/0037_CODE_GENERATION_PIPELINE.md +0 -504
- package/RFC/0038_FRAMEWORK_DETECTOR.md +0 -466
- package/RFC/0039_TEST_DATA_GENERATOR.md +0 -504
- package/RFC/0040_FRAMEWORK_PLUGIN_SDK.md +0 -543
- package/RFC/0041_PROMPT_COMPILER.md +0 -232
- package/RFC/0042_CONTEXT_COMPILER.md +0 -216
- package/RFC/0043_REQUIREMENT_COMPILER.md +0 -211
- package/RFC/0044_TASK_COMPILER.md +0 -207
- package/RFC/0045_PROJECT_ANALYZER.md +0 -246
- package/RFC/0046_DEPENDENCY_ANALYZER.md +0 -14
- package/RFC/0047_REPOSITORY_KNOWLEDGE_GRAPH.md +0 -14
- package/RFC/0048_CODE_MERGE_ENGINE.md +0 -14
- package/RFC/0049_CONFLICT_RESOLUTION_ENGINE.md +0 -14
- package/RFC/0050_DOCUMENTATION_GENERATOR.md +0 -14
- package/RFC/0051_CAPABILITY_REGISTRY.md +0 -144
- package/RFC/0052_SKILL_REGISTRY.md +0 -167
- package/RFC/0053_MODEL_REGISTRY.md +0 -214
- package/RFC/0054_PROVIDER_ROUTER.md +0 -239
- package/RFC/0055_COST_OPTIMIZER.md +0 -285
- package/RFC/0056_PERFORMANCE_OPTIMIZER.md +0 -118
- package/RFC/0057_EVALUATION_ENGINE.md +0 -116
- package/RFC/0058_LEARNING_ENGINE.md +0 -113
- package/RFC/0059_EXPERIENCE_REPLAY.md +0 -107
- package/RFC/0060_MEMORY_ENGINE_OKF.md +0 -152
- package/RFC/0061_FRAPPE_PLUGIN.md +0 -9
- package/RFC/0062_NEXTJS_PLUGIN.md +0 -9
- package/RFC/0063_REACT_VITE_PLUGIN.md +0 -9
- package/RFC/0064_DJANGO_PLUGIN.md +0 -9
- package/RFC/0065_LARAVEL_PLUGIN.md +0 -9
- package/RFC/0066_GENERIC_WEB_PLUGIN.md +0 -24
- package/RFC/0067_CLI_PLUGIN_SDK.md +0 -101
- package/RFC/0068_MCP_ADAPTER.md +0 -114
- package/RFC/0069_GOOGLE_A2A_ADAPTER.md +0 -139
- package/RFC/0070_OPENAI_CODEX_ADAPTER.md +0 -134
- package/RFC/0071_REQUIREMENT_INTAKE.md +0 -95
- package/RFC/0072_PROJECT_BOOTSTRAP.md +0 -82
- package/RFC/0073_ARCHITECTURE_GENERATOR.md +0 -85
- package/RFC/0074_SPRINT_PLANNER.md +0 -61
- package/RFC/0075_MILESTONE_MANAGER.md +0 -58
- package/RFC/0076_BACKLOG_MANAGER.md +0 -24
- package/RFC/0077_HUMAN_APPROVAL_GATE.md +0 -24
- package/RFC/0078_RELEASE_MANAGER.md +0 -24
- package/RFC/0079_VERSION_MANAGER.md +0 -24
- package/RFC/0080_DEPLOYMENT_PIPELINE.md +0 -24
- package/RFC/0081_MULTI_USER_RUNTIME.md +0 -24
- package/RFC/0082_RBAC.md +0 -24
- package/RFC/0083_AUDIT_TRAIL.md +0 -24
- package/RFC/0084_DASHBOARD.md +0 -24
- package/RFC/0085_ANALYTICS.md +0 -24
- package/RFC/0086_DISTRIBUTED_RUNTIME.md +0 -24
- package/RFC/0087_CLUSTER_MANAGER.md +0 -24
- package/RFC/0088_RUNTIME_FEDERATION.md +0 -24
- package/RFC/0089_HIGH_AVAILABILITY.md +0 -24
- package/RFC/0090_DISASTER_RECOVERY.md +0 -24
- package/RFC/0091_AUTONOMOUS_ARCHITECTURE_REVIEW.md +0 -24
- package/RFC/0092_AUTONOMOUS_REFACTORING.md +0 -24
- package/RFC/0093_AUTONOMOUS_BUG_FIXING.md +0 -24
- package/RFC/0094_AUTONOMOUS_PERFORMANCE_TUNING.md +0 -24
- package/RFC/0095_AUTONOMOUS_SECURITY_REVIEW.md +0 -24
- package/RFC/0096_AUTONOMOUS_COST_OPTIMIZATION.md +0 -24
- package/RFC/0097_AUTONOMOUS_DOCUMENTATION.md +0 -24
- package/RFC/0098_AUTONOMOUS_KNOWLEDGE_MANAGEMENT.md +0 -24
- package/RFC/0099_RUNTIME_EVOLUTION_ENGINE.md +0 -24
- package/RFC/0100_SELF_DEVELOPING_RUNTIME.md +0 -24
- package/RFC/0101_AUTONOMOUS_OPERATIONS_RUNTIME.md +0 -1105
- package/RFC/0102_CONTEXT_ENGINEERING_PIPELINE.md +0 -508
- package/RFC/0103_SESSION_EVENT_RUNTIME_AGENT_COMMUNICATION_LAYER.md +0 -616
- package/RFC/0104_DISTRIBUTED_AGENT_COMMUNICATION.md +0 -143
- package/RFC/0105_DISTRIBUTED_KNOWLEDGE_RETRIEVAL.md +0 -301
- package/RFC/0106_KNOWLEDGE_GRAPH_PROVENANCE.md +0 -368
- package/RFC/README.md +0 -11
- package/packages/event-bus/dist/tsconfig.tsbuildinfo +0 -1
- package/packages/provider-adapter-sdk/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
# RFC 0031: Provider Adapter SDK
|
|
2
|
-
|
|
3
|
-
## Summary
|
|
4
|
-
|
|
5
|
-
A comprehensive SDK for building, testing, and registering provider adapters that normalize AI provider behavior.
|
|
6
|
-
|
|
7
|
-
## Motivation
|
|
8
|
-
|
|
9
|
-
The current adapter system is ad-hoc with adapters defined in `packages/providers/adapters.ts`. We need:
|
|
10
|
-
|
|
11
|
-
1. A standardized SDK for creating new adapters
|
|
12
|
-
2. Built-in testing utilities
|
|
13
|
-
3. Version management and compatibility checks
|
|
14
|
-
4. Clear extension points for custom adapters
|
|
15
|
-
|
|
16
|
-
## Architecture
|
|
17
|
-
|
|
18
|
-
```
|
|
19
|
-
+-------------------------------------------------------------+
|
|
20
|
-
| Provider Adapter SDK |
|
|
21
|
-
+-------------------------------------------------------------+
|
|
22
|
-
| +-------------+ +-------------+ +-------------+ |
|
|
23
|
-
| | Builder | | Registry | | Tester | |
|
|
24
|
-
| | Class | | Manager | | Utilities | |
|
|
25
|
-
| +-------------+ +-------------+ +-------------+ |
|
|
26
|
-
+-------------------------------------------------------------+
|
|
27
|
-
| Adapter Interface |
|
|
28
|
-
+-------------------------------------------------------------+
|
|
29
|
-
| +-------------+ +-------------+ +-------------+ |
|
|
30
|
-
| | MiniMax | | OpenAI | | Claude | |
|
|
31
|
-
| | Adapter | | Adapter | | Adapter | |
|
|
32
|
-
| +-------------+ +-------------+ +-------------+ |
|
|
33
|
-
+-------------------------------------------------------------+
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## Key Components
|
|
37
|
-
|
|
38
|
-
### 1. AdapterBuilder Class
|
|
39
|
-
|
|
40
|
-
```typescript
|
|
41
|
-
class AdapterBuilder<T extends ProviderAdapter> {
|
|
42
|
-
constructor(name: string);
|
|
43
|
-
config(config: ProviderConfig): AdapterBuilder<T>;
|
|
44
|
-
capabilities(...caps: ProviderCapability[]): AdapterBuilder<T>;
|
|
45
|
-
models(...models: string[]): AdapterBuilder<T>;
|
|
46
|
-
rateLimits(limits: RateLimitConfig): AdapterBuilder<T>;
|
|
47
|
-
invoke(fn: (req: ProviderRequest) => Promise<ProviderResponse>): AdapterBuilder<T>;
|
|
48
|
-
parseError(fn: (err: unknown) => ErrorAnalysis): AdapterBuilder<T>;
|
|
49
|
-
build(): T;
|
|
50
|
-
}
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
### 2. AdapterTester Utility
|
|
54
|
-
|
|
55
|
-
```typescript
|
|
56
|
-
class AdapterTester {
|
|
57
|
-
constructor(adapter: ProviderAdapter);
|
|
58
|
-
testBasicInvocation(): Promise<TestResult>;
|
|
59
|
-
testQuotaDetection(): Promise<TestResult>;
|
|
60
|
-
testErrorParsing(): Promise<TestResult>;
|
|
61
|
-
testRateLimiting(): Promise<TestResult>;
|
|
62
|
-
generateMockResponses(): void;
|
|
63
|
-
}
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### 3. Adapter Registry with Lifecycle
|
|
67
|
-
|
|
68
|
-
```typescript
|
|
69
|
-
interface AdapterLifecycle {
|
|
70
|
-
onInit?: () => Promise<void>;
|
|
71
|
-
onHealthCheck?: () => Promise<HealthStatus>;
|
|
72
|
-
onTeardown?: () => Promise<void>;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
class AdapterRegistry {
|
|
76
|
-
register(adapter: ProviderAdapter, lifecycle?: AdapterLifecycle): void;
|
|
77
|
-
unregister(id: string): void;
|
|
78
|
-
getAdapter(id: string): ProviderAdapter | undefined;
|
|
79
|
-
listAdapters(): ProviderAdapterInfo[];
|
|
80
|
-
healthCheckAll(): Promise<Map<string, HealthStatus>>;
|
|
81
|
-
}
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
### 4. SDK Version Compatibility
|
|
85
|
-
|
|
86
|
-
```typescript
|
|
87
|
-
interface AdapterVersion {
|
|
88
|
-
sdk: string; // "1.0.0"
|
|
89
|
-
minRuntime: string;
|
|
90
|
-
capabilities: ProviderCapability[];
|
|
91
|
-
}
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
## File Structure
|
|
95
|
-
|
|
96
|
-
```
|
|
97
|
-
packages/provider-adapter-sdk/
|
|
98
|
-
+-- src/
|
|
99
|
-
| +-- index.ts # Public exports
|
|
100
|
-
| +-- builder.ts # AdapterBuilder class
|
|
101
|
-
| +-- registry.ts # AdapterRegistry with lifecycle
|
|
102
|
-
| +-- tester.ts # AdapterTester utilities
|
|
103
|
-
| +-- types.ts # SDK-specific types
|
|
104
|
-
| +-- compatibility.ts # Version checks
|
|
105
|
-
| +-- errors.ts # SDK-specific errors
|
|
106
|
-
+-- test/
|
|
107
|
-
| +-- builder.test.ts
|
|
108
|
-
| +-- registry.test.ts
|
|
109
|
-
| +-- tester.test.ts
|
|
110
|
-
+-- examples/
|
|
111
|
-
| +-- custom-provider.ts # Example custom adapter
|
|
112
|
-
| +-- testing-adapter.ts # Example testing setup
|
|
113
|
-
+-- package.json
|
|
114
|
-
+-- README.md
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
## Usage Examples
|
|
118
|
-
|
|
119
|
-
### Creating a Custom Adapter
|
|
120
|
-
|
|
121
|
-
```typescript
|
|
122
|
-
import { AdapterBuilder, type ProviderAdapter } from '@pi/provider-adapter-sdk';
|
|
123
|
-
|
|
124
|
-
const myAdapter = new AdapterBuilder('myprovider')
|
|
125
|
-
.config({
|
|
126
|
-
id: 'myprovider',
|
|
127
|
-
name: 'My Custom Provider',
|
|
128
|
-
models: ['myprovider/model-x', 'myprovider/model-y'],
|
|
129
|
-
capabilities: ['code', 'review'],
|
|
130
|
-
rateLimits: { requestsPerMinute: 60 }
|
|
131
|
-
})
|
|
132
|
-
.invoke(async (req) => {
|
|
133
|
-
const response = await myApi.call(req);
|
|
134
|
-
return response;
|
|
135
|
-
})
|
|
136
|
-
.parseError((err) => {
|
|
137
|
-
return {
|
|
138
|
-
quotaExceeded: err.code === 'QUOTA_EXCEEDED',
|
|
139
|
-
rateLimited: err.code === 'RATE_LIMIT',
|
|
140
|
-
// ...
|
|
141
|
-
};
|
|
142
|
-
})
|
|
143
|
-
.build();
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
### Testing an Adapter
|
|
147
|
-
|
|
148
|
-
```typescript
|
|
149
|
-
const tester = new AdapterTester(myAdapter);
|
|
150
|
-
const results = await tester.runAllTests();
|
|
151
|
-
|
|
152
|
-
if (results.failed > 0) {
|
|
153
|
-
console.log('Failed:', results.failures);
|
|
154
|
-
}
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
## Acceptance Criteria
|
|
158
|
-
|
|
159
|
-
1. ✅ SDK provides AdapterBuilder for creating adapters
|
|
160
|
-
2. ✅ SDK includes AdapterTester for validation
|
|
161
|
-
3. ✅ AdapterRegistry supports lifecycle hooks
|
|
162
|
-
4. ✅ Version compatibility checks prevent mismatches
|
|
163
|
-
5. ✅ All existing adapters (MiniMax, OpenAI, Claude) work with SDK
|
|
164
|
-
6. ✅ Custom adapters can be registered and used seamlessly
|
|
165
|
-
7. ✅ SDK exports TypeScript types and documentation
|
|
166
|
-
|
|
167
|
-
## Dependencies
|
|
168
|
-
|
|
169
|
-
- `packages/types` - for runtime-types
|
|
170
|
-
- `packages/providers` - existing adapter implementations
|
|
171
|
-
- No new external dependencies
|
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
# RFC 0032: Checkpoint Engine
|
|
2
|
-
|
|
3
|
-
## Summary
|
|
4
|
-
|
|
5
|
-
An enhanced checkpoint system with incremental snapshots, diff-based storage, and intelligent recovery strategies.
|
|
6
|
-
|
|
7
|
-
## Motivation
|
|
8
|
-
|
|
9
|
-
The current checkpoint system (`packages/checkpoint/checkpoint-manager.ts`) only saves full JSON snapshots. For large jobs with many events, this is inefficient. We need:
|
|
10
|
-
|
|
11
|
-
1. Incremental checkpoints with diff storage
|
|
12
|
-
2. Compression for large checkpoints
|
|
13
|
-
3. Parallel I/O for faster saves
|
|
14
|
-
4. Checksum verification
|
|
15
|
-
5. Checkpoint metadata and pruning
|
|
16
|
-
|
|
17
|
-
## Architecture
|
|
18
|
-
|
|
19
|
-
```
|
|
20
|
-
+-----------------------------------------------------------------+
|
|
21
|
-
| Checkpoint Engine |
|
|
22
|
-
+-----------------------------------------------------------------+
|
|
23
|
-
| +--------------+ +--------------+ +--------------+ |
|
|
24
|
-
| | Manager | | Storage | | Recovery | |
|
|
25
|
-
| | (API) | | (I/O) | | (Restore) | |
|
|
26
|
-
| +--------------+ +--------------+ +--------------+ |
|
|
27
|
-
+-----------------------------------------------------------------+
|
|
28
|
-
| +--------------+ +--------------+ +--------------+ |
|
|
29
|
-
| | Snapshot | | Diff | | Metadata | |
|
|
30
|
-
| | Full | | Incremental| | Index | |
|
|
31
|
-
| +--------------+ +--------------+ +--------------+ |
|
|
32
|
-
+-----------------------------------------------------------------+
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Key Components
|
|
36
|
-
|
|
37
|
-
### 1. Enhanced CheckpointManager
|
|
38
|
-
|
|
39
|
-
```typescript
|
|
40
|
-
interface CheckpointEngineConfig {
|
|
41
|
-
rootDir: string;
|
|
42
|
-
compression: boolean; // Enable gzip compression
|
|
43
|
-
incremental: boolean; // Enable incremental diffs
|
|
44
|
-
maxCheckpoints: number; // Keep last N checkpoints
|
|
45
|
-
autoPrune: boolean; // Auto-delete old checkpoints
|
|
46
|
-
checksumAlgorithm: 'md5' | 'sha256';
|
|
47
|
-
parallelWrites: boolean; // Parallel file I/O
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
class CheckpointEngine {
|
|
51
|
-
constructor(config: CheckpointEngineConfig);
|
|
52
|
-
|
|
53
|
-
// Save operations
|
|
54
|
-
save(jobId: string, state: RuntimeState): Promise<CheckpointMetadata>;
|
|
55
|
-
saveIncremental(jobId: string, delta: StateDelta): Promise<CheckpointMetadata>;
|
|
56
|
-
|
|
57
|
-
// Load operations
|
|
58
|
-
load(jobId: string): Promise<RuntimeState | null>;
|
|
59
|
-
loadIncremental(jobId: string, version: number): Promise<RuntimeState>;
|
|
60
|
-
|
|
61
|
-
// Recovery
|
|
62
|
-
recover(jobId: string, strategy: RecoveryStrategy): Promise<RecoveryResult>;
|
|
63
|
-
|
|
64
|
-
// Management
|
|
65
|
-
prune(jobId: string, keepCount: number): Promise<PruneResult>;
|
|
66
|
-
verify(jobId: string): Promise<VerificationResult>;
|
|
67
|
-
getMetadata(jobId: string): Promise<CheckpointMetadata[]>;
|
|
68
|
-
}
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### 2. State Delta for Incremental Saves
|
|
72
|
-
|
|
73
|
-
```typescript
|
|
74
|
-
interface StateDelta {
|
|
75
|
-
jobId: string;
|
|
76
|
-
baseVersion: number; // Previous checkpoint version
|
|
77
|
-
targetVersion: number; // New checkpoint version
|
|
78
|
-
changes: {
|
|
79
|
-
status?: JobStatus;
|
|
80
|
-
tasks?: TaskDelta[];
|
|
81
|
-
context?: ContextDiff;
|
|
82
|
-
errors?: ErrorEntry[];
|
|
83
|
-
};
|
|
84
|
-
timestamp: string;
|
|
85
|
-
checksum: string;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
interface TaskDelta {
|
|
89
|
-
taskId: string;
|
|
90
|
-
action: 'added' | 'updated' | 'removed';
|
|
91
|
-
before?: Partial<RuntimeTask>;
|
|
92
|
-
after?: Partial<RuntimeTask>;
|
|
93
|
-
}
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
### 3. Recovery Strategies
|
|
97
|
-
|
|
98
|
-
```typescript
|
|
99
|
-
type RecoveryStrategy =
|
|
100
|
-
| 'latest' // Use most recent checkpoint
|
|
101
|
-
| 'fullest' // Use checkpoint with most completed tasks
|
|
102
|
-
| 'specific:version' // Use specific version number
|
|
103
|
-
| 'timestamp:ISO' // Use checkpoint closest to timestamp
|
|
104
|
-
| 'interactive'; // Prompt user to choose
|
|
105
|
-
|
|
106
|
-
interface RecoveryResult {
|
|
107
|
-
success: boolean;
|
|
108
|
-
recoveredVersion: number;
|
|
109
|
-
lostEvents: number;
|
|
110
|
-
recoveryTimeMs: number;
|
|
111
|
-
warnings?: string[];
|
|
112
|
-
}
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
### 4. Checkpoint Metadata
|
|
116
|
-
|
|
117
|
-
```typescript
|
|
118
|
-
interface CheckpointMetadata {
|
|
119
|
-
jobId: string;
|
|
120
|
-
version: number;
|
|
121
|
-
type: 'full' | 'incremental';
|
|
122
|
-
sizeBytes: number;
|
|
123
|
-
compressed: boolean;
|
|
124
|
-
checksum: string;
|
|
125
|
-
taskProgress: {
|
|
126
|
-
total: number;
|
|
127
|
-
completed: number;
|
|
128
|
-
failed: number;
|
|
129
|
-
};
|
|
130
|
-
createdAt: string;
|
|
131
|
-
expiresAt?: string;
|
|
132
|
-
}
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
## File Structure
|
|
136
|
-
|
|
137
|
-
```
|
|
138
|
-
packages/checkpoint/
|
|
139
|
-
+-- src/
|
|
140
|
-
| +-- index.ts # Public exports
|
|
141
|
-
| +-- engine.ts # CheckpointEngine main class
|
|
142
|
-
| +-- storage.ts # File I/O with compression
|
|
143
|
-
| +-- differ.ts # Diff calculation
|
|
144
|
-
| +-- recovery.ts # Recovery strategies
|
|
145
|
-
| +-- indexer.ts # Metadata index
|
|
146
|
-
| +-- types.ts # Extended types
|
|
147
|
-
| +-- errors.ts # Checkpoint errors
|
|
148
|
-
+-- test/
|
|
149
|
-
| +-- engine.test.ts
|
|
150
|
-
| +-- differ.test.ts
|
|
151
|
-
| +-- recovery.test.ts
|
|
152
|
-
+-- package.json
|
|
153
|
-
+-- README.md
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
## Usage Examples
|
|
157
|
-
|
|
158
|
-
### Basic Usage
|
|
159
|
-
|
|
160
|
-
```typescript
|
|
161
|
-
const engine = new CheckpointEngine({
|
|
162
|
-
rootDir: './checkpoints',
|
|
163
|
-
compression: true,
|
|
164
|
-
incremental: true,
|
|
165
|
-
maxCheckpoints: 10,
|
|
166
|
-
autoPrune: true
|
|
167
|
-
});
|
|
168
|
-
|
|
169
|
-
await engine.save('job-123', {
|
|
170
|
-
jobId: 'job-123',
|
|
171
|
-
status: 'running',
|
|
172
|
-
tasks: [...],
|
|
173
|
-
// ...
|
|
174
|
-
});
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
### Recovery
|
|
178
|
-
|
|
179
|
-
```typescript
|
|
180
|
-
const result = await engine.recover('job-123', 'latest');
|
|
181
|
-
console.log(`Recovered version ${result.recoveredVersion}`);
|
|
182
|
-
console.log(`Lost ${result.lostEvents} events`);
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
### Pruning Old Checkpoints
|
|
186
|
-
|
|
187
|
-
```typescript
|
|
188
|
-
await engine.prune('job-123', 5); // Keep last 5 checkpoints
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
## Comparison with Current Implementation
|
|
192
|
-
|
|
193
|
-
| Feature | Current | RFC-0032 |
|
|
194
|
-
| --------- | --------- | ---------- |
|
|
195
|
-
| Full snapshots | ✅ | ✅ |
|
|
196
|
-
| Incremental diffs | ❌ | ✅ |
|
|
197
|
-
| Compression | ❌ | ✅ |
|
|
198
|
-
| Checksums | ❌ | ✅ |
|
|
199
|
-
| Parallel I/O | ❌ | ✅ |
|
|
200
|
-
| Recovery strategies | ❌ | ✅ |
|
|
201
|
-
| Auto-pruning | ❌ | ✅ |
|
|
202
|
-
|
|
203
|
-
## Acceptance Criteria
|
|
204
|
-
|
|
205
|
-
1. ✅ Incremental checkpoints reduce storage by 60%+ for typical jobs
|
|
206
|
-
2. ✅ Compression reduces checkpoint size by 50%+
|
|
207
|
-
3. ✅ Recovery can restore job state within 100ms for cached checkpoints
|
|
208
|
-
4. ✅ Checksum verification detects corruption
|
|
209
|
-
5. ✅ Parallel writes don't block main thread
|
|
210
|
-
6. ✅ Auto-pruning maintains disk space limits
|
|
211
|
-
7. ✅ Backward compatible with existing checkpoint format
|
|
212
|
-
|
|
213
|
-
## Dependencies
|
|
214
|
-
|
|
215
|
-
- `packages/types` - for runtime-types
|
|
216
|
-
- `zlib` (Node.js built-in) - for compression
|
|
217
|
-
- No new external dependencies
|
|
@@ -1,262 +0,0 @@
|
|
|
1
|
-
# RFC 0033: Session Manager
|
|
2
|
-
|
|
3
|
-
## Summary
|
|
4
|
-
|
|
5
|
-
A comprehensive session management system for tracking user sessions, maintaining conversation history, and providing session persistence across restarts.
|
|
6
|
-
|
|
7
|
-
## Motivation
|
|
8
|
-
|
|
9
|
-
Currently, session state is managed ad-hoc within individual components. We need:
|
|
10
|
-
|
|
11
|
-
1. Centralized session tracking
|
|
12
|
-
2. Conversation history with token accounting
|
|
13
|
-
3. Session persistence and restoration
|
|
14
|
-
4. Multi-session support (parallel jobs)
|
|
15
|
-
5. Session metrics and analytics
|
|
16
|
-
|
|
17
|
-
## Architecture
|
|
18
|
-
|
|
19
|
-
```
|
|
20
|
-
+-----------------------------------------------------------------+
|
|
21
|
-
| Session Manager |
|
|
22
|
-
+-----------------------------------------------------------------+
|
|
23
|
-
| +--------------+ +--------------+ +--------------+ |
|
|
24
|
-
| | Session | | History | | Metrics | |
|
|
25
|
-
| | Store | | Manager | | Collector | |
|
|
26
|
-
| +--------------+ +--------------+ +--------------+ |
|
|
27
|
-
+-----------------------------------------------------------------+
|
|
28
|
-
| +--------------+ +--------------+ +--------------+ |
|
|
29
|
-
| | Session | | Message | | Context | |
|
|
30
|
-
| | Policy | | Index | | Cache | |
|
|
31
|
-
| +--------------+ +--------------+ +--------------+ |
|
|
32
|
-
+-----------------------------------------------------------------+
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Key Components
|
|
36
|
-
|
|
37
|
-
### 1. Session Types
|
|
38
|
-
|
|
39
|
-
```typescript
|
|
40
|
-
interface Session {
|
|
41
|
-
id: string;
|
|
42
|
-
userId?: string;
|
|
43
|
-
jobId?: string;
|
|
44
|
-
status: SessionStatus;
|
|
45
|
-
createdAt: string;
|
|
46
|
-
updatedAt: string;
|
|
47
|
-
lastActivityAt: string;
|
|
48
|
-
expiresAt?: string;
|
|
49
|
-
metadata: SessionMetadata;
|
|
50
|
-
context: SessionContext;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
type SessionStatus = 'active' | 'idle' | 'suspended' | 'closed';
|
|
54
|
-
|
|
55
|
-
interface SessionMetadata {
|
|
56
|
-
provider: string;
|
|
57
|
-
model: string;
|
|
58
|
-
tokenUsage: TokenUsage;
|
|
59
|
-
messageCount: number;
|
|
60
|
-
turnCount: number;
|
|
61
|
-
costEstimate: number;
|
|
62
|
-
tags: string[];
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
interface TokenUsage {
|
|
66
|
-
input: number;
|
|
67
|
-
output: number;
|
|
68
|
-
cacheRead: number;
|
|
69
|
-
cacheWrite: number;
|
|
70
|
-
total: number;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
interface SessionContext {
|
|
74
|
-
systemPrompt?: string;
|
|
75
|
-
workingDirectory?: string;
|
|
76
|
-
variables: Record<string, unknown>;
|
|
77
|
-
attachments: Attachment[];
|
|
78
|
-
}
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
### 2. SessionManager Class
|
|
82
|
-
|
|
83
|
-
```typescript
|
|
84
|
-
interface SessionManagerConfig {
|
|
85
|
-
storageDir: string; // Where to persist sessions
|
|
86
|
-
maxSessions: number; // Max concurrent sessions
|
|
87
|
-
sessionTimeout: number; // Idle timeout in ms
|
|
88
|
-
maxHistoryLength: number; // Max messages to retain
|
|
89
|
-
autoCheckpoint: boolean; // Auto-save session state
|
|
90
|
-
checkpointInterval: number; // Checkpoint frequency in ms
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
class SessionManager {
|
|
94
|
-
constructor(config: SessionManagerConfig);
|
|
95
|
-
|
|
96
|
-
// Session lifecycle
|
|
97
|
-
createSession(init?: Partial<Session>): Promise<Session>;
|
|
98
|
-
getSession(id: string): Promise<Session | null>;
|
|
99
|
-
closeSession(id: string): Promise<void>;
|
|
100
|
-
suspendSession(id: string): Promise<void>;
|
|
101
|
-
resumeSession(id: string): Promise<Session>;
|
|
102
|
-
|
|
103
|
-
// Message handling
|
|
104
|
-
addMessage(sessionId: string, message: Message): Promise<void>;
|
|
105
|
-
getHistory(sessionId: string, options?: HistoryOptions): Promise<Message[]>;
|
|
106
|
-
|
|
107
|
-
// Metrics
|
|
108
|
-
getMetrics(sessionId: string): Promise<SessionMetrics>;
|
|
109
|
-
getAllMetrics(): Promise<GlobalMetrics>;
|
|
110
|
-
|
|
111
|
-
// Cleanup
|
|
112
|
-
pruneSessions(olderThan: Date): Promise<PruneResult>;
|
|
113
|
-
cleanupExpired(): Promise<CleanupResult>;
|
|
114
|
-
}
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
### 3. Message Types
|
|
118
|
-
|
|
119
|
-
```typescript
|
|
120
|
-
interface Message {
|
|
121
|
-
id: string;
|
|
122
|
-
sessionId: string;
|
|
123
|
-
role: 'system' | 'user' | 'assistant' | 'tool';
|
|
124
|
-
content: string;
|
|
125
|
-
timestamp: string;
|
|
126
|
-
tokens?: number;
|
|
127
|
-
attachments?: Attachment[];
|
|
128
|
-
metadata?: Record<string, unknown>;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
interface HistoryOptions {
|
|
132
|
-
limit?: number; // Max messages to return
|
|
133
|
-
before?: string; // Cursor for pagination
|
|
134
|
-
roles?: ('system' | 'user' | 'assistant' | 'tool')[];
|
|
135
|
-
search?: string; // Full-text search
|
|
136
|
-
}
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
### 4. Session Policy Engine
|
|
140
|
-
|
|
141
|
-
```typescript
|
|
142
|
-
interface SessionPolicy {
|
|
143
|
-
maxTokensPerSession?: number;
|
|
144
|
-
maxCostPerSession?: number;
|
|
145
|
-
autoSuspendIdle?: boolean;
|
|
146
|
-
idleTimeoutMs?: number;
|
|
147
|
-
allowContextOverflow?: boolean;
|
|
148
|
-
summarizationStrategy?: 'never' | 'when_near' | 'always';
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
class SessionPolicyEngine {
|
|
152
|
-
constructor(policies: SessionPolicy[]);
|
|
153
|
-
evaluate(session: Session): PolicyResult;
|
|
154
|
-
apply(session: Session, result: PolicyResult): Promise<void>;
|
|
155
|
-
}
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
## File Structure
|
|
159
|
-
|
|
160
|
-
```
|
|
161
|
-
packages/session/
|
|
162
|
-
+-- src/
|
|
163
|
-
| +-- index.ts # Public exports
|
|
164
|
-
| +-- manager.ts # SessionManager class
|
|
165
|
-
| +-- store.ts # Session persistence
|
|
166
|
-
| +-- history.ts # Message history management
|
|
167
|
-
| +-- policy.ts # Policy engine
|
|
168
|
-
| +-- metrics.ts # Metrics collection
|
|
169
|
-
| +-- types.ts # Session types
|
|
170
|
-
| +-- errors.ts # Session errors
|
|
171
|
-
+-- test/
|
|
172
|
-
| +-- manager.test.ts
|
|
173
|
-
| +-- history.test.ts
|
|
174
|
-
| +-- policy.test.ts
|
|
175
|
-
+-- examples/
|
|
176
|
-
| +-- basic-usage.ts
|
|
177
|
-
| +-- policy-examples.ts
|
|
178
|
-
+-- package.json
|
|
179
|
-
+-- README.md
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
## Usage Examples
|
|
183
|
-
|
|
184
|
-
### Creating and Using a Session
|
|
185
|
-
|
|
186
|
-
```typescript
|
|
187
|
-
const manager = new SessionManager({
|
|
188
|
-
storageDir: './sessions',
|
|
189
|
-
maxSessions: 100,
|
|
190
|
-
sessionTimeout: 3600000, // 1 hour
|
|
191
|
-
maxHistoryLength: 1000,
|
|
192
|
-
autoCheckpoint: true
|
|
193
|
-
});
|
|
194
|
-
|
|
195
|
-
const session = await manager.createSession({
|
|
196
|
-
userId: 'user-123',
|
|
197
|
-
metadata: { provider: 'anthropic', model: 'claude-3-5-sonnet' }
|
|
198
|
-
});
|
|
199
|
-
|
|
200
|
-
await session.addMessage({
|
|
201
|
-
role: 'user',
|
|
202
|
-
content: 'Hello, help me build a React app'
|
|
203
|
-
});
|
|
204
|
-
|
|
205
|
-
const history = await session.getHistory({ limit: 10 });
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
### Policy Enforcement
|
|
209
|
-
|
|
210
|
-
```typescript
|
|
211
|
-
const policyEngine = new SessionPolicyEngine([
|
|
212
|
-
{ maxTokensPerSession: 100000 },
|
|
213
|
-
{ maxCostPerSession: 10.00 },
|
|
214
|
-
{ autoSuspendIdle: true, idleTimeoutMs: 300000 }
|
|
215
|
-
]);
|
|
216
|
-
|
|
217
|
-
const result = policyEngine.evaluate(session);
|
|
218
|
-
if (!result.allowed) {
|
|
219
|
-
console.log(`Policy violation: ${result.reason}`);
|
|
220
|
-
await session.suspend();
|
|
221
|
-
}
|
|
222
|
-
```
|
|
223
|
-
|
|
224
|
-
### Metrics
|
|
225
|
-
|
|
226
|
-
```typescript
|
|
227
|
-
const metrics = await session.getMetrics();
|
|
228
|
-
console.log({
|
|
229
|
-
tokensUsed: metrics.tokenUsage.total,
|
|
230
|
-
messages: metrics.messageCount,
|
|
231
|
-
estimatedCost: metrics.costEstimate
|
|
232
|
-
});
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
## Integration with Existing Components
|
|
236
|
-
|
|
237
|
-
```
|
|
238
|
-
SessionManager ------+------> CheckpointEngine (save/restore sessions)
|
|
239
|
-
|
|
|
240
|
-
+------> ContextWindowManager (token accounting)
|
|
241
|
-
|
|
|
242
|
-
+------> QuotaManager (cost tracking)
|
|
243
|
-
|
|
|
244
|
-
+------> RuntimeApi (session CRUD endpoints)
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
## Acceptance Criteria
|
|
248
|
-
|
|
249
|
-
1. ✅ Sessions persist across process restarts
|
|
250
|
-
2. ✅ Message history is queryable with pagination
|
|
251
|
-
3. ✅ Token usage is accurately tracked per session
|
|
252
|
-
4. ✅ Policy engine enforces session limits
|
|
253
|
-
5. ✅ Idle sessions auto-suspend after timeout
|
|
254
|
-
6. ✅ Session metrics are available for analytics
|
|
255
|
-
7. ✅ Multiple concurrent sessions are supported
|
|
256
|
-
|
|
257
|
-
## Dependencies
|
|
258
|
-
|
|
259
|
-
- `packages/types` - for runtime-types
|
|
260
|
-
- `packages/checkpoint` - for session persistence
|
|
261
|
-
- `packages/quota-manager` - for cost tracking
|
|
262
|
-
- No new external dependencies
|