@hongmaple0820/scale-engine 0.24.0 → 0.26.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 (155) hide show
  1. package/LICENSE +15 -15
  2. package/README.en.md +336 -304
  3. package/README.md +500 -475
  4. package/dist/adapters/AiderAdapter.js +52 -52
  5. package/dist/adapters/AntigravityAdapter.d.ts +4 -0
  6. package/dist/adapters/AntigravityAdapter.js +21 -0
  7. package/dist/adapters/AntigravityAdapter.js.map +1 -0
  8. package/dist/adapters/ClaudeCodeAdapter.d.ts +4 -1
  9. package/dist/adapters/ClaudeCodeAdapter.js +34 -34
  10. package/dist/adapters/ClaudeCodeAdapter.js.map +1 -1
  11. package/dist/adapters/ClineAdapter.d.ts +4 -0
  12. package/dist/adapters/ClineAdapter.js +20 -0
  13. package/dist/adapters/ClineAdapter.js.map +1 -0
  14. package/dist/adapters/CodexAdapter.js +28 -28
  15. package/dist/adapters/CursorAdapter.js +26 -26
  16. package/dist/adapters/DeepSeekTuiAdapter.js +97 -97
  17. package/dist/adapters/DoubaoAdapter.js +33 -33
  18. package/dist/adapters/GeminiAdapter.js +26 -26
  19. package/dist/adapters/GenericProjectAgentAdapter.d.ts +29 -0
  20. package/dist/adapters/GenericProjectAgentAdapter.js +204 -0
  21. package/dist/adapters/GenericProjectAgentAdapter.js.map +1 -0
  22. package/dist/adapters/HermesAdapter.js +26 -26
  23. package/dist/adapters/JCodeAdapter.d.ts +4 -0
  24. package/dist/adapters/JCodeAdapter.js +19 -0
  25. package/dist/adapters/JCodeAdapter.js.map +1 -0
  26. package/dist/adapters/KiloCodeAdapter.d.ts +4 -0
  27. package/dist/adapters/KiloCodeAdapter.js +20 -0
  28. package/dist/adapters/KiloCodeAdapter.js.map +1 -0
  29. package/dist/adapters/KimiAdapter.js +32 -32
  30. package/dist/adapters/KiroAdapter.js +26 -26
  31. package/dist/adapters/OpenClawAdapter.js +26 -26
  32. package/dist/adapters/OpenCodeAdapter.js +26 -26
  33. package/dist/adapters/QCoderAdapter.js +26 -26
  34. package/dist/adapters/QoderAdapter.d.ts +4 -0
  35. package/dist/adapters/QoderAdapter.js +21 -0
  36. package/dist/adapters/QoderAdapter.js.map +1 -0
  37. package/dist/adapters/TraeAdapter.js +26 -26
  38. package/dist/adapters/VSCAdapter.js +26 -26
  39. package/dist/adapters/WindsurfAdapter.js +32 -32
  40. package/dist/adapters/WorkBuddyAdapter.js +26 -26
  41. package/dist/adapters/index.d.ts +5 -0
  42. package/dist/adapters/index.js +15 -0
  43. package/dist/adapters/index.js.map +1 -1
  44. package/dist/api/cli.js +226 -48
  45. package/dist/api/cli.js.map +1 -1
  46. package/dist/api/doctor.js +10 -3
  47. package/dist/api/doctor.js.map +1 -1
  48. package/dist/api/quickstart.js +7 -1
  49. package/dist/api/quickstart.js.map +1 -1
  50. package/dist/artifact/sqliteStore.js +89 -89
  51. package/dist/artifact/types.d.ts +1 -1
  52. package/dist/cli/phaseCommands.js +45 -45
  53. package/dist/context/AntiPatternRegistry.js +20 -20
  54. package/dist/context/ContextBuilder.js +155 -155
  55. package/dist/evolution/EvolutionEngine.js +31 -31
  56. package/dist/evolution/EvolutionEvaluator.d.ts +2 -0
  57. package/dist/evolution/EvolutionEvaluator.js +7 -1
  58. package/dist/evolution/EvolutionEvaluator.js.map +1 -1
  59. package/dist/fsm/FSMAgentBridge.js +11 -11
  60. package/dist/hooks/HookGeneratorEnhanced.js +218 -218
  61. package/dist/index.d.ts +1 -1
  62. package/dist/index.js +2 -2
  63. package/dist/index.js.map +1 -1
  64. package/dist/knowledge/SQLiteKnowledgeBase.js +28 -28
  65. package/dist/memory/MemoryBrain.d.ts +1 -0
  66. package/dist/memory/MemoryBrain.js +55 -52
  67. package/dist/memory/MemoryBrain.js.map +1 -1
  68. package/dist/memory/MemoryFabric.d.ts +13 -1
  69. package/dist/memory/MemoryFabric.js +35 -0
  70. package/dist/memory/MemoryFabric.js.map +1 -1
  71. package/dist/memory/MemoryProviders.d.ts +111 -0
  72. package/dist/memory/MemoryProviders.js +385 -0
  73. package/dist/memory/MemoryProviders.js.map +1 -0
  74. package/dist/memory/index.d.ts +1 -0
  75. package/dist/memory/index.js +1 -0
  76. package/dist/memory/index.js.map +1 -1
  77. package/dist/output/GovernanceDashboard.js +44 -44
  78. package/dist/output/HTMLArtifactLayer.js +31 -31
  79. package/dist/prompts/VibeTemplateGallery.js +121 -121
  80. package/dist/skills/SkillDiscovery.js +12 -1
  81. package/dist/skills/SkillDiscovery.js.map +1 -1
  82. package/dist/skills/SkillRadar.js +20 -0
  83. package/dist/skills/SkillRadar.js.map +1 -1
  84. package/dist/skills/SkillRepository.d.ts +9 -1
  85. package/dist/skills/SkillRepository.js +70 -0
  86. package/dist/skills/SkillRepository.js.map +1 -1
  87. package/dist/skills/routing/SkillPlanner.js +40 -40
  88. package/dist/workflow/EngineeringStandards.js +62 -62
  89. package/dist/workflow/GovernanceTemplatePacks.d.ts +1 -1
  90. package/dist/workflow/GovernanceTemplatePacks.js +1990 -162
  91. package/dist/workflow/GovernanceTemplatePacks.js.map +1 -1
  92. package/dist/workflow/GovernanceTemplates.d.ts +2 -0
  93. package/dist/workflow/GovernanceTemplates.js +1012 -1001
  94. package/dist/workflow/GovernanceTemplates.js.map +1 -1
  95. package/dist/workflow/ResourceGovernance.js +16 -16
  96. package/dist/workflow/TaskArtifactScaffolder.js +10 -10
  97. package/dist/workflow/UpgradeManager.d.ts +3 -2
  98. package/dist/workflow/UpgradeManager.js +134 -49
  99. package/dist/workflow/UpgradeManager.js.map +1 -1
  100. package/dist/workflow/WorkspaceTopology.js +18 -15
  101. package/dist/workflow/WorkspaceTopology.js.map +1 -1
  102. package/docs/CODE_INTELLIGENCE.md +138 -138
  103. package/docs/CONTEXT_BUDGET.md +81 -81
  104. package/docs/EXTERNAL_REFERENCES.md +63 -0
  105. package/docs/GITLAB_FLOW.md +125 -125
  106. package/docs/GOVERNANCE_DASHBOARD.md +64 -64
  107. package/docs/MEMORY_BRAIN.md +104 -104
  108. package/docs/MEMORY_FABRIC.md +134 -107
  109. package/docs/README.md +79 -68
  110. package/docs/RUNTIME_EVIDENCE.md +101 -101
  111. package/docs/SKILL-REPOSITORY.md +57 -0
  112. package/docs/SKILL_RADAR.md +122 -115
  113. package/docs/THIRD_PARTY_SKILLS.md +57 -0
  114. package/docs/WORKFLOW_EVAL.md +151 -151
  115. package/docs/guides/DEVELOPMENT_WORKFLOW.md +80 -0
  116. package/docs/guides/GETTING_STARTED.md +50 -0
  117. package/docs/start/README.md +78 -72
  118. package/docs/start/agent-governance-demo.md +107 -107
  119. package/docs/start/quickstart.md +137 -127
  120. package/docs/start/workflow-upgrade.md +32 -8
  121. package/docs/workflow/README.md +67 -0
  122. package/docs/workflow/node-library.md +52 -0
  123. package/docs/workflow/templates/api-contract.md +29 -0
  124. package/docs/workflow/templates/architecture-review.md +23 -0
  125. package/docs/workflow/templates/db-change-plan.md +20 -0
  126. package/docs/workflow/templates/docs-impact.md +17 -0
  127. package/docs/workflow/templates/e2e-plan.md +20 -0
  128. package/docs/workflow/templates/explore.md +16 -0
  129. package/docs/workflow/templates/github-actions-scale-preflight.yml +32 -0
  130. package/docs/workflow/templates/mini-prd.md +16 -0
  131. package/docs/workflow/templates/plan.md +37 -0
  132. package/docs/workflow/templates/pre-push-scale-preflight.sh +8 -0
  133. package/docs/workflow/templates/product-smoke.md +61 -0
  134. package/docs/workflow/templates/reality-check.md +28 -0
  135. package/docs/workflow/templates/resource-cleanup.md +17 -0
  136. package/docs/workflow/templates/resource-impact.md +25 -0
  137. package/docs/workflow/templates/review.md +12 -0
  138. package/docs/workflow/templates/runtime.md +23 -0
  139. package/docs/workflow/templates/security-review.md +26 -0
  140. package/docs/workflow/templates/skill-evidence.md +33 -0
  141. package/docs/workflow/templates/skill-plan.md +39 -0
  142. package/docs/workflow/templates/spec.md +17 -0
  143. package/docs/workflow/templates/standards-impact.md +28 -0
  144. package/docs/workflow/templates/summary.md +16 -0
  145. package/docs/workflow/templates/tasks.md +8 -0
  146. package/docs/workflow/templates/ui-spec.md +29 -0
  147. package/docs/workflow/templates/verification.md +20 -0
  148. package/docs/workflow/templates/visual-review.md +20 -0
  149. package/examples/demo-projects/agent-governance-demo/CONTEXT.md +14 -14
  150. package/examples/demo-projects/agent-governance-demo/README.md +48 -48
  151. package/examples/demo-projects/agent-governance-demo/docs/CONTEXT-MAP.md +14 -14
  152. package/examples/demo-projects/agent-governance-demo/package.json +22 -21
  153. package/examples/demo-projects/agent-governance-demo/src/oauth-state.ts +39 -39
  154. package/examples/demo-projects/agent-governance-demo/tests/oauth-state.test.ts +52 -52
  155. package/package.json +88 -75
