@a-company/paradigm 3.28.0 → 3.43.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 (122) hide show
  1. package/dist/{accept-orchestration-6EM5EHXA.js → accept-orchestration-ZUWQUHSK.js} +6 -6
  2. package/dist/add-VSPZ6FM4.js +81 -0
  3. package/dist/{aggregate-M5WMUI6B.js → aggregate-SV3VGEIL.js} +2 -2
  4. package/dist/assess-UHBDYIK7.js +68 -0
  5. package/dist/{beacon-XL2ALH5O.js → beacon-3SJV4DAP.js} +2 -2
  6. package/dist/calibration-WWHK73WU.js +135 -0
  7. package/dist/{chunk-C5ZE6WEX.js → chunk-2SKXFXIT.js} +91 -1
  8. package/dist/{chunk-AK5M6KJB.js → chunk-36TKPM5Z.js} +20 -2
  9. package/dist/{chunk-W4VFKZVF.js → chunk-7COU5S2Z.js} +3 -3
  10. package/dist/{chunk-3BAMPB6I.js → chunk-7WEKMZ46.js} +2 -147
  11. package/dist/{chunk-SCC77UUP.js → chunk-AKIMFN6I.js} +3 -3
  12. package/dist/{chunk-3DYYXGDC.js → chunk-CDMAMDSG.js} +33 -0
  13. package/dist/{chunk-7IJ5JVKT.js → chunk-CZEIK3Y2.js} +913 -40
  14. package/dist/{chunk-MRENOFTR.js → chunk-EDOAWN7J.js} +6 -1
  15. package/dist/chunk-F3BCHPYT.js +143 -0
  16. package/dist/chunk-GT5QGC2H.js +253 -0
  17. package/dist/{chunk-N6RNYCZD.js → chunk-HIKKOCXY.js} +1 -1
  18. package/dist/{chunk-J26YQVAK.js → chunk-J4E6K5MG.js} +1 -1
  19. package/dist/chunk-L27I3CPZ.js +357 -0
  20. package/dist/{chunk-KWDTBXP2.js → chunk-LHLIAYQ3.js} +1 -1
  21. package/dist/{chunk-OXG5GVDJ.js → chunk-P7XSBJE3.js} +1 -1
  22. package/dist/{chunk-Z7W7HNRG.js → chunk-QDXI2DHR.js} +1 -1
  23. package/dist/{chunk-BRILIG7Z.js → chunk-QIOCFXDQ.js} +42 -0
  24. package/dist/{chunk-ZOH24ZPF.js → chunk-QWA26UNO.js} +7 -7
  25. package/dist/{lore-server-ILPHKWLK.js → chunk-RAB5IKPR.js} +77 -112
  26. package/dist/{chunk-BKMNLROM.js → chunk-RGFANZ4Q.js} +448 -147
  27. package/dist/{chunk-R2SGQ22F.js → chunk-YW5OCVKB.js} +448 -2
  28. package/dist/{chunk-6P4IFIK2.js → chunk-ZGUAAVMA.js} +53 -4
  29. package/dist/{commands-6ZVTD74M.js → commands-LEPFD7S5.js} +452 -1
  30. package/dist/config-schema-3YNIFJCJ.js +152 -0
  31. package/dist/{constellation-NXU6Q2HM.js → constellation-FAGT45TU.js} +2 -2
  32. package/dist/{context-audit-RI4R2WRH.js → context-audit-557EO6PK.js} +138 -8
  33. package/dist/{cost-CTGSLSOC.js → cost-UD3WPEKZ.js} +1 -1
  34. package/dist/{cursorrules-XBWFX66V.js → cursorrules-3TKZ4E4R.js} +2 -2
  35. package/dist/{delete-YTASL4SM.js → delete-RRK4RL6Y.js} +1 -1
  36. package/dist/{diff-AH7L4PRQ.js → diff-IP5CIARP.js} +6 -6
  37. package/dist/{dist-AG5JNIZU-HW2FWNTZ.js → dist-5QE2BB2B-X6DYVSUL.js} +59 -5
  38. package/dist/{dist-KY5HGDDL.js → dist-OGTSAZ55.js} +58 -4
  39. package/dist/{dist-IKBGY7FQ.js → dist-RVKYUCRU.js} +3 -1
  40. package/dist/{dist-7U64HDSC.js → dist-UXWV4OKX.js} +8 -2
  41. package/dist/{dist-RMAIFRTW.js → dist-Y7I3CFY5.js} +5 -3
  42. package/dist/{doctor-INBOLZC7.js → doctor-GKZJU7QG.js} +1 -1
  43. package/dist/{edit-S7NZD7H7.js → edit-4CLNN5JG.js} +1 -1
  44. package/dist/{graph-ERNQQQ7C.js → graph-YYUXI3F7.js} +1 -1
  45. package/dist/graph-server-ZPXRSGCW.js +116 -0
  46. package/dist/{habits-7BORPC2F.js → habits-O37HTUKE.js} +2 -2
  47. package/dist/index.js +207 -89
  48. package/dist/integrity-MK2OP5TA.js +194 -0
  49. package/dist/integrity-checker-J7YXRTBT.js +11 -0
  50. package/dist/{lint-53GPXKKI.js → lint-HYWGS3JJ.js} +1 -1
  51. package/dist/{list-QTFWN35D.js → list-BTLFHSRC.js} +1 -1
  52. package/dist/list-IUCYPGMK.js +57 -0
  53. package/dist/{lore-loader-S5BXMH27.js → lore-loader-VTEEZDX3.js} +3 -1
  54. package/dist/lore-server-NOOAHKJX.js +118 -0
  55. package/dist/mcp.js +2616 -112
  56. package/dist/migrate-FQVGQNXZ.js +889 -0
  57. package/dist/{migrate-assessments-FPR6C35Z.js → migrate-assessments-JP6Q5KME.js} +1 -1
  58. package/dist/{orchestrate-HMSQ2CED.js → orchestrate-A226N6FC.js} +6 -6
  59. package/dist/platform-server-KK4OCRTV.js +891 -0
  60. package/dist/{probe-SN4BNXOC.js → probe-7JK7IDNI.js} +5 -5
  61. package/dist/{providers-YW3FG6DA.js → providers-YNFSL6HK.js} +1 -1
  62. package/dist/quiz-I75NU2QQ.js +99 -0
  63. package/dist/{record-UGN75GTB.js → record-46CLR4OG.js} +11 -2
  64. package/dist/{reindex-YG3KIXAK.js → reindex-NZQRGKPN.js} +3 -2
  65. package/dist/{remember-IEBQHXHZ.js → remember-4EUZKIIB.js} +1 -1
  66. package/dist/{retag-URLJLMSK.js → retag-KC4JVRLE.js} +1 -1
  67. package/dist/{review-725ZKA7U.js → review-Q7M4CRB5.js} +1 -1
  68. package/dist/{ripple-DFMXLFWI.js → ripple-RI3LOT6R.js} +2 -2
  69. package/dist/{sentinel-FUR3QKCJ.js → sentinel-BKYTBT7M.js} +1 -1
  70. package/dist/sentinel-bridge-IZTXYS5M.js +109 -0
  71. package/dist/sentinel-ui/assets/{index-Zh1YM0C9.css → index-CJ1Wx083.css} +1 -1
  72. package/dist/sentinel-ui/assets/index-S1VJ67dT.js +62 -0
  73. package/dist/sentinel-ui/assets/index-S1VJ67dT.js.map +1 -0
  74. package/dist/sentinel-ui/index.html +2 -2
  75. package/dist/sentinel.js +6 -6
  76. package/dist/{serve-DIALBCTU.js → serve-22A4XOIG.js} +1 -1
  77. package/dist/{university-A66BMZ4Z.js → serve-2YJ6D2Y6.js} +9 -8
  78. package/dist/serve-3V2WXLGM.js +33 -0
  79. package/dist/{server-2VICPDUR.js → server-OFEJ2HJP.js} +25 -2
  80. package/dist/{server-OWBK2WFS.js → server-RDLQ3DK7.js} +49 -4
  81. package/dist/{setup-HOI52TN3.js → setup-M2ZKLKNN.js} +4 -4
  82. package/dist/{shift-DRF5M3G6.js → shift-LNMKFYLR.js} +73 -14
  83. package/dist/{show-GEVVQWWG.js → show-P7GYO43X.js} +1 -1
  84. package/dist/show-PKZMYKRN.js +82 -0
  85. package/dist/{snapshot-XHINQBZS.js → snapshot-Y3COXK4T.js} +2 -2
  86. package/dist/{spawn-DIY7T4QW.js → spawn-SSXZX45U.js} +2 -2
  87. package/dist/status-KLHALGW4.js +71 -0
  88. package/dist/{summary-NV7SBV5O.js → summary-5NQNOD3F.js} +2 -2
  89. package/dist/{sweep-5POCF2E4.js → sweep-EZU3GU6S.js} +1 -1
  90. package/dist/symphony-ROEKK7VD.js +999 -0
  91. package/dist/{team-YOGT2Q2X.js → team-HGLJXWQG.js} +7 -7
  92. package/dist/{timeline-RKXNRMKF.js → timeline-ANC7LVDL.js} +1 -1
  93. package/dist/{triage-GJ6GK647.js → triage-POXJ2TIX.js} +2 -2
  94. package/dist/university-content/courses/.purpose +7 -1
  95. package/dist/university-content/courses/para-101.json +53 -0
  96. package/dist/university-content/courses/para-501.json +166 -0
  97. package/dist/university-content/plsat/.purpose +6 -0
  98. package/dist/university-content/plsat/v3.0.json +400 -1
  99. package/dist/university-content/reference.json +48 -0
  100. package/dist/university-ui/assets/{index-TcsCEBMo.js → index-tfi5xN4Q.js} +2 -2
  101. package/dist/university-ui/assets/{index-TcsCEBMo.js.map → index-tfi5xN4Q.js.map} +1 -1
  102. package/dist/university-ui/index.html +1 -1
  103. package/dist/{upgrade-65QOQXRC.js → upgrade-ANX3LVSA.js} +1 -0
  104. package/dist/validate-GD5XWILV.js +134 -0
  105. package/dist/{validate-TKKRGJKC.js → validate-ZVPNN4FL.js} +1 -1
  106. package/dist/{workspace-L27RR5MF.js → workspace-UIUTHZTD.js} +6 -6
  107. package/package.json +4 -2
  108. package/platform-ui/dist/assets/GitSection-C-GQWHcu.css +1 -0
  109. package/platform-ui/dist/assets/GitSection-DvyJBF_-.js +4 -0
  110. package/platform-ui/dist/assets/GraphSection-BiQrXqfs.js +8 -0
  111. package/platform-ui/dist/assets/GraphSection-BlgXTl53.css +1 -0
  112. package/platform-ui/dist/assets/LoreSection-BaH1FaRb.js +1 -0
  113. package/platform-ui/dist/assets/LoreSection-C3EixkjW.css +1 -0
  114. package/platform-ui/dist/assets/SentinelSection-BI-aIYKL.css +1 -0
  115. package/platform-ui/dist/assets/SentinelSection-DemAznjI.js +1 -0
  116. package/platform-ui/dist/assets/index-CfpZFjea.css +1 -0
  117. package/platform-ui/dist/assets/index-DDKhCt-w.js +57 -0
  118. package/platform-ui/dist/index.html +14 -0
  119. package/dist/graph-server-BZ73HTAT.js +0 -251
  120. package/dist/sentinel-ui/assets/index-C_Wstm64.js +0 -62
  121. package/dist/sentinel-ui/assets/index-C_Wstm64.js.map +0 -1
  122. /package/dist/{chunk-5SXMV4SP.js → chunk-FS3WTUHY.js} +0 -0
