@cotrrackpro-dev/sdk 0.1.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 (233) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/LICENSE +21 -0
  3. package/README.md +111 -0
  4. package/dist/assistant/compliance.d.ts +24 -0
  5. package/dist/assistant/compliance.js +60 -0
  6. package/dist/assistant/compliance.js.map +1 -0
  7. package/dist/assistant/crisis.d.ts +31 -0
  8. package/dist/assistant/crisis.js +62 -0
  9. package/dist/assistant/crisis.js.map +1 -0
  10. package/dist/assistant/index.d.ts +15 -0
  11. package/dist/assistant/index.js +16 -0
  12. package/dist/assistant/index.js.map +1 -0
  13. package/dist/assistant/levels.d.ts +43 -0
  14. package/dist/assistant/levels.js +102 -0
  15. package/dist/assistant/levels.js.map +1 -0
  16. package/dist/assistant/prompt.d.ts +20 -0
  17. package/dist/assistant/prompt.js +96 -0
  18. package/dist/assistant/prompt.js.map +1 -0
  19. package/dist/assistant/rbac.d.ts +45 -0
  20. package/dist/assistant/rbac.js +75 -0
  21. package/dist/assistant/rbac.js.map +1 -0
  22. package/dist/assistant/readability.d.ts +28 -0
  23. package/dist/assistant/readability.js +70 -0
  24. package/dist/assistant/readability.js.map +1 -0
  25. package/dist/auth/broker.d.ts +32 -0
  26. package/dist/auth/broker.js +48 -0
  27. package/dist/auth/broker.js.map +1 -0
  28. package/dist/auth/deviceFlow.d.ts +26 -0
  29. package/dist/auth/deviceFlow.js +65 -0
  30. package/dist/auth/deviceFlow.js.map +1 -0
  31. package/dist/auth/provider.d.ts +32 -0
  32. package/dist/auth/provider.js +29 -0
  33. package/dist/auth/provider.js.map +1 -0
  34. package/dist/community/badges.d.ts +19 -0
  35. package/dist/community/badges.js +19 -0
  36. package/dist/community/badges.js.map +1 -0
  37. package/dist/community/events.d.ts +30 -0
  38. package/dist/community/events.js +31 -0
  39. package/dist/community/events.js.map +1 -0
  40. package/dist/community/identity.d.ts +28 -0
  41. package/dist/community/identity.js +2 -0
  42. package/dist/community/identity.js.map +1 -0
  43. package/dist/community/index.d.ts +7 -0
  44. package/dist/community/index.js +8 -0
  45. package/dist/community/index.js.map +1 -0
  46. package/dist/community/org.d.ts +46 -0
  47. package/dist/community/org.js +32 -0
  48. package/dist/community/org.js.map +1 -0
  49. package/dist/community/tiers.d.ts +8 -0
  50. package/dist/community/tiers.js +40 -0
  51. package/dist/community/tiers.js.map +1 -0
  52. package/dist/community/types.d.ts +26 -0
  53. package/dist/community/types.js +2 -0
  54. package/dist/community/types.js.map +1 -0
  55. package/dist/core/config.d.ts +22 -0
  56. package/dist/core/config.js +27 -0
  57. package/dist/core/config.js.map +1 -0
  58. package/dist/core/errors.d.ts +29 -0
  59. package/dist/core/errors.js +20 -0
  60. package/dist/core/errors.js.map +1 -0
  61. package/dist/core/transport.d.ts +45 -0
  62. package/dist/core/transport.js +109 -0
  63. package/dist/core/transport.js.map +1 -0
  64. package/dist/diagram/core.d.ts +11 -0
  65. package/dist/diagram/core.js +12 -0
  66. package/dist/diagram/core.js.map +1 -0
  67. package/dist/diagram/extract.d.ts +17 -0
  68. package/dist/diagram/extract.js +213 -0
  69. package/dist/diagram/extract.js.map +1 -0
  70. package/dist/diagram/index.d.ts +2 -0
  71. package/dist/diagram/index.js +3 -0
  72. package/dist/diagram/index.js.map +1 -0
  73. package/dist/diagram/mermaid.d.ts +10 -0
  74. package/dist/diagram/mermaid.js +50 -0
  75. package/dist/diagram/mermaid.js.map +1 -0
  76. package/dist/diagram/prompt.d.ts +4 -0
  77. package/dist/diagram/prompt.js +16 -0
  78. package/dist/diagram/prompt.js.map +1 -0
  79. package/dist/diagram/types.d.ts +33 -0
  80. package/dist/diagram/types.js +2 -0
  81. package/dist/diagram/types.js.map +1 -0
  82. package/dist/diagram/validate.d.ts +13 -0
  83. package/dist/diagram/validate.js +48 -0
  84. package/dist/diagram/validate.js.map +1 -0
  85. package/dist/guide/compose.d.ts +10 -0
  86. package/dist/guide/compose.js +31 -0
  87. package/dist/guide/compose.js.map +1 -0
  88. package/dist/guide/core.d.ts +10 -0
  89. package/dist/guide/core.js +11 -0
  90. package/dist/guide/core.js.map +1 -0
  91. package/dist/guide/index.d.ts +2 -0
  92. package/dist/guide/index.js +3 -0
  93. package/dist/guide/index.js.map +1 -0
  94. package/dist/guide/prompt.d.ts +8 -0
  95. package/dist/guide/prompt.js +20 -0
  96. package/dist/guide/prompt.js.map +1 -0
  97. package/dist/guide/render.d.ts +9 -0
  98. package/dist/guide/render.js +180 -0
  99. package/dist/guide/render.js.map +1 -0
  100. package/dist/guide/types.d.ts +67 -0
  101. package/dist/guide/types.js +2 -0
  102. package/dist/guide/types.js.map +1 -0
  103. package/dist/index.d.ts +18 -0
  104. package/dist/index.js +19 -0
  105. package/dist/index.js.map +1 -0
  106. package/dist/mcp/artifacts.generated.d.ts +19 -0
  107. package/dist/mcp/artifacts.generated.js +140 -0
  108. package/dist/mcp/artifacts.generated.js.map +1 -0
  109. package/dist/mcp/format.d.ts +10 -0
  110. package/dist/mcp/format.js +17 -0
  111. package/dist/mcp/format.js.map +1 -0
  112. package/dist/mcp/index.d.ts +12 -0
  113. package/dist/mcp/index.js +18 -0
  114. package/dist/mcp/index.js.map +1 -0
  115. package/dist/mcp/knowledge.generated.d.ts +11 -0
  116. package/dist/mcp/knowledge.generated.js +12 -0
  117. package/dist/mcp/knowledge.generated.js.map +1 -0
  118. package/dist/mcp/prompt-modules.generated.d.ts +12 -0
  119. package/dist/mcp/prompt-modules.generated.js +19 -0
  120. package/dist/mcp/prompt-modules.generated.js.map +1 -0
  121. package/dist/mcp/roles.generated.d.ts +15 -0
  122. package/dist/mcp/roles.generated.js +25 -0
  123. package/dist/mcp/roles.generated.js.map +1 -0
  124. package/dist/mcp/safety.d.ts +35 -0
  125. package/dist/mcp/safety.js +76 -0
  126. package/dist/mcp/safety.js.map +1 -0
  127. package/dist/mcp/scenarios.generated.d.ts +13 -0
  128. package/dist/mcp/scenarios.generated.js +16 -0
  129. package/dist/mcp/scenarios.generated.js.map +1 -0
  130. package/dist/mcp/search.d.ts +13 -0
  131. package/dist/mcp/search.js +33 -0
  132. package/dist/mcp/search.js.map +1 -0
  133. package/dist/mcp/skills.generated.d.ts +17 -0
  134. package/dist/mcp/skills.generated.js +40 -0
  135. package/dist/mcp/skills.generated.js.map +1 -0
  136. package/dist/mcp/toolset.d.ts +31 -0
  137. package/dist/mcp/toolset.js +54 -0
  138. package/dist/mcp/toolset.js.map +1 -0
  139. package/dist/mcp/types.d.ts +96 -0
  140. package/dist/mcp/types.js +9 -0
  141. package/dist/mcp/types.js.map +1 -0
  142. package/dist/mcp/workflows.generated.d.ts +17 -0
  143. package/dist/mcp/workflows.generated.js +12 -0
  144. package/dist/mcp/workflows.generated.js.map +1 -0
  145. package/dist/nocode/core.d.ts +12 -0
  146. package/dist/nocode/core.js +13 -0
  147. package/dist/nocode/core.js.map +1 -0
  148. package/dist/nocode/examples.d.ts +28 -0
  149. package/dist/nocode/examples.js +218 -0
  150. package/dist/nocode/examples.js.map +1 -0
  151. package/dist/nocode/index.d.ts +2 -0
  152. package/dist/nocode/index.js +3 -0
  153. package/dist/nocode/index.js.map +1 -0
  154. package/dist/nocode/mermaid.d.ts +9 -0
  155. package/dist/nocode/mermaid.js +33 -0
  156. package/dist/nocode/mermaid.js.map +1 -0
  157. package/dist/nocode/prompt.d.ts +8 -0
  158. package/dist/nocode/prompt.js +46 -0
  159. package/dist/nocode/prompt.js.map +1 -0
  160. package/dist/nocode/runtime.d.ts +28 -0
  161. package/dist/nocode/runtime.js +113 -0
  162. package/dist/nocode/runtime.js.map +1 -0
  163. package/dist/nocode/simpleOps.d.ts +16 -0
  164. package/dist/nocode/simpleOps.js +137 -0
  165. package/dist/nocode/simpleOps.js.map +1 -0
  166. package/dist/nocode/types.d.ts +72 -0
  167. package/dist/nocode/types.js +12 -0
  168. package/dist/nocode/types.js.map +1 -0
  169. package/dist/nocode/validate.d.ts +17 -0
  170. package/dist/nocode/validate.js +136 -0
  171. package/dist/nocode/validate.js.map +1 -0
  172. package/dist/params/codegen.d.ts +8 -0
  173. package/dist/params/codegen.js +12 -0
  174. package/dist/params/codegen.js.map +1 -0
  175. package/dist/params/convert.d.ts +7 -0
  176. package/dist/params/convert.js +123 -0
  177. package/dist/params/convert.js.map +1 -0
  178. package/dist/params/core.d.ts +11 -0
  179. package/dist/params/core.js +12 -0
  180. package/dist/params/core.js.map +1 -0
  181. package/dist/params/fieldTypes.d.ts +26 -0
  182. package/dist/params/fieldTypes.js +29 -0
  183. package/dist/params/fieldTypes.js.map +1 -0
  184. package/dist/params/index.d.ts +3 -0
  185. package/dist/params/index.js +4 -0
  186. package/dist/params/index.js.map +1 -0
  187. package/dist/params/prompt.d.ts +4 -0
  188. package/dist/params/prompt.js +16 -0
  189. package/dist/params/prompt.js.map +1 -0
  190. package/dist/params/render.d.ts +5 -0
  191. package/dist/params/render.js +25 -0
  192. package/dist/params/render.js.map +1 -0
  193. package/dist/params/types.d.ts +76 -0
  194. package/dist/params/types.js +16 -0
  195. package/dist/params/types.js.map +1 -0
  196. package/dist/params/validate.d.ts +5 -0
  197. package/dist/params/validate.js +104 -0
  198. package/dist/params/validate.js.map +1 -0
  199. package/dist/resources/client.d.ts +58 -0
  200. package/dist/resources/client.js +79 -0
  201. package/dist/resources/client.js.map +1 -0
  202. package/dist/resources/types.d.ts +72 -0
  203. package/dist/resources/types.js +9 -0
  204. package/dist/resources/types.js.map +1 -0
  205. package/dist/workflow/assets.d.ts +8 -0
  206. package/dist/workflow/assets.js +16 -0
  207. package/dist/workflow/assets.js.map +1 -0
  208. package/dist/workflow/commands.d.ts +10 -0
  209. package/dist/workflow/commands.js +21 -0
  210. package/dist/workflow/commands.js.map +1 -0
  211. package/dist/workflow/core.d.ts +15 -0
  212. package/dist/workflow/core.js +16 -0
  213. package/dist/workflow/core.js.map +1 -0
  214. package/dist/workflow/index.d.ts +2 -0
  215. package/dist/workflow/index.js +3 -0
  216. package/dist/workflow/index.js.map +1 -0
  217. package/dist/workflow/stack.d.ts +11 -0
  218. package/dist/workflow/stack.js +40 -0
  219. package/dist/workflow/stack.js.map +1 -0
  220. package/dist/workflow/templates.d.ts +17 -0
  221. package/dist/workflow/templates.js +223 -0
  222. package/dist/workflow/templates.js.map +1 -0
  223. package/dist/workflow/types.d.ts +27 -0
  224. package/dist/workflow/types.js +2 -0
  225. package/dist/workflow/types.js.map +1 -0
  226. package/package.json +77 -0
  227. package/schemas/artifacts.index.json +1211 -0
  228. package/schemas/knowledge.index.json +49 -0
  229. package/schemas/prompt-modules.index.json +105 -0
  230. package/schemas/roles.index.json +431 -0
  231. package/schemas/scenarios.index.json +15 -0
  232. package/schemas/skills.index.json +670 -0
  233. package/schemas/workflows.index.json +462 -0
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Human-readable formatting over the typed catalog — shared by the CLI, the
3
+ * guide engine, and the site generator so a workflow's step graph reads the same
4
+ * everywhere.
5
+ */
6
+ import type { WorkflowStep } from "./types.js";
7
+ /** One playbook line describing a workflow step (from the real step graph). */
8
+ export declare function describeWorkflowStep(s: WorkflowStep): string;
9
+ /** The full playbook walkthrough for a workflow's step list. */
10
+ export declare function workflowWalkthrough(steps: readonly WorkflowStep[]): string[];
@@ -0,0 +1,17 @@
1
+ /** One playbook line describing a workflow step (from the real step graph). */
2
+ export function describeWorkflowStep(s) {
3
+ if (s.action === "call_skill" && s.skill) {
4
+ const who = s.roles.length ? ` (as ${s.roles.join(" / ")})` : "";
5
+ const out = s.output ? ` → ${s.output}` : "";
6
+ return `${s.id} — run skill \`${s.skill}\`${who}${out}`;
7
+ }
8
+ if (s.action === "branch") {
9
+ return `${s.id} — branch on ${s.condition ?? "condition"} (yes → ${s.trueNext ?? "?"}, no → ${s.falseNext ?? "?"})`;
10
+ }
11
+ return `${s.id} — ${s.action.replace(/_/g, " ")}`;
12
+ }
13
+ /** The full playbook walkthrough for a workflow's step list. */
14
+ export function workflowWalkthrough(steps) {
15
+ return steps.map(describeWorkflowStep);
16
+ }
17
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/mcp/format.ts"],"names":[],"mappings":"AAOA,+EAA+E;AAC/E,MAAM,UAAU,oBAAoB,CAAC,CAAe;IAClD,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,OAAO,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,KAAK,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC;IAC1D,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,SAAS,IAAI,WAAW,WAAW,CAAC,CAAC,QAAQ,IAAI,GAAG,UAAU,CAAC,CAAC,SAAS,IAAI,GAAG,GAAG,CAAC;IACtH,CAAC;IACD,OAAO,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,mBAAmB,CAAC,KAA8B;IAChE,OAAO,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,12 @@
1
+ export * from "./types.js";
2
+ export * from "./toolset.js";
3
+ export * from "./search.js";
4
+ export { ARTIFACTS, ARTIFACT_NAMES, type ArtifactName, type ArtifactMeta } from "./artifacts.generated.js";
5
+ export * from "./roles.generated.js";
6
+ export * from "./workflows.generated.js";
7
+ export * from "./skills.generated.js";
8
+ export * from "./knowledge.generated.js";
9
+ export * from "./scenarios.generated.js";
10
+ export * from "./prompt-modules.generated.js";
11
+ export * from "./safety.js";
12
+ export * from "./format.js";
@@ -0,0 +1,18 @@
1
+ export * from "./types.js";
2
+ export * from "./toolset.js";
3
+ export * from "./search.js";
4
+ // `DataSensitivity` is the canonical export from ./types.js; re-export the rest
5
+ // of the generated artifacts module explicitly to avoid a name clash.
6
+ export { ARTIFACTS, ARTIFACT_NAMES } from "./artifacts.generated.js";
7
+ // The other generated registries have no name clashes — export them wholesale.
8
+ export * from "./roles.generated.js";
9
+ export * from "./workflows.generated.js";
10
+ export * from "./skills.generated.js";
11
+ export * from "./knowledge.generated.js";
12
+ export * from "./scenarios.generated.js";
13
+ export * from "./prompt-modules.generated.js";
14
+ // The child-centered / trauma-informed taxonomy over the above registries.
15
+ export * from "./safety.js";
16
+ // Human-readable formatting over the typed catalog (shared by CLI + site).
17
+ export * from "./format.js";
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,gFAAgF;AAChF,sEAAsE;AACtE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAwC,MAAM,0BAA0B,CAAC;AAC3G,+EAA+E;AAC/E,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,2EAA2E;AAC3E,cAAc,aAAa,CAAC;AAC5B,2EAA2E;AAC3E,cAAc,aAAa,CAAC"}
@@ -0,0 +1,11 @@
1
+ /** Every knowledge id the platform exposes (5 total). */
2
+ export type KnowledgeName = "coercive-control-framework" | "coparenting-best-practices" | "de-escalation-guide" | "documentation-integrity" | "trauma-informed-principles";
3
+ export interface KnowledgeMeta {
4
+ name: KnowledgeName;
5
+ title: string;
6
+ summary: string;
7
+ relatedModules: string[];
8
+ }
9
+ /** Typed registry of all knowledge, keyed by name. */
10
+ export declare const KNOWLEDGE: Record<KnowledgeName, KnowledgeMeta>;
11
+ export declare const KNOWLEDGE_NAMES: KnowledgeName[];
@@ -0,0 +1,12 @@
1
+ // AUTO-GENERATED by sdk/scripts/gen-registries.ts — do not edit by hand.
2
+ // Source: CoTrackPro catalog snapshot. Re-run `npm run codegen` to refresh.
3
+ /** Typed registry of all knowledge, keyed by name. */
4
+ export const KNOWLEDGE = {
5
+ "coercive-control-framework": { name: "coercive-control-framework", title: "Coercive Control Framework", summary: "The Asymmetry Principle for identifying coercive control patterns. Isolation, financial control, surveillance, system weaponization, and DARVO patterns. Documentation approaches that capture patterns without labeling. Evidence-based research on coercive control in family court co", relatedModules: ["coercive-control-awareness", "safety-language"] },
6
+ "coparenting-best-practices": { name: "coparenting-best-practices", title: "Coparenting Best Practices", summary: "Best practices for co-parenting communication, documentation, and conflict resolution. Child-centered approach to parallel parenting. BIFF method for messaging. Documentation rhythm recommendations. Exchange protocol guidelines.", relatedModules: ["parent-support", "emotional-deescalation"] },
7
+ "de-escalation-guide": { name: "de-escalation-guide", title: "De Escalation Guide", summary: "De-escalation techniques for co-parent communication. The BIFF method (Brief, Informative, Friendly, Firm). Boundary-setting language. Response decision trees. When to respond vs. when to document and not respond. Emotional regulation before documenting.", relatedModules: ["emotional-deescalation"] },
8
+ "documentation-integrity": { name: "documentation-integrity", title: "Documentation Integrity", summary: "Standards for evidence-quality documentation. Timestamp integrity. Chain of custody. Source attribution. Neutrality requirements. Evidence preservation. Gap documentation. Pattern documentation. Court credibility factors.", relatedModules: ["neutral-documentation", "evidence-integrity"] },
9
+ "trauma-informed-principles": { name: "trauma-informed-principles", title: "Trauma Informed Principles", summary: "Core principles of trauma-informed care applied to documentation and technology. Understanding trauma responses. Avoiding re-traumatization. Pacing and safety. Secondary trauma for professionals. Grounding techniques.", relatedModules: ["trauma-informed-response"] },
10
+ };
11
+ export const KNOWLEDGE_NAMES = Object.keys(KNOWLEDGE);
12
+ //# sourceMappingURL=knowledge.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.generated.js","sourceRoot":"","sources":["../../src/mcp/knowledge.generated.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,4EAA4E;AAiB5E,sDAAsD;AACtD,MAAM,CAAC,MAAM,SAAS,GAAyC;IAC7D,4BAA4B,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,4BAA4B,EAAE,OAAO,EAAE,0RAA0R,EAAE,cAAc,EAAE,CAAC,4BAA4B,EAAC,iBAAiB,CAAC,EAAE;IAChd,4BAA4B,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,4BAA4B,EAAE,OAAO,EAAE,sOAAsO,EAAE,cAAc,EAAE,CAAC,gBAAgB,EAAC,wBAAwB,CAAC,EAAE;IACvZ,qBAAqB,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,gQAAgQ,EAAE,cAAc,EAAE,CAAC,wBAAwB,CAAC,EAAE;IAC3Y,yBAAyB,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,yBAAyB,EAAE,OAAO,EAAE,+NAA+N,EAAE,cAAc,EAAE,CAAC,uBAAuB,EAAC,oBAAoB,CAAC,EAAE;IAC1Y,4BAA4B,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,4BAA4B,EAAE,OAAO,EAAE,2NAA2N,EAAE,cAAc,EAAE,CAAC,0BAA0B,CAAC,EAAE;CAC9X,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAoB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAoB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /** Every modules id the platform exposes (12 total). */
2
+ export type PromptModuleName = "child-centered-language" | "coercive-control-awareness" | "community-support" | "educational-tone" | "emotional-deescalation" | "evidence-integrity" | "legal-neutrality" | "neutral-documentation" | "parent-support" | "safety-language" | "therapeutic-neutrality" | "trauma-informed-response";
3
+ export interface PromptModuleMeta {
4
+ name: PromptModuleName;
5
+ category: string;
6
+ injectionPoint: string;
7
+ version: string;
8
+ knowledgeRefs: string[];
9
+ }
10
+ /** Typed registry of all modules, keyed by name. */
11
+ export declare const PROMPT_MODULES: Record<PromptModuleName, PromptModuleMeta>;
12
+ export declare const PROMPT_MODULE_NAMES: PromptModuleName[];
@@ -0,0 +1,19 @@
1
+ // AUTO-GENERATED by sdk/scripts/gen-registries.ts — do not edit by hand.
2
+ // Source: CoTrackPro catalog snapshot. Re-run `npm run codegen` to refresh.
3
+ /** Typed registry of all modules, keyed by name. */
4
+ export const PROMPT_MODULES = {
5
+ "child-centered-language": { name: "child-centered-language", category: "safety", injectionPoint: "guardrails", version: "1.0", knowledgeRefs: [] },
6
+ "coercive-control-awareness": { name: "coercive-control-awareness", category: "safety", injectionPoint: "guardrails", version: "1.0", knowledgeRefs: ["coercive-control-framework"] },
7
+ "community-support": { name: "community-support", category: "community", injectionPoint: "pre_prompt", version: "1.0", knowledgeRefs: [] },
8
+ "educational-tone": { name: "educational-tone", category: "educational", injectionPoint: "pre_prompt", version: "1.0", knowledgeRefs: [] },
9
+ "emotional-deescalation": { name: "emotional-deescalation", category: "communication", injectionPoint: "pre_prompt", version: "1.0", knowledgeRefs: ["coparenting-best-practices", "de-escalation-guide"] },
10
+ "evidence-integrity": { name: "evidence-integrity", category: "documentation", injectionPoint: "guardrails", version: "1.0", knowledgeRefs: ["documentation-integrity"] },
11
+ "legal-neutrality": { name: "legal-neutrality", category: "legal", injectionPoint: "guardrails", version: "1.0", knowledgeRefs: [] },
12
+ "neutral-documentation": { name: "neutral-documentation", category: "documentation", injectionPoint: "guardrails", version: "1.0", knowledgeRefs: ["documentation-integrity"] },
13
+ "parent-support": { name: "parent-support", category: "communication", injectionPoint: "pre_prompt", version: "1.0", knowledgeRefs: ["coparenting-best-practices"] },
14
+ "safety-language": { name: "safety-language", category: "safety", injectionPoint: "guardrails", version: "1.0", knowledgeRefs: ["coercive-control-framework"] },
15
+ "therapeutic-neutrality": { name: "therapeutic-neutrality", category: "clinical", injectionPoint: "guardrails", version: "1.0", knowledgeRefs: [] },
16
+ "trauma-informed-response": { name: "trauma-informed-response", category: "safety", injectionPoint: "guardrails", version: "1.0", knowledgeRefs: ["trauma-informed-principles"] },
17
+ };
18
+ export const PROMPT_MODULE_NAMES = Object.keys(PROMPT_MODULES);
19
+ //# sourceMappingURL=prompt-modules.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-modules.generated.js","sourceRoot":"","sources":["../../src/mcp/prompt-modules.generated.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,4EAA4E;AAyB5E,oDAAoD;AACpD,MAAM,CAAC,MAAM,cAAc,GAA+C;IACxE,yBAAyB,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE;IACnJ,4BAA4B,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,4BAA4B,CAAC,EAAE;IACrL,mBAAmB,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE;IAC1I,kBAAkB,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE;IAC1I,wBAAwB,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,4BAA4B,EAAC,qBAAqB,CAAC,EAAE;IAC1M,oBAAoB,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,yBAAyB,CAAC,EAAE;IACzK,kBAAkB,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE;IACpI,uBAAuB,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,yBAAyB,CAAC,EAAE;IAC/K,gBAAgB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,4BAA4B,CAAC,EAAE;IACpK,iBAAiB,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,4BAA4B,CAAC,EAAE;IAC/J,wBAAwB,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE;IACnJ,0BAA0B,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,4BAA4B,CAAC,EAAE;CAClL,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAuB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAuB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { SafetyLevel, DataSensitivity } from "./types.js";
2
+ /** Every roles id the platform exposes (18 total). */
3
+ export type RoleId = "cotrackpro-advocate" | "cotrackpro-attorney" | "cotrackpro-bailiff" | "cotrackpro-clerk" | "cotrackpro-coach" | "cotrackpro-evaluator" | "cotrackpro-gal" | "cotrackpro-judge" | "cotrackpro-mediator" | "cotrackpro-parent-alienation-support" | "cotrackpro-parent-coparent" | "cotrackpro-parent-high-conflict-strategy" | "cotrackpro-parent-pro-se" | "cotrackpro-parent-survivor-safety" | "cotrackpro-parenting-coordinator" | "cotrackpro-police" | "cotrackpro-roles-router" | "cotrackpro-supervisor";
4
+ export interface RoleMeta {
5
+ id: RoleId;
6
+ airtableRoleNames: string[];
7
+ composes: string[];
8
+ promptModules: string[];
9
+ chainsWith: string[];
10
+ safetyLevel: SafetyLevel;
11
+ dataSensitivity: DataSensitivity | "internal";
12
+ }
13
+ /** Typed registry of all roles, keyed by id. */
14
+ export declare const ROLES: Record<RoleId, RoleMeta>;
15
+ export declare const ROLE_IDS: RoleId[];
@@ -0,0 +1,25 @@
1
+ // AUTO-GENERATED by sdk/scripts/gen-registries.ts — do not edit by hand.
2
+ // Source: CoTrackPro catalog snapshot. Re-run `npm run codegen` to refresh.
3
+ /** Typed registry of all roles, keyed by id. */
4
+ export const ROLES = {
5
+ "cotrackpro-advocate": { id: "cotrackpro-advocate", airtableRoleNames: ["Advocate", "Domestic Violence Advocate", "Victim Services Coordinator", "Youth Advocate", "Disability Rights Advocate"], composes: ["child-centered-rewrite", "safety-review", "incident-documentation"], promptModules: ["child-centered-language", "emotional-deescalation", "evidence-integrity", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], safetyLevel: "elevated", dataSensitivity: "confidential" },
6
+ "cotrackpro-attorney": { id: "cotrackpro-attorney", airtableRoleNames: ["Family Law Attorney", "Legal Aid Attorney", "Paralegal", "Family Law Paralegal"], composes: ["evidence-organization", "timeline-builder", "legal-document-formatter", "omni-build"], promptModules: ["child-centered-language", "evidence-integrity", "legal-neutrality", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], safetyLevel: "elevated", dataSensitivity: "confidential" },
7
+ "cotrackpro-bailiff": { id: "cotrackpro-bailiff", airtableRoleNames: ["Court Security Officer", "Security Officer", "Court Reporter"], composes: ["safety-review", "incident-documentation"], promptModules: ["child-centered-language", "emotional-deescalation", "evidence-integrity", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], safetyLevel: "elevated", dataSensitivity: "sensitive" },
8
+ "cotrackpro-clerk": { id: "cotrackpro-clerk", airtableRoleNames: ["Court Clerk", "Court Administrator", "Court Case Manager", "Court Liaison", "Court Services Officer", "Court Interpreter"], composes: ["legal-document-formatter", "omni-build"], promptModules: ["child-centered-language", "evidence-integrity", "legal-neutrality", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], safetyLevel: "elevated", dataSensitivity: "sensitive" },
9
+ "cotrackpro-coach": { id: "cotrackpro-coach", airtableRoleNames: ["Peer Support Specialist", "Family Support Worker", "Family Support Coordinator", "Family Engagement Specialist"], composes: ["child-centered-rewrite", "communication-tone-analysis"], promptModules: ["child-centered-language", "emotional-deescalation", "neutral-documentation", "trauma-informed-response"], chainsWith: [], safetyLevel: "elevated", dataSensitivity: "sensitive" },
10
+ "cotrackpro-evaluator": { id: "cotrackpro-evaluator", airtableRoleNames: ["Evaluator", "Clinical Psychologist", "Therapist", "Child Therapist"], composes: ["emotional-pattern-analysis", "incident-documentation", "safety-review"], promptModules: ["child-centered-language", "emotional-deescalation", "evidence-integrity", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], safetyLevel: "elevated", dataSensitivity: "confidential" },
11
+ "cotrackpro-gal": { id: "cotrackpro-gal", airtableRoleNames: ["GAL (Guardian ad Litem)", "Court-Appointed Special Advocate", "CASA Volunteer", "Child Advocate", "Child Advocate Attorney"], composes: ["safety-review", "child-centered-rewrite", "emotional-pattern-analysis"], promptModules: ["child-centered-language", "emotional-deescalation", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], safetyLevel: "elevated", dataSensitivity: "confidential" },
12
+ "cotrackpro-judge": { id: "cotrackpro-judge", airtableRoleNames: ["Judge", "Family Court Judge", "Domestic Relations Judge", "Juvenile Court Judge", "Probate Judge"], composes: ["safety-review", "legal-document-formatter", "omni-build"], promptModules: ["child-centered-language", "emotional-deescalation", "evidence-integrity", "legal-neutrality", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], safetyLevel: "elevated", dataSensitivity: "confidential" },
13
+ "cotrackpro-mediator": { id: "cotrackpro-mediator", airtableRoleNames: ["Mediator", "Family Mediator", "Community Mediator", "Restorative Justice Facilitator", "Restorative Justice Coordinator"], composes: ["child-centered-rewrite", "safety-review", "communication-tone-analysis"], promptModules: ["child-centered-language", "emotional-deescalation", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], safetyLevel: "elevated", dataSensitivity: "confidential" },
14
+ "cotrackpro-parent-alienation-support": { id: "cotrackpro-parent-alienation-support", airtableRoleNames: ["Parent", "Guardian"], composes: ["child-centered-rewrite", "incident-documentation", "safety-review", "emotional-pattern-analysis"], promptModules: ["child-centered-language", "emotional-deescalation", "evidence-integrity", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], safetyLevel: "elevated", dataSensitivity: "confidential" },
15
+ "cotrackpro-parent-coparent": { id: "cotrackpro-parent-coparent", airtableRoleNames: ["Parent", "Guardian"], composes: ["child-centered-rewrite", "incident-documentation", "safety-review"], promptModules: ["child-centered-language", "emotional-deescalation", "evidence-integrity", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], safetyLevel: "elevated", dataSensitivity: "confidential" },
16
+ "cotrackpro-parent-high-conflict-strategy": { id: "cotrackpro-parent-high-conflict-strategy", airtableRoleNames: ["Parent", "Guardian"], composes: ["child-centered-rewrite", "safety-review", "communication-tone-analysis"], promptModules: ["child-centered-language", "emotional-deescalation", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], safetyLevel: "elevated", dataSensitivity: "confidential" },
17
+ "cotrackpro-parent-pro-se": { id: "cotrackpro-parent-pro-se", airtableRoleNames: ["Parent", "Guardian"], composes: ["timeline-builder", "evidence-organization", "legal-document-formatter", "omni-build"], promptModules: ["child-centered-language", "evidence-integrity", "legal-neutrality", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], safetyLevel: "elevated", dataSensitivity: "confidential" },
18
+ "cotrackpro-parent-survivor-safety": { id: "cotrackpro-parent-survivor-safety", airtableRoleNames: ["Parent", "Guardian"], composes: ["safety-review", "incident-documentation", "evidence-organization"], promptModules: ["child-centered-language", "emotional-deescalation", "evidence-integrity", "legal-neutrality", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], safetyLevel: "elevated", dataSensitivity: "confidential" },
19
+ "cotrackpro-parenting-coordinator": { id: "cotrackpro-parenting-coordinator", airtableRoleNames: ["Parenting Coordinator"], composes: ["child-centered-rewrite", "incident-documentation", "communication-tone-analysis"], promptModules: ["child-centered-language", "emotional-deescalation", "evidence-integrity", "neutral-documentation", "trauma-informed-response"], chainsWith: [], safetyLevel: "elevated", dataSensitivity: "confidential" },
20
+ "cotrackpro-police": { id: "cotrackpro-police", airtableRoleNames: ["Police Officer", "School Resource Officer", "Probation Officer", "Juvenile Probation Officer"], composes: ["safety-review", "incident-documentation"], promptModules: ["child-centered-language", "emotional-deescalation", "evidence-integrity", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], safetyLevel: "elevated", dataSensitivity: "confidential" },
21
+ "cotrackpro-roles-router": { id: "cotrackpro-roles-router", airtableRoleNames: [], composes: ["omni-build"], promptModules: ["child-centered-language", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], safetyLevel: "elevated", dataSensitivity: "internal" },
22
+ "cotrackpro-supervisor": { id: "cotrackpro-supervisor", airtableRoleNames: ["Foster Care Caseworker", "Child Welfare Supervisor", "Case Management Supervisor"], composes: ["omni-build", "incident-documentation"], promptModules: ["child-centered-language", "evidence-integrity", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], safetyLevel: "elevated", dataSensitivity: "sensitive" },
23
+ };
24
+ export const ROLE_IDS = Object.keys(ROLES);
25
+ //# sourceMappingURL=roles.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roles.generated.js","sourceRoot":"","sources":["../../src/mcp/roles.generated.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * The child-centered / trauma-informed taxonomy, derived from the guardrail
3
+ * prompt modules each role and skill binds. This is the cross-cutting lens the
4
+ * platform is organized around — surfaced here as data-only helpers so the CLI,
5
+ * the site, and any consumer can ask "is this child-centered / trauma-informed?"
6
+ * without re-deriving it from raw string arrays.
7
+ */
8
+ import { type RoleId } from "./roles.generated.js";
9
+ import { type SkillName } from "./skills.generated.js";
10
+ import { type WorkflowId } from "./workflows.generated.js";
11
+ /** The two non-negotiable lenses every parenting/child-welfare surface inherits. */
12
+ export type GuardrailTag = "child-centered" | "trauma-informed";
13
+ /** Prompt modules that mark a surface as child-centered. */
14
+ export declare const CHILD_CENTERED_MODULES: readonly string[];
15
+ /** Prompt modules that mark a surface as trauma-informed (calm, non-re-traumatizing). */
16
+ export declare const TRAUMA_INFORMED_MODULES: readonly string[];
17
+ export declare function isChildCentered(promptModules: readonly string[]): boolean;
18
+ export declare function isTraumaInformed(promptModules: readonly string[]): boolean;
19
+ /** The guardrail tags present in a prompt-module list, in stable order. */
20
+ export declare function safetyTagsFor(promptModules: readonly string[]): GuardrailTag[];
21
+ /** Role ids whose guardrail stack carries the given tag. */
22
+ export declare function roleIdsWithTag(tag: GuardrailTag): RoleId[];
23
+ /** Skill names whose guardrail stack carries the given tag. */
24
+ export declare function skillNamesWithTag(tag: GuardrailTag): SkillName[];
25
+ /** The guardrail prompt modules a workflow inherits from the skills its steps call. */
26
+ export declare function guardrailModulesForWorkflow(id: WorkflowId): string[];
27
+ /**
28
+ * The shared knowledge files backing a set of guardrail prompt modules — the
29
+ * source material an author should read before relying on those guardrails.
30
+ */
31
+ export declare function knowledgeForModules(promptModules: readonly string[]): {
32
+ name: string;
33
+ title: string;
34
+ summary: string;
35
+ }[];
@@ -0,0 +1,76 @@
1
+ /**
2
+ * The child-centered / trauma-informed taxonomy, derived from the guardrail
3
+ * prompt modules each role and skill binds. This is the cross-cutting lens the
4
+ * platform is organized around — surfaced here as data-only helpers so the CLI,
5
+ * the site, and any consumer can ask "is this child-centered / trauma-informed?"
6
+ * without re-deriving it from raw string arrays.
7
+ */
8
+ import { ROLES } from "./roles.generated.js";
9
+ import { SKILLS } from "./skills.generated.js";
10
+ import { WORKFLOWS } from "./workflows.generated.js";
11
+ import { KNOWLEDGE } from "./knowledge.generated.js";
12
+ import { PROMPT_MODULES } from "./prompt-modules.generated.js";
13
+ /** Prompt modules that mark a surface as child-centered. */
14
+ export const CHILD_CENTERED_MODULES = ["child-centered-language"];
15
+ /** Prompt modules that mark a surface as trauma-informed (calm, non-re-traumatizing). */
16
+ export const TRAUMA_INFORMED_MODULES = [
17
+ "trauma-informed-response",
18
+ "emotional-deescalation",
19
+ "safety-language",
20
+ "coercive-control-awareness",
21
+ "therapeutic-neutrality",
22
+ ];
23
+ export function isChildCentered(promptModules) {
24
+ return promptModules.some((m) => CHILD_CENTERED_MODULES.includes(m));
25
+ }
26
+ export function isTraumaInformed(promptModules) {
27
+ return promptModules.some((m) => TRAUMA_INFORMED_MODULES.includes(m));
28
+ }
29
+ /** The guardrail tags present in a prompt-module list, in stable order. */
30
+ export function safetyTagsFor(promptModules) {
31
+ const tags = [];
32
+ if (isChildCentered(promptModules))
33
+ tags.push("child-centered");
34
+ if (isTraumaInformed(promptModules))
35
+ tags.push("trauma-informed");
36
+ return tags;
37
+ }
38
+ /** Role ids whose guardrail stack carries the given tag. */
39
+ export function roleIdsWithTag(tag) {
40
+ return Object.keys(ROLES).filter((id) => safetyTagsFor(ROLES[id].promptModules).includes(tag));
41
+ }
42
+ /** Skill names whose guardrail stack carries the given tag. */
43
+ export function skillNamesWithTag(tag) {
44
+ return Object.keys(SKILLS).filter((name) => safetyTagsFor(SKILLS[name].promptModules).includes(tag));
45
+ }
46
+ /** The guardrail prompt modules a workflow inherits from the skills its steps call. */
47
+ export function guardrailModulesForWorkflow(id) {
48
+ const mods = new Set();
49
+ for (const step of WORKFLOWS[id].steps) {
50
+ if (!step.skill)
51
+ continue;
52
+ const skill = SKILLS[step.skill];
53
+ if (skill)
54
+ for (const m of skill.promptModules)
55
+ mods.add(m);
56
+ }
57
+ return [...mods];
58
+ }
59
+ /**
60
+ * The shared knowledge files backing a set of guardrail prompt modules — the
61
+ * source material an author should read before relying on those guardrails.
62
+ */
63
+ export function knowledgeForModules(promptModules) {
64
+ const names = new Set();
65
+ for (const m of promptModules) {
66
+ const meta = PROMPT_MODULES[m];
67
+ if (meta)
68
+ for (const k of meta.knowledgeRefs)
69
+ names.add(k);
70
+ }
71
+ return [...names].sort().map((n) => {
72
+ const k = KNOWLEDGE[n];
73
+ return { name: n, title: k?.title ?? n, summary: k?.summary ?? "" };
74
+ });
75
+ }
76
+ //# sourceMappingURL=safety.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safety.js","sourceRoot":"","sources":["../../src/mcp/safety.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /** Every scenarios id the platform exposes (9 total). */
2
+ export type ScenarioName = "child-support-modification" | "custody-handoff-dispute" | "first-court-hearing" | "holiday-schedule-negotiation" | "mediation-prep" | "professional-intake" | "protective-order-prep" | "relocation-petition" | "school-incident";
3
+ export interface ScenarioMeta {
4
+ name: ScenarioName;
5
+ title: string;
6
+ audience: string;
7
+ goal: string;
8
+ stepCount: number;
9
+ steps: string[];
10
+ }
11
+ /** Typed registry of all scenarios, keyed by name. */
12
+ export declare const SCENARIOS: Record<ScenarioName, ScenarioMeta>;
13
+ export declare const SCENARIO_NAMES: ScenarioName[];
@@ -0,0 +1,16 @@
1
+ // AUTO-GENERATED by sdk/scripts/gen-registries.ts — do not edit by hand.
2
+ // Source: CoTrackPro catalog snapshot. Re-run `npm run codegen` to refresh.
3
+ /** Typed registry of all scenarios, keyed by name. */
4
+ export const SCENARIOS = {
5
+ "child-support-modification": { name: "child-support-modification", title: "Modify an existing child-support order", audience: "personal", goal: "Walk through what a modification motion typically requires — proof of the changed circumstance, current financials, the proposed new amount — and produce a starter packet.", stepCount: 5, steps: ["get_started — Surfaces state-specific child-support calculators + the procedural rules for filing a modification motion (most states use a 'substantial change in circumstances' standard).", "search_artifacts — Find the artifact schemas that fit a support modification — affidavit-of-financial-information, motion-to-modify, current-expenses-statement.", "draft_artifact — The affidavit is the heart of the motion — it explains WHY the existing order should change. Neutral language matters; this is read by a judge.", "list_skills — Find functional skills (e.g., court-readiness review) to self-review the affidavit before filing.", "find_tool_for — Surfaces legal-aid links. Most state child-support agencies (Title IV-D offices) will modify an order for free if you meet the threshold; an attorney isn't always required."] },
6
+ "custody-handoff-dispute": { name: "custody-handoff-dispute", title: "Document a dispute at a custody handoff", audience: "personal", goal: "Capture the handoff in a structured way, draft a calmer message to the other parent if needed, and surface safety resources if the dispute crossed into hostility.", stepCount: 3, steps: ["draft_artifact — Generates an exchange-log entry tailored to custody handoffs — contemporaneous and neutral.", "rewrite_coparent_message — If you need to address it in writing, get STANDARD + FIRM rewrites so the message lowers temperature instead of raising it.", "get_started — If the handoff involved threats, intimidation, or violence, route to crisis resources BEFORE further documentation."] },
7
+ "first-court-hearing": { name: "first-court-hearing", title: "Prepare for your first court hearing", audience: "personal", goal: "Walk out with a clear sense of what kinds of artifacts come up, a court-readiness checklist for the most likely ones, and state-specific links to the court self-help portal.", stepCount: 5, steps: ["get_started — Sets the chat register and surfaces state-specific legal-aid + court self-help links.", "search_artifacts — Find the court-facing artifacts that fit your hearing type.", "get_artifact_schema — Pull the schema + before_filing_checklist for one specific artifact so you know what's required.", "draft_artifact — Generate a first draft from your own words. The tool pseudonymizes the child and uses neutral language.", "list_skills — Find functional skills (e.g., court-readiness review) for self-review before filing."] },
8
+ "holiday-schedule-negotiation": { name: "holiday-schedule-negotiation", title: "Negotiate a holiday parenting-time schedule", audience: "personal", goal: "Walk into the conversation with a concrete proposal, a calmer way to communicate it, and a sense of what 'typical' holiday schedules look like so you have a defensible baseline.", stepCount: 4, steps: ["get_example_case — Read the mediated parenting-plan v3 — the holiday section is one of the most worked-through parts of the example. Use it as a structural reference.", "draft_artifact — Generate a parenting-plan section focused on holidays — specific alternation patterns, transportation responsibility, religious / cultural observances.", "rewrite_coparent_message — Before sending the proposal, run it through the rewriter. Holiday negotiations are emotionally loaded; the calmer-rewrite removes implicit demands and preserves your position.", "draft_artifact — If the negotiation breaks down and you end up in mediation or court, the communication-log is your evidence of good-faith engagement."] },
9
+ "mediation-prep": { name: "mediation-prep", title: "Prepare for a co-parenting mediation session", audience: "personal", goal: "Walk into mediation with a parenting-plan draft, a sense of the priority issues, and links to mediation directories if you still need to find a mediator.", stepCount: 3, steps: ["draft_artifact — Generates a parenting-plan-draft from your situation. Mediators expect parents to come with positions — this gives you a starting point.", "get_artifact_schema — Review the parenting-plan schema's fields so you know what topics the mediator will likely surface (holidays, schools, medical, communication).", "find_tool_for — Surfaces cotrackpro://links/mediation (Mediate.com, ACR, AFCC) if you don't have a mediator yet."] },
10
+ "professional-intake": { name: "professional-intake", title: "Intake a new family-law client (Professional)", audience: "practice", goal: "Produce a starter intake packet — case documentation, parenting-plan draft (if applicable), and an empty incident-log structure — in one bulk call.", stepCount: 3, steps: ["get_started — Sets the chat register for practice work and surfaces dashboard + pricing links.", "bulk_draft_artifacts — Drafts 3 starter artifacts in one call. One item failing doesn't fail the batch.", "list_skills — Browse review rubrics (court-readiness, custody-evaluator) to apply to the drafted artifacts."] },
11
+ "protective-order-prep": { name: "protective-order-prep", title: "Prepare to petition for a protective / restraining order", audience: "personal", goal: "Stabilize on safety resources first, then walk through what a protective-order petition typically contains and produce a starter incident timeline + safety plan.", stepCount: 5, steps: ["get_started — Surfaces NDVH (1-800-799-7233), 988, and Childhelp BEFORE any documentation tool. If you're in immediate danger, those come first.", "find_example_for — Routes to the worked example case (morgan-protective) so you can see what a finished safety-risk packet looks like before drafting your own.", "draft_artifact — Generates a safety-plan artifact with crisis-language guardrails. Safety planning comes BEFORE filing, not after.", "draft_artifact — Produces a structured incident log. Most protective-order petitions are decided on the strength of contemporaneous documentation; a clean log helps an attorney or pro-se filer build the petition.", "find_tool_for — Surfaces cotrackpro://links/legal-aid + state-specific court-self-help links. Most states have free legal-aid clinics that take protective-order cases."] },
12
+ "relocation-petition": { name: "relocation-petition", title: "Petition the court to relocate with the children", audience: "personal", goal: "Walk through the documentation a relocation petition typically requires — the reason for the move, the revised parenting plan, the impact analysis — and produce a starter packet.", stepCount: 5, steps: ["find_example_for — Routes to sam-relocation — the worked example case that walks a cross-state modification end-to-end (Missouri → Kansas, with the renegotiated parenting plan and the communication log of the negotiation).", "get_example_case — Read the full worked case before drafting your own. The negotiation language is the high-value piece — it shows how to propose a move without antagonizing the other parent.", "draft_artifact — Generate a revised parenting plan that explicitly addresses how the other parent's time gets preserved (or made up) despite the distance.", "draft_artifact — Courts heavily weight whether the moving parent gave reasonable notice and engaged in good-faith negotiation. The communication log is the evidence.", "find_tool_for — Relocation cases interact with the UCCJEA (Uniform Child Custody Jurisdiction and Enforcement Act) — surfaces legal-aid links + state-bar referral."] },
13
+ "school-incident": { name: "school-incident", title: "Document a school incident involving your child", audience: "personal", goal: "Capture the incident in a structured, court-readable artifact and, if appropriate, draft a clear school-communication message.", stepCount: 3, steps: ["draft_artifact — Generates an incident-log entry with the right schema fields filled. Child is pseudonymized automatically.", "get_artifact_schema — Pull the schema for a school-communication artifact if you want to record outreach you sent to the school.", "rewrite_coparent_message — If you need to communicate about this incident, get a calmer rewrite before you send."] },
14
+ };
15
+ export const SCENARIO_NAMES = Object.keys(SCENARIOS);
16
+ //# sourceMappingURL=scenarios.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scenarios.generated.js","sourceRoot":"","sources":["../../src/mcp/scenarios.generated.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,4EAA4E;AAuB5E,sDAAsD;AACtD,MAAM,CAAC,MAAM,SAAS,GAAuC;IAC3D,4BAA4B,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,wCAAwC,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,6KAA6K,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,6LAA6L,EAAC,kKAAkK,EAAC,kKAAkK,EAAC,iHAAiH,EAAC,8LAA8L,CAAC,EAAE;IAC7oC,yBAAyB,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,yCAAyC,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,oKAAoK,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,8GAA8G,EAAC,wJAAwJ,EAAC,mIAAmI,CAAC,EAAE;IACttB,qBAAqB,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,sCAAsC,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,+KAA+K,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,qGAAqG,EAAC,gFAAgF,EAAC,wHAAwH,EAAC,0HAA0H,EAAC,oGAAoG,CAAC,EAAE;IAC11B,8BAA8B,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,KAAK,EAAE,6CAA6C,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,mLAAmL,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,wKAAwK,EAAC,0KAA0K,EAAC,4MAA4M,EAAC,wJAAwJ,CAAC,EAAE;IACjiC,gBAAgB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,8CAA8C,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,2JAA2J,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,2JAA2J,EAAC,uKAAuK,EAAC,kHAAkH,CAAC,EAAE;IAC3uB,qBAAqB,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,+CAA+C,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,qJAAqJ,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,gGAAgG,EAAC,yGAAyG,EAAC,6GAA6G,CAAC,EAAE;IAClnB,uBAAuB,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,0DAA0D,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,mKAAmK,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,kJAAkJ,EAAC,iKAAiK,EAAC,oIAAoI,EAAC,sNAAsN,EAAC,yKAAyK,CAAC,EAAE;IACjpC,qBAAqB,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,kDAAkD,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,oLAAoL,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,gOAAgO,EAAC,iMAAiM,EAAC,4JAA4J,EAAC,uKAAuK,EAAC,qKAAqK,CAAC,EAAE;IACzuC,iBAAiB,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,iDAAiD,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,gIAAgI,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,6HAA6H,EAAC,kIAAkI,EAAC,kHAAkH,CAAC,EAAE;CACnpB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAmB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAmB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { type ArtifactMeta } from "./artifacts.generated.js";
2
+ export interface ArtifactSearchHit extends ArtifactMeta {
3
+ /** Higher is a better match (0–100). */
4
+ score: number;
5
+ matchedOn: "name" | "title";
6
+ }
7
+ /**
8
+ * Dependency-free fuzzy search over the offline artifact registry — no network,
9
+ * no auth. Reusable by the CLI and by agents (e.g. Antigravity) that have the
10
+ * SDK but not a live MCP connection. Mirrors the spirit of the MCP server's
11
+ * `search_artifacts` (matched_on + score) without calling it.
12
+ */
13
+ export declare function searchArtifactsLocal(query: string, max?: number): ArtifactSearchHit[];
@@ -0,0 +1,33 @@
1
+ import { ARTIFACTS, ARTIFACT_NAMES } from "./artifacts.generated.js";
2
+ /**
3
+ * Dependency-free fuzzy search over the offline artifact registry — no network,
4
+ * no auth. Reusable by the CLI and by agents (e.g. Antigravity) that have the
5
+ * SDK but not a live MCP connection. Mirrors the spirit of the MCP server's
6
+ * `search_artifacts` (matched_on + score) without calling it.
7
+ */
8
+ export function searchArtifactsLocal(query, max = 5) {
9
+ const q = query.trim().toLowerCase();
10
+ if (!q)
11
+ return [];
12
+ const hits = [];
13
+ for (const name of ARTIFACT_NAMES) {
14
+ const a = ARTIFACTS[name];
15
+ const nameL = a.name.toLowerCase();
16
+ const titleL = a.title.toLowerCase();
17
+ let score = 0;
18
+ let matchedOn = "name";
19
+ if (nameL === q)
20
+ score = 100;
21
+ else if (nameL.includes(q))
22
+ score = 60;
23
+ const titleScore = titleL === q ? 90 : titleL.includes(q) ? 50 : 0;
24
+ if (titleScore > score) {
25
+ score = titleScore;
26
+ matchedOn = "title";
27
+ }
28
+ if (score > 0)
29
+ hits.push({ ...a, score, matchedOn });
30
+ }
31
+ return hits.sort((x, y) => y.score - x.score || x.name.localeCompare(y.name)).slice(0, max);
32
+ }
33
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/mcp/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAqB,MAAM,0BAA0B,CAAC;AAQxF;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAa,EAAE,GAAG,GAAG,CAAC;IACzD,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAClB,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAErC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,SAAS,GAAqB,MAAM,CAAC;QACzC,IAAI,KAAK,KAAK,CAAC;YAAE,KAAK,GAAG,GAAG,CAAC;aACxB,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,KAAK,GAAG,EAAE,CAAC;QAEvC,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,UAAU,GAAG,KAAK,EAAE,CAAC;YACvB,KAAK,GAAG,UAAU,CAAC;YACnB,SAAS,GAAG,OAAO,CAAC;QACtB,CAAC;QAED,IAAI,KAAK,GAAG,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9F,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { SafetyLevel, DataSensitivity } from "./types.js";
2
+ /** Every skills id the platform exposes (33 total). */
3
+ export type SkillName = "ai-provenance-integrity" | "child-centered-rewrite" | "communication-tone-analysis" | "cotrackpro-advocate" | "cotrackpro-attorney" | "cotrackpro-bailiff" | "cotrackpro-clerk" | "cotrackpro-coach" | "cotrackpro-evaluator" | "cotrackpro-gal" | "cotrackpro-judge" | "cotrackpro-mediator" | "cotrackpro-parent-alienation-support" | "cotrackpro-parent-coparent" | "cotrackpro-parent-high-conflict-strategy" | "cotrackpro-parent-pro-se" | "cotrackpro-parent-survivor-safety" | "cotrackpro-parenting-coordinator" | "cotrackpro-police" | "cotrackpro-roles-router" | "cotrackpro-supervisor" | "documentation-coaching" | "emotional-pattern-analysis" | "escalation-analysis" | "evidence-organization" | "incident-documentation" | "legal-document-formatter" | "linkedin-authority-builder" | "omni-build" | "podcast-metadata-generator" | "safety-review" | "timeline-builder" | "webinar-funnel-builder";
4
+ export interface SkillMeta {
5
+ name: SkillName;
6
+ version: string;
7
+ description: string;
8
+ kind: "functional" | "role";
9
+ dataSensitivity: DataSensitivity | "internal";
10
+ safetyLevel: SafetyLevel;
11
+ promptModules: string[];
12
+ chainsWith: string[];
13
+ consumedBy: string[];
14
+ }
15
+ /** Typed registry of all skills, keyed by name. */
16
+ export declare const SKILLS: Record<SkillName, SkillMeta>;
17
+ export declare const SKILL_NAMES: SkillName[];
@@ -0,0 +1,40 @@
1
+ // AUTO-GENERATED by sdk/scripts/gen-registries.ts — do not edit by hand.
2
+ // Source: CoTrackPro catalog snapshot. Re-run `npm run codegen` to refresh.
3
+ /** Typed registry of all skills, keyed by name. */
4
+ export const SKILLS = {
5
+ "ai-provenance-integrity": { name: "ai-provenance-integrity", version: "0.1.0", description: "Apply provenance disclosure metadata to AI-generated documents and run integrity detection (SynthID, C2PA, EXIF, text heuristics) on uploaded evidence. Outputs are advisory metadata — never blocking, never accusatory — attached to the artifacts they describe.", kind: "functional", dataSensitivity: "confidential", safetyLevel: "elevated", promptModules: ["evidence-integrity", "legal-neutrality", "neutral-documentation"], chainsWith: ["evidence-organization", "legal-document-formatter"], consumedBy: ["gpt:attorney-workflow", "workflow:court-packet-assembly"] },
6
+ "child-centered-rewrite": { name: "child-centered-rewrite", version: "0.1.0", description: "Rewrite co-parenting messages and case-related communications to be brief, informative, friendly, firm (BIFF), and centered on the child's needs. Two modes: STANDARD (balanced) and FIRM (clear boundary, still respectful).", kind: "functional", dataSensitivity: "sensitive", safetyLevel: "elevated", promptModules: ["emotional-deescalation", "child-centered-language", "trauma-informed-response"], chainsWith: ["safety-review", "incident-documentation"], consumedBy: ["gpt:parent-support", "gpt:better-bridges", "gpt:child-centered-rewrite-gpt", "workflow:custody-violation-response"] },
7
+ "communication-tone-analysis": { name: "communication-tone-analysis", version: "0.1.0", description: "Analyze tone in co-parent and high-conflict communications. Classify escalating / neutral / de-escalating language; flag manipulation, DARVO, coercive-control linguistic markers; score against the BIFF (Brief-Informative-Friendly-Firm) framework. Designed for survivor-safe use: misclassification toward \"neutral\" on coercive content is the highest-stakes failure mode.", kind: "functional", dataSensitivity: "confidential", safetyLevel: "maximum", promptModules: ["trauma-informed-response", "emotional-deescalation", "coercive-control-awareness", "educational-tone"], chainsWith: ["safety-review", "child-centered-rewrite", "incident-documentation"], consumedBy: ["gpt:parent-support", "gpt:attorney-workflow", "gpt:therapist-collaboration"] },
8
+ "cotrackpro-advocate": { name: "cotrackpro-advocate", version: "0.1.0", description: "Trauma-informed advocacy support for safety planning referrals and clear client-facing next steps.", kind: "role", dataSensitivity: "confidential", safetyLevel: "elevated", promptModules: ["child-centered-language", "emotional-deescalation", "evidence-integrity", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], consumedBy: [] },
9
+ "cotrackpro-attorney": { name: "cotrackpro-attorney", version: "0.1.0", description: "Attorney workflow support for structured intake issue-spotting outlines and organized drafting assistance.", kind: "role", dataSensitivity: "confidential", safetyLevel: "elevated", promptModules: ["child-centered-language", "evidence-integrity", "legal-neutrality", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], consumedBy: [] },
10
+ "cotrackpro-bailiff": { name: "cotrackpro-bailiff", version: "0.1.0", description: "Courtroom operations support for de-escalation language neutral incident notes and procedure-aligned checklists.", kind: "role", dataSensitivity: "sensitive", safetyLevel: "elevated", promptModules: ["child-centered-language", "emotional-deescalation", "evidence-integrity", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], consumedBy: [] },
11
+ "cotrackpro-clerk": { name: "cotrackpro-clerk", version: "0.1.0", description: "Clerk support for filing readiness document naming conventions and step-by-step submission checklists.", kind: "role", dataSensitivity: "sensitive", safetyLevel: "elevated", promptModules: ["child-centered-language", "evidence-integrity", "legal-neutrality", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], consumedBy: [] },
12
+ "cotrackpro-coach": { name: "cotrackpro-coach", version: "0.1.0", description: "Coaching support for goal-setting routines accountability plans and calm communication practice prompts.", kind: "role", dataSensitivity: "sensitive", safetyLevel: "elevated", promptModules: ["child-centered-language", "emotional-deescalation", "neutral-documentation", "trauma-informed-response"], chainsWith: [], consumedBy: [] },
13
+ "cotrackpro-evaluator": { name: "cotrackpro-evaluator", version: "0.1.0", description: "Evaluator support for structured observations interview prompts and neutral report-ready summaries.", kind: "role", dataSensitivity: "confidential", safetyLevel: "elevated", promptModules: ["child-centered-language", "emotional-deescalation", "evidence-integrity", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], consumedBy: [] },
14
+ "cotrackpro-gal": { name: "cotrackpro-gal", version: "0.1.0", description: "GAL support for child-centered fact organization neutral summaries and bias-aware documentation.", kind: "role", dataSensitivity: "confidential", safetyLevel: "elevated", promptModules: ["child-centered-language", "emotional-deescalation", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], consumedBy: [] },
15
+ "cotrackpro-judge": { name: "cotrackpro-judge", version: "0.1.0", description: "Judicial workflow support for neutral issue framing hearing prep outlines and clarity-focused orders support.", kind: "role", dataSensitivity: "confidential", safetyLevel: "elevated", promptModules: ["child-centered-language", "emotional-deescalation", "evidence-integrity", "legal-neutrality", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], consumedBy: [] },
16
+ "cotrackpro-mediator": { name: "cotrackpro-mediator", version: "0.1.0", description: "Mediation support for agenda building shared-interest mapping and agreement recap with next steps.", kind: "role", dataSensitivity: "confidential", safetyLevel: "elevated", promptModules: ["child-centered-language", "emotional-deescalation", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], consumedBy: [] },
17
+ "cotrackpro-parent-alienation-support": { name: "cotrackpro-parent-alienation-support", version: "0.1.0", description: "Parent support for alienation dynamics documentation routines child- focused messaging and stability planning.", kind: "role", dataSensitivity: "confidential", safetyLevel: "elevated", promptModules: ["child-centered-language", "emotional-deescalation", "evidence-integrity", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], consumedBy: [] },
18
+ "cotrackpro-parent-coparent": { name: "cotrackpro-parent-coparent", version: "0.1.0", description: "Co-parenting support for clear calm messages boundaries scheduling and child-centered tone rewrites.", kind: "role", dataSensitivity: "confidential", safetyLevel: "elevated", promptModules: ["child-centered-language", "emotional-deescalation", "evidence-integrity", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], consumedBy: [] },
19
+ "cotrackpro-parent-high-conflict-strategy": { name: "cotrackpro-parent-high-conflict-strategy", version: "0.1.0", description: "High-conflict strategy support for de-escalation boundaries response plans and documentation workflows.", kind: "role", dataSensitivity: "confidential", safetyLevel: "elevated", promptModules: ["child-centered-language", "emotional-deescalation", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], consumedBy: [] },
20
+ "cotrackpro-parent-pro-se": { name: "cotrackpro-parent-pro-se", version: "0.1.0", description: "Pro se support for organizing facts timelines exhibits and plain- language court-ready summaries.", kind: "role", dataSensitivity: "confidential", safetyLevel: "elevated", promptModules: ["child-centered-language", "evidence-integrity", "legal-neutrality", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], consumedBy: [] },
21
+ "cotrackpro-parent-survivor-safety": { name: "cotrackpro-parent-survivor-safety", version: "0.1.0", description: "Survivor safety support for incident logging evidence organization and safety-first action steps.", kind: "role", dataSensitivity: "confidential", safetyLevel: "elevated", promptModules: ["child-centered-language", "emotional-deescalation", "evidence-integrity", "legal-neutrality", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], consumedBy: [] },
22
+ "cotrackpro-parenting-coordinator": { name: "cotrackpro-parenting-coordinator", version: "0.1.0", description: "Parenting coordinator support for implementation plans conflict reduction scripts and structured follow-ups.", kind: "role", dataSensitivity: "confidential", safetyLevel: "elevated", promptModules: ["child-centered-language", "emotional-deescalation", "evidence-integrity", "neutral-documentation", "trauma-informed-response"], chainsWith: [], consumedBy: [] },
23
+ "cotrackpro-police": { name: "cotrackpro-police", version: "0.1.0", description: "Law enforcement support for objective report structuring evidence capture checklists and safety-aware notes.", kind: "role", dataSensitivity: "confidential", safetyLevel: "elevated", promptModules: ["child-centered-language", "emotional-deescalation", "evidence-integrity", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], consumedBy: [] },
24
+ "cotrackpro-roles-router": { name: "cotrackpro-roles-router", version: "0.1.0", description: "Single entry skill that routes users to the right role workflow and standardizes safe consistent outputs.", kind: "role", dataSensitivity: "internal", safetyLevel: "elevated", promptModules: ["child-centered-language", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], consumedBy: [] },
25
+ "cotrackpro-supervisor": { name: "cotrackpro-supervisor", version: "0.1.0", description: "Supervisor support for oversight checklists escalation criteria audit- friendly summaries and accountability logs.", kind: "role", dataSensitivity: "sensitive", safetyLevel: "elevated", promptModules: ["child-centered-language", "evidence-integrity", "neutral-documentation", "safety-language", "trauma-informed-response"], chainsWith: [], consumedBy: [] },
26
+ "documentation-coaching": { name: "documentation-coaching", version: "0.1.0", description: "Coaches parents (and parent-adjacent users) on documentation habits over time. Reviews the user's evolving record and offers concrete, observable improvements — what to capture next, where the record is thin, which patterns deserve more anchors. Strictly educational; never legal or clinical advice.", kind: "functional", dataSensitivity: "confidential", safetyLevel: "elevated", promptModules: ["parent-support", "neutral-documentation", "trauma-informed-response", "child-centered-language"], chainsWith: ["incident-documentation", "evidence-organization", "timeline-builder", "safety-review"], consumedBy: ["gpt:parent-support", "gpt:attorney-workflow"] },
27
+ "emotional-pattern-analysis": { name: "emotional-pattern-analysis", version: "0.1.0", description: "Identify emotional themes in user-reported narratives using trauma-informed framing. Strictly educational — never clinical. Surface themes the user can bring to their own therapist; flag when professional support may be useful. Never diagnose, never pathologize trauma responses.", kind: "functional", dataSensitivity: "confidential", safetyLevel: "maximum", promptModules: ["trauma-informed-response", "emotional-deescalation", "educational-tone", "child-centered-language"], chainsWith: ["safety-review", "communication-tone-analysis"], consumedBy: ["gpt:therapist-collaboration", "gpt:parent-support"] },
28
+ "escalation-analysis": { name: "escalation-analysis", version: "0.1.0", description: "Pattern detection across a sequence of incidents or communications. Reports trend (escalating / stable / de-escalating), pivotal events, recurring tactics, and documentation focus areas. Distinct from communication-tone-analysis (which scores individual messages) — this skill scores the trajectory over time. Drives decisions about emergency motions vs. continued good-faith negotiation.", kind: "functional", dataSensitivity: "confidential", safetyLevel: "maximum", promptModules: ["trauma-informed-response", "coercive-control-awareness", "educational-tone", "neutral-documentation"], chainsWith: ["communication-tone-analysis", "timeline-builder", "safety-review", "incident-documentation"], consumedBy: ["gpt:attorney-workflow", "gpt:therapist-collaboration", "gpt:parent-support"] },
29
+ "evidence-organization": { name: "evidence-organization", version: "0.1.0", description: "Catalog, number, and chain-of-custody-validate exhibits and source artifacts for a case. Produces Evidence Index and Screenshot Log artifacts; provides authoritative metadata for downstream timeline and filing steps.", kind: "functional", dataSensitivity: "confidential", safetyLevel: "elevated", promptModules: ["evidence-integrity", "legal-neutrality", "neutral-documentation"], chainsWith: ["incident-documentation", "timeline-builder", "legal-document-formatter"], consumedBy: ["gpt:attorney-workflow", "gpt:documentation-timeline", "workflow:court-packet-assembly", "workflow:custody-violation-response"] },
30
+ "incident-documentation": { name: "incident-documentation", version: "0.1.0", description: "Capture a single incident or observation as a neutral, time-stamped, evidence-grade record. Drives the Custody Exchange Log, Incident Log, and Incident Report artifacts.", kind: "functional", dataSensitivity: "confidential", safetyLevel: "elevated", promptModules: ["neutral-documentation", "child-centered-language", "trauma-informed-response", "evidence-integrity"], chainsWith: ["timeline-builder", "evidence-organization", "safety-review"], consumedBy: ["gpt:parent-support", "gpt:documentation-timeline", "gpt:education", "workflow:session-lifecycle", "workflow:mandatory-reporting", "workflow:custody-violation-response", "workflow:onboarding"] },
31
+ "legal-document-formatter": { name: "legal-document-formatter", version: "0.1.0", description: "Format case content into court-presentable documents: Filing Checklists, Draft Motions, Case Summaries, Incident Reports. Applies jurisdiction- specific templates while keeping all substantive claims source-attributed.", kind: "functional", dataSensitivity: "confidential", safetyLevel: "elevated", promptModules: ["legal-neutrality", "evidence-integrity", "neutral-documentation"], chainsWith: ["timeline-builder", "evidence-organization", "incident-documentation"], consumedBy: ["gpt:attorney-workflow", "workflow:court-packet-assembly", "workflow:custody-violation-response"] },
32
+ "linkedin-authority-builder": { name: "linkedin-authority-builder", version: "0.1.0", description: "Generate LinkedIn content — posts, articles, profile copy — for thought leadership in family law, co-parenting, child welfare, and advocacy. Educational tone; no clinical claims, no legal-outcome promises, no infomercial energy. Optimized for the CoTrackPro audience (practitioners, advocates, journalists).", kind: "functional", dataSensitivity: "internal", safetyLevel: "standard", promptModules: ["educational-tone", "legal-neutrality", "community-support"], chainsWith: [], consumedBy: ["gpt:speaker-toolkit", "gpt:community-justice"] },
33
+ "omni-build": { name: "omni-build", version: "0.1.0", description: "Foundation routing/triage skill. Maps user input to triggers, roles, workstreams, and artifacts via a three-prompt pipeline. Spawns specialized subagents (Parent, Attorney, Therapist, etc.) carrying the right downstream skills. Invoked by every session-lifecycle step that needs domain-aware routing.", kind: "functional", dataSensitivity: "confidential", safetyLevel: "elevated", promptModules: ["neutral-documentation", "child-centered-language", "trauma-informed-response", "safety-language"], chainsWith: ["safety-review", "incident-documentation", "evidence-organization", "timeline-builder", "legal-document-formatter", "child-centered-rewrite"], consumedBy: ["gpt:attorney-workflow", "gpt:community-justice", "gpt:education", "gpt:parent-support", "gpt:speaker-toolkit", "gpt:therapist-collaboration", "workflow:session-lifecycle", "workflow:first-session-onboarding"] },
34
+ "podcast-metadata-generator": { name: "podcast-metadata-generator", version: "0.1.0", description: "Generate podcast episode metadata — title, description, show notes, chapter markers, transcript chunking, social-media blurbs — from a source transcript or episode brief. Content marketing for the CoTrackPro audience (co-parents, advocates, family-law professionals). Strictly non-clinical, non-legal in audience-facing copy.", kind: "functional", dataSensitivity: "internal", safetyLevel: "standard", promptModules: ["educational-tone", "legal-neutrality", "community-support"], chainsWith: [], consumedBy: ["gpt:community-justice", "gpt:speaker-toolkit"] },
35
+ "safety-review": { name: "safety-review", version: "0.1.0", description: "Risk classification, harm-keyword detection, and crisis-resource surfacing. Always-on sidecar evaluation plus on-demand review of incident records, message drafts, and case artifacts. Drives the safety_gate workflow step.", kind: "functional", dataSensitivity: "confidential", safetyLevel: "maximum", promptModules: ["safety-language", "trauma-informed-response", "emotional-deescalation", "child-centered-language"], chainsWith: ["incident-documentation", "child-centered-rewrite"], consumedBy: ["gpt:parent-support", "gpt:therapist-collaboration", "workflow:session-lifecycle"] },
36
+ "timeline-builder": { name: "timeline-builder", version: "0.1.0", description: "Construct a source-attributed chronological timeline from a set of incident logs, message records, evidence items, and dated observations. Detect gaps, flag conflicts, surface patterns. Produces court-grade Source-Based Timeline.", kind: "functional", dataSensitivity: "confidential", safetyLevel: "elevated", promptModules: ["evidence-integrity", "neutral-documentation", "legal-neutrality"], chainsWith: ["incident-documentation", "evidence-organization", "legal-document-formatter"], consumedBy: ["gpt:attorney-workflow", "gpt:documentation-timeline", "gpt:parent-support", "workflow:court-packet-assembly", "workflow:custody-violation-response"] },
37
+ "webinar-funnel-builder": { name: "webinar-funnel-builder", version: "0.1.0", description: "Generate the end-to-end webinar funnel: landing page copy, registration confirmation, reminder sequence, attendee follow-up, no-show follow-up. Optimized for educational webinars in the family-law / co-parenting / advocacy domain. No clinical claims, no legal-outcome promises, no high-pressure-sales energy.", kind: "functional", dataSensitivity: "internal", safetyLevel: "standard", promptModules: ["educational-tone", "legal-neutrality", "parent-support"], chainsWith: [], consumedBy: ["gpt:speaker-toolkit"] },
38
+ };
39
+ export const SKILL_NAMES = Object.keys(SKILLS);
40
+ //# sourceMappingURL=skills.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.generated.js","sourceRoot":"","sources":["../../src/mcp/skills.generated.ts"],"names":[],"mappings":"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"}