front-cpu 0.1.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.
- package/README.md +475 -0
- package/README.zh-CN.md +474 -0
- package/dist/Pipeline.d.ts +119 -0
- package/dist/Pipeline.d.ts.map +1 -0
- package/dist/Pipeline.js +373 -0
- package/dist/Pipeline.js.map +1 -0
- package/dist/debug.d.ts +3 -0
- package/dist/debug.d.ts.map +1 -0
- package/dist/debug.js +12 -0
- package/dist/debug.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces.d.ts +49 -0
- package/dist/interfaces.d.ts.map +1 -0
- package/dist/interfaces.js +8 -0
- package/dist/interfaces.js.map +1 -0
- package/dist/isa/index.d.ts +20 -0
- package/dist/isa/index.d.ts.map +1 -0
- package/dist/isa/index.js +26 -0
- package/dist/isa/index.js.map +1 -0
- package/dist/isa/types.d.ts +144 -0
- package/dist/isa/types.d.ts.map +1 -0
- package/dist/isa/types.js +10 -0
- package/dist/isa/types.js.map +1 -0
- package/dist/logging/CPUConsole.d.ts +105 -0
- package/dist/logging/CPUConsole.d.ts.map +1 -0
- package/dist/logging/CPUConsole.js +471 -0
- package/dist/logging/CPUConsole.js.map +1 -0
- package/dist/logging/CPUDebugger.d.ts +91 -0
- package/dist/logging/CPUDebugger.d.ts.map +1 -0
- package/dist/logging/CPUDebugger.js +166 -0
- package/dist/logging/CPUDebugger.js.map +1 -0
- package/dist/logging/CPUEventCollector.d.ts +90 -0
- package/dist/logging/CPUEventCollector.d.ts.map +1 -0
- package/dist/logging/CPUEventCollector.js +353 -0
- package/dist/logging/CPUEventCollector.js.map +1 -0
- package/dist/logging/CPULogger.d.ts +150 -0
- package/dist/logging/CPULogger.d.ts.map +1 -0
- package/dist/logging/CPULogger.js +336 -0
- package/dist/logging/CPULogger.js.map +1 -0
- package/dist/logging/index.d.ts +10 -0
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +16 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/logging/runtime.d.ts +37 -0
- package/dist/logging/runtime.d.ts.map +1 -0
- package/dist/logging/runtime.js +42 -0
- package/dist/logging/runtime.js.map +1 -0
- package/dist/logging/stack-parser.d.ts +22 -0
- package/dist/logging/stack-parser.d.ts.map +1 -0
- package/dist/logging/stack-parser.js +144 -0
- package/dist/logging/stack-parser.js.map +1 -0
- package/dist/logging/types.d.ts +73 -0
- package/dist/logging/types.d.ts.map +1 -0
- package/dist/logging/types.js +47 -0
- package/dist/logging/types.js.map +1 -0
- package/dist/scheduling/ResourceStrategyRegistry.d.ts +61 -0
- package/dist/scheduling/ResourceStrategyRegistry.d.ts.map +1 -0
- package/dist/scheduling/ResourceStrategyRegistry.js +109 -0
- package/dist/scheduling/ResourceStrategyRegistry.js.map +1 -0
- package/dist/scheduling/index.d.ts +6 -0
- package/dist/scheduling/index.d.ts.map +1 -0
- package/dist/scheduling/index.js +5 -0
- package/dist/scheduling/index.js.map +1 -0
- package/dist/scheduling/types.d.ts +44 -0
- package/dist/scheduling/types.d.ts.map +1 -0
- package/dist/scheduling/types.js +5 -0
- package/dist/scheduling/types.js.map +1 -0
- package/dist/stages/EX.d.ts +17 -0
- package/dist/stages/EX.d.ts.map +1 -0
- package/dist/stages/EX.js +95 -0
- package/dist/stages/EX.js.map +1 -0
- package/dist/stages/IF.d.ts +41 -0
- package/dist/stages/IF.d.ts.map +1 -0
- package/dist/stages/IF.js +83 -0
- package/dist/stages/IF.js.map +1 -0
- package/dist/stages/RES.d.ts +17 -0
- package/dist/stages/RES.d.ts.map +1 -0
- package/dist/stages/RES.js +37 -0
- package/dist/stages/RES.js.map +1 -0
- package/dist/stages/SCH.d.ts +77 -0
- package/dist/stages/SCH.d.ts.map +1 -0
- package/dist/stages/SCH.js +270 -0
- package/dist/stages/SCH.js.map +1 -0
- package/dist/stages/WB.d.ts +19 -0
- package/dist/stages/WB.d.ts.map +1 -0
- package/dist/stages/WB.js +102 -0
- package/dist/stages/WB.js.map +1 -0
- package/dist/types.d.ts +111 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +26 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/InstructionCancellation.d.ts +31 -0
- package/dist/utils/InstructionCancellation.d.ts.map +1 -0
- package/dist/utils/InstructionCancellation.js +53 -0
- package/dist/utils/InstructionCancellation.js.map +1 -0
- package/dist/utils/abortable.d.ts +30 -0
- package/dist/utils/abortable.d.ts.map +1 -0
- package/dist/utils/abortable.js +76 -0
- package/dist/utils/abortable.js.map +1 -0
- package/dist/utils/request.d.ts +27 -0
- package/dist/utils/request.d.ts.map +1 -0
- package/dist/utils/request.js +96 -0
- package/dist/utils/request.js.map +1 -0
- package/package.json +74 -0
- package/src/Pipeline.ts +475 -0
- package/src/debug.ts +15 -0
- package/src/index.ts +67 -0
- package/src/interfaces.ts +53 -0
- package/src/isa/index.ts +34 -0
- package/src/isa/types.ts +178 -0
- package/src/logging/CPUConsole.md +843 -0
- package/src/logging/CPUConsole.ts +631 -0
- package/src/logging/CPUDebugger.ts +235 -0
- package/src/logging/CPUEventCollector.ts +418 -0
- package/src/logging/CPULogger.ts +435 -0
- package/src/logging/CPU_LOGGING_DESIGN.md +1319 -0
- package/src/logging/USAGE_GUIDE.md +505 -0
- package/src/logging/index.ts +21 -0
- package/src/logging/runtime.ts +96 -0
- package/src/logging/stack-parser.ts +168 -0
- package/src/logging/types.ts +101 -0
- package/src/scheduling/ResourceStrategyRegistry.ts +124 -0
- package/src/scheduling/index.ts +13 -0
- package/src/scheduling/types.ts +47 -0
- package/src/stages/EX.ts +121 -0
- package/src/stages/IF.ts +103 -0
- package/src/stages/RES.ts +46 -0
- package/src/stages/SCH.ts +331 -0
- package/src/stages/WB.ts +127 -0
- package/src/types.ts +118 -0
- package/src/utils/InstructionCancellation.ts +73 -0
- package/src/utils/abortable.ts +89 -0
- package/src/utils/request.ts +125 -0
package/src/isa/index.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ISA(指令集架构)管理
|
|
3
|
+
*
|
|
4
|
+
* 提供全局ISA注册和访问机制
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { ISADefinition } from './types'
|
|
8
|
+
|
|
9
|
+
// 全局ISA存储
|
|
10
|
+
let globalISA: ISADefinition = {}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* 注册ISA(由项目调用)
|
|
14
|
+
*/
|
|
15
|
+
export function registerISA(isa: ISADefinition): void {
|
|
16
|
+
globalISA = { ...globalISA, ...isa }
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* 获取ISA(供Pipeline内部使用)
|
|
21
|
+
*/
|
|
22
|
+
export function getISA(): ISADefinition {
|
|
23
|
+
return globalISA
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* 清空ISA(用于测试)
|
|
28
|
+
*/
|
|
29
|
+
export function clearISA(): void {
|
|
30
|
+
globalISA = {}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// 导出类型
|
|
34
|
+
export type { ISADefinition, InstructionDefinition } from './types'
|
package/src/isa/types.ts
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ISA 指令集类型定义(混合架构版)
|
|
3
|
+
*
|
|
4
|
+
* 支持:
|
|
5
|
+
* 1. 声明式请求配置(单个或多个请求)
|
|
6
|
+
* 2. 自定义执行逻辑
|
|
7
|
+
* 3. 乐观更新
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { InstructionContext } from "../types";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* 资源调度策略
|
|
14
|
+
*/
|
|
15
|
+
export type SchedulingStrategy = "out-of-order" | "serial" | "latest" | "read-write";
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* 资源访问模式
|
|
19
|
+
*/
|
|
20
|
+
export type ResourceAccessMode = "read" | "write";
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* 资源访问描述
|
|
24
|
+
*/
|
|
25
|
+
export interface ResourceAccess {
|
|
26
|
+
/** 资源ID */
|
|
27
|
+
id: string;
|
|
28
|
+
/** 访问模式,默认 write */
|
|
29
|
+
mode?: ResourceAccessMode;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* 资源标识提取函数
|
|
34
|
+
* - 兼容旧格式:string[]
|
|
35
|
+
* - 新格式:{ id, mode }[]
|
|
36
|
+
*/
|
|
37
|
+
export type ResourceIdentifier<TPayload = any> = (
|
|
38
|
+
payload: TPayload
|
|
39
|
+
) => Array<string | ResourceAccess>;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* 指令元数据
|
|
43
|
+
*/
|
|
44
|
+
export interface InstructionMeta {
|
|
45
|
+
/** 指令描述 */
|
|
46
|
+
description: string;
|
|
47
|
+
/** 指令分类 */
|
|
48
|
+
category: "debug" | "task" | "schedule" | "system" | "area";
|
|
49
|
+
/** 资源标识符提取函数 */
|
|
50
|
+
resourceIdentifier: ResourceIdentifier;
|
|
51
|
+
/** 优先级 (0-10) */
|
|
52
|
+
priority: number;
|
|
53
|
+
/** 超时时间 (ms) */
|
|
54
|
+
timeout?: number;
|
|
55
|
+
/**
|
|
56
|
+
* 指令级别的调度策略(可选)
|
|
57
|
+
* 如果指定,会覆盖资源级别和全局默认策略
|
|
58
|
+
*/
|
|
59
|
+
schedulingStrategy?: SchedulingStrategy;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* HTTP 请求方法
|
|
64
|
+
*/
|
|
65
|
+
export type HttpMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* 单个 HTTP 请求配置
|
|
69
|
+
*/
|
|
70
|
+
export interface RequestConfig<TPayload = any> {
|
|
71
|
+
method: HttpMethod;
|
|
72
|
+
url: string | ((payload: TPayload) => string);
|
|
73
|
+
body?: (payload: TPayload) => any;
|
|
74
|
+
headers?: Record<string, string>;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* 多个 HTTP 请求配置
|
|
79
|
+
*/
|
|
80
|
+
export interface MultiRequestConfig<TPayload = any> {
|
|
81
|
+
/** 请求列表 */
|
|
82
|
+
requests: Array<RequestConfig<TPayload>>;
|
|
83
|
+
/** 执行模式:parallel(并发)或 sequential(串行) */
|
|
84
|
+
mode: "parallel" | "sequential";
|
|
85
|
+
/** 合并多个请求的结果(可选) */
|
|
86
|
+
combineResults?: (results: any[]) => any;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* 乐观更新快照
|
|
91
|
+
*/
|
|
92
|
+
export interface OptimisticSnapshot {
|
|
93
|
+
[key: string]: any;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* 乐观更新配置
|
|
98
|
+
*/
|
|
99
|
+
export interface OptimisticConfig<TPayload = any> {
|
|
100
|
+
/** 是否启用乐观更新 */
|
|
101
|
+
enabled: boolean;
|
|
102
|
+
/** 应用乐观更新,返回快照用于回滚 */
|
|
103
|
+
apply: (payload: TPayload, context: InstructionContext) => OptimisticSnapshot;
|
|
104
|
+
/** 回滚乐观更新 */
|
|
105
|
+
rollback: (snapshot: OptimisticSnapshot) => void;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* 指令定义(混合架构)
|
|
110
|
+
*
|
|
111
|
+
* 两种方式(互斥):
|
|
112
|
+
* 1. 声明式:配置 `request`(单个或多个)+ `commit`
|
|
113
|
+
* 2. 自定义:配置 `execute` + `commit`
|
|
114
|
+
*/
|
|
115
|
+
export interface InstructionDefinition<TPayload = any, TResult = any> {
|
|
116
|
+
/** 指令元数据 */
|
|
117
|
+
meta: InstructionMeta;
|
|
118
|
+
|
|
119
|
+
// ==================== 声明式配置(推荐,80% 场景) ====================
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* HTTP 请求配置
|
|
123
|
+
* - 单个请求:RequestConfig
|
|
124
|
+
* - 多个请求:MultiRequestConfig(支持并发/串行)
|
|
125
|
+
*
|
|
126
|
+
* 与 `execute` 互斥,优先使用 `request`
|
|
127
|
+
*/
|
|
128
|
+
request?: RequestConfig<TPayload> | MultiRequestConfig<TPayload>;
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* 乐观更新配置(可选)
|
|
132
|
+
*/
|
|
133
|
+
optimistic?: OptimisticConfig<TPayload>;
|
|
134
|
+
|
|
135
|
+
// ==================== 自定义执行(灵活,20% 场景) ====================
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* 前置验证(可选)
|
|
139
|
+
*/
|
|
140
|
+
validate?: (
|
|
141
|
+
payload: TPayload,
|
|
142
|
+
context: InstructionContext
|
|
143
|
+
) => Promise<boolean>;
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* 自定义执行逻辑(与 `request` 互斥)
|
|
147
|
+
*
|
|
148
|
+
* 适用场景:
|
|
149
|
+
* - 复杂的条件逻辑
|
|
150
|
+
* - 需要在请求间传递数据
|
|
151
|
+
* - 需要与旧系统集成
|
|
152
|
+
*/
|
|
153
|
+
execute?: (
|
|
154
|
+
payload: TPayload,
|
|
155
|
+
context: InstructionContext
|
|
156
|
+
) => Promise<TResult>;
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* 提交结果(写回阶段调用)
|
|
160
|
+
*
|
|
161
|
+
* 用于处理执行结果,如更新 Store
|
|
162
|
+
* @param result 执行结果
|
|
163
|
+
* @param payload 指令负载
|
|
164
|
+
* @param context 指令上下文
|
|
165
|
+
* @param optimisticSnapshot 乐观更新快照(如果有)
|
|
166
|
+
*/
|
|
167
|
+
commit?: (
|
|
168
|
+
result: TResult,
|
|
169
|
+
payload: TPayload,
|
|
170
|
+
context: InstructionContext,
|
|
171
|
+
optimisticSnapshot?: any
|
|
172
|
+
) => Promise<void>;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* ISA 定义类型
|
|
177
|
+
*/
|
|
178
|
+
export type ISADefinition = Record<string, InstructionDefinition>;
|