@@ -3174,7 +3174,7 @@ async function loadParadigmConfig(projectDir) {
3174
3174
  }
3175
3175
  async function loadWithPremiseCore(projectDir) {
3176
3176
  try {
3177
- const { aggregateFromDirectory } = await import("./dist-KY5HGDDL.js");
3177
+ const { aggregateFromDirectory } = await import("./dist-OGTSAZ55.js");
3178
3178
  log.flow("load-symbols").info("Using premise-core aggregator", { path: projectDir });
3179
3179
  const result = await aggregateFromDirectory(projectDir);
3180
3180
  const counts = {};
@@ -4670,6 +4670,454 @@ function loadServerConfig(projectDir) {
4670
4670
  return config;
4671
4671
  }
4672
4672
 
4673
+ // ../sentinel/src/schema/builtin-paradigm.ts
4674
+ var PARADIGM_SCHEMA = {
4675
+ id: "paradigm-logger",
4676
+ version: "1.0.0",
4677
+ name: "Paradigm Logger",
4678
+ description: "Structured logs from @a-company/paradigm-logger with symbolic context",
4679
+ scope: {
4680
+ field: "correlationId",
4681
+ type: "string",
4682
+ label: "Correlation",
4683
+ ordering: "independent",
4684
+ sessionField: "sessionId"
4685
+ },
4686
+ eventTypes: [
4687
+ {
4688
+ type: "log:debug",
4689
+ category: "logs",
4690
+ label: "Debug Log",
4691
+ severity: "debug",
4692
+ frequency: "high",
4693
+ fields: [
4694
+ { name: "symbol", type: "string", indexed: true, display: true },
4695
+ { name: "symbolType", type: "string", indexed: true, display: true },
4696
+ { name: "message", type: "string", display: true },
4697
+ { name: "service", type: "string", indexed: true, display: true },
4698
+ { name: "durationMs", type: "number", display: true }
4699
+ ]
4700
+ },
4701
+ {
4702
+ type: "log:info",
4703
+ category: "logs",
4704
+ label: "Info Log",
4705
+ severity: "info",
4706
+ frequency: "high",
4707
+ fields: [
4708
+ { name: "symbol", type: "string", indexed: true, display: true },
4709
+ { name: "symbolType", type: "string", indexed: true, display: true },
4710
+ { name: "message", type: "string", display: true },
4711
+ { name: "service", type: "string", indexed: true, display: true },
4712
+ { name: "durationMs", type: "number", display: true }
4713
+ ]
4714
+ },
4715
+ {
4716
+ type: "log:warn",
4717
+ category: "logs",
4718
+ label: "Warning Log",
4719
+ severity: "warn",
4720
+ frequency: "medium",
4721
+ fields: [
4722
+ { name: "symbol", type: "string", indexed: true, display: true },
4723
+ { name: "symbolType", type: "string", indexed: true, display: true },
4724
+ { name: "message", type: "string", display: true },
4725
+ { name: "service", type: "string", indexed: true, display: true }
4726
+ ]
4727
+ },
4728
+ {
4729
+ type: "log:error",
4730
+ category: "logs",
4731
+ label: "Error Log",
4732
+ severity: "error",
4733
+ frequency: "low",
4734
+ fields: [
4735
+ { name: "symbol", type: "string", indexed: true, display: true },
4736
+ { name: "symbolType", type: "string", indexed: true, display: true },
4737
+ { name: "message", type: "string", display: true },
4738
+ { name: "service", type: "string", indexed: true, display: true }
4739
+ ]
4740
+ },
4741
+ {
4742
+ type: "metric:counter",
4743
+ category: "metrics",
4744
+ label: "Counter Metric",
4745
+ severity: "info",
4746
+ frequency: "high",
4747
+ fields: [
4748
+ { name: "name", type: "string", indexed: true, display: true },
4749
+ { name: "value", type: "number", display: true },
4750
+ { name: "tags", type: "object" }
4751
+ ]
4752
+ },
4753
+ {
4754
+ type: "metric:gauge",
4755
+ category: "metrics",
4756
+ label: "Gauge Metric",
4757
+ severity: "info",
4758
+ frequency: "medium",
4759
+ fields: [
4760
+ { name: "name", type: "string", indexed: true, display: true },
4761
+ { name: "value", type: "number", display: true },
4762
+ { name: "tags", type: "object" }
4763
+ ]
4764
+ },
4765
+ {
4766
+ type: "metric:histogram",
4767
+ category: "metrics",
4768
+ label: "Histogram Metric",
4769
+ severity: "info",
4770
+ frequency: "medium",
4771
+ fields: [
4772
+ { name: "name", type: "string", indexed: true, display: true },
4773
+ { name: "value", type: "number", display: true },
4774
+ { name: "tags", type: "object" }
4775
+ ]
4776
+ },
4777
+ {
4778
+ type: "trace:span",
4779
+ category: "traces",
4780
+ label: "Trace Span",
4781
+ severity: "info",
4782
+ frequency: "medium",
4783
+ fields: [
4784
+ { name: "traceId", type: "string", indexed: true, display: true },
4785
+ { name: "spanId", type: "string", indexed: true },
4786
+ { name: "operation", type: "string", display: true },
4787
+ { name: "durationMs", type: "number", display: true },
4788
+ { name: "status", type: "string", display: true }
4789
+ ]
4790
+ },
4791
+ {
4792
+ type: "incident:recorded",
4793
+ category: "incidents",
4794
+ label: "Incident Recorded",
4795
+ severity: "error",
4796
+ frequency: "low",
4797
+ fields: [
4798
+ { name: "incidentId", type: "string", indexed: true, display: true },
4799
+ { name: "errorMessage", type: "string", display: true },
4800
+ { name: "symbols", type: "object" },
4801
+ { name: "environment", type: "string", display: true }
4802
+ ]
4803
+ }
4804
+ ],
4805
+ visualization: {
4806
+ defaultView: "table",
4807
+ categoryColors: {
4808
+ logs: "#3b82f6",
4809
+ metrics: "#22c55e",
4810
+ traces: "#a855f7",
4811
+ incidents: "#ef4444"
4812
+ },
4813
+ summaryFields: ["symbol", "message", "service"],
4814
+ defaultExcluded: ["log:debug"]
4815
+ },
4816
+ tags: ["builtin", "paradigm"]
4817
+ };
4818
+
4819
+ // ../sentinel/src/schema/builtin-symphony.ts
4820
+ var SYMPHONY_SCHEMA = {
4821
+ id: "paradigm-symphony",
4822
+ version: "1.0.0",
4823
+ name: "Symphony Conversations",
4824
+ description: "Agent-to-agent messaging events from The Score protocol",
4825
+ scope: {
4826
+ field: "threadId",
4827
+ type: "string",
4828
+ label: "Thread",
4829
+ ordering: "independent",
4830
+ sessionField: "sessionId"
4831
+ },
4832
+ eventTypes: [
4833
+ // ── Dialogue (5) ──────────────────────────────────────
4834
+ {
4835
+ type: "note:question",
4836
+ category: "dialogue",
4837
+ label: "Question",
4838
+ severity: "info",
4839
+ frequency: "high",
4840
+ fields: [
4841
+ { name: "sender", type: "string", indexed: true, display: true },
4842
+ { name: "senderRole", type: "string", indexed: true, display: true },
4843
+ { name: "text", type: "string", display: true },
4844
+ { name: "symbols", type: "object" },
4845
+ { name: "parentId", type: "string", indexed: true }
4846
+ ]
4847
+ },
4848
+ {
4849
+ type: "note:context",
4850
+ category: "dialogue",
4851
+ label: "Context",
4852
+ severity: "info",
4853
+ frequency: "high",
4854
+ fields: [
4855
+ { name: "sender", type: "string", indexed: true, display: true },
4856
+ { name: "senderRole", type: "string", indexed: true, display: true },
4857
+ { name: "text", type: "string", display: true },
4858
+ { name: "symbols", type: "object" },
4859
+ { name: "parentId", type: "string", indexed: true }
4860
+ ]
4861
+ },
4862
+ {
4863
+ type: "note:clarification",
4864
+ category: "dialogue",
4865
+ label: "Clarification",
4866
+ severity: "info",
4867
+ frequency: "medium",
4868
+ fields: [
4869
+ { name: "sender", type: "string", indexed: true, display: true },
4870
+ { name: "senderRole", type: "string", indexed: true, display: true },
4871
+ { name: "text", type: "string", display: true },
4872
+ { name: "symbols", type: "object" },
4873
+ { name: "parentId", type: "string", indexed: true }
4874
+ ]
4875
+ },
4876
+ {
4877
+ type: "note:verification",
4878
+ category: "dialogue",
4879
+ label: "Verification",
4880
+ severity: "info",
4881
+ frequency: "medium",
4882
+ fields: [
4883
+ { name: "sender", type: "string", indexed: true, display: true },
4884
+ { name: "senderRole", type: "string", indexed: true, display: true },
4885
+ { name: "text", type: "string", display: true },
4886
+ { name: "symbols", type: "object" },
4887
+ { name: "parentId", type: "string", indexed: true }
4888
+ ]
4889
+ },
4890
+ {
4891
+ type: "note:reference",
4892
+ category: "dialogue",
4893
+ label: "Reference",
4894
+ severity: "info",
4895
+ frequency: "medium",
4896
+ fields: [
4897
+ { name: "sender", type: "string", indexed: true, display: true },
4898
+ { name: "senderRole", type: "string", indexed: true, display: true },
4899
+ { name: "text", type: "string", display: true },
4900
+ { name: "symbols", type: "object" },
4901
+ { name: "parentId", type: "string", indexed: true }
4902
+ ]
4903
+ },
4904
+ // ── Action (2) ────────────────────────────────────────
4905
+ {
4906
+ type: "note:proposal",
4907
+ category: "action",
4908
+ label: "Proposal",
4909
+ severity: "info",
4910
+ frequency: "medium",
4911
+ fields: [
4912
+ { name: "sender", type: "string", indexed: true, display: true },
4913
+ { name: "senderRole", type: "string", indexed: true, display: true },
4914
+ { name: "text", type: "string", display: true },
4915
+ { name: "diff", type: "string" },
4916
+ { name: "symbols", type: "object" },
4917
+ { name: "parentId", type: "string", indexed: true }
4918
+ ]
4919
+ },
4920
+ {
4921
+ type: "note:action",
4922
+ category: "action",
4923
+ label: "Action",
4924
+ severity: "info",
4925
+ frequency: "medium",
4926
+ fields: [
4927
+ { name: "sender", type: "string", indexed: true, display: true },
4928
+ { name: "senderRole", type: "string", indexed: true, display: true },
4929
+ { name: "text", type: "string", display: true },
4930
+ { name: "diff", type: "string" },
4931
+ { name: "symbols", type: "object" },
4932
+ { name: "parentId", type: "string", indexed: true }
4933
+ ]
4934
+ },
4935
+ // ── Outcome (3) ───────────────────────────────────────
4936
+ {
4937
+ type: "note:decision",
4938
+ category: "outcome",
4939
+ label: "Decision",
4940
+ severity: "warn",
4941
+ frequency: "low",
4942
+ fields: [
4943
+ { name: "sender", type: "string", indexed: true, display: true },
4944
+ { name: "senderRole", type: "string", indexed: true, display: true },
4945
+ { name: "text", type: "string", display: true },
4946
+ { name: "decision", type: "string", display: true },
4947
+ { name: "symbols", type: "object" },
4948
+ { name: "parentId", type: "string", indexed: true }
4949
+ ]
4950
+ },
4951
+ {
4952
+ type: "note:approval",
4953
+ category: "outcome",
4954
+ label: "Approval",
4955
+ severity: "info",
4956
+ frequency: "low",
4957
+ fields: [
4958
+ { name: "sender", type: "string", indexed: true, display: true },
4959
+ { name: "senderRole", type: "string", indexed: true, display: true },
4960
+ { name: "text", type: "string", display: true },
4961
+ { name: "parentId", type: "string", indexed: true }
4962
+ ]
4963
+ },
4964
+ {
4965
+ type: "note:rejection",
4966
+ category: "outcome",
4967
+ label: "Rejection",
4968
+ severity: "warn",
4969
+ frequency: "low",
4970
+ fields: [
4971
+ { name: "sender", type: "string", indexed: true, display: true },
4972
+ { name: "senderRole", type: "string", indexed: true, display: true },
4973
+ { name: "text", type: "string", display: true },
4974
+ { name: "parentId", type: "string", indexed: true }
4975
+ ]
4976
+ },
4977
+ // ── System (1) ────────────────────────────────────────
4978
+ {
4979
+ type: "note:alert",
4980
+ category: "system",
4981
+ label: "Alert",
4982
+ severity: "error",
4983
+ frequency: "low",
4984
+ fields: [
4985
+ { name: "sender", type: "string", indexed: true, display: true },
4986
+ { name: "senderRole", type: "string", indexed: true, display: true },
4987
+ { name: "text", type: "string", display: true },
4988
+ { name: "symbols", type: "object" },
4989
+ { name: "parentId", type: "string", indexed: true }
4990
+ ]
4991
+ },
4992
+ // ── Lifecycle (4) ─────────────────────────────────────
4993
+ {
4994
+ type: "note:handoff",
4995
+ category: "lifecycle",
4996
+ label: "Handoff",
4997
+ severity: "info",
4998
+ frequency: "low",
4999
+ fields: [
5000
+ { name: "sender", type: "string", indexed: true, display: true },
5001
+ { name: "senderRole", type: "string", indexed: true, display: true },
5002
+ { name: "text", type: "string", display: true },
5003
+ { name: "parentId", type: "string", indexed: true }
5004
+ ]
5005
+ },
5006
+ {
5007
+ type: "thread:created",
5008
+ category: "lifecycle",
5009
+ label: "Thread Created",
5010
+ severity: "info",
5011
+ frequency: "low",
5012
+ fields: [
5013
+ { name: "topic", type: "string", display: true },
5014
+ { name: "initiator", type: "string", indexed: true, display: true }
5015
+ ]
5016
+ },
5017
+ {
5018
+ type: "thread:resolved",
5019
+ category: "lifecycle",
5020
+ label: "Thread Resolved",
5021
+ severity: "info",
5022
+ frequency: "low",
5023
+ fields: [
5024
+ { name: "topic", type: "string", display: true },
5025
+ { name: "decision", type: "string", display: true }
5026
+ ]
5027
+ },
5028
+ {
5029
+ type: "participant:joined",
5030
+ category: "lifecycle",
5031
+ label: "Participant Joined",
5032
+ severity: "info",
5033
+ frequency: "low",
5034
+ fields: [
5035
+ { name: "participantId", type: "string", indexed: true, display: true },
5036
+ { name: "participantName", type: "string", display: true },
5037
+ { name: "participantRole", type: "string", display: true }
5038
+ ]
5039
+ },
5040
+ {
5041
+ type: "participant:left",
5042
+ category: "lifecycle",
5043
+ label: "Participant Left",
5044
+ severity: "info",
5045
+ frequency: "low",
5046
+ fields: [
5047
+ { name: "participantId", type: "string", indexed: true, display: true },
5048
+ { name: "participantName", type: "string", display: true }
5049
+ ]
5050
+ },
5051
+ // ── Transfer (4) ──────────────────────────────────────
5052
+ {
5053
+ type: "file:requested",
5054
+ category: "transfer",
5055
+ label: "File Requested",
5056
+ severity: "info",
5057
+ frequency: "low",
5058
+ fields: [
5059
+ { name: "requestId", type: "string", indexed: true, display: true },
5060
+ { name: "filePath", type: "string", display: true },
5061
+ { name: "requester", type: "string", indexed: true, display: true },
5062
+ { name: "reason", type: "string", display: true },
5063
+ { name: "urgency", type: "string", display: true }
5064
+ ]
5065
+ },
5066
+ {
5067
+ type: "file:approved",
5068
+ category: "transfer",
5069
+ label: "File Approved",
5070
+ severity: "info",
5071
+ frequency: "low",
5072
+ fields: [
5073
+ { name: "requestId", type: "string", indexed: true, display: true },
5074
+ { name: "filePath", type: "string", display: true },
5075
+ { name: "size", type: "number", display: true },
5076
+ { name: "hash", type: "string" }
5077
+ ]
5078
+ },
5079
+ {
5080
+ type: "file:denied",
5081
+ category: "transfer",
5082
+ label: "File Denied",
5083
+ severity: "warn",
5084
+ frequency: "low",
5085
+ fields: [
5086
+ { name: "requestId", type: "string", indexed: true, display: true },
5087
+ { name: "filePath", type: "string", display: true },
5088
+ { name: "reason", type: "string", display: true }
5089
+ ]
5090
+ },
5091
+ {
5092
+ type: "file:delivered",
5093
+ category: "transfer",
5094
+ label: "File Delivered",
5095
+ severity: "info",
5096
+ frequency: "low",
5097
+ fields: [
5098
+ { name: "requestId", type: "string", indexed: true, display: true },
5099
+ { name: "filePath", type: "string", display: true },
5100
+ { name: "size", type: "number", display: true },
5101
+ { name: "hash", type: "string" }
5102
+ ]
5103
+ }
5104
+ ],
5105
+ visualization: {
5106
+ defaultView: "tree",
5107
+ categoryColors: {
5108
+ dialogue: "#7dd3fc",
5109
+ action: "#86efac",
5110
+ outcome: "#fbbf24",
5111
+ system: "#f87171",
5112
+ lifecycle: "#a78bfa",
5113
+ transfer: "#34d399"
5114
+ },
5115
+ summaryFields: ["sender", "text", "senderRole"],
5116
+ defaultExcluded: []
5117
+ },
5118
+ tags: ["builtin", "symphony"]
5119
+ };
5120
+
4673
5121
  // ../sentinel/src/server/index.ts
4674
5122
  var __filename2 = fileURLToPath2(import.meta.url);
4675
5123
  var __dirname2 = path6.dirname(__filename2);
@@ -4776,6 +5224,9 @@ async function startServer(options) {
4776
5224
  }
4777
5225
  const storage = new SentinelStorage(options.dbPath);
4778
5226
  await storage.ensureReady();
5227
+ storage.registerSchema(PARADIGM_SCHEMA);
5228
+ storage.registerSchema(SYMPHONY_SCHEMA);
5229
+ log3.component("sentinel-server").info("Registered builtin schemas", { schemas: "paradigm-logger, paradigm-symphony" });
4779
5230
  let symbolIndex = [];
4780
5231
  try {
4781
5232
  symbolIndex = await loadSymbolIndex(options.projectDir);
@@ -0,0 +1,152 @@
1
+ #!/usr/bin/env node
2
+ import "./chunk-ZXMDA7VB.js";
3
+
4
+ // src/core/config-schema.ts
5
+ import { z } from "zod";
6
+ import * as yaml from "js-yaml";
7
+ var disciplineEnum = z.enum([
8
+ "web",
9
+ "backend",
10
+ "fullstack",
11
+ "api",
12
+ "cli",
13
+ "ml",
14
+ "mobile",
15
+ "game",
16
+ "embedded",
17
+ "devops",
18
+ "data",
19
+ "library",
20
+ "monorepo",
21
+ "custom"
22
+ ]);
23
+ var agentProviderEnum = z.enum([
24
+ "auto",
25
+ "claude",
26
+ "claude-code",
27
+ "cursor-cli",
28
+ "claude-cli",
29
+ "manual"
30
+ ]);
31
+ var symbolDefinitionSchema = z.object({
32
+ name: z.string(),
33
+ description: z.string(),
34
+ examples: z.array(z.string()).optional()
35
+ }).passthrough();
36
+ var tagBankSchema = z.object({
37
+ file: z.string().optional(),
38
+ "core-tags": z.array(z.string()).optional(),
39
+ "allow-suggestions": z.boolean().optional()
40
+ }).passthrough();
41
+ var agentGuidelinesSchema = z.object({
42
+ overview: z.string().optional(),
43
+ "how-to-use": z.array(z.string()).optional(),
44
+ "update-rules": z.array(z.string()).optional()
45
+ }).passthrough();
46
+ var loggingSchema = z.object({
47
+ enforce: z.boolean().optional(),
48
+ "default-level": z.enum(["debug", "info", "warn", "error"]).optional(),
49
+ "symbol-mapping": z.record(z.string(), z.string()).optional()
50
+ }).passthrough();
51
+ var purposeRequiredEntry = z.object({
52
+ pattern: z.string(),
53
+ depth: z.number().optional()
54
+ });
55
+ var limitsSchema = z.object({
56
+ toolCacheTtlMs: z.number().optional()
57
+ }).passthrough();
58
+ var aiAgentSchema = z.object({
59
+ model: z.string().optional(),
60
+ "context-window": z.number().optional()
61
+ }).passthrough();
62
+ var contextSchema = z.object({
63
+ enabled: z.boolean().optional(),
64
+ "index-file": z.string().optional(),
65
+ "docs-path": z.string().optional()
66
+ }).passthrough();
67
+ var probeSchema = z.object({
68
+ enabled: z.boolean().optional(),
69
+ "auto-include": z.boolean().optional()
70
+ }).passthrough();
71
+ var paradigmConfigSchema = z.object({
72
+ version: z.string(),
73
+ project: z.string(),
74
+ discipline: disciplineEnum.optional(),
75
+ "agent-provider": agentProviderEnum.optional(),
76
+ "agent-guidelines": agentGuidelinesSchema.optional(),
77
+ "symbol-system": z.record(z.string(), symbolDefinitionSchema).optional(),
78
+ "tag-bank": tagBankSchema.optional(),
79
+ component_types: z.record(z.string(), z.string()).optional(),
80
+ logging: loggingSchema.optional(),
81
+ "purpose-required": z.array(purposeRequiredEntry).optional(),
82
+ conventions: z.array(z.string()).optional(),
83
+ workspace: z.string().optional(),
84
+ limits: limitsSchema.optional(),
85
+ "ai-agent": aiAgentSchema.optional(),
86
+ context: contextSchema.optional(),
87
+ probe: probeSchema.optional(),
88
+ states: z.record(z.string(), z.unknown()).optional(),
89
+ "custom-symbols": z.record(z.string(), symbolDefinitionSchema).optional()
90
+ }).passthrough();
91
+ var KNOWN_TOP_LEVEL_KEYS = /* @__PURE__ */ new Set([
92
+ "version",
93
+ "project",
94
+ "discipline",
95
+ "agent-provider",
96
+ "agent-guidelines",
97
+ "symbol-system",
98
+ "tag-bank",
99
+ "component_types",
100
+ "logging",
101
+ "purpose-required",
102
+ "conventions",
103
+ "workspace",
104
+ "limits",
105
+ "ai-agent",
106
+ "context",
107
+ "probe",
108
+ "states",
109
+ "custom-symbols"
110
+ ]);
111
+ function validateConfig(content) {
112
+ const warnings = [];
113
+ const errors = [];
114
+ let parsed;
115
+ try {
116
+ parsed = yaml.load(content);
117
+ } catch (e) {
118
+ return {
119
+ valid: false,
120
+ warnings: [],
121
+ errors: [`YAML parse error: ${e.message}`]
122
+ };
123
+ }
124
+ if (!parsed || typeof parsed !== "object") {
125
+ return {
126
+ valid: false,
127
+ warnings: [],
128
+ errors: ["Config must be a YAML object"]
129
+ };
130
+ }
131
+ for (const key of Object.keys(parsed)) {
132
+ if (!KNOWN_TOP_LEVEL_KEYS.has(key)) {
133
+ warnings.push(`Unrecognized config key: "${key}"`);
134
+ }
135
+ }
136
+ const result = paradigmConfigSchema.safeParse(parsed);
137
+ if (!result.success) {
138
+ for (const issue of result.error.issues) {
139
+ const path = issue.path.join(".");
140
+ errors.push(`${path}: ${issue.message}`);
141
+ }
142
+ }
143
+ return {
144
+ valid: errors.length === 0,
145
+ warnings,
146
+ errors
147
+ };
148
+ }
149
+ export {
150
+ paradigmConfigSchema,
151
+ validateConfig
152
+ };
@@ -5,8 +5,8 @@ import {
5
5
  getAllSymbols,
6
6
  getSymbolCounts,
7
7
  getSymbolsByType
8
- } from "./chunk-6P4IFIK2.js";
9
- import "./chunk-MRENOFTR.js";
8
+ } from "./chunk-ZGUAAVMA.js";
9
+ import "./chunk-EDOAWN7J.js";
10
10
  import "./chunk-IRKUEJVW.js";
11
11
  import {
12
12
  log