principles-disciple 1.8.1 → 1.8.2
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/ADVANCED_CONFIG_ZH.md +97 -0
- package/AGENT_INSTALL.md +173 -0
- package/AGENT_INSTALL_EN.md +173 -0
- package/INSTALL.md +256 -0
- package/SKILL.md +63 -0
- package/docs/COMMAND_REFERENCE.md +76 -0
- package/docs/COMMAND_REFERENCE_EN.md +79 -0
- package/esbuild.config.js +75 -0
- package/openclaw.plugin.json +4 -4
- package/package.json +11 -13
- package/scripts/build-web.mjs +46 -0
- package/scripts/install-dependencies.cjs +47 -0
- package/scripts/sync-plugin.mjs +802 -0
- package/scripts/verify-build.mjs +109 -0
- package/src/agents/nocturnal-dreamer.md +152 -0
- package/src/agents/nocturnal-philosopher.md +138 -0
- package/src/agents/nocturnal-reflector.md +126 -0
- package/src/agents/nocturnal-scribe.md +164 -0
- package/src/commands/capabilities.ts +85 -0
- package/{dist/commands/context.js → src/commands/context.ts} +78 -38
- package/src/commands/evolution-status.ts +146 -0
- package/src/commands/export.ts +111 -0
- package/src/commands/focus.ts +533 -0
- package/src/commands/nocturnal-review.ts +311 -0
- package/src/commands/nocturnal-rollout.ts +763 -0
- package/src/commands/nocturnal-train.ts +1002 -0
- package/{dist/commands/pain.js → src/commands/pain.ts} +68 -49
- package/src/commands/principle-rollback.ts +27 -0
- package/{dist/commands/rollback.js → src/commands/rollback.ts} +44 -12
- package/src/commands/samples.ts +60 -0
- package/src/commands/strategy.ts +38 -0
- package/{dist/commands/thinking-os.js → src/commands/thinking-os.ts} +59 -36
- package/src/commands/workflow-debug.ts +128 -0
- package/{dist/config/defaults/runtime.js → src/config/defaults/runtime.ts} +12 -5
- package/src/config/errors.ts +163 -0
- package/{dist/config/index.d.ts → src/config/index.ts} +2 -1
- package/src/constants/diagnostician.ts +66 -0
- package/src/constants/tools.ts +62 -0
- package/src/core/adaptive-thresholds.ts +476 -0
- package/{dist/core/config-service.js → src/core/config-service.ts} +7 -4
- package/{dist/core/config.js → src/core/config.ts} +158 -46
- package/src/core/control-ui-db.ts +435 -0
- package/{dist/core/detection-funnel.js → src/core/detection-funnel.ts} +36 -21
- package/{dist/core/detection-service.js → src/core/detection-service.ts} +7 -4
- package/{dist/core/dictionary-service.js → src/core/dictionary-service.ts} +7 -4
- package/{dist/core/dictionary.js → src/core/dictionary.ts} +57 -34
- package/src/core/empathy-keyword-matcher.ts +327 -0
- package/src/core/empathy-types.ts +218 -0
- package/src/core/event-log.ts +544 -0
- package/src/core/evolution-engine.ts +612 -0
- package/src/core/evolution-logger.ts +353 -0
- package/src/core/evolution-migration.ts +77 -0
- package/src/core/evolution-reducer.ts +731 -0
- package/src/core/evolution-types.ts +456 -0
- package/src/core/external-training-contract.ts +527 -0
- package/src/core/focus-history.ts +1458 -0
- package/src/core/hygiene/tracker.ts +117 -0
- package/{dist/core/init.js → src/core/init.ts} +39 -26
- package/src/core/local-worker-routing.ts +617 -0
- package/{dist/core/migration.js → src/core/migration.ts} +18 -11
- package/src/core/model-deployment-registry.ts +722 -0
- package/src/core/model-training-registry.ts +813 -0
- package/src/core/nocturnal-arbiter.ts +706 -0
- package/src/core/nocturnal-candidate-scoring.ts +392 -0
- package/src/core/nocturnal-compliance.ts +1075 -0
- package/src/core/nocturnal-dataset.ts +668 -0
- package/src/core/nocturnal-executability.ts +428 -0
- package/src/core/nocturnal-export.ts +390 -0
- package/{dist/core/nocturnal-paths.js → src/core/nocturnal-paths.ts} +49 -23
- package/src/core/nocturnal-trajectory-extractor.ts +484 -0
- package/src/core/nocturnal-trinity.ts +1384 -0
- package/src/core/pain.ts +122 -0
- package/{dist/core/path-resolver.js → src/core/path-resolver.ts} +157 -36
- package/{dist/core/paths.js → src/core/paths.ts} +13 -4
- package/src/core/principle-training-state.ts +450 -0
- package/src/core/profile.ts +226 -0
- package/src/core/promotion-gate.ts +822 -0
- package/{dist/core/risk-calculator.js → src/core/risk-calculator.ts} +42 -16
- package/{dist/core/session-tracker.js → src/core/session-tracker.ts} +175 -62
- package/src/core/shadow-observation-registry.ts +534 -0
- package/{dist/core/system-logger.js → src/core/system-logger.ts} +9 -5
- package/src/core/thinking-models.ts +217 -0
- package/src/core/training-program.ts +630 -0
- package/src/core/trajectory-types.ts +243 -0
- package/src/core/trajectory.ts +1673 -0
- package/{dist/core/workspace-context.js → src/core/workspace-context.ts} +57 -32
- package/src/hooks/bash-risk.ts +171 -0
- package/src/hooks/edit-verification.ts +295 -0
- package/src/hooks/gate-block-helper.ts +160 -0
- package/src/hooks/gate.ts +210 -0
- package/src/hooks/gfi-gate.ts +177 -0
- package/src/hooks/lifecycle.ts +326 -0
- package/{dist/hooks/llm.js → src/hooks/llm.ts} +160 -80
- package/src/hooks/message-sanitize.ts +45 -0
- package/src/hooks/pain.ts +384 -0
- package/src/hooks/progressive-trust-gate.ts +174 -0
- package/src/hooks/prompt.ts +920 -0
- package/src/hooks/subagent.ts +207 -0
- package/src/hooks/thinking-checkpoint.ts +73 -0
- package/src/hooks/trajectory-collector.ts +290 -0
- package/src/http/principles-console-route.ts +716 -0
- package/src/i18n/commands.ts +117 -0
- package/src/index.ts +694 -0
- package/src/service/central-database.ts +831 -0
- package/src/service/control-ui-query-service.ts +888 -0
- package/src/service/evolution-query-service.ts +405 -0
- package/src/service/evolution-worker.ts +1646 -0
- package/src/service/health-query-service.ts +836 -0
- package/{dist/service/nocturnal-runtime.js → src/service/nocturnal-runtime.ts} +235 -79
- package/src/service/nocturnal-service.ts +1015 -0
- package/src/service/nocturnal-target-selector.ts +532 -0
- package/src/service/phase3-input-filter.ts +237 -0
- package/src/service/runtime-summary-service.ts +757 -0
- package/src/service/subagent-workflow/deep-reflect-workflow-manager.ts +513 -0
- package/{dist/service/subagent-workflow/empathy-observer-workflow-manager.js → src/service/subagent-workflow/empathy-observer-workflow-manager.ts} +240 -117
- package/src/service/subagent-workflow/index.ts +51 -0
- package/src/service/subagent-workflow/nocturnal-workflow-manager.ts +856 -0
- package/src/service/subagent-workflow/runtime-direct-driver.ts +166 -0
- package/{dist/service/subagent-workflow/types.d.ts → src/service/subagent-workflow/types.ts} +137 -18
- package/src/service/subagent-workflow/workflow-store.ts +328 -0
- package/src/service/trajectory-service.ts +15 -0
- package/{dist/tools/critique-prompt.js → src/tools/critique-prompt.ts} +25 -8
- package/src/tools/deep-reflect.ts +349 -0
- package/{dist/tools/model-index.js → src/tools/model-index.ts} +33 -17
- package/src/types/event-types.ts +453 -0
- package/src/types/hygiene-types.ts +31 -0
- package/src/types/principle-tree-schema.ts +244 -0
- package/src/types/runtime-summary.ts +49 -0
- package/src/types.ts +74 -0
- package/src/utils/file-lock.ts +391 -0
- package/{dist/utils/glob-match.js → src/utils/glob-match.ts} +21 -20
- package/{dist/utils/hashing.js → src/utils/hashing.ts} +6 -4
- package/src/utils/io.ts +110 -0
- package/{dist/utils/nlp.js → src/utils/nlp.ts} +19 -12
- package/{dist/utils/plugin-logger.js → src/utils/plugin-logger.ts} +33 -8
- package/src/utils/subagent-probe.ts +94 -0
- package/templates/langs/zh/skills/pd-diagnostician/SKILL.md +70 -1
- package/templates/pain_settings.json +2 -1
- package/tests/README.md +120 -0
- package/tests/build-artifacts.test.ts +111 -0
- package/tests/commands/evolution-status.test.ts +222 -0
- package/tests/commands/evolver.test.ts +22 -0
- package/tests/commands/export.test.ts +78 -0
- package/tests/commands/nocturnal-review.test.ts +448 -0
- package/tests/commands/nocturnal-train.test.ts +97 -0
- package/tests/commands/pain.test.ts +108 -0
- package/tests/commands/samples.test.ts +65 -0
- package/tests/commands/strategy.test.ts +34 -0
- package/tests/commands/thinking-os.test.ts +88 -0
- package/tests/core/adaptive-thresholds.test.ts +261 -0
- package/tests/core/config-service.test.ts +89 -0
- package/tests/core/config.test.ts +90 -0
- package/tests/core/control-ui-db.test.ts +75 -0
- package/tests/core/core-template-guidance.test.ts +21 -0
- package/tests/core/detection-funnel.test.ts +63 -0
- package/tests/core/detection-service.test.ts +50 -0
- package/tests/core/dictionary-service.test.ts +116 -0
- package/tests/core/dictionary.test.ts +168 -0
- package/tests/core/empathy-keyword-matcher.test.ts +209 -0
- package/tests/core/event-log.test.ts +181 -0
- package/tests/core/evolution-e2e.test.ts +58 -0
- package/tests/core/evolution-engine-gate-integration.test.ts +543 -0
- package/tests/core/evolution-engine.test.ts +562 -0
- package/tests/core/evolution-logger.test.ts +148 -0
- package/tests/core/evolution-migration.test.ts +50 -0
- package/tests/core/evolution-paths.test.ts +21 -0
- package/tests/core/evolution-reducer.detector-metadata.test.ts +602 -0
- package/tests/core/evolution-reducer.test.ts +180 -0
- package/tests/core/evolution-types-loop.test.ts +48 -0
- package/tests/core/evolution-user-stories.e2e.test.ts +249 -0
- package/tests/core/external-training-contract.test.ts +463 -0
- package/tests/core/focus-history.test.ts +682 -0
- package/tests/core/init-flatten.test.ts +69 -0
- package/tests/core/init-refactor.test.ts +87 -0
- package/tests/core/init-v1.3.test.ts +46 -0
- package/tests/core/init.test.ts +190 -0
- package/tests/core/local-worker-routing.test.ts +757 -0
- package/tests/core/migration.test.ts +84 -0
- package/tests/core/model-deployment-registry.test.ts +845 -0
- package/tests/core/model-training-registry.test.ts +889 -0
- package/tests/core/nocturnal-arbiter.test.ts +494 -0
- package/tests/core/nocturnal-candidate-scoring.test.ts +400 -0
- package/tests/core/nocturnal-compliance.test.ts +646 -0
- package/tests/core/nocturnal-dataset.test.ts +892 -0
- package/tests/core/nocturnal-executability.test.ts +357 -0
- package/tests/core/nocturnal-export.test.ts +462 -0
- package/tests/core/nocturnal-reviewed-subset-comparison.test.ts +428 -0
- package/tests/core/nocturnal-trajectory-extractor.test.ts +634 -0
- package/tests/core/nocturnal-trinity.test.ts +953 -0
- package/tests/core/pain.test.ts +33 -0
- package/tests/core/path-resolver.test.ts +57 -0
- package/tests/core/paths-refactor.test.ts +42 -0
- package/tests/core/phase7-rollout-integration.test.ts +477 -0
- package/tests/core/principle-training-state.test.ts +712 -0
- package/tests/core/profile.test.ts +56 -0
- package/tests/core/promotion-gate.test.ts +556 -0
- package/tests/core/risk-calculator.test.ts +168 -0
- package/tests/core/session-tracker.test.ts +191 -0
- package/tests/core/training-program.test.ts +472 -0
- package/tests/core/trajectory.test.ts +265 -0
- package/tests/core/workspace-context-factory.test.ts +18 -0
- package/tests/core/workspace-context.test.ts +134 -0
- package/tests/fixtures/nocturnal-reviewed-subset.json +183 -0
- package/tests/fixtures/production-compatibility.test.ts +147 -0
- package/tests/fixtures/production-mock-generator.ts +282 -0
- package/tests/hooks/bash-risk-integration.test.ts +137 -0
- package/tests/hooks/bash-risk.test.ts +81 -0
- package/tests/hooks/edit-verification.test.ts +678 -0
- package/tests/hooks/gate-edit-verification-p1.test.ts +632 -0
- package/tests/hooks/gate-edit-verification.test.ts +435 -0
- package/tests/hooks/gate-pipeline-integration.test.ts +404 -0
- package/tests/hooks/gate.test.ts +271 -0
- package/tests/hooks/gfi-gate-unit.test.ts +422 -0
- package/tests/hooks/gfi-gate.test.ts +669 -0
- package/tests/hooks/lifecycle.test.ts +248 -0
- package/tests/hooks/llm.test.ts +308 -0
- package/tests/hooks/message-sanitize.test.ts +36 -0
- package/tests/hooks/pain.test.ts +141 -0
- package/tests/hooks/progressive-trust-gate.test.ts +277 -0
- package/tests/hooks/prompt.test.ts +1411 -0
- package/tests/hooks/subagent.test.ts +467 -0
- package/tests/hooks/thinking-gate.test.ts +313 -0
- package/tests/http/principles-console-route.test.ts +140 -0
- package/tests/hygiene-tracker.test.ts +77 -0
- package/tests/index.integration.test.ts +179 -0
- package/tests/index.shadow-routing.integration.test.ts +140 -0
- package/tests/index.test.ts +9 -0
- package/tests/integration/empathy-workflow-integration.test.ts +627 -0
- package/tests/service/control-ui-query-service.test.ts +121 -0
- package/tests/service/empathy-observer-workflow-manager.test.ts +176 -0
- package/tests/service/evolution-worker.test.ts +585 -0
- package/tests/service/nocturnal-runtime.test.ts +470 -0
- package/tests/service/nocturnal-service.test.ts +577 -0
- package/tests/service/nocturnal-target-selector.test.ts +615 -0
- package/tests/service/nocturnal-workflow-manager.test.ts +439 -0
- package/tests/service/phase3-input-filter.test.ts +289 -0
- package/tests/service/runtime-summary-service.test.ts +919 -0
- package/tests/task-compliance.test.ts +166 -0
- package/tests/test-utils.ts +48 -0
- package/tests/tools/critique-prompt.test.ts +260 -0
- package/tests/tools/deep-reflect.test.ts +232 -0
- package/tests/tools/model-index.test.ts +246 -0
- package/tests/ui/app.test.tsx +114 -0
- package/tests/utils/file-lock.test.ts +407 -0
- package/tests/utils/hashing.test.ts +32 -0
- package/tests/utils/io.test.ts +39 -0
- package/tests/utils/nlp.test.ts +53 -0
- package/tests/utils/plugin-logger.test.ts +156 -0
- package/tsconfig.json +16 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/ui/src/App.tsx +45 -0
- package/ui/src/api.ts +216 -0
- package/ui/src/charts.tsx +586 -0
- package/ui/src/components/ErrorState.tsx +6 -0
- package/ui/src/components/Loading.tsx +13 -0
- package/ui/src/components/ProtectedRoute.tsx +12 -0
- package/ui/src/components/Shell.tsx +91 -0
- package/ui/src/components/WorkspaceConfig.tsx +146 -0
- package/ui/src/components/index.ts +5 -0
- package/ui/src/context/auth.tsx +80 -0
- package/ui/src/context/theme.tsx +66 -0
- package/ui/src/hooks/useAutoRefresh.ts +39 -0
- package/ui/src/i18n/ui.ts +363 -0
- package/ui/src/main.tsx +16 -0
- package/ui/src/pages/EvolutionPage.tsx +352 -0
- package/ui/src/pages/FeedbackPage.tsx +140 -0
- package/ui/src/pages/GateMonitorPage.tsx +136 -0
- package/ui/src/pages/LoginPage.tsx +88 -0
- package/ui/src/pages/OverviewPage.tsx +238 -0
- package/ui/src/pages/SamplesPage.tsx +174 -0
- package/ui/src/pages/ThinkingModelsPage.tsx +127 -0
- package/ui/src/styles.css +1661 -0
- package/ui/src/types.ts +368 -0
- package/ui/src/utils/format.ts +15 -0
- package/vitest.config.ts +23 -0
- package/dist/commands/capabilities.d.ts +0 -3
- package/dist/commands/capabilities.js +0 -73
- package/dist/commands/context.d.ts +0 -5
- package/dist/commands/evolution-status.d.ts +0 -4
- package/dist/commands/evolution-status.js +0 -117
- package/dist/commands/evolver.d.ts +0 -9
- package/dist/commands/evolver.js +0 -26
- package/dist/commands/export.d.ts +0 -2
- package/dist/commands/export.js +0 -98
- package/dist/commands/focus.d.ts +0 -14
- package/dist/commands/focus.js +0 -457
- package/dist/commands/nocturnal-review.d.ts +0 -24
- package/dist/commands/nocturnal-review.js +0 -265
- package/dist/commands/nocturnal-rollout.d.ts +0 -27
- package/dist/commands/nocturnal-rollout.js +0 -671
- package/dist/commands/nocturnal-train.d.ts +0 -25
- package/dist/commands/nocturnal-train.js +0 -919
- package/dist/commands/pain.d.ts +0 -5
- package/dist/commands/principle-rollback.d.ts +0 -4
- package/dist/commands/principle-rollback.js +0 -22
- package/dist/commands/rollback.d.ts +0 -19
- package/dist/commands/samples.d.ts +0 -2
- package/dist/commands/samples.js +0 -55
- package/dist/commands/strategy.d.ts +0 -3
- package/dist/commands/strategy.js +0 -29
- package/dist/commands/thinking-os.d.ts +0 -2
- package/dist/config/defaults/runtime.d.ts +0 -40
- package/dist/config/errors.d.ts +0 -84
- package/dist/config/errors.js +0 -94
- package/dist/config/index.js +0 -7
- package/dist/constants/diagnostician.d.ts +0 -12
- package/dist/constants/diagnostician.js +0 -56
- package/dist/constants/tools.d.ts +0 -17
- package/dist/constants/tools.js +0 -54
- package/dist/core/adaptive-thresholds.d.ts +0 -186
- package/dist/core/adaptive-thresholds.js +0 -300
- package/dist/core/config-service.d.ts +0 -15
- package/dist/core/config.d.ts +0 -129
- package/dist/core/control-ui-db.d.ts +0 -95
- package/dist/core/control-ui-db.js +0 -292
- package/dist/core/detection-funnel.d.ts +0 -33
- package/dist/core/detection-service.d.ts +0 -15
- package/dist/core/dictionary-service.d.ts +0 -15
- package/dist/core/dictionary.d.ts +0 -38
- package/dist/core/event-log.d.ts +0 -82
- package/dist/core/event-log.js +0 -463
- package/dist/core/evolution-engine.d.ts +0 -118
- package/dist/core/evolution-engine.js +0 -464
- package/dist/core/evolution-logger.d.ts +0 -137
- package/dist/core/evolution-logger.js +0 -256
- package/dist/core/evolution-migration.d.ts +0 -5
- package/dist/core/evolution-migration.js +0 -65
- package/dist/core/evolution-reducer.d.ts +0 -98
- package/dist/core/evolution-reducer.js +0 -465
- package/dist/core/evolution-types.d.ts +0 -287
- package/dist/core/evolution-types.js +0 -78
- package/dist/core/external-training-contract.d.ts +0 -276
- package/dist/core/external-training-contract.js +0 -269
- package/dist/core/focus-history.d.ts +0 -210
- package/dist/core/focus-history.js +0 -1185
- package/dist/core/hygiene/tracker.d.ts +0 -22
- package/dist/core/hygiene/tracker.js +0 -106
- package/dist/core/init.d.ts +0 -12
- package/dist/core/local-worker-routing.d.ts +0 -175
- package/dist/core/local-worker-routing.js +0 -525
- package/dist/core/migration.d.ts +0 -6
- package/dist/core/model-deployment-registry.d.ts +0 -218
- package/dist/core/model-deployment-registry.js +0 -503
- package/dist/core/model-training-registry.d.ts +0 -295
- package/dist/core/model-training-registry.js +0 -475
- package/dist/core/nocturnal-arbiter.d.ts +0 -159
- package/dist/core/nocturnal-arbiter.js +0 -534
- package/dist/core/nocturnal-candidate-scoring.d.ts +0 -137
- package/dist/core/nocturnal-candidate-scoring.js +0 -266
- package/dist/core/nocturnal-compliance.d.ts +0 -175
- package/dist/core/nocturnal-compliance.js +0 -824
- package/dist/core/nocturnal-dataset.d.ts +0 -224
- package/dist/core/nocturnal-dataset.js +0 -443
- package/dist/core/nocturnal-executability.d.ts +0 -85
- package/dist/core/nocturnal-executability.js +0 -331
- package/dist/core/nocturnal-export.d.ts +0 -124
- package/dist/core/nocturnal-export.js +0 -275
- package/dist/core/nocturnal-paths.d.ts +0 -124
- package/dist/core/nocturnal-trajectory-extractor.d.ts +0 -242
- package/dist/core/nocturnal-trajectory-extractor.js +0 -307
- package/dist/core/nocturnal-trinity.d.ts +0 -311
- package/dist/core/nocturnal-trinity.js +0 -880
- package/dist/core/pain.d.ts +0 -4
- package/dist/core/pain.js +0 -70
- package/dist/core/path-resolver.d.ts +0 -46
- package/dist/core/paths.d.ts +0 -65
- package/dist/core/principle-training-state.d.ts +0 -121
- package/dist/core/principle-training-state.js +0 -321
- package/dist/core/profile.d.ts +0 -62
- package/dist/core/profile.js +0 -210
- package/dist/core/promotion-gate.d.ts +0 -238
- package/dist/core/promotion-gate.js +0 -529
- package/dist/core/risk-calculator.d.ts +0 -22
- package/dist/core/session-tracker.d.ts +0 -101
- package/dist/core/shadow-observation-registry.d.ts +0 -217
- package/dist/core/shadow-observation-registry.js +0 -308
- package/dist/core/system-logger.d.ts +0 -8
- package/dist/core/thinking-models.d.ts +0 -38
- package/dist/core/thinking-models.js +0 -170
- package/dist/core/training-program.d.ts +0 -233
- package/dist/core/training-program.js +0 -433
- package/dist/core/trajectory.d.ts +0 -411
- package/dist/core/trajectory.js +0 -1307
- package/dist/core/workspace-context.d.ts +0 -71
- package/dist/hooks/bash-risk.d.ts +0 -57
- package/dist/hooks/bash-risk.js +0 -137
- package/dist/hooks/edit-verification.d.ts +0 -62
- package/dist/hooks/edit-verification.js +0 -256
- package/dist/hooks/gate-block-helper.d.ts +0 -44
- package/dist/hooks/gate-block-helper.js +0 -119
- package/dist/hooks/gate.d.ts +0 -24
- package/dist/hooks/gate.js +0 -173
- package/dist/hooks/gfi-gate.d.ts +0 -40
- package/dist/hooks/gfi-gate.js +0 -113
- package/dist/hooks/lifecycle.d.ts +0 -5
- package/dist/hooks/lifecycle.js +0 -284
- package/dist/hooks/llm.d.ts +0 -13
- package/dist/hooks/message-sanitize.d.ts +0 -3
- package/dist/hooks/message-sanitize.js +0 -37
- package/dist/hooks/pain.d.ts +0 -5
- package/dist/hooks/pain.js +0 -301
- package/dist/hooks/progressive-trust-gate.d.ts +0 -52
- package/dist/hooks/progressive-trust-gate.js +0 -134
- package/dist/hooks/prompt.d.ts +0 -49
- package/dist/hooks/prompt.js +0 -905
- package/dist/hooks/subagent.d.ts +0 -10
- package/dist/hooks/subagent.js +0 -387
- package/dist/hooks/thinking-checkpoint.d.ts +0 -37
- package/dist/hooks/thinking-checkpoint.js +0 -51
- package/dist/hooks/trajectory-collector.d.ts +0 -32
- package/dist/hooks/trajectory-collector.js +0 -256
- package/dist/http/principles-console-route.d.ts +0 -9
- package/dist/http/principles-console-route.js +0 -681
- package/dist/i18n/commands.d.ts +0 -26
- package/dist/i18n/commands.js +0 -116
- package/dist/index.d.ts +0 -7
- package/dist/index.js +0 -581
- package/dist/service/central-database.d.ts +0 -104
- package/dist/service/central-database.js +0 -649
- package/dist/service/control-ui-query-service.d.ts +0 -221
- package/dist/service/control-ui-query-service.js +0 -543
- package/dist/service/empathy-observer-manager.d.ts +0 -88
- package/dist/service/empathy-observer-manager.js +0 -414
- package/dist/service/evolution-query-service.d.ts +0 -155
- package/dist/service/evolution-query-service.js +0 -258
- package/dist/service/evolution-worker.d.ts +0 -101
- package/dist/service/evolution-worker.js +0 -975
- package/dist/service/health-query-service.d.ts +0 -170
- package/dist/service/health-query-service.js +0 -662
- package/dist/service/nocturnal-runtime.d.ts +0 -183
- package/dist/service/nocturnal-service.d.ts +0 -163
- package/dist/service/nocturnal-service.js +0 -787
- package/dist/service/nocturnal-target-selector.d.ts +0 -145
- package/dist/service/nocturnal-target-selector.js +0 -315
- package/dist/service/phase3-input-filter.d.ts +0 -73
- package/dist/service/phase3-input-filter.js +0 -172
- package/dist/service/runtime-summary-service.d.ts +0 -122
- package/dist/service/runtime-summary-service.js +0 -485
- package/dist/service/subagent-workflow/empathy-observer-workflow-manager.d.ts +0 -48
- package/dist/service/subagent-workflow/index.d.ts +0 -4
- package/dist/service/subagent-workflow/index.js +0 -3
- package/dist/service/subagent-workflow/runtime-direct-driver.d.ts +0 -77
- package/dist/service/subagent-workflow/runtime-direct-driver.js +0 -75
- package/dist/service/subagent-workflow/types.js +0 -11
- package/dist/service/subagent-workflow/workflow-store.d.ts +0 -26
- package/dist/service/subagent-workflow/workflow-store.js +0 -165
- package/dist/service/trajectory-service.d.ts +0 -2
- package/dist/service/trajectory-service.js +0 -15
- package/dist/tools/critique-prompt.d.ts +0 -14
- package/dist/tools/deep-reflect.d.ts +0 -39
- package/dist/tools/deep-reflect.js +0 -350
- package/dist/tools/model-index.d.ts +0 -9
- package/dist/types/event-types.d.ts +0 -306
- package/dist/types/event-types.js +0 -106
- package/dist/types/hygiene-types.d.ts +0 -20
- package/dist/types/hygiene-types.js +0 -12
- package/dist/types/runtime-summary.d.ts +0 -47
- package/dist/types/runtime-summary.js +0 -1
- package/dist/types.d.ts +0 -50
- package/dist/types.js +0 -22
- package/dist/utils/file-lock.d.ts +0 -71
- package/dist/utils/file-lock.js +0 -309
- package/dist/utils/glob-match.d.ts +0 -28
- package/dist/utils/hashing.d.ts +0 -9
- package/dist/utils/io.d.ts +0 -6
- package/dist/utils/io.js +0 -106
- package/dist/utils/nlp.d.ts +0 -9
- package/dist/utils/plugin-logger.d.ts +0 -39
- package/dist/utils/subagent-probe.d.ts +0 -34
- package/dist/utils/subagent-probe.js +0 -81
package/SKILL.md
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: principles-disciple
|
|
3
|
+
description: Evolutionary programming agent framework with control-plane observability, pain-driven learning, and guarded execution.
|
|
4
|
+
version: 1.7.0
|
|
5
|
+
author: Principles Disciple Team
|
|
6
|
+
tags: [core, safety, evolution, control-plane]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Principles Disciple
|
|
10
|
+
|
|
11
|
+
An evolutionary agent framework built around pain signals, guarded execution, and a separable control plane.
|
|
12
|
+
|
|
13
|
+
## Current Model
|
|
14
|
+
|
|
15
|
+
- `Pain` captures failure and frustration signals
|
|
16
|
+
- `GFI` is the short-term friction brake
|
|
17
|
+
- `Gate` is the execution intercept layer
|
|
18
|
+
- `Evolution` is the learning plane with EP (Evolution Points) as the sole gating mechanism
|
|
19
|
+
- `EP Tier` determines agent capabilities (Seed → Sprout → Sapling → Tree → Forest)
|
|
20
|
+
|
|
21
|
+
## Key Commands
|
|
22
|
+
|
|
23
|
+
| Command | Description |
|
|
24
|
+
|---|---|
|
|
25
|
+
| `/pd-evolution-status` | Show the current control-plane and evolution summary |
|
|
26
|
+
| `/pd-evolve` | Run an evolution task |
|
|
27
|
+
| `/pd-rollback` | Roll back the latest or specified empathy penalty |
|
|
28
|
+
| `/pd-help` | Show help |
|
|
29
|
+
|
|
30
|
+
## `/pd-evolution-status` Example
|
|
31
|
+
|
|
32
|
+
```text
|
|
33
|
+
Evolution Status
|
|
34
|
+
================
|
|
35
|
+
|
|
36
|
+
Control Plane
|
|
37
|
+
- EP Tier: Sapling (200 points)
|
|
38
|
+
- Session GFI: current 18, peak 25 (partial)
|
|
39
|
+
- GFI Sources: user_empathy(18)
|
|
40
|
+
- Pain Flag: inactive
|
|
41
|
+
- Last Pain Signal: user_empathy - buffered empathy event
|
|
42
|
+
- Gate Events: blocks 1, bypasses 0 (authoritative)
|
|
43
|
+
|
|
44
|
+
Evolution
|
|
45
|
+
- Queue: pending 1, in_progress 0, completed 0 (authoritative)
|
|
46
|
+
- Directive: present, active yes, age 5m
|
|
47
|
+
- Directive Task: fix something important
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Important Behavior Notes
|
|
51
|
+
|
|
52
|
+
- `/pd-rollback` now removes only the `user_empathy` GFI slice; it does not wipe the full session GFI.
|
|
53
|
+
|
|
54
|
+
## Usage
|
|
55
|
+
|
|
56
|
+
Use Principles Disciple to:
|
|
57
|
+
|
|
58
|
+
- observe runtime control-plane state
|
|
59
|
+
- capture pain signals and empathy signals
|
|
60
|
+
- guard risky actions through Gate
|
|
61
|
+
- feed lessons into the evolution pipeline without turning evolution into a second authority system
|
|
62
|
+
|
|
63
|
+
This skill is designed to support the current observation window before any `Capability shadow` rollout.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Principles Disciple Command Reference
|
|
2
|
+
|
|
3
|
+
> 当前版本重点:EP (Evolution Points) 系统已接替 trust score 成为唯一门控机制。
|
|
4
|
+
> `rollback` 只回滚 `user_empathy` slice,`/pd-evolution-status` 读的是运行时 summary。
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 核心命令
|
|
9
|
+
|
|
10
|
+
| 命令 | 用途 | 当前口径 |
|
|
11
|
+
|---|---|---|
|
|
12
|
+
| `/pd-evolution-status` | 查看控制面与进化面的当前状态 | 读取 `RuntimeSummaryService` 的 canonical state |
|
|
13
|
+
| `/pd-status empathy` | 查看情绪/共情事件统计 | 用于观察 `user_empathy` 与 `system_infer` 事件是否稳定落日志 |
|
|
14
|
+
| `/pd-rollback last` | 回滚最近一次情绪惩罚 | 只回滚 `user_empathy` 对应的 GFI slice |
|
|
15
|
+
| `/pd-evolve` | 执行进化任务 | 属于学习面,通过 EP 积累提升权限 |
|
|
16
|
+
| `/pd-help` | 显示帮助 | |
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## `/pd-evolution-status`
|
|
21
|
+
|
|
22
|
+
### 它现在显示什么
|
|
23
|
+
|
|
24
|
+
- `EP Tier`: 当前 EP 等级 (Seed → Sprout → Sapling → Tree → Forest)
|
|
25
|
+
- `Session GFI`: 当前会话 GFI 与峰值
|
|
26
|
+
- `GFI Sources`: 当前 summary 能解释出来的 friction 来源
|
|
27
|
+
- `Pain Flag`: pain flag 是否激活
|
|
28
|
+
- `Gate Events`: 最近的 block / bypass
|
|
29
|
+
- `Queue / Directive`: evolution queue 与 directive 的当前状态
|
|
30
|
+
|
|
31
|
+
### 重要说明
|
|
32
|
+
|
|
33
|
+
- 这是当前控制面的权威读模型入口。
|
|
34
|
+
- 它优先读取 canonical `.state`,并尽量合并 live session / buffered events。
|
|
35
|
+
- 如果数据不完整,会显示 `partial` 或 warning,而不是静默显示 `0`。
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## `/pd-rollback`
|
|
40
|
+
|
|
41
|
+
### 当前行为
|
|
42
|
+
|
|
43
|
+
- `/pd-rollback last`
|
|
44
|
+
- `/pd-rollback <event-id>`
|
|
45
|
+
|
|
46
|
+
回滚的是最近一次或指定的 `user_empathy` 事件。
|
|
47
|
+
|
|
48
|
+
### 重要变化
|
|
49
|
+
|
|
50
|
+
- 现在只回滚 `user_empathy` 对应的 GFI slice
|
|
51
|
+
- 不再把整段 session GFI 一起清空
|
|
52
|
+
- 如果事件不存在或来源不匹配,不会误伤其他 friction
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## EP 等级说明
|
|
57
|
+
|
|
58
|
+
| 等级 | EP 要求 | 权限 |
|
|
59
|
+
|---|---|---|
|
|
60
|
+
| Seed | 0 | 只读 + 基础文档 |
|
|
61
|
+
| Sprout | 50 | 单文件编辑 |
|
|
62
|
+
| Sapling | 200 | 多文件 + 测试 + 子智能体 |
|
|
63
|
+
| Tree | 500 | 重构 + 风险路径 |
|
|
64
|
+
| Forest | 1000 | 无限制 |
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## 观察窗口建议
|
|
69
|
+
|
|
70
|
+
在进入 `Phase 3 capability shadow` 之前,优先每天检查:
|
|
71
|
+
|
|
72
|
+
1. `user_empathy` / `system_infer` 是否稳定进入 `events.jsonl`
|
|
73
|
+
2. rollback 是否只影响 empathy slice
|
|
74
|
+
3. `evolution_queue.json`、`evolution_directive.json` 与 status 是否一致
|
|
75
|
+
4. summary 是否仍然需要 `partial` 警告才能解释当前状态
|
|
76
|
+
5. EP 积累是否正常驱动等级提升
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Principles Disciple Command Reference (English)
|
|
2
|
+
|
|
3
|
+
> Current state: EP (Evolution Points) system is the primary growth system, fully operational and enabled by default.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Core Commands
|
|
8
|
+
|
|
9
|
+
| Command | Purpose |
|
|
10
|
+
|---|---|
|
|
11
|
+
| `/pd-evolution-status` | View EP tier, GFI, pain flag, and gate events |
|
|
12
|
+
| `/pd-status empathy` | Inspect empathy/frustration event statistics |
|
|
13
|
+
| `/pd-rollback last` | Roll back the latest empathy penalty |
|
|
14
|
+
| `/pd-evolve` | Run an evolution task |
|
|
15
|
+
| `/pd-evolution-points` | View current EP balance and tier |
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## `/pd-evolution-status`
|
|
20
|
+
|
|
21
|
+
### What it shows
|
|
22
|
+
|
|
23
|
+
- `EP Tier`: Current evolution tier (Seed → Sprout → Sapling → Tree → Forest)
|
|
24
|
+
- `Session GFI`: Current session GFI and peak
|
|
25
|
+
- `GFI Sources`: Currently attributable friction sources
|
|
26
|
+
- `Pain Flag`: Whether a pain flag is active
|
|
27
|
+
- `Gate Events`: Recent block / bypass counts
|
|
28
|
+
- `Queue / Directive`: Evolution queue and directive state
|
|
29
|
+
|
|
30
|
+
### Important notes
|
|
31
|
+
|
|
32
|
+
- This is the main operator entry point into the control plane.
|
|
33
|
+
- It reads canonical `.state` and tries to merge live session state and buffered events when available.
|
|
34
|
+
- When data is incomplete, it surfaces `partial` or warnings instead of silently printing `0`.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## `/pd-rollback`
|
|
39
|
+
|
|
40
|
+
### Current behavior
|
|
41
|
+
|
|
42
|
+
- `/pd-rollback last`
|
|
43
|
+
- `/pd-rollback <event-id>`
|
|
44
|
+
|
|
45
|
+
It rolls back the latest or specified `user_empathy` event.
|
|
46
|
+
|
|
47
|
+
### Important notes
|
|
48
|
+
|
|
49
|
+
- It subtracts only the `user_empathy` GFI slice
|
|
50
|
+
- It no longer wipes the whole session GFI
|
|
51
|
+
- If the event is missing or the source does not match, unrelated friction remains untouched
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## EP Tier System
|
|
56
|
+
|
|
57
|
+
| Tier | EP Required | Max Lines/Write |
|
|
58
|
+
|------|-------------|-----------------|
|
|
59
|
+
| Seed | 0 | 150 |
|
|
60
|
+
| Sprout | 50 | 300 |
|
|
61
|
+
| Sapling | 200 | 500 |
|
|
62
|
+
| Tree | 500 | 1000 |
|
|
63
|
+
| Forest | 1000 | Unlimited |
|
|
64
|
+
|
|
65
|
+
EP is earned through successful task completion and problem resolution.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Observation Window Checklist
|
|
70
|
+
|
|
71
|
+
Before entering new capability phases, check daily:
|
|
72
|
+
|
|
73
|
+
1. EP tier and queue are functioning correctly
|
|
74
|
+
2. `user_empathy` and `system_infer` appear in `events.jsonl`
|
|
75
|
+
3. rollback affects only the empathy slice
|
|
76
|
+
4. `evolution_queue.json`, `evolution_directive.json`, and status stay aligned
|
|
77
|
+
5. summary warnings still accurately explain partial data quality
|
|
78
|
+
|
|
79
|
+
(End of file - total 84 lines)
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { build } from 'esbuild';
|
|
2
|
+
import { copyFileSync, mkdirSync, existsSync, statSync, readdirSync, rmSync } from 'fs';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
|
|
5
|
+
const isProduction = process.argv.includes('--production');
|
|
6
|
+
|
|
7
|
+
// Clean dist/ before build to prevent tsc artifacts from coexisting with bundle
|
|
8
|
+
if (existsSync('dist')) {
|
|
9
|
+
console.log('🧹 Cleaning dist/...');
|
|
10
|
+
rmSync('dist', { recursive: true, force: true });
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function copyRecursive(src, dest) {
|
|
14
|
+
const stats = statSync(src);
|
|
15
|
+
if (stats.isDirectory()) {
|
|
16
|
+
mkdirSync(dest, { recursive: true });
|
|
17
|
+
for (const entry of readdirSync(src)) {
|
|
18
|
+
copyRecursive(join(src, entry), join(dest, entry));
|
|
19
|
+
}
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
copyFileSync(src, dest);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
async function bundlePlugin() {
|
|
27
|
+
try {
|
|
28
|
+
await build({
|
|
29
|
+
entryPoints: ['src/index.ts'],
|
|
30
|
+
outfile: 'dist/bundle.js',
|
|
31
|
+
bundle: true,
|
|
32
|
+
platform: 'node',
|
|
33
|
+
target: 'node20',
|
|
34
|
+
format: 'esm',
|
|
35
|
+
external: [
|
|
36
|
+
'openclaw',
|
|
37
|
+
'@openclaw/sdk',
|
|
38
|
+
'@openclaw/plugin-kit',
|
|
39
|
+
'better-sqlite3',
|
|
40
|
+
],
|
|
41
|
+
sourcemap: isProduction ? false : 'inline',
|
|
42
|
+
minify: isProduction ? true : false,
|
|
43
|
+
treeShaking: true,
|
|
44
|
+
metafile: true,
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
console.log('Bundle created: dist/bundle.js');
|
|
48
|
+
|
|
49
|
+
const staticFiles = ['templates', 'agents', 'openclaw.plugin.json'];
|
|
50
|
+
const distDir = 'dist';
|
|
51
|
+
|
|
52
|
+
for (const file of staticFiles) {
|
|
53
|
+
const src = file;
|
|
54
|
+
const dest = join(distDir, file);
|
|
55
|
+
if (!existsSync(src)) {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
if (statSync(src).isDirectory()) {
|
|
60
|
+
copyRecursive(src, dest);
|
|
61
|
+
} else {
|
|
62
|
+
copyFileSync(src, dest);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
console.log(`Copied: ${file} -> dist/${file}`);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
console.log('\nPlugin bundle ready for distribution.');
|
|
69
|
+
} catch (error) {
|
|
70
|
+
console.error('Bundle failed:', error);
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
bundlePlugin();
|
package/openclaw.plugin.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "principles-disciple",
|
|
3
3
|
"name": "Principles Disciple",
|
|
4
4
|
"description": "Evolutionary programming agent framework with strategic guardrails and reflection loops.",
|
|
5
|
-
"version": "1.8.
|
|
5
|
+
"version": "1.8.2",
|
|
6
6
|
"skills": [
|
|
7
7
|
"./skills"
|
|
8
8
|
],
|
|
@@ -76,8 +76,8 @@
|
|
|
76
76
|
}
|
|
77
77
|
},
|
|
78
78
|
"buildFingerprint": {
|
|
79
|
-
"gitSha": "
|
|
80
|
-
"bundleMd5": "
|
|
81
|
-
"builtAt": "2026-
|
|
79
|
+
"gitSha": "787ed1c54034",
|
|
80
|
+
"bundleMd5": "f9dbcc5968920a4840ba02316515d1e4",
|
|
81
|
+
"builtAt": "2026-04-06T06:42:07.398Z"
|
|
82
82
|
}
|
|
83
83
|
}
|
package/package.json
CHANGED
|
@@ -1,18 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "principles-disciple",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.2",
|
|
4
4
|
"description": "Native OpenClaw plugin for Principles Disciple",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"main": "./dist/
|
|
7
|
-
"types": "./dist/index.d.ts",
|
|
8
|
-
"files": [
|
|
9
|
-
"dist",
|
|
10
|
-
"templates",
|
|
11
|
-
"agents",
|
|
12
|
-
"openclaw.plugin.json"
|
|
13
|
-
],
|
|
6
|
+
"main": "./dist/bundle.js",
|
|
14
7
|
"exports": {
|
|
15
|
-
".": "./dist/
|
|
8
|
+
".": "./dist/bundle.js"
|
|
16
9
|
},
|
|
17
10
|
"repository": {
|
|
18
11
|
"type": "git",
|
|
@@ -29,15 +22,17 @@
|
|
|
29
22
|
"id": "principles-disciple",
|
|
30
23
|
"name": "Principles Disciple",
|
|
31
24
|
"extensions": [
|
|
32
|
-
"./dist/
|
|
25
|
+
"./dist/bundle.js"
|
|
33
26
|
]
|
|
34
27
|
},
|
|
35
28
|
"scripts": {
|
|
36
29
|
"build": "tsc",
|
|
37
30
|
"build:web": "node scripts/build-web.mjs",
|
|
38
31
|
"build:bundle": "node esbuild.config.js && node scripts/build-web.mjs",
|
|
39
|
-
"build:production": "
|
|
32
|
+
"build:production": "node esbuild.config.js --production && node scripts/build-web.mjs --production && node scripts/verify-build.mjs",
|
|
40
33
|
"test": "vitest run",
|
|
34
|
+
"test:coverage": "vitest run --coverage",
|
|
35
|
+
"lint": "eslint src/",
|
|
41
36
|
"postinstall": "node scripts/install-dependencies.cjs"
|
|
42
37
|
},
|
|
43
38
|
"devDependencies": {
|
|
@@ -48,15 +43,18 @@
|
|
|
48
43
|
"@types/react": "^19.2.2",
|
|
49
44
|
"@types/react-dom": "^19.2.2",
|
|
50
45
|
"@types/ws": "^8.5.13",
|
|
46
|
+
"@typescript-eslint/eslint-plugin": "^8.58.0",
|
|
47
|
+
"@typescript-eslint/parser": "^8.58.0",
|
|
51
48
|
"@vitest/coverage-v8": "^4.1.0",
|
|
52
49
|
"esbuild": "^0.27.4",
|
|
50
|
+
"eslint": "^10.1.0",
|
|
53
51
|
"jsdom": "^29.0.1",
|
|
54
52
|
"typescript": "^6.0.2",
|
|
55
53
|
"vitest": "^4.1.0",
|
|
56
54
|
"ws": "^8.18.0"
|
|
57
55
|
},
|
|
58
56
|
"peerDependencies": {
|
|
59
|
-
"openclaw": ">=
|
|
57
|
+
"openclaw": ">=2026.4.4"
|
|
60
58
|
},
|
|
61
59
|
"peerDependenciesMeta": {
|
|
62
60
|
"openclaw": {
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { build } from "esbuild";
|
|
2
|
+
import { mkdirSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
|
|
6
|
+
const isProduction = process.argv.includes("--production");
|
|
7
|
+
const rootDir = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
|
|
8
|
+
const outDir = path.join(rootDir, "dist", "web");
|
|
9
|
+
const assetsDir = path.join(outDir, "assets");
|
|
10
|
+
|
|
11
|
+
mkdirSync(assetsDir, { recursive: true });
|
|
12
|
+
|
|
13
|
+
await build({
|
|
14
|
+
entryPoints: [path.join(rootDir, "ui", "src", "main.tsx")],
|
|
15
|
+
bundle: true,
|
|
16
|
+
format: "esm",
|
|
17
|
+
platform: "browser",
|
|
18
|
+
target: ["es2022"],
|
|
19
|
+
outfile: path.join(assetsDir, "app.js"),
|
|
20
|
+
sourcemap: isProduction ? false : "inline",
|
|
21
|
+
minify: isProduction,
|
|
22
|
+
jsx: "automatic",
|
|
23
|
+
loader: {
|
|
24
|
+
".css": "css",
|
|
25
|
+
},
|
|
26
|
+
define: {
|
|
27
|
+
"process.env.NODE_ENV": JSON.stringify(isProduction ? "production" : "development"),
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
const html = `<!doctype html>
|
|
32
|
+
<html lang="zh-CN">
|
|
33
|
+
<head>
|
|
34
|
+
<meta charset="utf-8" />
|
|
35
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
36
|
+
<title>Principles Console</title>
|
|
37
|
+
<link rel="stylesheet" href="/plugins/principles/assets/app.css" />
|
|
38
|
+
</head>
|
|
39
|
+
<body>
|
|
40
|
+
<div id="root"></div>
|
|
41
|
+
<script type="module" src="/plugins/principles/assets/app.js"></script>
|
|
42
|
+
</body>
|
|
43
|
+
</html>
|
|
44
|
+
`;
|
|
45
|
+
|
|
46
|
+
writeFileSync(path.join(outDir, "index.html"), html, "utf8");
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const { execFileSync } = require('child_process');
|
|
4
|
+
const { existsSync, readFileSync } = require('fs');
|
|
5
|
+
const { join } = require('path');
|
|
6
|
+
|
|
7
|
+
const PLUGIN_DIR = join(__dirname, '..');
|
|
8
|
+
|
|
9
|
+
console.log('Setting up Principles Disciple plugin dependencies...');
|
|
10
|
+
|
|
11
|
+
const packageJsonPath = join(PLUGIN_DIR, 'package.json');
|
|
12
|
+
if (!existsSync(packageJsonPath)) {
|
|
13
|
+
console.log('Not in plugin directory, skipping dependency setup');
|
|
14
|
+
process.exit(0);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8'));
|
|
18
|
+
const dependencyNames = ['micromatch', '@sinclair/typebox', 'better-sqlite3'];
|
|
19
|
+
const DEPENDENCIES = dependencyNames.map((name) => {
|
|
20
|
+
const version = packageJson.dependencies?.[name] || packageJson.devDependencies?.[name];
|
|
21
|
+
if (!version) {
|
|
22
|
+
throw new Error(`Missing dependency version in package.json for ${name}`);
|
|
23
|
+
}
|
|
24
|
+
return `${name}@${version}`;
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
const nodeModulesDir = join(PLUGIN_DIR, 'node_modules');
|
|
28
|
+
const betterSqliteDir = join(nodeModulesDir, 'better-sqlite3');
|
|
29
|
+
if (existsSync(nodeModulesDir) && existsSync(betterSqliteDir)) {
|
|
30
|
+
console.log('Dependencies already installed');
|
|
31
|
+
process.exit(0);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
console.log('Installing plugin dependencies...');
|
|
35
|
+
try {
|
|
36
|
+
execFileSync('npm', ['install', ...DEPENDENCIES], {
|
|
37
|
+
cwd: PLUGIN_DIR,
|
|
38
|
+
stdio: 'inherit',
|
|
39
|
+
});
|
|
40
|
+
console.log('Plugin dependencies installed successfully');
|
|
41
|
+
} catch (error) {
|
|
42
|
+
console.error('Failed to install plugin dependencies:', error.message);
|
|
43
|
+
console.log('\nManual fix:');
|
|
44
|
+
console.log(' cd', PLUGIN_DIR);
|
|
45
|
+
console.log(' npm install', DEPENDENCIES.join(' '));
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|