@@ -1,39 +1,39 @@
1
- export type OAuthStateFailure = 'missing-record' | 'state-mismatch' | 'state-expired' | 'state-consumed'
2
-
3
- export interface OAuthStateRecord {
4
- state: string
5
- userId: string
6
- expiresAt: number
7
- consumedAt?: number
8
- }
9
-
10
- export interface OAuthStateVerification {
11
- ok: boolean
12
- userId?: string
13
- reason?: OAuthStateFailure
14
- }
15
-
16
- export function verifyOAuthState(
17
- record: OAuthStateRecord | undefined,
18
- providedState: string,
19
- now: number = Date.now()
20
- ): OAuthStateVerification {
21
- if (!record) {
22
- return { ok: false, reason: 'missing-record' }
23
- }
24
-
25
- if (record.state !== providedState) {
26
- return { ok: false, reason: 'state-mismatch' }
27
- }
28
-
29
- if (record.expiresAt <= now) {
30
- return { ok: false, reason: 'state-expired' }
31
- }
32
-
33
- if (record.consumedAt !== undefined) {
34
- return { ok: false, reason: 'state-consumed' }
35
- }
36
-
37
- return { ok: true, userId: record.userId }
38
- }
39
-
1
+ export type OAuthStateFailure = 'missing-record' | 'state-mismatch' | 'state-expired' | 'state-consumed'
2
+
3
+ export interface OAuthStateRecord {
4
+ state: string
5
+ userId: string
6
+ expiresAt: number
7
+ consumedAt?: number
8
+ }
9
+
10
+ export interface OAuthStateVerification {
11
+ ok: boolean
12
+ userId?: string
13
+ reason?: OAuthStateFailure
14
+ }
15
+
16
+ export function verifyOAuthState(
17
+ record: OAuthStateRecord | undefined,
18
+ providedState: string,
19
+ now: number = Date.now()
20
+ ): OAuthStateVerification {
21
+ if (!record) {
22
+ return { ok: false, reason: 'missing-record' }
23
+ }
24
+
25
+ if (record.state !== providedState) {
26
+ return { ok: false, reason: 'state-mismatch' }
27
+ }
28
+
29
+ if (record.expiresAt <= now) {
30
+ return { ok: false, reason: 'state-expired' }
31
+ }
32
+
33
+ if (record.consumedAt !== undefined) {
34
+ return { ok: false, reason: 'state-consumed' }
35
+ }
36
+
37
+ return { ok: true, userId: record.userId }
38
+ }
39
+
@@ -1,52 +1,52 @@
1
- import { describe, expect, it } from 'vitest'
2
- import { verifyOAuthState, type OAuthStateRecord } from '../src/oauth-state.js'
3
-
4
- const future = 2_000
5
- const now = 1_000
6
-
7
- function record(overrides: Partial<OAuthStateRecord> = {}): OAuthStateRecord {
8
- return {
9
- state: 'state-123',
10
- userId: 'user-1',
11
- expiresAt: future,
12
- ...overrides
13
- }
14
- }
15
-
16
- describe('verifyOAuthState', () => {
17
- it('accepts a valid unexpired state', () => {
18
- expect(verifyOAuthState(record(), 'state-123', now)).toEqual({
19
- ok: true,
20
- userId: 'user-1'
21
- })
22
- })
23
-
24
- it('rejects a missing record', () => {
25
- expect(verifyOAuthState(undefined, 'state-123', now)).toEqual({
26
- ok: false,
27
- reason: 'missing-record'
28
- })
29
- })
30
-
31
- it('rejects a mismatched state', () => {
32
- expect(verifyOAuthState(record(), 'other-state', now)).toEqual({
33
- ok: false,
34
- reason: 'state-mismatch'
35
- })
36
- })
37
-
38
- it('rejects an expired state', () => {
39
- expect(verifyOAuthState(record({ expiresAt: now }), 'state-123', now)).toEqual({
40
- ok: false,
41
- reason: 'state-expired'
42
- })
43
- })
44
-
45
- it('rejects a consumed state', () => {
46
- expect(verifyOAuthState(record({ consumedAt: 900 }), 'state-123', now)).toEqual({
47
- ok: false,
48
- reason: 'state-consumed'
49
- })
50
- })
51
- })
52
-
1
+ import { describe, expect, it } from 'vitest'
2
+ import { verifyOAuthState, type OAuthStateRecord } from '../src/oauth-state.js'
3
+
4
+ const future = 2_000
5
+ const now = 1_000
6
+
7
+ function record(overrides: Partial<OAuthStateRecord> = {}): OAuthStateRecord {
8
+ return {
9
+ state: 'state-123',
10
+ userId: 'user-1',
11
+ expiresAt: future,
12
+ ...overrides
13
+ }
14
+ }
15
+
16
+ describe('verifyOAuthState', () => {
17
+ it('accepts a valid unexpired state', () => {
18
+ expect(verifyOAuthState(record(), 'state-123', now)).toEqual({
19
+ ok: true,
20
+ userId: 'user-1'
21
+ })
22
+ })
23
+
24
+ it('rejects a missing record', () => {
25
+ expect(verifyOAuthState(undefined, 'state-123', now)).toEqual({
26
+ ok: false,
27
+ reason: 'missing-record'
28
+ })
29
+ })
30
+
31
+ it('rejects a mismatched state', () => {
32
+ expect(verifyOAuthState(record(), 'other-state', now)).toEqual({
33
+ ok: false,
34
+ reason: 'state-mismatch'
35
+ })
36
+ })
37
+
38
+ it('rejects an expired state', () => {
39
+ expect(verifyOAuthState(record({ expiresAt: now }), 'state-123', now)).toEqual({
40
+ ok: false,
41
+ reason: 'state-expired'
42
+ })
43
+ })
44
+
45
+ it('rejects a consumed state', () => {
46
+ expect(verifyOAuthState(record({ consumedAt: 900 }), 'state-123', now)).toEqual({
47
+ ok: false,
48
+ reason: 'state-consumed'
49
+ })
50
+ })
51
+ })
52
+
package/package.json CHANGED
@@ -1,75 +1,88 @@
1
- {
2
- "name": "@hongmaple0820/scale-engine",
3
- "version": "0.24.0",
4
- "description": "Executable AI agent governance with workflow gates, evidence, skill/tool orchestration, and traceable HTML artifacts",
5
- "type": "module",
6
- "bin": {
7
- "scale": "dist/api/cli.js"
8
- },
9
- "main": "./dist/index.js",
10
- "types": "./dist/index.d.ts",
11
- "exports": {
12
- ".": {
13
- "types": "./dist/index.d.ts",
14
- "import": "./dist/index.js"
15
- }
16
- },
17
- "files": [
18
- "dist",
19
- "docs/README.md",
20
- "docs/CODE_INTELLIGENCE.md",
21
- "docs/CONTEXT_BUDGET.md",
22
- "docs/BACKGROUND_HUNTER.md",
23
- "docs/DEPENDENCY_AUDIT.md",
24
- "docs/ACTIVE_SECURITY_VISUAL_GATES.md",
25
- "docs/EVOLUTION_SHADOW_MODE.md",
26
- "docs/WORKFLOW_EVAL.md",
27
- "docs/SKILL_RADAR.md",
28
- "docs/MEMORY_BRAIN.md",
29
- "docs/GOVERNANCE_DASHBOARD.md",
30
- "docs/GITLAB_FLOW.md",
31
- "docs/MEMORY_FABRIC.md",
32
- "docs/RUNTIME_EVIDENCE.md",
33
- "docs/RESOURCE_GOVERNANCE.md",
34
- "docs/start",
35
- "image",
36
- "examples/demo-projects/agent-governance-demo"
37
- ],
38
- "publishConfig": {
39
- "access": "public"
40
- },
41
- "scripts": {
42
- "build": "tsc",
43
- "dev": "bun --watch src/api/cli.ts",
44
- "test": "vitest run --reporter dot --pool=forks --poolOptions.forks.maxForks=1 --poolOptions.forks.minForks=1",
45
- "typecheck": "tsc --noEmit",
46
- "lint": "eslint src/**/*.ts",
47
- "mcp": "node dist/api/mcp.js",
48
- "serve": "node dist/api/http.js"
49
- },
50
- "dependencies": {
51
- "@modelcontextprotocol/sdk": "^1.0.0",
52
- "better-sqlite3": "^11.10.0",
53
- "chokidar": "^3.6.0",
54
- "citty": "^0.1.6",
55
- "execa": "^9.3.0",
56
- "hono": "^4.5.0",
57
- "js-yaml": "^4.1.0",
58
- "pino": "^9.3.0",
59
- "pino-pretty": "^11.2.0",
60
- "zod": "^3.23.0"
61
- },
62
- "devDependencies": {
63
- "@types/better-sqlite3": "^7.6.0",
64
- "@types/js-yaml": "^4.0.9",
65
- "@types/node": "^20.14.0",
66
- "@typescript-eslint/parser": "^8.59.3",
67
- "eslint": "^9.0.0",
68
- "tsx": "^4.21.0",
69
- "typescript": "^5.5.0",
70
- "vitest": "^2.0.0"
71
- },
72
- "engines": {
73
- "node": ">=20.0.0"
74
- }
75
- }
1
+ {
2
+ "name": "@hongmaple0820/scale-engine",
3
+ "version": "0.26.0",
4
+ "description": "Executable AI agent governance with workflow gates, evidence, skill/tool orchestration, and traceable HTML artifacts",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/hongmaple0820/scale-engine.git"
8
+ },
9
+ "bugs": {
10
+ "url": "https://github.com/hongmaple0820/scale-engine/issues"
11
+ },
12
+ "homepage": "https://github.com/hongmaple0820/scale-engine#readme",
13
+ "type": "module",
14
+ "bin": {
15
+ "scale": "dist/api/cli.js"
16
+ },
17
+ "main": "./dist/index.js",
18
+ "types": "./dist/index.d.ts",
19
+ "exports": {
20
+ ".": {
21
+ "types": "./dist/index.d.ts",
22
+ "import": "./dist/index.js"
23
+ }
24
+ },
25
+ "files": [
26
+ "dist",
27
+ "docs/README.md",
28
+ "docs/CODE_INTELLIGENCE.md",
29
+ "docs/CONTEXT_BUDGET.md",
30
+ "docs/BACKGROUND_HUNTER.md",
31
+ "docs/DEPENDENCY_AUDIT.md",
32
+ "docs/ACTIVE_SECURITY_VISUAL_GATES.md",
33
+ "docs/EVOLUTION_SHADOW_MODE.md",
34
+ "docs/WORKFLOW_EVAL.md",
35
+ "docs/SKILL_RADAR.md",
36
+ "docs/SKILL-REPOSITORY.md",
37
+ "docs/THIRD_PARTY_SKILLS.md",
38
+ "docs/EXTERNAL_REFERENCES.md",
39
+ "docs/MEMORY_BRAIN.md",
40
+ "docs/GOVERNANCE_DASHBOARD.md",
41
+ "docs/GITLAB_FLOW.md",
42
+ "docs/MEMORY_FABRIC.md",
43
+ "docs/RUNTIME_EVIDENCE.md",
44
+ "docs/RESOURCE_GOVERNANCE.md",
45
+ "docs/guides",
46
+ "docs/start",
47
+ "docs/workflow",
48
+ "image",
49
+ "examples/demo-projects/agent-governance-demo"
50
+ ],
51
+ "publishConfig": {
52
+ "access": "public"
53
+ },
54
+ "scripts": {
55
+ "build": "tsc",
56
+ "dev": "bun --watch src/api/cli.ts",
57
+ "test": "vitest run --reporter dot --pool=forks --poolOptions.forks.maxForks=1 --poolOptions.forks.minForks=1",
58
+ "typecheck": "tsc --noEmit",
59
+ "lint": "eslint src/**/*.ts",
60
+ "mcp": "node dist/api/mcp.js",
61
+ "serve": "node dist/api/http.js"
62
+ },
63
+ "dependencies": {
64
+ "@modelcontextprotocol/sdk": "^1.0.0",
65
+ "better-sqlite3": "^11.10.0",
66
+ "chokidar": "^3.6.0",
67
+ "citty": "^0.1.6",
68
+ "execa": "^9.3.0",
69
+ "hono": "^4.5.0",
70
+ "js-yaml": "^4.1.0",
71
+ "pino": "^9.3.0",
72
+ "pino-pretty": "^11.2.0",
73
+ "zod": "^3.23.0"
74
+ },
75
+ "devDependencies": {
76
+ "@types/better-sqlite3": "^7.6.0",
77
+ "@types/js-yaml": "^4.0.9",
78
+ "@types/node": "^20.14.0",
79
+ "@typescript-eslint/parser": "^8.59.3",
80
+ "eslint": "^9.0.0",
81
+ "tsx": "^4.21.0",
82
+ "typescript": "^5.5.0",
83
+ "vitest": "^2.0.0"
84
+ },
85
+ "engines": {
86
+ "node": ">=20.0.0"
87
+ }
88
+ }