principles-disciple 1.72.0 → 1.73.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.
- package/openclaw.plugin.json +10 -5
- package/package.json +17 -19
- package/scripts/acceptance-test.mjs +16 -73
- package/scripts/sync-plugin.mjs +382 -77
- package/src/commands/archive-impl.ts +2 -1
- package/src/commands/capabilities.ts +2 -2
- package/src/commands/context.ts +2 -2
- package/src/commands/disable-impl.ts +2 -1
- package/src/commands/evolution-status.ts +16 -16
- package/src/commands/export.ts +12 -67
- package/src/commands/pain.ts +91 -1
- package/src/commands/principle-rollback.ts +2 -1
- package/src/commands/promote-impl.ts +7 -43
- package/src/commands/rollback-impl.ts +2 -1
- package/src/commands/rollback.ts +2 -1
- package/src/commands/samples.ts +2 -1
- package/src/commands/thinking-os.ts +2 -1
- package/src/config/errors.ts +18 -2
- package/src/constants/diagnostician.ts +2 -2
- package/src/constants/tools.ts +2 -1
- package/src/core/__tests__/focus-history.test.ts +210 -0
- package/src/core/config.ts +1 -1
- package/src/core/confirm-first-gate.ts +255 -0
- package/src/core/correction-cue-learner.ts +2 -136
- package/src/core/correction-types.ts +16 -88
- package/src/core/dictionary.ts +19 -20
- package/src/core/empathy-keyword-matcher.ts +17 -289
- package/src/core/empathy-types.ts +18 -229
- package/src/core/event-log.ts +38 -132
- package/src/core/evolution-reducer.ts +21 -2
- package/src/core/evolution-types.ts +76 -464
- package/src/core/file-store.ts +80 -0
- package/src/core/focus-history.ts +228 -955
- package/src/core/local-worker-routing.ts +34 -314
- package/src/core/merge-gate-audit.ts +0 -195
- package/src/core/pain-diagnostic-gate.ts +154 -0
- package/src/core/pain-signal.ts +21 -138
- package/src/core/pain.ts +15 -88
- package/src/core/pd-task-reconciler.ts +26 -115
- package/src/core/pd-task-service.ts +9 -9
- package/src/core/pd-task-types.ts +23 -127
- package/src/core/principle-compiler/__tests__/compiler-replay-gate.test.ts +174 -0
- package/src/core/principle-compiler/code-validator.ts +15 -42
- package/src/core/principle-compiler/compiler.ts +100 -15
- package/src/core/principle-compiler/index.ts +5 -2
- package/src/core/principle-compiler/template-generator.ts +4 -104
- package/src/core/principle-injection.ts +10 -202
- package/src/core/principle-internalization/filesystem-lifecycle-datasource.ts +42 -0
- package/src/core/principle-internalization/lifecycle-read-model.ts +39 -242
- package/src/core/principle-internalization/principle-lifecycle-service.ts +12 -10
- package/src/core/principle-tree-ledger-adapter.ts +145 -0
- package/src/core/principle-tree-ledger.ts +8 -6
- package/src/core/reflection/reflection-context.ts +14 -109
- package/src/core/replay-engine.ts +8 -500
- package/src/core/rule-host-helpers.ts +5 -35
- package/src/core/rule-host-types.ts +10 -82
- package/src/core/rule-host.ts +6 -63
- package/src/core/runtime-v2-prompt-activation-reader.ts +231 -0
- package/src/core/session-tracker.ts +87 -101
- package/src/core/shadow-observation-registry.ts +19 -48
- package/src/core/trajectory.ts +3 -1
- package/src/core/workflow-funnel-loader.ts +62 -68
- package/src/core/workspace-context.ts +46 -0
- package/src/core/workspace-dir-service.ts +1 -1
- package/src/core/workspace-dir-validation.ts +18 -9
- package/src/hooks/AGENTS.md +1 -1
- package/src/hooks/gate-block-helper.ts +46 -44
- package/src/hooks/gate.ts +207 -7
- package/src/hooks/lifecycle.ts +30 -32
- package/src/hooks/llm.ts +60 -32
- package/src/hooks/pain.ts +297 -103
- package/src/hooks/prompt.ts +459 -439
- package/src/hooks/subagent.ts +2 -29
- package/src/i18n/commands.ts +2 -10
- package/src/index.ts +95 -85
- package/src/openclaw-sdk.ts +311 -0
- package/src/service/central-database.ts +8 -4
- package/src/service/evolution-queue-migration.ts +2 -1
- package/src/service/evolution-worker.ts +163 -1786
- package/src/service/internalization-trigger-adapter.ts +302 -0
- package/src/service/keyword-optimization-service.ts +4 -4
- package/src/service/monitoring-query-service.ts +1 -215
- package/src/service/queue-io.ts +60 -331
- package/src/service/runtime-summary-service.ts +59 -16
- package/src/service/subagent-workflow/index.ts +0 -41
- package/src/service/subagent-workflow/types.ts +9 -120
- package/src/service/subagent-workflow/workflow-store.ts +2 -119
- package/src/service/workflow-watchdog.ts +0 -43
- package/src/types/event-payload.ts +16 -74
- package/src/types/event-types.ts +39 -547
- package/src/types/hygiene-types.ts +7 -30
- package/src/types/principle-tree-schema.ts +20 -222
- package/src/types/queue.ts +15 -70
- package/src/types/runtime-summary.ts +5 -49
- package/src/utils/io.ts +10 -0
- package/src/utils/retry.ts +1 -1
- package/src/utils/shadow-fingerprint.ts +2 -2
- package/src/utils/workspace-resolver.ts +50 -0
- package/templates/langs/en/core/AGENTS.md +2 -2
- package/templates/langs/en/core/BOOT.md +1 -1
- package/templates/langs/en/core/HEARTBEAT.md +2 -2
- package/templates/langs/en/skills/ai-sprint-orchestration/references/agent-registry.json +1 -72
- package/templates/langs/en/skills/ai-sprint-orchestration/references/specs/bugfix-complex-template.json +6 -6
- package/templates/langs/en/skills/ai-sprint-orchestration/references/specs/feature-complex-template.json +6 -6
- package/templates/langs/en/skills/ai-sprint-orchestration/references/specs/workflow-validation-minimal-verify.json +2 -12
- package/templates/langs/en/skills/ai-sprint-orchestration/references/specs/workflow-validation-minimal.json +2 -12
- package/templates/langs/en/skills/ai-sprint-orchestration/runtime/.gitignore +2 -2
- package/templates/langs/en/skills/ai-sprint-orchestration/scripts/run.mjs +51 -15
- package/templates/langs/en/skills/evolve-task/SKILL.md +1 -1
- package/templates/langs/en/skills/pd-cli-operator/SKILL.md +67 -0
- package/templates/langs/en/skills/pd-diagnostician/SKILL.md +1 -1
- package/templates/langs/en/skills/pd-mentor/SKILL.md +1 -1
- package/templates/langs/en/skills/pd-pain-signal/SKILL.md +17 -39
- package/templates/langs/en/skills/pd-runtime-v2/SKILL.md +61 -0
- package/templates/langs/zh/core/AGENTS.md +2 -2
- package/templates/langs/zh/core/BOOT.md +1 -1
- package/templates/langs/zh/core/HEARTBEAT.md +2 -2
- package/templates/langs/zh/skills/ai-sprint-orchestration/references/agent-registry.json +1 -72
- package/templates/langs/zh/skills/ai-sprint-orchestration/references/specs/bugfix-complex-template.json +6 -6
- package/templates/langs/zh/skills/ai-sprint-orchestration/references/specs/feature-complex-template.json +6 -6
- package/templates/langs/zh/skills/ai-sprint-orchestration/references/specs/nocturnal-trinity-quality-enhancement.json +8 -8
- package/templates/langs/zh/skills/ai-sprint-orchestration/references/specs/workflow-validation-minimal-verify.json +2 -12
- package/templates/langs/zh/skills/ai-sprint-orchestration/references/specs/workflow-validation-minimal.json +2 -12
- package/templates/langs/zh/skills/ai-sprint-orchestration/runtime/.gitignore +2 -2
- package/templates/langs/zh/skills/ai-sprint-orchestration/scripts/run.mjs +51 -15
- package/templates/langs/zh/skills/ai-sprint-orchestration/test/run.test.mjs +21 -5
- package/templates/langs/zh/skills/evolve-task/SKILL.md +2 -2
- package/templates/langs/zh/skills/pd-cli-operator/SKILL.md +67 -0
- package/templates/langs/zh/skills/pd-diagnostician/SKILL.md +1 -1
- package/templates/langs/zh/skills/pd-mentor/SKILL.md +1 -1
- package/templates/langs/zh/skills/pd-pain-signal/SKILL.md +17 -38
- package/templates/langs/zh/skills/pd-runtime-v2/SKILL.md +61 -0
- package/tests/build-artifacts.test.ts +1 -3
- package/tests/commands/evolution-status.test.ts +0 -118
- package/tests/core/bootstrap-rules.test.ts +1 -1
- package/tests/core/config.test.ts +1 -1
- package/tests/core/event-log.test.ts +35 -0
- package/tests/core/evolution-engine.test.ts +610 -0
- package/tests/core/file-store.test.ts +102 -0
- package/tests/core/focus-history.test.ts +203 -11
- package/tests/core/merge-gate-audit.test.ts +2 -169
- package/tests/core/model-deployment-registry.test.ts +7 -1
- package/tests/core/model-training-registry.test.ts +19 -0
- package/tests/core/observability.test.ts +0 -1
- package/tests/core/pain-diagnostic-gate.test.ts +498 -0
- package/tests/core/pain.test.ts +0 -1
- package/tests/core/principle-internalization/deprecated-readiness.test.ts +2 -2
- package/tests/core/principle-internalization/lifecycle-metrics.test.ts +2 -2
- package/tests/core/principle-internalization/{internalization-routing-policy.test.ts → lifecycle-routing-policy.test.ts} +6 -6
- package/tests/core/principle-internalization/lineage-source-retired.test.ts +56 -0
- package/tests/core/principle-internalization/principle-lifecycle-service.test.ts +1 -23
- package/tests/core/principle-tree-ledger-adapter.test.ts +253 -0
- package/tests/core/reflection-context.test.ts +0 -14
- package/tests/core/replay-engine.test.ts +127 -215
- package/tests/core/rule-host-helpers.test.ts +2 -2
- package/tests/core/rule-implementation-runtime.test.ts +0 -27
- package/tests/core/workflow-funnel-loader.test.ts +162 -0
- package/tests/core/workspace-dir-validation.test.ts +8 -1
- package/tests/core-anti-growth.test.ts +192 -0
- package/tests/hook-workspace-nextaction-contract.test.ts +42 -0
- package/tests/hooks/confirm-first-gate.test.ts +333 -0
- package/tests/hooks/gate-auto-correct-shadow.test.ts +310 -0
- package/tests/hooks/gate-auto-correct.test.ts +665 -0
- package/tests/hooks/gate-rule-host-pipeline.test.ts +2 -1
- package/tests/hooks/pain.test.ts +269 -12
- package/tests/hooks/prompt-characterization.test.ts +500 -0
- package/tests/hooks/prompt-size-guard.test.ts +32 -17
- package/tests/hooks/runtime-v2-prompt-activation.test.ts +869 -0
- package/tests/index.test.ts +94 -1
- package/tests/integration/auto-entry-gate.test.ts +248 -0
- package/tests/integration/internalization-trigger-guard.test.ts +69 -0
- package/tests/integration/m8-legacy-paths.test.ts +63 -0
- package/tests/integration/runtime-v2-pain-guard.test.ts +125 -0
- package/tests/plugin-config-resolution-cutover.test.ts +359 -0
- package/tests/runtime-v2-discovery-guard.test.ts +154 -0
- package/tests/service/central-database.test.ts +457 -0
- package/tests/service/evolution-worker.correction-observer.test.ts +173 -0
- package/tests/service/evolution-worker.timeout.test.ts +11 -129
- package/tests/service/internalization-trigger-adapter.test.ts +251 -0
- package/tests/service/monitoring-query-service.test.ts +1 -47
- package/tests/service/queue-io.test.ts +1 -62
- package/tests/service/runtime-summary-service.test.ts +3 -1
- package/tests/service/workflow-watchdog.test.ts +0 -91
- package/tests/utils/file-lock.test.ts +5 -3
- package/tests/utils/session-key.test.ts +52 -0
- package/tests/utils/subagent-probe.test.ts +48 -1
- package/vitest.config.ts +4 -11
- package/.planning/codebase/ARCHITECTURE.md +0 -157
- package/.planning/codebase/CONCERNS.md +0 -145
- package/.planning/codebase/CONVENTIONS.md +0 -148
- package/.planning/codebase/INTEGRATIONS.md +0 -81
- package/.planning/codebase/STACK.md +0 -87
- package/.planning/codebase/STRUCTURE.md +0 -193
- package/.planning/codebase/TESTING.md +0 -243
- package/.planning/phases/01-basic-visualization/01-GAP-CLOSURE-VERIFICATION.md +0 -113
- package/docs/COMMAND_REFERENCE.md +0 -76
- package/docs/COMMAND_REFERENCE_EN.md +0 -79
- package/scripts/build-web.mjs +0 -46
- package/scripts/diagnose-nocturnal.mjs +0 -537
- package/scripts/seed-nocturnal-scenarios.mjs +0 -384
- package/src/commands/nocturnal-review.ts +0 -322
- package/src/commands/nocturnal-rollout.ts +0 -790
- package/src/commands/nocturnal-train.ts +0 -986
- package/src/commands/pd-reflect.ts +0 -88
- package/src/core/adaptive-thresholds.ts +0 -478
- package/src/core/diagnostician-task-store.ts +0 -192
- package/src/core/nocturnal-arbiter.ts +0 -715
- package/src/core/nocturnal-artifact-lineage.ts +0 -116
- package/src/core/nocturnal-artificer.ts +0 -257
- package/src/core/nocturnal-candidate-scoring.ts +0 -530
- package/src/core/nocturnal-compliance.ts +0 -1146
- package/src/core/nocturnal-dataset.ts +0 -763
- package/src/core/nocturnal-executability.ts +0 -428
- package/src/core/nocturnal-export.ts +0 -499
- package/src/core/nocturnal-paths.ts +0 -240
- package/src/core/nocturnal-reasoning-deriver.ts +0 -343
- package/src/core/nocturnal-rule-implementation-validator.ts +0 -246
- package/src/core/nocturnal-snapshot-contract.ts +0 -99
- package/src/core/nocturnal-trajectory-extractor.ts +0 -512
- package/src/core/nocturnal-trinity-types.ts +0 -218
- package/src/core/nocturnal-trinity.ts +0 -2680
- package/src/core/principle-internalization/deprecated-readiness.ts +0 -93
- package/src/core/principle-internalization/internalization-routing-policy.ts +0 -208
- package/src/core/principle-internalization/lifecycle-metrics.ts +0 -152
- package/src/http/principles-console-route.ts +0 -709
- package/src/service/central-health-service.ts +0 -49
- package/src/service/central-overview-service.ts +0 -138
- package/src/service/control-ui-query-service.ts +0 -900
- package/src/service/cooldown-strategy.ts +0 -97
- package/src/service/evolution-pain-context.ts +0 -79
- package/src/service/evolution-query-service.ts +0 -407
- package/src/service/health-query-service.ts +0 -1038
- package/src/service/nocturnal-config.ts +0 -214
- package/src/service/nocturnal-runtime.ts +0 -734
- package/src/service/nocturnal-service.ts +0 -1605
- package/src/service/nocturnal-target-selector.ts +0 -545
- package/src/service/sleep-cycle.ts +0 -157
- package/src/service/startup-reconciler.ts +0 -112
- package/src/service/subagent-workflow/correction-observer-types.ts +0 -82
- package/src/service/subagent-workflow/correction-observer-workflow-manager.ts +0 -250
- package/src/service/subagent-workflow/deep-reflect-workflow-manager.ts +0 -1
- package/src/service/subagent-workflow/dynamic-timeout.ts +0 -30
- package/src/service/subagent-workflow/empathy-observer-workflow-manager.ts +0 -268
- package/src/service/subagent-workflow/nocturnal-workflow-manager.ts +0 -795
- package/src/service/subagent-workflow/runtime-direct-driver.ts +0 -268
- package/src/service/subagent-workflow/workflow-manager-base.ts +0 -580
- package/src/tools/write-pain-flag.ts +0 -215
- package/tests/commands/nocturnal-review.test.ts +0 -448
- package/tests/commands/nocturnal-train.test.ts +0 -97
- package/tests/commands/pd-reflect.test.ts +0 -49
- package/tests/core/adaptive-thresholds.test.ts +0 -261
- package/tests/core/nocturnal-arbiter.test.ts +0 -559
- package/tests/core/nocturnal-artifact-lineage.test.ts +0 -53
- package/tests/core/nocturnal-artificer.test.ts +0 -241
- package/tests/core/nocturnal-candidate-scoring.test.ts +0 -532
- package/tests/core/nocturnal-compliance-p-principles.test.ts +0 -133
- package/tests/core/nocturnal-compliance.test.ts +0 -646
- package/tests/core/nocturnal-dataset.test.ts +0 -892
- package/tests/core/nocturnal-e2e.test.ts +0 -234
- package/tests/core/nocturnal-executability.test.ts +0 -357
- package/tests/core/nocturnal-export.test.ts +0 -517
- package/tests/core/nocturnal-reasoning-deriver.test.ts +0 -372
- package/tests/core/nocturnal-reviewed-subset-comparison.test.ts +0 -428
- package/tests/core/nocturnal-rule-implementation-validator.test.ts +0 -127
- package/tests/core/nocturnal-snapshot-contract.test.ts +0 -121
- package/tests/core/nocturnal-trajectory-extractor.test.ts +0 -634
- package/tests/core/nocturnal-trinity.test.ts +0 -2053
- package/tests/core/pain-auto-repair.test.ts +0 -96
- package/tests/core/pain-integration.test.ts +0 -510
- package/tests/fixtures/nocturnal-reviewed-subset.json +0 -183
- package/tests/http/principles-console-route.test.ts +0 -162
- package/tests/integration/chaos-resilience.test.ts +0 -348
- package/tests/integration/empathy-workflow-integration.test.ts +0 -626
- package/tests/integration/pain-diagnostician-loop.e2e.test.ts +0 -380
- package/tests/service/control-ui-query-service.test.ts +0 -121
- package/tests/service/cooldown-strategy.test.ts +0 -164
- package/tests/service/data-endpoints-regression.test.ts +0 -834
- package/tests/service/empathy-observer-workflow-manager.test.ts +0 -175
- package/tests/service/evolution-worker.nocturnal.test.ts +0 -601
- package/tests/service/nocturnal-runtime-hardening.test.ts +0 -118
- package/tests/service/nocturnal-runtime.test.ts +0 -473
- package/tests/service/nocturnal-service-code-candidate.test.ts +0 -330
- package/tests/service/nocturnal-target-selector.test.ts +0 -615
- package/tests/service/startup-reconciler.test.ts +0 -148
- package/tests/tools/write-pain-flag.test.ts +0 -358
- package/ui/src/App.tsx +0 -45
- package/ui/src/api.ts +0 -220
- package/ui/src/charts.tsx +0 -955
- package/ui/src/components/ErrorState.tsx +0 -6
- package/ui/src/components/Loading.tsx +0 -13
- package/ui/src/components/ProtectedRoute.tsx +0 -12
- package/ui/src/components/Shell.tsx +0 -91
- package/ui/src/components/WorkspaceConfig.tsx +0 -178
- package/ui/src/components/index.ts +0 -5
- package/ui/src/context/auth.tsx +0 -80
- package/ui/src/context/theme.tsx +0 -66
- package/ui/src/hooks/useAutoRefresh.ts +0 -39
- package/ui/src/i18n/ui.ts +0 -473
- package/ui/src/main.tsx +0 -16
- package/ui/src/pages/EvolutionPage.tsx +0 -333
- package/ui/src/pages/FeedbackPage.tsx +0 -138
- package/ui/src/pages/GateMonitorPage.tsx +0 -136
- package/ui/src/pages/LoginPage.tsx +0 -89
- package/ui/src/pages/OverviewPage.tsx +0 -599
- package/ui/src/pages/SamplesPage.tsx +0 -174
- package/ui/src/pages/ThinkingModelsPage.tsx +0 -702
- package/ui/src/styles.css +0 -2020
- package/ui/src/types.ts +0 -384
- package/ui/src/utils/format.ts +0 -15
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
# Coding Conventions
|
|
2
|
-
|
|
3
|
-
**Analysis Date:** 2026-04-15
|
|
4
|
-
|
|
5
|
-
## Naming Patterns
|
|
6
|
-
|
|
7
|
-
**Files:**
|
|
8
|
-
- PascalCase for modules: `detection-service.ts`, `risk-calculator.ts`
|
|
9
|
-
- kebab-case for utilities with multiple exports: `retry.ts`, `hashing.ts`
|
|
10
|
-
- `.test.ts` suffix for test files co-located in `tests/` directory
|
|
11
|
-
|
|
12
|
-
**Directories:**
|
|
13
|
-
- Flat structure under `src/`: `commands/`, `core/`, `hooks/`, `service/`, `utils/`
|
|
14
|
-
- Tests mirror source structure in `tests/` parallel directory
|
|
15
|
-
|
|
16
|
-
**Functions:**
|
|
17
|
-
- camelCase: `normalizePath`, `handleBeforeToolCall`, `computeDynamicTimeout`
|
|
18
|
-
- Verb prefixes for actions: `handle*`, `compute*`, `extract*`, `serialize*`
|
|
19
|
-
- Getter-style for services: `DetectionService.get()`, `WorkspaceContext.fromHookContext()`
|
|
20
|
-
|
|
21
|
-
**Types & Interfaces:**
|
|
22
|
-
- PascalCase: `DeepReflectionSettings`, `PainSettings`, `GfiGateSettings`
|
|
23
|
-
- Suffix for type variants: `*Types`, `*Contract`, `*Schema`
|
|
24
|
-
- Barrel exports via `index.ts` in each directory
|
|
25
|
-
|
|
26
|
-
## Code Style
|
|
27
|
-
|
|
28
|
-
**Formatting:**
|
|
29
|
-
- ESLint with `@typescript-eslint` plugin
|
|
30
|
-
- No Prettier config detected (not enforced)
|
|
31
|
-
- 2-space indentation
|
|
32
|
-
- No trailing semicolons in ESLint config (but not explicitly disabled)
|
|
33
|
-
|
|
34
|
-
**Key ESLint Rules:**
|
|
35
|
-
```javascript
|
|
36
|
-
'no-empty': 'error',
|
|
37
|
-
'no-console': 'warn',
|
|
38
|
-
'@typescript-eslint/no-explicit-any': 'warn',
|
|
39
|
-
'@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
|
|
40
|
-
'@typescript-eslint/no-non-null-assertion': 'warn',
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
**Linting (test files relaxed):**
|
|
44
|
-
```javascript
|
|
45
|
-
'@typescript-eslint/no-explicit-any': 'off',
|
|
46
|
-
'no-empty': 'warn',
|
|
47
|
-
'no-console': 'off',
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
**Import Organization:**
|
|
51
|
-
1. Node.js built-ins (`path`, `fs`, `os`)
|
|
52
|
-
2. External packages (`vitest`, `better-sqlite3`)
|
|
53
|
-
3. Internal modules (`../../src/core/...`, `./hooks/...`)
|
|
54
|
-
4. Type-only imports use `import type` syntax
|
|
55
|
-
|
|
56
|
-
**Path Aliases:**
|
|
57
|
-
- No `paths` aliasing in `tsconfig.json`
|
|
58
|
-
- Relative imports with `.js` extension for ESM compatibility: `from '../../src/utils/io.js'`
|
|
59
|
-
|
|
60
|
-
## Error Handling
|
|
61
|
-
|
|
62
|
-
**Patterns:**
|
|
63
|
-
- Return `undefined` for "not found" / "allowed" cases (not exceptions)
|
|
64
|
-
- Throw typed errors from `src/config/errors.ts`
|
|
65
|
-
- Result objects with `allowed: boolean` for gate checks
|
|
66
|
-
- Log warnings via `plugin-logger.ts` for non-critical failures
|
|
67
|
-
|
|
68
|
-
**Example - Gate pattern:**
|
|
69
|
-
```typescript
|
|
70
|
-
// Return block result, not exceptions
|
|
71
|
-
export function handleBeforeToolCall(event, ctx): BlockResult | undefined {
|
|
72
|
-
if (someCondition) {
|
|
73
|
-
return { block: true, blockReason: '...' };
|
|
74
|
-
}
|
|
75
|
-
return undefined; // Allowed
|
|
76
|
-
}
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
**SQLite errors:**
|
|
80
|
-
- Use `better-sqlite3` with synchronous API
|
|
81
|
-
- Wrap in try/catch for migration failures
|
|
82
|
-
|
|
83
|
-
## Logging
|
|
84
|
-
|
|
85
|
-
**Framework:** `src/utils/plugin-logger.ts`
|
|
86
|
-
|
|
87
|
-
**Patterns:**
|
|
88
|
-
- Structured logging with levels: `warn`, `error`, `info`, `debug`
|
|
89
|
-
- Context passed as object: `logger.warn({ context: 'Gate' }, 'message')`
|
|
90
|
-
- No `console.log` in production paths (warn-only via ESLint)
|
|
91
|
-
|
|
92
|
-
## Comments
|
|
93
|
-
|
|
94
|
-
**When to Comment:**
|
|
95
|
-
- Complex cross-platform logic (Windows EPERM handling in `atomicWriteFileSync`)
|
|
96
|
-
- Magic numbers explained: `const RENAME_MAX_RETRIES = 3`
|
|
97
|
-
- Task markers in tests: `// Task 4: Default Values Consistency Tests`
|
|
98
|
-
|
|
99
|
-
**JSDoc:**
|
|
100
|
-
- Used in config files and public APIs
|
|
101
|
-
- Not enforced on internal functions
|
|
102
|
-
|
|
103
|
-
## Function Design
|
|
104
|
-
|
|
105
|
-
**Size:**
|
|
106
|
-
- Prefer small, focused functions
|
|
107
|
-
- Complex modules split into helpers (e.g., `rule-host-helpers.ts`)
|
|
108
|
-
|
|
109
|
-
**Parameters:**
|
|
110
|
-
- Max 3-4 parameters before grouping into options object
|
|
111
|
-
- Destructure for clarity: `function ({ workspaceDir, stateDir })`
|
|
112
|
-
|
|
113
|
-
**Return Values:**
|
|
114
|
-
- Explicit return types in public APIs
|
|
115
|
-
- `undefined` for "not applicable" vs `null` for "intentionally empty"
|
|
116
|
-
|
|
117
|
-
## Module Design
|
|
118
|
-
|
|
119
|
-
**Exports:**
|
|
120
|
-
- Named exports preferred over default exports
|
|
121
|
-
- Barrel `index.ts` files aggregate directory exports
|
|
122
|
-
- Factory functions for singleton services: `DetectionService.get(dir)`
|
|
123
|
-
|
|
124
|
-
**Service Pattern:**
|
|
125
|
-
```typescript
|
|
126
|
-
// Singleton pattern for stateful services
|
|
127
|
-
class DetectionService {
|
|
128
|
-
private static instances = new Map<string, DetectionFunnel>();
|
|
129
|
-
|
|
130
|
-
static get(stateDir: string): DetectionFunnel {
|
|
131
|
-
if (!instances.has(stateDir)) {
|
|
132
|
-
instances.set(stateDir, new DetectionFunnel(...));
|
|
133
|
-
}
|
|
134
|
-
return instances.get(stateDir);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
static reset(): void { instances.clear(); }
|
|
138
|
-
}
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
**Static Analysis:**
|
|
142
|
-
- Vitest used for unit tests
|
|
143
|
-
- ESM modules with `.js` extension in imports
|
|
144
|
-
- `"type": "module"` in `package.json`
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
*Convention analysis: 2026-04-15*
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
# External Integrations
|
|
2
|
-
|
|
3
|
-
**Analysis Date:** 2026-04-15
|
|
4
|
-
|
|
5
|
-
## APIs & External Services
|
|
6
|
-
|
|
7
|
-
**Plugin Framework:**
|
|
8
|
-
- OpenClaw - Host application
|
|
9
|
-
- SDK/Client: `@openclaw/plugin-kit` (peer dependency, bundled as external)
|
|
10
|
-
- Communication: Plugin hook events (`before_prompt_build`, `before_tool_call`, `after_tool_call`, `llm_output`, `subagent_spawning`, `subagent_ended`, `before_reset`, `before_compaction`, `after_compaction`)
|
|
11
|
-
- Registration: Commands, tools, HTTP routes, background services
|
|
12
|
-
|
|
13
|
-
## Data Storage
|
|
14
|
-
|
|
15
|
-
**Databases:**
|
|
16
|
-
- SQLite (better-sqlite3 12.9.0)
|
|
17
|
-
- Connection: File-based at `.state/trajectory.db`
|
|
18
|
-
- Schema managed via migration runner in `src/core/schema/migrations/`
|
|
19
|
-
- Migrations: 4 migrations (001-init-trajectory, 002-init-central, 003-init-workflow, 004-add-thinking-and-gfi)
|
|
20
|
-
|
|
21
|
-
**File Storage:**
|
|
22
|
-
- Local filesystem (workspace-relative paths)
|
|
23
|
-
- Templates copied to workspace on init (`templates/` directory)
|
|
24
|
-
- State persisted to `.state/` directory
|
|
25
|
-
- Pain samples stored in `memory/pain/`
|
|
26
|
-
|
|
27
|
-
**Caching:**
|
|
28
|
-
- None detected (in-memory caching only)
|
|
29
|
-
|
|
30
|
-
## Authentication & Identity
|
|
31
|
-
|
|
32
|
-
**Auth Provider:**
|
|
33
|
-
- OpenClaw native (session-based)
|
|
34
|
-
- Implementation: Session key extraction via `extractAgentIdFromSessionKey()` in `src/utils/session-key.ts`
|
|
35
|
-
- Agent identification via `agentId` from OpenClaw context
|
|
36
|
-
|
|
37
|
-
## Monitoring & Observability
|
|
38
|
-
|
|
39
|
-
**Error Tracking:**
|
|
40
|
-
- Plugin logger (`src/utils/plugin-logger.ts`)
|
|
41
|
-
- System logger (`src/core/system-logger.ts`)
|
|
42
|
-
- Hook execution recording via `WorkspaceContext.eventLog.recordHookExecution()`
|
|
43
|
-
|
|
44
|
-
**Logs:**
|
|
45
|
-
- File-based logs: `.state/memory/logs/SYSTEM.log`
|
|
46
|
-
- Console output for errors during build/dev
|
|
47
|
-
|
|
48
|
-
## CI/CD & Deployment
|
|
49
|
-
|
|
50
|
-
**Hosting:**
|
|
51
|
-
- OpenClaw plugin ecosystem
|
|
52
|
-
- Published as npm package `principles-disciple`
|
|
53
|
-
|
|
54
|
-
**CI Pipeline:**
|
|
55
|
-
- Not detected (no GitHub Actions or similar)
|
|
56
|
-
|
|
57
|
-
## Environment Configuration
|
|
58
|
-
|
|
59
|
-
**Required env vars:**
|
|
60
|
-
- None required (configuration via OpenClaw plugin config API)
|
|
61
|
-
|
|
62
|
-
**Secrets location:**
|
|
63
|
-
- OpenClaw plugin configuration (not file-based)
|
|
64
|
-
|
|
65
|
-
## Webhooks & Callbacks
|
|
66
|
-
|
|
67
|
-
**Incoming (via OpenClaw hooks):**
|
|
68
|
-
- `before_prompt_build` - Prompt building stage
|
|
69
|
-
- `before_tool_call` - Security gate before tool execution
|
|
70
|
-
- `after_tool_call` - Pain/trust tracking after tool execution
|
|
71
|
-
- `llm_output` - LLM response analysis
|
|
72
|
-
- `subagent_spawning` - Subagent lifecycle
|
|
73
|
-
- `subagent_ended` - Subagent completion
|
|
74
|
-
- `before_reset` / `before_compaction` / `after_compaction` - Workspace lifecycle
|
|
75
|
-
|
|
76
|
-
**Outgoing:**
|
|
77
|
-
- HTTP routes registered via `api.registerHttpRoute()` in `src/http/principles-console-route.ts`
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
*Integration audit: 2026-04-15*
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
# Technology Stack
|
|
2
|
-
|
|
3
|
-
**Analysis Date:** 2026-04-15
|
|
4
|
-
|
|
5
|
-
## Languages
|
|
6
|
-
|
|
7
|
-
**Primary:**
|
|
8
|
-
- TypeScript 6.0.2 - Core plugin development
|
|
9
|
-
- JSX/TSX - UI components
|
|
10
|
-
|
|
11
|
-
**Secondary:**
|
|
12
|
-
- JavaScript (ES2022) - Build scripts and configuration
|
|
13
|
-
|
|
14
|
-
## Runtime
|
|
15
|
-
|
|
16
|
-
**Environment:**
|
|
17
|
-
- Node.js 20 (build target via esbuild)
|
|
18
|
-
|
|
19
|
-
**Package Manager:**
|
|
20
|
-
- pnpm 9.x
|
|
21
|
-
- Lockfile: `pnpm-lock.yaml` (present)
|
|
22
|
-
|
|
23
|
-
## Frameworks
|
|
24
|
-
|
|
25
|
-
**Core:**
|
|
26
|
-
- OpenClaw Plugin SDK (peer dependency) - Plugin architecture framework
|
|
27
|
-
- React 19.2.0 - UI layer
|
|
28
|
-
- React Router 7.9.4 - UI routing
|
|
29
|
-
|
|
30
|
-
**Database:**
|
|
31
|
-
- better-sqlite3 12.9.0 - Local SQLite database for trajectory and state persistence
|
|
32
|
-
|
|
33
|
-
**UI Components:**
|
|
34
|
-
- lucide-react 1.7.0 - Icon library
|
|
35
|
-
|
|
36
|
-
**Build:**
|
|
37
|
-
- esbuild 0.28.0 - Bundling plugin code
|
|
38
|
-
- TypeScript 6.0.2 - Type checking and compilation
|
|
39
|
-
|
|
40
|
-
**Testing:**
|
|
41
|
-
- Vitest 4.1.0 - Test runner
|
|
42
|
-
- @vitest/coverage-v8 4.1.0 - Coverage reporting
|
|
43
|
-
- jsdom 29.0.1 - DOM environment for React testing
|
|
44
|
-
- @testing-library/react 16.3.0 - React component testing
|
|
45
|
-
|
|
46
|
-
**Linting:**
|
|
47
|
-
- ESLint 10.1.0 - Code linting
|
|
48
|
-
- @typescript-eslint packages 8.58.0 - TypeScript ESLint support
|
|
49
|
-
|
|
50
|
-
## Key Dependencies
|
|
51
|
-
|
|
52
|
-
**Critical:**
|
|
53
|
-
- `@sinclair/typebox` 0.34.48 - JSON schema type generation
|
|
54
|
-
- `micromatch` 4.0.8 - Glob pattern matching for file paths
|
|
55
|
-
|
|
56
|
-
**Database:**
|
|
57
|
-
- `@types/better-sqlite3` 7.6.13 - TypeScript types for SQLite
|
|
58
|
-
|
|
59
|
-
**HTTP/WebSocket:**
|
|
60
|
-
- `ws` 8.18.0 - WebSocket support
|
|
61
|
-
- `@types/ws` 8.5.13 - TypeScript types for WebSocket
|
|
62
|
-
|
|
63
|
-
## Configuration
|
|
64
|
-
|
|
65
|
-
**Environment:**
|
|
66
|
-
- Plugin configuration via `openclaw.plugin.json`
|
|
67
|
-
- Workspace-level settings in `.state/pain_settings.json`
|
|
68
|
-
- No `.env` files (configuration is code-driven)
|
|
69
|
-
|
|
70
|
-
**Build:**
|
|
71
|
-
- `tsconfig.json` - TypeScript configuration (target: ES2022, module: ESNext)
|
|
72
|
-
- `esbuild.config.js` - Bundle configuration
|
|
73
|
-
- `vitest.config.ts` - Test configuration with layered projects (unit/integration)
|
|
74
|
-
|
|
75
|
-
## Platform Requirements
|
|
76
|
-
|
|
77
|
-
**Development:**
|
|
78
|
-
- Node.js 20+
|
|
79
|
-
- pnpm 9+
|
|
80
|
-
|
|
81
|
-
**Production:**
|
|
82
|
-
- OpenClaw >=2026.4.4 (peer dependency)
|
|
83
|
-
- Node.js 20 runtime
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
*Stack analysis: 2026-04-15*
|
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
# Codebase Structure
|
|
2
|
-
|
|
3
|
-
**Analysis Date:** 2026-04-15
|
|
4
|
-
|
|
5
|
-
## Directory Layout
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
openclaw-plugin/
|
|
9
|
-
├── src/ # Main source code
|
|
10
|
-
│ ├── commands/ # Slash command implementations
|
|
11
|
-
│ ├── config/ # Configuration defaults and errors
|
|
12
|
-
│ ├── constants/ # Shared constants
|
|
13
|
-
│ ├── core/ # Core business logic
|
|
14
|
-
│ │ ├── hygiene/ # Hygiene tracking
|
|
15
|
-
│ │ ├── principle-internalization/ # Principle lifecycle
|
|
16
|
-
│ │ └── schema/ # Database schema and migrations
|
|
17
|
-
│ ├── hooks/ # OpenClaw hook handlers
|
|
18
|
-
│ ├── http/ # HTTP route handlers
|
|
19
|
-
│ ├── i18n/ # Internationalization
|
|
20
|
-
│ ├── service/ # Background services
|
|
21
|
-
│ │ └── subagent-workflow/ # Workflow managers
|
|
22
|
-
│ ├── tools/ # Plugin tools
|
|
23
|
-
│ ├── types/ # TypeScript type definitions
|
|
24
|
-
│ └── utils/ # Utility functions
|
|
25
|
-
├── ui/ # React UI
|
|
26
|
-
│ └── src/
|
|
27
|
-
│ ├── components/ # React components
|
|
28
|
-
│ ├── context/ # React contexts
|
|
29
|
-
│ ├── hooks/ # React hooks
|
|
30
|
-
│ └── pages/ # Page components
|
|
31
|
-
├── tests/ # Test suite
|
|
32
|
-
│ ├── commands/ # Command tests
|
|
33
|
-
│ ├── core/ # Core module tests
|
|
34
|
-
│ ├── fixtures/ # Test fixtures
|
|
35
|
-
│ ├── hooks/ # Hook tests
|
|
36
|
-
│ ├── integration/ # Integration tests
|
|
37
|
-
│ ├── service/ # Service tests
|
|
38
|
-
│ └── utils/ # Utility tests
|
|
39
|
-
├── templates/ # Workspace templates
|
|
40
|
-
│ ├── langs/ # Language-specific templates
|
|
41
|
-
│ └── workspace/ # Workspace structure templates
|
|
42
|
-
├── dist/ # Build output
|
|
43
|
-
├── scripts/ # Build scripts
|
|
44
|
-
├── .state/ # Runtime state (gitignored)
|
|
45
|
-
└── .tmp/ # Temporary files (gitignored)
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
## Directory Purposes
|
|
49
|
-
|
|
50
|
-
**src/commands/:**
|
|
51
|
-
- Purpose: Slash command implementations
|
|
52
|
-
- Contains: 20+ command handlers (strategy, focus, pain, rollback, nocturnal-review, nocturnal-train, etc.)
|
|
53
|
-
- Key files: `strategy.ts`, `focus.ts`, `nocturnal-train.ts`, `nocturnal-rollout.ts`
|
|
54
|
-
|
|
55
|
-
**src/core/:**
|
|
56
|
-
- Purpose: Core business logic (evolution, trajectory, pain, training, rules)
|
|
57
|
-
- Contains: 70+ core modules including `evolution-engine.ts`, `trajectory.ts`, `nocturnal-trinity.ts`, `pain.ts`, `principle-tree-ledger.ts`
|
|
58
|
-
- Key files: `evolution-engine.ts`, `nocturnal-trinity.ts`, `rule-host.ts`
|
|
59
|
-
|
|
60
|
-
**src/hooks/:**
|
|
61
|
-
- Purpose: OpenClaw hook handlers for intercepting agent behavior
|
|
62
|
-
- Contains: `prompt.ts`, `gate.ts`, `pain.ts`, `llm.ts`, `lifecycle.ts`, `subagent.ts`, `trajectory-collector.ts`
|
|
63
|
-
- Key files: `gate.ts` (security), `prompt.ts` (context injection)
|
|
64
|
-
|
|
65
|
-
**src/service/:**
|
|
66
|
-
- Purpose: Background worker services
|
|
67
|
-
- Contains: `evolution-worker.ts` (main worker), `nocturnal-service.ts`, `trajectory-service.ts`, `central-database.ts`
|
|
68
|
-
- Key files: `evolution-worker.ts` (144KB, main async processor)
|
|
69
|
-
|
|
70
|
-
**src/service/subagent-workflow/:**
|
|
71
|
-
- Purpose: Workflow orchestration for complex subagent operations
|
|
72
|
-
- Contains: `nocturnal-workflow-manager.ts`, `deep-reflect-workflow-manager.ts`, `empathy-observer-workflow-manager.ts`
|
|
73
|
-
- Key files: `workflow-manager-base.ts`, `dynamic-timeout.ts`
|
|
74
|
-
|
|
75
|
-
**src/utils/:**
|
|
76
|
-
- Purpose: Shared utility functions
|
|
77
|
-
- Contains: `io.ts` (atomic writes), `plugin-logger.ts`, `retry.ts`, `hashing.ts`, `file-lock.ts`
|
|
78
|
-
- Key files: `io.ts` (critical for safe file operations)
|
|
79
|
-
|
|
80
|
-
**src/schema/:**
|
|
81
|
-
- Purpose: SQLite database schema and migrations
|
|
82
|
-
- Contains: `schema-definitions.ts`, `migration-runner.ts`, `migrations/*.ts`
|
|
83
|
-
- Migrations: 4 migrations (001-004)
|
|
84
|
-
|
|
85
|
-
**ui/src/:**
|
|
86
|
-
- Purpose: React-based plugin UI
|
|
87
|
-
- Contains: Pages (Overview, Evolution, Feedback, GateMonitor), components (Shell, ProtectedRoute)
|
|
88
|
-
- Key files: `App.tsx`, `pages/EvolutionPage.tsx`, `pages/FeedbackPage.tsx`
|
|
89
|
-
|
|
90
|
-
## Key File Locations
|
|
91
|
-
|
|
92
|
-
**Entry Points:**
|
|
93
|
-
- `src/index.ts`: Plugin entry point, registers all hooks/commands/tools
|
|
94
|
-
|
|
95
|
-
**Configuration:**
|
|
96
|
-
- `src/core/config.ts`: PainSettings defaults
|
|
97
|
-
- `src/core/paths.ts`: Directory and file path constants (PD_DIRS, PD_FILES)
|
|
98
|
-
- `openclaw.plugin.json`: Plugin manifest
|
|
99
|
-
|
|
100
|
-
**Core Logic:**
|
|
101
|
-
- `src/core/evolution-engine.ts`: Evolution processing (18KB)
|
|
102
|
-
- `src/core/nocturnal-trinity.ts`: Nocturnal training orchestration (87KB - largest file)
|
|
103
|
-
- `src/core/trajectory.ts`: Trajectory tracking (64KB)
|
|
104
|
-
- `src/core/principle-tree-ledger.ts`: Principle lifecycle management (22KB)
|
|
105
|
-
- `src/core/rule-host.ts`: Sandboxed rule execution (7KB)
|
|
106
|
-
|
|
107
|
-
**Service Layer:**
|
|
108
|
-
- `src/service/evolution-worker.ts`: Background evolution worker (144KB - largest file)
|
|
109
|
-
- `src/service/nocturnal-service.ts`: Nocturnal training service (59KB)
|
|
110
|
-
- `src/service/nocturnal-runtime.ts`: Runtime for nocturnal operations (24KB)
|
|
111
|
-
|
|
112
|
-
**Testing:**
|
|
113
|
-
- `tests/`: Test suite with unit and integration layers
|
|
114
|
-
- `vitest.config.ts`: Test configuration with unit/integration project separation
|
|
115
|
-
|
|
116
|
-
## Naming Conventions
|
|
117
|
-
|
|
118
|
-
**Files:**
|
|
119
|
-
- TypeScript: `kebab-case.ts` or `camelCase.ts` depending on module type
|
|
120
|
-
- Commands: `kebab-case.ts` (e.g., `nocturnal-review.ts`)
|
|
121
|
-
- Core modules: `camelCase.ts` (e.g., `evolutionEngine.ts`)
|
|
122
|
-
- React components: `PascalCase.tsx`
|
|
123
|
-
|
|
124
|
-
**Directories:**
|
|
125
|
-
- kebab-case: `subagent-workflow`, `principle-internalization`
|
|
126
|
-
|
|
127
|
-
**Types:**
|
|
128
|
-
- Interfaces: `PascalCase` (e.g., `PainSettings`, `EvolutionContext`)
|
|
129
|
-
- Type aliases: `PascalCase`
|
|
130
|
-
- Enums: `PascalCase`
|
|
131
|
-
|
|
132
|
-
## Where to Add New Code
|
|
133
|
-
|
|
134
|
-
**New Command:**
|
|
135
|
-
- Primary code: `src/commands/<name>.ts`
|
|
136
|
-
- Handler registration: `src/index.ts` in `registerCommandWithAlias()` or `api.registerCommand()`
|
|
137
|
-
- Tests: `tests/commands/<name>.test.ts`
|
|
138
|
-
|
|
139
|
-
**New Hook Handler:**
|
|
140
|
-
- Implementation: `src/hooks/<name>.ts`
|
|
141
|
-
- Registration: `src/index.ts` in `api.on('<hook_name>', ...)` call
|
|
142
|
-
- Tests: `tests/hooks/<name>.test.ts`
|
|
143
|
-
|
|
144
|
-
**New Core Service:**
|
|
145
|
-
- Implementation: `src/core/<name>.ts` or `src/service/<name>.ts`
|
|
146
|
-
- Registration: `src/index.ts` in `api.registerService()`
|
|
147
|
-
- Tests: `tests/core/<name>.test.ts` or `tests/service/<name>.test.ts`
|
|
148
|
-
|
|
149
|
-
**New Workflow Manager:**
|
|
150
|
-
- Implementation: `src/service/subagent-workflow/<name>-workflow-manager.ts`
|
|
151
|
-
- Base class: `src/service/subagent-workflow/workflow-manager-base.ts`
|
|
152
|
-
- Tests: `tests/service/subagent-workflow/<name>.test.ts`
|
|
153
|
-
|
|
154
|
-
**New Database Migration:**
|
|
155
|
-
- Implementation: `src/core/schema/migrations/<number>-<description>.ts`
|
|
156
|
-
- Registration: `src/core/schema/migrations/index.ts`
|
|
157
|
-
- Tests: Integration test in `tests/core/control-ui-db.test.ts`
|
|
158
|
-
|
|
159
|
-
**New Utility:**
|
|
160
|
-
- Shared: `src/utils/<name>.ts`
|
|
161
|
-
- Tests: `tests/utils/<name>.test.ts`
|
|
162
|
-
|
|
163
|
-
## Special Directories
|
|
164
|
-
|
|
165
|
-
**.state/:**
|
|
166
|
-
- Purpose: Runtime state (per workspace)
|
|
167
|
-
- Generated: Yes (created at runtime)
|
|
168
|
-
- Committed: No (gitignored)
|
|
169
|
-
|
|
170
|
-
**.tmp/:**
|
|
171
|
-
- Purpose: Temporary files during build/dev
|
|
172
|
-
- Generated: Yes
|
|
173
|
-
- Committed: No (gitignored)
|
|
174
|
-
|
|
175
|
-
**dist/:**
|
|
176
|
-
- Purpose: Build output
|
|
177
|
-
- Generated: Yes (by `npm run build`)
|
|
178
|
-
- Committed: Yes (in some branches)
|
|
179
|
-
|
|
180
|
-
**templates/:**
|
|
181
|
-
- Purpose: Workspace template files copied on init
|
|
182
|
-
- Generated: No
|
|
183
|
-
- Committed: Yes
|
|
184
|
-
- Contains: Language-specific templates (en, zh), workspace structure
|
|
185
|
-
|
|
186
|
-
**node_modules/:**
|
|
187
|
-
- Purpose: Dependencies
|
|
188
|
-
- Generated: Yes (by pnpm install)
|
|
189
|
-
- Committed: No
|
|
190
|
-
|
|
191
|
-
---
|
|
192
|
-
|
|
193
|
-
*Structure analysis: 2026-04-15*
|