@synap-core/cli 1.11.0 → 1.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -198
- package/dist/build-info.json +6 -0
- package/dist/commands/agent-run.js +3 -2
- package/dist/commands/agent-run.js.map +1 -1
- package/dist/commands/agents.d.ts +33 -17
- package/dist/commands/agents.js +203 -237
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/app.d.ts +143 -0
- package/dist/commands/app.js +523 -0
- package/dist/commands/app.js.map +1 -0
- package/dist/commands/automate.d.ts +21 -0
- package/dist/commands/automate.js +42 -0
- package/dist/commands/automate.js.map +1 -0
- package/dist/commands/automation-schema.test.d.ts +16 -0
- package/dist/commands/automation-schema.test.js +77 -0
- package/dist/commands/automation-schema.test.js.map +1 -0
- package/dist/commands/automation.d.ts +12 -0
- package/dist/commands/automation.js +80 -35
- package/dist/commands/automation.js.map +1 -1
- package/dist/commands/bridge-setup.d.ts +14 -1
- package/dist/commands/bridge-setup.js +392 -128
- package/dist/commands/bridge-setup.js.map +1 -1
- package/dist/commands/cap-connections.d.ts +4 -4
- package/dist/commands/cap-connections.js +14 -14
- package/dist/commands/cap-connections.js.map +1 -1
- package/dist/commands/capability.d.ts +2 -0
- package/dist/commands/capability.js +218 -168
- package/dist/commands/capability.js.map +1 -1
- package/dist/commands/catalog.d.ts +275 -0
- package/dist/commands/catalog.js +481 -0
- package/dist/commands/catalog.js.map +1 -0
- package/dist/commands/cell.d.ts +155 -8
- package/dist/commands/cell.js +416 -40
- package/dist/commands/cell.js.map +1 -1
- package/dist/commands/centrality.js +1 -13
- package/dist/commands/centrality.js.map +1 -1
- package/dist/commands/connect.d.ts +38 -13
- package/dist/commands/connect.js +68 -167
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/connections.d.ts +3 -2
- package/dist/commands/connections.js +95 -25
- package/dist/commands/connections.js.map +1 -1
- package/dist/commands/context.js +7 -1
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/data-extra.d.ts +34 -0
- package/dist/commands/data-extra.js +193 -23
- package/dist/commands/data-extra.js.map +1 -1
- package/dist/commands/data.d.ts +120 -2
- package/dist/commands/data.js +293 -20
- package/dist/commands/data.js.map +1 -1
- package/dist/commands/diagnose.d.ts +66 -4
- package/dist/commands/diagnose.js +285 -28
- package/dist/commands/diagnose.js.map +1 -1
- package/dist/commands/doc.d.ts +11 -4
- package/dist/commands/doc.js +39 -14
- package/dist/commands/doc.js.map +1 -1
- package/dist/commands/doctor.d.ts +112 -3
- package/dist/commands/doctor.js +657 -32
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/explain.js +5 -5
- package/dist/commands/explain.js.map +1 -1
- package/dist/commands/import.d.ts +368 -13
- package/dist/commands/import.js +1064 -54
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/init.d.ts +20 -9
- package/dist/commands/init.js +433 -973
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/keys.d.ts +1 -0
- package/dist/commands/keys.js +15 -2
- package/dist/commands/keys.js.map +1 -1
- package/dist/commands/knowledge.d.ts +22 -6
- package/dist/commands/knowledge.js +117 -55
- package/dist/commands/knowledge.js.map +1 -1
- package/dist/commands/lens.d.ts +37 -1
- package/dist/commands/lens.js +192 -71
- package/dist/commands/lens.js.map +1 -1
- package/dist/commands/market-authoring.d.ts +29 -2
- package/dist/commands/market-authoring.js +348 -7
- package/dist/commands/market-authoring.js.map +1 -1
- package/dist/commands/market-official.d.ts +58 -0
- package/dist/commands/market-official.js +84 -0
- package/dist/commands/market-official.js.map +1 -0
- package/dist/commands/market.d.ts +400 -16
- package/dist/commands/market.js +1802 -146
- package/dist/commands/market.js.map +1 -1
- package/dist/commands/mcp.d.ts +60 -25
- package/dist/commands/mcp.js +251 -64
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/open.d.ts +39 -9
- package/dist/commands/open.js +80 -25
- package/dist/commands/open.js.map +1 -1
- package/dist/commands/playbook.d.ts +42 -0
- package/dist/commands/playbook.js +162 -0
- package/dist/commands/playbook.js.map +1 -0
- package/dist/commands/pod.js +1 -1
- package/dist/commands/pod.js.map +1 -1
- package/dist/commands/pods.d.ts +5 -0
- package/dist/commands/pods.js +97 -116
- package/dist/commands/pods.js.map +1 -1
- package/dist/commands/proposals-actions.d.ts +62 -0
- package/dist/commands/proposals-actions.js +143 -8
- package/dist/commands/proposals-actions.js.map +1 -1
- package/dist/commands/proposals-await.d.ts +68 -0
- package/dist/commands/proposals-await.js +248 -0
- package/dist/commands/proposals-await.js.map +1 -0
- package/dist/commands/proton-setup.d.ts +73 -0
- package/dist/commands/proton-setup.js +577 -0
- package/dist/commands/proton-setup.js.map +1 -0
- package/dist/commands/providers.d.ts +23 -0
- package/dist/commands/providers.js +126 -1
- package/dist/commands/providers.js.map +1 -1
- package/dist/commands/raycast.js +6 -2
- package/dist/commands/raycast.js.map +1 -1
- package/dist/commands/rule.d.ts +150 -0
- package/dist/commands/rule.js +447 -0
- package/dist/commands/rule.js.map +1 -0
- package/dist/commands/session-wait.d.ts +111 -0
- package/dist/commands/session-wait.js +209 -0
- package/dist/commands/session-wait.js.map +1 -0
- package/dist/commands/sessions.d.ts +52 -0
- package/dist/commands/sessions.js +478 -58
- package/dist/commands/sessions.js.map +1 -1
- package/dist/commands/skill-manage.d.ts +21 -0
- package/dist/commands/skill-manage.js +136 -19
- package/dist/commands/skill-manage.js.map +1 -1
- package/dist/commands/skills.js +16 -0
- package/dist/commands/skills.js.map +1 -1
- package/dist/commands/status.d.ts +1 -4
- package/dist/commands/status.js +5 -34
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/statusline.backoff.test.d.ts +13 -0
- package/dist/commands/statusline.backoff.test.js +100 -0
- package/dist/commands/statusline.backoff.test.js.map +1 -0
- package/dist/commands/statusline.js +16 -9
- package/dist/commands/statusline.js.map +1 -1
- package/dist/commands/sync-status.d.ts +12 -0
- package/dist/commands/sync-status.js +125 -0
- package/dist/commands/sync-status.js.map +1 -0
- package/dist/commands/templates-retire.d.ts +34 -0
- package/dist/commands/templates-retire.js +192 -0
- package/dist/commands/templates-retire.js.map +1 -0
- package/dist/commands/tools.js +6 -21
- package/dist/commands/tools.js.map +1 -1
- package/dist/commands/tracks.d.ts +51 -0
- package/dist/commands/tracks.js +291 -0
- package/dist/commands/tracks.js.map +1 -0
- package/dist/commands/update.d.ts +3 -11
- package/dist/commands/update.js +5 -134
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/upload.d.ts +41 -3
- package/dist/commands/upload.js +120 -18
- package/dist/commands/upload.js.map +1 -1
- package/dist/commands/vendor.d.ts +28 -0
- package/dist/commands/vendor.js +110 -0
- package/dist/commands/vendor.js.map +1 -0
- package/dist/commands/versions.js +6 -0
- package/dist/commands/versions.js.map +1 -1
- package/dist/commands/view.js +10 -5
- package/dist/commands/view.js.map +1 -1
- package/dist/commands/whoami.d.ts +23 -3
- package/dist/commands/whoami.js +169 -23
- package/dist/commands/whoami.js.map +1 -1
- package/dist/commands/worker.d.ts +122 -0
- package/dist/commands/worker.js +435 -0
- package/dist/commands/worker.js.map +1 -0
- package/dist/commands/worker.test.d.ts +1 -0
- package/dist/commands/worker.test.js +116 -0
- package/dist/commands/worker.test.js.map +1 -0
- package/dist/commands/workspace-ops.d.ts +35 -0
- package/dist/commands/workspace-ops.js +153 -0
- package/dist/commands/workspace-ops.js.map +1 -0
- package/dist/index.d.ts +6 -6
- package/dist/index.js +900 -180
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-connections.d.ts +31 -0
- package/dist/lib/agent-connections.js +33 -0
- package/dist/lib/agent-connections.js.map +1 -0
- package/dist/lib/agent-detect.d.ts +27 -0
- package/dist/lib/agent-detect.js +71 -0
- package/dist/lib/agent-detect.js.map +1 -0
- package/dist/lib/agent-door.d.ts +138 -0
- package/dist/lib/agent-door.js +426 -0
- package/dist/lib/agent-door.js.map +1 -0
- package/dist/lib/agents-config.d.ts +2 -0
- package/dist/lib/agents-config.js +4 -9
- package/dist/lib/agents-config.js.map +1 -1
- package/dist/lib/approval-poll.d.ts +31 -2
- package/dist/lib/approval-poll.js +20 -7
- package/dist/lib/approval-poll.js.map +1 -1
- package/dist/lib/atomic-file.d.ts +48 -0
- package/dist/lib/atomic-file.js +129 -0
- package/dist/lib/atomic-file.js.map +1 -0
- package/dist/lib/auth.d.ts +14 -9
- package/dist/lib/auth.js +44 -61
- package/dist/lib/auth.js.map +1 -1
- package/dist/lib/batch-approval.d.ts +85 -0
- package/dist/lib/batch-approval.js +170 -0
- package/dist/lib/batch-approval.js.map +1 -0
- package/dist/lib/capture-lane.d.ts +6 -5
- package/dist/lib/capture-lane.js +6 -5
- package/dist/lib/capture-lane.js.map +1 -1
- package/dist/lib/capture-structure.d.ts +230 -11
- package/dist/lib/capture-structure.js +251 -13
- package/dist/lib/capture-structure.js.map +1 -1
- package/dist/lib/catalog-templates.d.ts +59 -0
- package/dist/lib/catalog-templates.js +126 -0
- package/dist/lib/catalog-templates.js.map +1 -0
- package/dist/lib/cli-build.d.ts +19 -0
- package/dist/lib/cli-build.js +37 -0
- package/dist/lib/cli-build.js.map +1 -0
- package/dist/lib/conversation-headers.d.ts +18 -0
- package/dist/lib/conversation-headers.js +32 -0
- package/dist/lib/conversation-headers.js.map +1 -0
- package/dist/lib/cp-packages.d.ts +167 -11
- package/dist/lib/cp-packages.js +253 -21
- package/dist/lib/cp-packages.js.map +1 -1
- package/dist/lib/credential-class.d.ts +117 -0
- package/dist/lib/credential-class.js +116 -0
- package/dist/lib/credential-class.js.map +1 -0
- package/dist/lib/describe-lens.d.ts +35 -0
- package/dist/lib/describe-lens.js +40 -0
- package/dist/lib/describe-lens.js.map +1 -1
- package/dist/lib/device-connect.d.ts +125 -0
- package/dist/lib/device-connect.js +256 -0
- package/dist/lib/device-connect.js.map +1 -0
- package/dist/lib/directory-lens.d.ts +99 -0
- package/dist/lib/directory-lens.js +187 -0
- package/dist/lib/directory-lens.js.map +1 -0
- package/dist/lib/exporter-coverage.d.ts +71 -0
- package/dist/lib/exporter-coverage.js +97 -0
- package/dist/lib/exporter-coverage.js.map +1 -0
- package/dist/lib/hub-client.d.ts +29 -8
- package/dist/lib/hub-client.js +328 -55
- package/dist/lib/hub-client.js.map +1 -1
- package/dist/lib/init-connect.d.ts +41 -0
- package/dist/lib/init-connect.js +75 -0
- package/dist/lib/init-connect.js.map +1 -0
- package/dist/lib/init-exit.d.ts +24 -0
- package/dist/lib/init-exit.js +41 -0
- package/dist/lib/init-exit.js.map +1 -0
- package/dist/lib/init-flow.d.ts +25 -0
- package/dist/lib/init-flow.js +40 -0
- package/dist/lib/init-flow.js.map +1 -0
- package/dist/lib/init-handoff.d.ts +16 -0
- package/dist/lib/init-handoff.js +19 -0
- package/dist/lib/init-handoff.js.map +1 -0
- package/dist/lib/init-output.d.ts +18 -0
- package/dist/lib/init-output.js +43 -0
- package/dist/lib/init-output.js.map +1 -0
- package/dist/lib/init-pod.d.ts +45 -0
- package/dist/lib/init-pod.js +36 -0
- package/dist/lib/init-pod.js.map +1 -0
- package/dist/lib/installed.d.ts +210 -11
- package/dist/lib/installed.js +234 -36
- package/dist/lib/installed.js.map +1 -1
- package/dist/lib/key-approval.d.ts +57 -0
- package/dist/lib/key-approval.js +117 -0
- package/dist/lib/key-approval.js.map +1 -0
- package/dist/lib/key-diagnosis.d.ts +56 -0
- package/dist/lib/key-diagnosis.js +227 -0
- package/dist/lib/key-diagnosis.js.map +1 -0
- package/dist/lib/key-doctor.d.ts +136 -0
- package/dist/lib/key-doctor.js +286 -0
- package/dist/lib/key-doctor.js.map +1 -0
- package/dist/lib/key-locations.d.ts +120 -0
- package/dist/lib/key-locations.js +326 -0
- package/dist/lib/key-locations.js.map +1 -0
- package/dist/lib/key-source.d.ts +66 -0
- package/dist/lib/key-source.js +106 -0
- package/dist/lib/key-source.js.map +1 -0
- package/dist/lib/key-state.d.ts +70 -0
- package/dist/lib/key-state.js +115 -0
- package/dist/lib/key-state.js.map +1 -0
- package/dist/lib/kind-package.d.ts +181 -0
- package/dist/lib/kind-package.js +679 -0
- package/dist/lib/kind-package.js.map +1 -0
- package/dist/lib/knowledge-title.d.ts +24 -0
- package/dist/lib/knowledge-title.js +46 -0
- package/dist/lib/knowledge-title.js.map +1 -0
- package/dist/lib/knowledge-title.test.d.ts +1 -0
- package/dist/lib/knowledge-title.test.js +34 -0
- package/dist/lib/knowledge-title.test.js.map +1 -0
- package/dist/lib/machine-instance.d.ts +64 -0
- package/dist/lib/machine-instance.js +142 -0
- package/dist/lib/machine-instance.js.map +1 -0
- package/dist/lib/mcp-bridge.d.ts +42 -0
- package/dist/lib/mcp-bridge.js +147 -0
- package/dist/lib/mcp-bridge.js.map +1 -0
- package/dist/lib/mcp-bridge.test.d.ts +1 -0
- package/dist/lib/mcp-bridge.test.js +90 -0
- package/dist/lib/mcp-bridge.test.js.map +1 -0
- package/dist/lib/mcp-call.d.ts +30 -0
- package/dist/lib/mcp-call.js +107 -0
- package/dist/lib/mcp-call.js.map +1 -0
- package/dist/lib/mcp-snippets.d.ts +53 -0
- package/dist/lib/mcp-snippets.js +82 -0
- package/dist/lib/mcp-snippets.js.map +1 -0
- package/dist/lib/next-steps.d.ts +8 -0
- package/dist/lib/next-steps.js +31 -1
- package/dist/lib/next-steps.js.map +1 -1
- package/dist/lib/package-wire.d.ts +179 -0
- package/dist/lib/package-wire.js +68 -0
- package/dist/lib/package-wire.js.map +1 -0
- package/dist/lib/pair-link.d.ts +38 -0
- package/dist/lib/pair-link.js +68 -0
- package/dist/lib/pair-link.js.map +1 -0
- package/dist/lib/pod-wide.d.ts +40 -0
- package/dist/lib/pod-wide.js +46 -0
- package/dist/lib/pod-wide.js.map +1 -0
- package/dist/lib/pod.d.ts +66 -112
- package/dist/lib/pod.js +134 -412
- package/dist/lib/pod.js.map +1 -1
- package/dist/lib/project-ref.d.ts +9 -3
- package/dist/lib/project-ref.js +10 -4
- package/dist/lib/project-ref.js.map +1 -1
- package/dist/lib/review-credential.d.ts +119 -0
- package/dist/lib/review-credential.js +147 -0
- package/dist/lib/review-credential.js.map +1 -0
- package/dist/lib/safe-open.d.ts +49 -0
- package/dist/lib/safe-open.js +119 -0
- package/dist/lib/safe-open.js.map +1 -0
- package/dist/lib/session-lens.d.ts +40 -1
- package/dist/lib/session-lens.js +54 -4
- package/dist/lib/session-lens.js.map +1 -1
- package/dist/lib/superwhisper-import.d.ts +8 -0
- package/dist/lib/superwhisper-import.js +14 -7
- package/dist/lib/superwhisper-import.js.map +1 -1
- package/dist/lib/superwhisper-title.test.d.ts +1 -0
- package/dist/lib/superwhisper-title.test.js +18 -0
- package/dist/lib/superwhisper-title.test.js.map +1 -0
- package/dist/lib/targets.d.ts +134 -10
- package/dist/lib/targets.js +962 -258
- package/dist/lib/targets.js.map +1 -1
- package/dist/lib/template-file.d.ts +4 -0
- package/dist/lib/template-file.js.map +1 -1
- package/dist/lib/template-lifecycle.d.ts +217 -0
- package/dist/lib/template-lifecycle.js +433 -0
- package/dist/lib/template-lifecycle.js.map +1 -0
- package/dist/lib/template-steps.d.ts +88 -0
- package/dist/lib/template-steps.js +118 -0
- package/dist/lib/template-steps.js.map +1 -0
- package/dist/lib/time-ago.d.ts +2 -0
- package/dist/lib/time-ago.js +15 -0
- package/dist/lib/time-ago.js.map +1 -0
- package/dist/utils/logger.js +5 -2
- package/dist/utils/logger.js.map +1 -1
- package/package.json +23 -17
- package/skills/README.md +12 -10
- package/skills/agent-os/SKILL.md +214 -99
- package/skills/manifest.json +1 -1
- package/skills/onboard/SKILL.md +55 -26
- package/skills/synap/README.md +5 -8
- package/skills/synap/SKILL.md +1086 -283
- package/skills/synap/_order.txt +7 -0
- package/skills/synap/_skill.yaml +1 -1
- package/skills/synap/automations.md +15 -0
- package/skills/synap/capture.md +5 -0
- package/skills/synap/cli-operations.md +24 -18
- package/skills/synap/concepts.md +28 -0
- package/skills/synap/content-os.md +10 -1
- package/skills/synap/creative-loop.md +15 -10
- package/skills/synap/crm.md +21 -52
- package/skills/synap/document-embeds.md +141 -47
- package/skills/synap/escalation-ladder.md +20 -10
- package/skills/synap/focus-sessions.md +47 -21
- package/skills/synap/from-intent.md +142 -0
- package/skills/synap/governance-rules.md +4 -4
- package/skills/synap/governance.md +10 -7
- package/skills/synap/hand-off.md +33 -0
- package/skills/synap/inline-patterns.md +15 -7
- package/skills/synap/lenses.md +33 -15
- package/skills/synap/linking.md +41 -40
- package/skills/synap/mcp-remote-servers.md +64 -0
- package/skills/synap/mental-model.md +17 -15
- package/skills/synap/operating-mode-rules.md +1 -1
- package/skills/synap/processes.md +118 -0
- package/skills/synap/quick-reference.md +5 -1
- package/skills/synap/reading.md +3 -1
- package/skills/synap/reflexes.md +12 -42
- package/skills/synap/viewframe-cells.md +38 -5
- package/skills/synap/work-flow.md +1 -1
- package/skills/synap/work-model.md +96 -0
- package/skills/synap/worked-examples.md +4 -5
- package/skills/synap/workspace-design.md +14 -10
- package/skills/synap/writes.md +97 -24
- package/skills/synap/writing-titles.md +63 -0
- package/skills/synap-app/SKILL.md +2 -2
- package/skills/synap-app/_skill.yaml +1 -1
- package/skills/synap-app/install-commands.md +1 -1
- package/skills/synap-design/SKILL.md +474 -0
- package/skills/synap-design/_order.txt +4 -0
- package/skills/synap-design/_skill.yaml +21 -0
- package/skills/synap-design/loop.md +134 -0
- package/skills/synap-design/overview.md +44 -0
- package/skills/synap-design/principles.md +130 -0
- package/skills/synap-design/system.md +133 -0
- package/skills/synap-market/SKILL.md +306 -16
- package/skills/synap-market/_skill.yaml +1 -1
- package/skills/synap-market/author-and-publish.md +145 -8
- package/skills/synap-market/governance-and-catalog.md +7 -0
- package/skills/synap-market/install.md +79 -1
- package/skills/synap-market/overview.md +74 -6
- package/skills/synap-schema/SKILL.md +172 -10
- package/skills/synap-schema/_order.txt +2 -0
- package/skills/synap-schema/_skill.yaml +4 -2
- package/skills/synap-schema/common-mistakes.md +4 -2
- package/skills/synap-schema/discover-profiles.md +1 -1
- package/skills/synap-schema/entity-scope.md +15 -3
- package/skills/synap-schema/extend-first.md +29 -0
- package/skills/synap-schema/extend-vs-create.md +1 -1
- package/skills/synap-schema/intent-vocabulary-ssot.md +111 -0
- package/skills/synap-schema/property-types.md +1 -1
- package/skills/synap-schema/relations.md +1 -1
- package/skills/synap-ui/SKILL.md +19 -12
- package/skills/synap-ui/_skill.yaml +1 -1
- package/skills/synap-ui/ai-companion.md +1 -1
- package/skills/synap-ui/arranging-bento.md +2 -0
- package/skills/synap-ui/bento-layouts.md +10 -10
- package/skills/synap-ui/bento-recipes.md +313 -543
- package/skills/synap-ui/four-builds.md +5 -0
- package/skills/synap-ui/view-types.md +2 -2
- package/skills/synap-ui/widget-catalog.md +22 -278
- package/templates/automations/bookmark-enrichment.automation.json +290 -13
- package/templates/automations/url-bookmark-capture.automation.json +73 -11
- package/templates/skills/authoring-playbooks/SKILL.md +6 -3
- package/templates/skills/authoring-playbooks/reference/stages-contract.md +15 -0
- package/templates/skills/authoring-playbooks/reference/worked-example.md +3 -0
- package/dist/commands/infra.d.ts +0 -21
- package/dist/commands/infra.js +0 -262
- package/dist/commands/infra.js.map +0 -1
- package/dist/commands/template.d.ts +0 -42
- package/dist/commands/template.js +0 -191
- package/dist/commands/template.js.map +0 -1
- package/dist/lib/browser-auth.d.ts +0 -35
- package/dist/lib/browser-auth.js +0 -170
- package/dist/lib/browser-auth.js.map +0 -1
- package/dist/lib/openclaw.d.ts +0 -32
- package/dist/lib/openclaw.js +0 -164
- package/dist/lib/openclaw.js.map +0 -1
- package/dist/lib/seed.d.ts +0 -13
- package/dist/lib/seed.js +0 -135
- package/dist/lib/seed.js.map +0 -1
- package/node_modules/@synap/hub-rest-client/dist/index.cjs +0 -1261
- package/node_modules/@synap/hub-rest-client/dist/index.d.cts +0 -1647
- package/node_modules/@synap/hub-rest-client/dist/index.d.ts +0 -1647
- package/node_modules/@synap/hub-rest-client/dist/index.js +0 -1231
- package/node_modules/@synap/hub-rest-client/package.json +0 -45
- package/node_modules/@synap/hub-rest-client/src/client.ts +0 -1631
- package/node_modules/@synap/hub-rest-client/src/errors.ts +0 -30
- package/node_modules/@synap/hub-rest-client/src/index.ts +0 -153
- package/node_modules/@synap/hub-rest-client/src/setup.ts +0 -133
- package/node_modules/@synap/hub-rest-client/src/types.ts +0 -1299
package/dist/commands/cell.js
CHANGED
|
@@ -6,31 +6,112 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Usage:
|
|
8
8
|
* synap cell define --name "My Chart" --file ./chart.js [--type-key my-chart] [--deps '{"recharts":"2.12.0"}'] [--workspace <id>] [--open]
|
|
9
|
+
* synap cell define --name "Deal board" --file ./board.js --view-types kanban,table --content-kind collection
|
|
9
10
|
* cat chart.js | synap cell define --name "My Chart"
|
|
10
11
|
*
|
|
11
12
|
* synap cell build ./src/chart.tsx --out ./dist/chart.js
|
|
12
13
|
* synap cell build ./src/chart.tsx --out ./dist/chart.js --define # bundle then define
|
|
14
|
+
* synap cell build ./src/chart.tsx --out ./dist/chart.js --bundle-deps # no esm.sh at runtime
|
|
15
|
+
* synap cell build ./src/card.tsx --out ./dist/card.html --self-contained # one HTML doc (mcp-app)
|
|
13
16
|
*
|
|
14
17
|
* API:
|
|
15
|
-
* POST /api/hub/cells/define — { name, rendererSource, workspaceId?, typeKey?,
|
|
18
|
+
* POST /api/hub/cells/define — { name, rendererSource, workspaceId?, typeKey?,
|
|
19
|
+
* description?, defaultSize?, deps?, viewTypes?, contentKind? }
|
|
16
20
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
+
* DEPS: persisted. (A prior note here claimed `/cells/define` parsed but dropped
|
|
22
|
+
* `deps` — that is STALE as of HEAD: the route forwards `deps` to `defineCell`,
|
|
23
|
+
* which writes `deps: input.deps ?? {}` on both the INSERT and the UPDATE branch,
|
|
24
|
+
* after `validateDeps` runs inside the door.)
|
|
25
|
+
*
|
|
26
|
+
* SELECTABILITY: a cell that declares neither `viewTypes` nor `contentKind`
|
|
27
|
+
* installs cleanly and is then UNPICKABLE — no error, no signal. `viewTypes`
|
|
28
|
+
* lands in `widget_definitions.view_renderer_view_types` (migration 0221) and is
|
|
29
|
+
* what the browser copies onto `viewRenderer.viewTypes`; without it the cell can
|
|
30
|
+
* never be chosen as a view renderer. `contentKind` decides which profile-renderer
|
|
31
|
+
* slot the cell can fill; omitted, the column defaults to `widget`, which is
|
|
32
|
+
* placeable but never offered as an entity-detail/card/profile/collection renderer.
|
|
33
|
+
* Both follow an omit-is-silence rule on an upsert of an EXISTING row: not passing
|
|
34
|
+
* the flag leaves the stored value untouched (so a source-only re-push can't erase
|
|
35
|
+
* a declared affinity). Pass `--view-types ""` to clear the affinity.
|
|
21
36
|
*
|
|
22
37
|
* cell build runtime contract:
|
|
23
38
|
* - esbuild bundles to a single ESM file (format: esm, bundle: true)
|
|
24
|
-
* - bare
|
|
25
|
-
*
|
|
39
|
+
* - default mode: every bare import (react, react-dom, any non-relative) is
|
|
40
|
+
* externalized; externalized modules become the deps map (version from
|
|
41
|
+
* package.json if present, else "latest"); at runtime Synap resolves
|
|
42
|
+
* them via esm.sh importmap
|
|
43
|
+
* - `--bundle-deps` mode: only react/react-dom are externalized (they are
|
|
44
|
+
* host-inlined at runtime, never via esm.sh — see
|
|
45
|
+
* `synap-app/packages/core/cell-runtime/src/frame-react-modules.ts`);
|
|
46
|
+
* every other bare import is bundled into the output, so the deps map is
|
|
47
|
+
* `{}` and the frame's runtime CSP drops esm.sh entirely (see
|
|
48
|
+
* `ViewFrame.buildFrameCsp`'s `fullyBundled` branch) — this mode is
|
|
49
|
+
* opt-in; the default build is byte-identical to before this flag existed
|
|
26
50
|
* - the output module default-exports a React component (or plain module)
|
|
27
|
-
* -
|
|
51
|
+
* - default and `--bundle-deps` modes REFUSE an imported `.css` file (a
|
|
52
|
+
* `CellBundleError` naming it): the output is one JS module with nowhere to
|
|
53
|
+
* put a stylesheet, so the CSS could only be lost. `--self-contained` is the
|
|
54
|
+
* mode that keeps it.
|
|
55
|
+
* - `--self-contained` mode (an `rendererType: "mcp-app"` cell — a foreign
|
|
56
|
+
* MCP-Apps host loads ONE sandboxed HTML document whose CSP admits no
|
|
57
|
+
* esm.sh, no Google Fonts, no host-supplied React): NOTHING is external —
|
|
58
|
+
* React included. Imported CSS is collected and inlined in `<style>`, the
|
|
59
|
+
* brand faces (`@synap-core/design-tokens/fonts`, base64 woff2) are
|
|
60
|
+
* prepended when they resolve from the entry's package, and the result is
|
|
61
|
+
* wrapped into a complete HTML document whose inline `<script
|
|
62
|
+
* type="module">` is the bundle. The output (the cell `code`) IS that
|
|
63
|
+
* document; `deps` is always `{}`. The entry is the document's only script,
|
|
64
|
+
* so it must mount itself (a `#root` element is provided).
|
|
28
65
|
*/
|
|
29
66
|
import { readFileSync, writeFileSync, existsSync } from "fs";
|
|
30
67
|
import { dirname, resolve, basename } from "path";
|
|
68
|
+
import { runInNewContext } from "vm";
|
|
31
69
|
import { log } from "../utils/logger.js";
|
|
32
70
|
import { resolveHubConfig, resolveUserId, hubPost, } from "../lib/hub-client.js";
|
|
33
71
|
import { openInBrowser } from "./open.js";
|
|
72
|
+
// ─── Types ────────────────────────────────────────────────────────────────────
|
|
73
|
+
/**
|
|
74
|
+
* The `contentKind` vocabulary — WHAT a cell renders, which decides the
|
|
75
|
+
* profile-renderer slots it can fill.
|
|
76
|
+
*
|
|
77
|
+
* SSOT: `ContentKind` in
|
|
78
|
+
* `synap-backend/packages/database/src/schema/widget-definitions.ts`
|
|
79
|
+
* (canonically mirrored from `@synap-core/capabilities`). This list is a
|
|
80
|
+
* hand-maintained copy because the CLI does not depend on either package; if
|
|
81
|
+
* the union there grows, `test/cell-define-content-kind.test.ts` is the only
|
|
82
|
+
* thing that will catch the drift — keep them together.
|
|
83
|
+
*/
|
|
84
|
+
export const CONTENT_KINDS = [
|
|
85
|
+
"entity-detail",
|
|
86
|
+
"entity-card",
|
|
87
|
+
"entity-profile",
|
|
88
|
+
"collection",
|
|
89
|
+
"widget",
|
|
90
|
+
];
|
|
91
|
+
/** Narrow a raw `--content-kind` value against {@link CONTENT_KINDS}. */
|
|
92
|
+
export function parseContentKind(raw) {
|
|
93
|
+
const v = raw.trim();
|
|
94
|
+
return CONTENT_KINDS.includes(v)
|
|
95
|
+
? v
|
|
96
|
+
: null;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Parse a `--view-types` list. Comma-separated, trimmed, deduped.
|
|
100
|
+
*
|
|
101
|
+
* `undefined` (flag absent) ⇒ omit the field entirely, so an upsert of an
|
|
102
|
+
* existing row leaves the stored affinity untouched. An EMPTY string ⇒ `[]`,
|
|
103
|
+
* the explicit "clear it" signal the define door documents.
|
|
104
|
+
*/
|
|
105
|
+
export function parseViewTypes(raw) {
|
|
106
|
+
if (raw === undefined)
|
|
107
|
+
return undefined;
|
|
108
|
+
return [
|
|
109
|
+
...new Set(raw
|
|
110
|
+
.split(",")
|
|
111
|
+
.map((t) => t.trim())
|
|
112
|
+
.filter((t) => t !== "")),
|
|
113
|
+
];
|
|
114
|
+
}
|
|
34
115
|
// ─── Helpers ──────────────────────────────────────────────────────────────────
|
|
35
116
|
/** Read source from --file flag or stdin (when piped). */
|
|
36
117
|
async function resolveSource(file) {
|
|
@@ -90,23 +171,156 @@ function lookupVersion(pkg, name) {
|
|
|
90
171
|
// Strip semver range prefixes (^, ~, >=, etc.)
|
|
91
172
|
return raw.replace(/^[^0-9]*/, "") || "latest";
|
|
92
173
|
}
|
|
93
|
-
/**
|
|
94
|
-
|
|
174
|
+
/**
|
|
175
|
+
* Thrown by `bundleWithEsbuild`/`buildCellFromSource` instead of exiting the
|
|
176
|
+
* process, so a caller that is NOT the direct `cell build` CLI entry point
|
|
177
|
+
* (namely `resolveCellCodeFiles` on the `market publish` path) can turn a
|
|
178
|
+
* bundle failure into its own structured `{ ok: false, ... }` envelope rather
|
|
179
|
+
* than have the process die out from under it before that envelope is ever
|
|
180
|
+
* built. `cellBuild` (the direct entry point) catches this like any other
|
|
181
|
+
* error and still exits 1 — interactive behaviour is unchanged.
|
|
182
|
+
*/
|
|
183
|
+
export class CellBundleError extends Error {
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Package names that stay external even under `--bundle-deps` — the modules
|
|
187
|
+
* the FRAME HOST provides at runtime, which must never be pulled from
|
|
188
|
+
* node_modules: react/react-dom are host-inlined (`synap-app/packages/core/
|
|
189
|
+
* cell-runtime/src/frame-react-modules.ts`), and `@synap/view-sdk` is
|
|
190
|
+
* host-supplied via the iframe import map (`.../frame-import-map.ts`,
|
|
191
|
+
* `imports['@synap/view-sdk'] = blobs.viewSdk`). Externalizing all three
|
|
192
|
+
* costs nothing and keeps the bundle small; failing to list one here means
|
|
193
|
+
* `--bundle-deps` (now the DEFAULT for `market publish` cells) can never
|
|
194
|
+
* build a cell that imports it — esbuild tries to resolve it from
|
|
195
|
+
* node_modules and fails, dead on arrival.
|
|
196
|
+
*
|
|
197
|
+
* This set is a hand-maintained mirror of `frame-import-map.ts` — exactly the
|
|
198
|
+
* drift class this repo keeps losing to — so `frame-import-map-parity.test.ts`
|
|
199
|
+
* reads that file's own source across the repo boundary and fails the moment
|
|
200
|
+
* the host starts supplying a module this set doesn't know about.
|
|
201
|
+
*/
|
|
202
|
+
export const BUNDLE_DEPS_KEEP_EXTERNAL = new Set([
|
|
203
|
+
"react",
|
|
204
|
+
"react-dom",
|
|
205
|
+
"@synap/view-sdk",
|
|
206
|
+
]);
|
|
207
|
+
/** Load esbuild from the CLI's own install. */
|
|
208
|
+
async function loadEsbuild() {
|
|
95
209
|
// Dynamic import so the CLI only requires esbuild when `cell build` is used.
|
|
96
|
-
|
|
210
|
+
// esbuild is a real `dependency` of this package (not a devDependency) —
|
|
211
|
+
// Node resolves it from the CLI's OWN install location, not the caller's
|
|
212
|
+
// project, so it is present under `npx @synap-core/cli` too. This catch is
|
|
213
|
+
// therefore a last-resort guard against a corrupted install, not the
|
|
214
|
+
// expected path; the fix is reinstalling the CLI, not the user's project.
|
|
97
215
|
try {
|
|
98
|
-
|
|
216
|
+
return await import("esbuild");
|
|
99
217
|
}
|
|
100
218
|
catch {
|
|
101
|
-
|
|
102
|
-
|
|
219
|
+
throw new CellBundleError("esbuild failed to load from the CLI's own install. Reinstall the CLI (npm install -g @synap-core/cli) or re-run via npx.");
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Asset types a self-contained build inlines as `data:` URIs — a stylesheet's
|
|
224
|
+
* `url(./icon.svg)` or `@font-face` src has no origin to load from inside the
|
|
225
|
+
* host's sandbox.
|
|
226
|
+
*/
|
|
227
|
+
const SELF_CONTAINED_ASSET_LOADERS = {
|
|
228
|
+
".woff2": "dataurl",
|
|
229
|
+
".woff": "dataurl",
|
|
230
|
+
".ttf": "dataurl",
|
|
231
|
+
".otf": "dataurl",
|
|
232
|
+
".png": "dataurl",
|
|
233
|
+
".jpg": "dataurl",
|
|
234
|
+
".jpeg": "dataurl",
|
|
235
|
+
".gif": "dataurl",
|
|
236
|
+
".webp": "dataurl",
|
|
237
|
+
".svg": "dataurl",
|
|
238
|
+
};
|
|
239
|
+
/** `react`, `react-dom`, and any subpath of either (`react/jsx-runtime`, `react-dom/client`, …). */
|
|
240
|
+
const REACT_IMPORT = /^react(?:-dom)?(?:\/.*)?$/;
|
|
241
|
+
/**
|
|
242
|
+
* Resolve every React import ONCE, from the entry's directory — esbuild's
|
|
243
|
+
* equivalent of Vite's `resolve.dedupe`. Without it, a dependency that imports
|
|
244
|
+
* react without declaring it (in synap-app: spatial-ui → react-dom,
|
|
245
|
+
* proposal-types → react) resolves UPWARD to whatever copy sits nearest to it,
|
|
246
|
+
* and the document ships two Reacts — two dispatchers, so hooks throw. A
|
|
247
|
+
* nested copy is never the one the cell's own tree renders with, so the
|
|
248
|
+
* entry's copy wins; if the entry cannot reach react at all, that is an error
|
|
249
|
+
* here, not a silent fallback to some dependency's copy.
|
|
250
|
+
*/
|
|
251
|
+
function dedupeReactPlugin(entryDir) {
|
|
252
|
+
return {
|
|
253
|
+
name: "dedupe-react",
|
|
254
|
+
setup(build) {
|
|
255
|
+
build.onResolve({ filter: REACT_IMPORT }, async (args) => {
|
|
256
|
+
if (args.pluginData?.dedupeReact)
|
|
257
|
+
return undefined;
|
|
258
|
+
const r = await build.resolve(args.path, {
|
|
259
|
+
kind: args.kind,
|
|
260
|
+
resolveDir: entryDir,
|
|
261
|
+
pluginData: { dedupeReact: true },
|
|
262
|
+
});
|
|
263
|
+
if (r.errors.length > 0) {
|
|
264
|
+
throw new CellBundleError(`"${args.path}" (imported by ${args.importer}) does not resolve from the cell entry's directory ${entryDir} — add react/react-dom to the cell's own package so every import shares ONE copy.`);
|
|
265
|
+
}
|
|
266
|
+
return { path: r.path, sideEffects: r.sideEffects };
|
|
267
|
+
});
|
|
268
|
+
},
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
/** Call esbuild programmatically. Returns { code, externals, css }. Exported for tests. */
|
|
272
|
+
export async function bundleWithEsbuild(entry, opts = {}) {
|
|
273
|
+
const esbuild = await loadEsbuild();
|
|
274
|
+
if (opts.selfContained) {
|
|
275
|
+
// No externals: every import — React included — is resolved from the
|
|
276
|
+
// entry's own node_modules and bundled (React deduped to ONE copy, see
|
|
277
|
+
// `dedupeReactPlugin`). An import esbuild cannot
|
|
278
|
+
// resolve (a URL, a missing package) is a build error, never a runtime
|
|
279
|
+
// fetch. `outdir` is virtual (write: false); it only gives esbuild a place
|
|
280
|
+
// to emit the CSS bundle beside the JS one.
|
|
281
|
+
let result;
|
|
282
|
+
try {
|
|
283
|
+
result = await esbuild.build({
|
|
284
|
+
entryPoints: [entry],
|
|
285
|
+
bundle: true,
|
|
286
|
+
format: "esm",
|
|
287
|
+
platform: "browser",
|
|
288
|
+
write: false,
|
|
289
|
+
outdir: "/__synap_cell_out__",
|
|
290
|
+
minify: true,
|
|
291
|
+
// React (and most libs) branch on this; unset, the bundle reads
|
|
292
|
+
// `process` — which does not exist in the host's iframe.
|
|
293
|
+
define: { "process.env.NODE_ENV": '"production"' },
|
|
294
|
+
loader: SELF_CONTAINED_ASSET_LOADERS,
|
|
295
|
+
plugins: [dedupeReactPlugin(dirname(entry))],
|
|
296
|
+
logLevel: "silent",
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
catch (e) {
|
|
300
|
+
throw new CellBundleError(`esbuild failed:\n${e.message}`);
|
|
301
|
+
}
|
|
302
|
+
const js = result.outputFiles.find((f) => f.path.endsWith(".js"))?.text ?? "";
|
|
303
|
+
const css = result.outputFiles
|
|
304
|
+
.filter((f) => f.path.endsWith(".css"))
|
|
305
|
+
.map((f) => f.text)
|
|
306
|
+
.join("\n");
|
|
307
|
+
return { code: js, externals: [], css };
|
|
103
308
|
}
|
|
104
309
|
// First pass: bundle without any externals to discover all bare imports.
|
|
105
310
|
// We use a custom plugin to collect them instead of failing.
|
|
106
311
|
const externalSet = new Set();
|
|
312
|
+
const cssImports = [];
|
|
107
313
|
const collectPlugin = {
|
|
108
314
|
name: "collect-externals",
|
|
109
315
|
setup(build) {
|
|
316
|
+
// A stylesheet has nowhere to go in a single-JS-module output: a
|
|
317
|
+
// relative one used to die on esbuild's opaque "without an output path
|
|
318
|
+
// configured", a bare one (`pkg/style.css`) was externalized as an
|
|
319
|
+
// import the runtime cannot load. Collect them and refuse by name below.
|
|
320
|
+
build.onResolve({ filter: /\.css$/ }, (args) => {
|
|
321
|
+
cssImports.push(args.path);
|
|
322
|
+
return { path: args.path, external: true };
|
|
323
|
+
});
|
|
110
324
|
// Intercept every non-relative, non-absolute import
|
|
111
325
|
build.onResolve({ filter: /^[^./]/ }, (args) => {
|
|
112
326
|
// Extract the package name (handle scoped packages like @org/pkg)
|
|
@@ -114,7 +328,14 @@ async function bundleWithEsbuild(entry) {
|
|
|
114
328
|
const pkgName = args.path.startsWith("@") && parts.length >= 2
|
|
115
329
|
? `${parts[0]}/${parts[1]}`
|
|
116
330
|
: parts[0];
|
|
117
|
-
|
|
331
|
+
const name = pkgName ?? args.path;
|
|
332
|
+
// --bundle-deps: only react/react-dom stay external — every other
|
|
333
|
+
// bare import is left unhandled so esbuild resolves + bundles it
|
|
334
|
+
// from node_modules, producing an empty deps map.
|
|
335
|
+
if (opts.bundleDeps && !BUNDLE_DEPS_KEEP_EXTERNAL.has(name)) {
|
|
336
|
+
return undefined;
|
|
337
|
+
}
|
|
338
|
+
externalSet.add(name);
|
|
118
339
|
return { path: args.path, external: true };
|
|
119
340
|
});
|
|
120
341
|
},
|
|
@@ -129,11 +350,143 @@ async function bundleWithEsbuild(entry) {
|
|
|
129
350
|
});
|
|
130
351
|
if (result.errors.length > 0) {
|
|
131
352
|
const msgs = result.errors.map((e) => e.text).join("\n");
|
|
132
|
-
|
|
133
|
-
|
|
353
|
+
throw new CellBundleError(`esbuild failed:\n${msgs}`);
|
|
354
|
+
}
|
|
355
|
+
if (cssImports.length > 0) {
|
|
356
|
+
throw new CellBundleError(`this cell imports CSS, which a single-module build would drop: ${[
|
|
357
|
+
...new Set(cssImports),
|
|
358
|
+
].join(", ")}. Build it with --self-contained (CSS inlined into one HTML document), or move the styles into the component.`);
|
|
134
359
|
}
|
|
135
360
|
const code = result.outputFiles[0]?.text ?? "";
|
|
136
|
-
return { code, externals: Array.from(externalSet).sort() };
|
|
361
|
+
return { code, externals: Array.from(externalSet).sort(), css: "" };
|
|
362
|
+
}
|
|
363
|
+
/** The `@synap-core/design-tokens` export that carries the inlined brand faces. */
|
|
364
|
+
export const FONTS_MODULE = "@synap-core/design-tokens/fonts";
|
|
365
|
+
/**
|
|
366
|
+
* `SYNAP_FONT_FACE_CSS`, resolved from `fromDir` the way the entry's own
|
|
367
|
+
* imports resolve — or `null` when the package is not reachable from there.
|
|
368
|
+
* The module is TypeScript source (the package ships `src/`), so it is run
|
|
369
|
+
* through esbuild and evaluated in an empty VM context rather than imported.
|
|
370
|
+
*/
|
|
371
|
+
export async function resolveFontFaceCss(fromDir) {
|
|
372
|
+
const esbuild = await loadEsbuild();
|
|
373
|
+
let text;
|
|
374
|
+
try {
|
|
375
|
+
const r = await esbuild.build({
|
|
376
|
+
stdin: {
|
|
377
|
+
contents: `export { SYNAP_FONT_FACE_CSS } from ${JSON.stringify(FONTS_MODULE)};`,
|
|
378
|
+
resolveDir: fromDir,
|
|
379
|
+
loader: "ts",
|
|
380
|
+
},
|
|
381
|
+
bundle: true,
|
|
382
|
+
format: "cjs",
|
|
383
|
+
platform: "neutral",
|
|
384
|
+
write: false,
|
|
385
|
+
logLevel: "silent",
|
|
386
|
+
});
|
|
387
|
+
text = r.outputFiles[0]?.text ?? "";
|
|
388
|
+
}
|
|
389
|
+
catch {
|
|
390
|
+
return null;
|
|
391
|
+
}
|
|
392
|
+
const mod = { exports: {} };
|
|
393
|
+
runInNewContext(text, { module: mod, exports: mod.exports });
|
|
394
|
+
const css = mod.exports.SYNAP_FONT_FACE_CSS;
|
|
395
|
+
return typeof css === "string" && css.length > 0 ? css : null;
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Wrap a self-contained bundle into the complete HTML document an MCP-Apps
|
|
399
|
+
* host loads verbatim. `</style` / `</script` are escaped so inlined text can
|
|
400
|
+
* never close its own element early (`<\/` is the same character sequence to
|
|
401
|
+
* the CSS and JS parsers, but not to the HTML tokenizer).
|
|
402
|
+
*/
|
|
403
|
+
export function wrapSelfContainedHtml(parts) {
|
|
404
|
+
const css = parts.css.replace(/<\/(style)/gi, "<\\/$1");
|
|
405
|
+
const js = parts.js.replace(/<\/(script)/gi, "<\\/$1");
|
|
406
|
+
return [
|
|
407
|
+
"<!doctype html>",
|
|
408
|
+
'<html lang="en">',
|
|
409
|
+
"<head>",
|
|
410
|
+
'<meta charset="utf-8">',
|
|
411
|
+
'<meta name="viewport" content="width=device-width, initial-scale=1">',
|
|
412
|
+
`<style>\n${css}\n</style>`,
|
|
413
|
+
"</head>",
|
|
414
|
+
"<body>",
|
|
415
|
+
'<div id="root"></div>',
|
|
416
|
+
`<script type="module">\n${js}\n</script>`,
|
|
417
|
+
"</body>",
|
|
418
|
+
"</html>",
|
|
419
|
+
"",
|
|
420
|
+
].join("\n");
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Bundle `entry` and derive its `deps` map — the shared guts behind `cell
|
|
424
|
+
* build` (which additionally writes the result to disk) and `market
|
|
425
|
+
* publish`'s `codeFile` resolution (`lib/kind-package.ts`, which inlines the
|
|
426
|
+
* result straight into a package's `code` field instead). Kept in ONE place
|
|
427
|
+
* because the bundle-deps/react-exclusion derivation below is exactly the
|
|
428
|
+
* seam `cell-build-bundle-deps.test.ts` exists to protect (see its top-of-file
|
|
429
|
+
* comment) — a second copy of this logic is how that bug would come back.
|
|
430
|
+
*/
|
|
431
|
+
export async function buildCellFromSource(entry, opts = {}) {
|
|
432
|
+
if (opts.selfContained) {
|
|
433
|
+
// A self-contained document reaches no module origin, so a deps map —
|
|
434
|
+
// "modules the runtime resolves via esm.sh" — can only be a lie here.
|
|
435
|
+
if (opts.deps) {
|
|
436
|
+
throw new CellBundleError("--deps does not apply to --self-contained: every import is bundled into the document, nothing resolves via esm.sh.");
|
|
437
|
+
}
|
|
438
|
+
const { code: js, css } = await bundleWithEsbuild(entry, { selfContained: true });
|
|
439
|
+
let fontCss = "";
|
|
440
|
+
if (opts.fonts !== false) {
|
|
441
|
+
const resolved = await resolveFontFaceCss(dirname(entry));
|
|
442
|
+
if (resolved)
|
|
443
|
+
fontCss = resolved;
|
|
444
|
+
else if (opts.fonts === true) {
|
|
445
|
+
throw new CellBundleError(`--fonts: ${FONTS_MODULE} does not resolve from ${dirname(entry)} — add @synap-core/design-tokens to the cell's package.`);
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
const code = wrapSelfContainedHtml({
|
|
449
|
+
js,
|
|
450
|
+
css: [fontCss, css].filter(Boolean).join("\n"),
|
|
451
|
+
});
|
|
452
|
+
return { code, deps: {}, externals: [] };
|
|
453
|
+
}
|
|
454
|
+
const { code, externals } = await bundleWithEsbuild(entry, {
|
|
455
|
+
bundleDeps: opts.bundleDeps,
|
|
456
|
+
});
|
|
457
|
+
// Build deps map: externals → version from nearest package.json.
|
|
458
|
+
//
|
|
459
|
+
// Under `--bundle-deps` the react/react-dom externals are DELIBERATELY
|
|
460
|
+
// omitted from this map. They stay external to esbuild (the host supplies
|
|
461
|
+
// them), but the `deps` map means one thing only: "modules the runtime must
|
|
462
|
+
// resolve via the esm.sh import map". React is never one of those — the
|
|
463
|
+
// host inlines it (`frame-react-modules.ts`), and `ViewFrame` will not even
|
|
464
|
+
// build a react-language srcdoc until `reactSources` has loaded.
|
|
465
|
+
//
|
|
466
|
+
// This is the seam that makes the flag WORK: `buildFrameCsp`'s
|
|
467
|
+
// `fullyBundled` branch keys off `Object.keys(deps).length === 0`, so
|
|
468
|
+
// leaving react in the map here would leave `deps = { react: "19" }` and
|
|
469
|
+
// esm.sh would stay in the CSP for every React cell — i.e. the whole
|
|
470
|
+
// feature would be inert on its main use case.
|
|
471
|
+
const pkgJson = findPackageJson(dirname(entry));
|
|
472
|
+
const depsMap = {};
|
|
473
|
+
for (const ext of externals) {
|
|
474
|
+
if (opts.bundleDeps && BUNDLE_DEPS_KEEP_EXTERNAL.has(ext))
|
|
475
|
+
continue;
|
|
476
|
+
depsMap[ext] = pkgJson ? lookupVersion(pkgJson, ext) : "latest";
|
|
477
|
+
}
|
|
478
|
+
// Honour explicit --deps overrides
|
|
479
|
+
if (opts.deps) {
|
|
480
|
+
let override;
|
|
481
|
+
try {
|
|
482
|
+
override = JSON.parse(opts.deps);
|
|
483
|
+
}
|
|
484
|
+
catch {
|
|
485
|
+
throw new Error(`--deps must be valid JSON, e.g. '{"recharts":"2.12.0"}'`);
|
|
486
|
+
}
|
|
487
|
+
Object.assign(depsMap, override);
|
|
488
|
+
}
|
|
489
|
+
return { code, deps: depsMap, externals };
|
|
137
490
|
}
|
|
138
491
|
// ─── cell define ──────────────────────────────────────────────────────────────
|
|
139
492
|
export async function cellDefine(opts) {
|
|
@@ -153,11 +506,23 @@ export async function cellDefine(opts) {
|
|
|
153
506
|
process.exit(1);
|
|
154
507
|
}
|
|
155
508
|
}
|
|
509
|
+
// Validate --content-kind against the real union BEFORE the round trip: the
|
|
510
|
+
// define door's zod would otherwise strip an unknown value silently and the
|
|
511
|
+
// cell would install unpickable — the exact failure this flag exists to stop.
|
|
512
|
+
let contentKind;
|
|
513
|
+
if (opts.contentKind !== undefined) {
|
|
514
|
+
const parsed = parseContentKind(opts.contentKind);
|
|
515
|
+
if (!parsed) {
|
|
516
|
+
log.error(`--content-kind must be one of: ${CONTENT_KINDS.join(", ")} (got "${opts.contentKind}")`);
|
|
517
|
+
process.exit(1);
|
|
518
|
+
}
|
|
519
|
+
contentKind = parsed;
|
|
520
|
+
}
|
|
521
|
+
const viewTypes = parseViewTypes(opts.viewTypes);
|
|
156
522
|
const body = {
|
|
157
523
|
userId,
|
|
158
524
|
name: opts.name,
|
|
159
525
|
rendererSource,
|
|
160
|
-
// deps is sent even though the current backend ignores it (see file-level note).
|
|
161
526
|
deps: parsedDeps,
|
|
162
527
|
};
|
|
163
528
|
if (workspaceId)
|
|
@@ -166,6 +531,12 @@ export async function cellDefine(opts) {
|
|
|
166
531
|
body.typeKey = opts.typeKey;
|
|
167
532
|
if (opts.description)
|
|
168
533
|
body.description = opts.description;
|
|
534
|
+
// Omit-is-silence: only send these when the caller actually spoke about
|
|
535
|
+
// them, so a plain source re-push never erases a declared affinity/slot.
|
|
536
|
+
if (viewTypes !== undefined)
|
|
537
|
+
body.viewTypes = viewTypes;
|
|
538
|
+
if (contentKind !== undefined)
|
|
539
|
+
body.contentKind = contentKind;
|
|
169
540
|
const res = (await hubPost("/cells/define", body, cfg));
|
|
170
541
|
const isProposed = res.status === "proposed" || Boolean(res.proposalId);
|
|
171
542
|
if (isProposed) {
|
|
@@ -176,7 +547,13 @@ export async function cellDefine(opts) {
|
|
|
176
547
|
}
|
|
177
548
|
const typeKey = String(res.typeKey ?? "");
|
|
178
549
|
if (opts.json) {
|
|
179
|
-
console.log(JSON.stringify({
|
|
550
|
+
console.log(JSON.stringify({
|
|
551
|
+
typeKey,
|
|
552
|
+
name: opts.name,
|
|
553
|
+
deps: parsedDeps,
|
|
554
|
+
...(viewTypes !== undefined ? { viewTypes } : {}),
|
|
555
|
+
...(contentKind !== undefined ? { contentKind } : {}),
|
|
556
|
+
}, null, 2));
|
|
180
557
|
return;
|
|
181
558
|
}
|
|
182
559
|
if (!typeKey) {
|
|
@@ -187,6 +564,16 @@ export async function cellDefine(opts) {
|
|
|
187
564
|
log.dim(` typeKey: ${typeKey}`);
|
|
188
565
|
if (Object.keys(parsedDeps).length > 0)
|
|
189
566
|
log.dim(` deps: ${JSON.stringify(parsedDeps)}`);
|
|
567
|
+
if (viewTypes !== undefined)
|
|
568
|
+
log.dim(` view types: ${viewTypes.length > 0 ? viewTypes.join(", ") : "(cleared)"}`);
|
|
569
|
+
if (contentKind !== undefined)
|
|
570
|
+
log.dim(` content kind: ${contentKind}`);
|
|
571
|
+
// Say it once, at define time, when the author can still act on it — a cell
|
|
572
|
+
// with neither is placeable on a bento but can never be PICKED as a view or
|
|
573
|
+
// profile renderer, and nothing downstream ever reports that.
|
|
574
|
+
if (viewTypes === undefined && contentKind === undefined) {
|
|
575
|
+
log.dim(` note: no --view-types / --content-kind — this cell is placeable but not selectable as a renderer`);
|
|
576
|
+
}
|
|
190
577
|
log.dim(` bento block: { kind: "${typeKey}", config: {} }`);
|
|
191
578
|
log.dim(` open in browser: synap open cell ${typeKey}`);
|
|
192
579
|
if (opts.open && typeKey) {
|
|
@@ -207,29 +594,16 @@ export async function cellBuild(entry, opts) {
|
|
|
207
594
|
process.exit(1);
|
|
208
595
|
}
|
|
209
596
|
log.dim(`Bundling ${entry}…`);
|
|
210
|
-
const { code, externals } = await
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
}
|
|
217
|
-
// Honour explicit --deps overrides
|
|
218
|
-
if (opts.deps) {
|
|
219
|
-
let override;
|
|
220
|
-
try {
|
|
221
|
-
override = JSON.parse(opts.deps);
|
|
222
|
-
}
|
|
223
|
-
catch {
|
|
224
|
-
log.error(`--deps must be valid JSON, e.g. '{"recharts":"2.12.0"}'`);
|
|
225
|
-
process.exit(1);
|
|
226
|
-
}
|
|
227
|
-
Object.assign(depsMap, override);
|
|
228
|
-
}
|
|
597
|
+
const { code, deps: depsMap, externals } = await buildCellFromSource(absEntry, {
|
|
598
|
+
bundleDeps: opts.bundleDeps,
|
|
599
|
+
deps: opts.deps,
|
|
600
|
+
selfContained: opts.selfContained,
|
|
601
|
+
fonts: opts.fonts,
|
|
602
|
+
});
|
|
229
603
|
// Write output file
|
|
230
604
|
const outPath = opts.out
|
|
231
605
|
? resolve(process.cwd(), opts.out)
|
|
232
|
-
: resolve(dirname(absEntry), basename(absEntry).replace(/\.[^.]+$/, ".bundle.js"));
|
|
606
|
+
: resolve(dirname(absEntry), basename(absEntry).replace(/\.[^.]+$/, opts.selfContained ? ".html" : ".bundle.js"));
|
|
233
607
|
writeFileSync(outPath, code, "utf-8");
|
|
234
608
|
if (opts.json) {
|
|
235
609
|
console.log(JSON.stringify({ out: outPath, deps: depsMap }, null, 2));
|
|
@@ -260,6 +634,8 @@ export async function cellBuild(entry, opts) {
|
|
|
260
634
|
file: outPath,
|
|
261
635
|
typeKey: opts.typeKey,
|
|
262
636
|
deps: JSON.stringify(depsMap),
|
|
637
|
+
viewTypes: opts.viewTypes,
|
|
638
|
+
contentKind: opts.contentKind,
|
|
263
639
|
workspace: opts.workspace,
|
|
264
640
|
description: opts.description,
|
|
265
641
|
open: opts.open,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell.js","sourceRoot":"","sources":["../../src/commands/cell.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cell.js","sourceRoot":"","sources":["../../src/commands/cell.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,OAAO,GACR,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,iFAAiF;AAEjF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,eAAe;IACf,aAAa;IACb,gBAAgB;IAChB,YAAY;IACZ,QAAQ;CACA,CAAC;AAIX,yEAAyE;AACzE,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACrB,OAAQ,aAAmC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrD,CAAC,CAAE,CAAiB;QACpB,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,GAAuB;IAEvB,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,OAAO;QACL,GAAG,IAAI,GAAG,CACR,GAAG;aACA,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAC3B;KACF,CAAC;AACJ,CAAC;AAsCD,iFAAiF;AAEjF,0DAA0D;AAC1D,KAAK,UAAU,aAAa,CAAC,IAAwB;IACnD,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAC;YACH,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,GAAG,CAAC,KAAK,CAAC,qBAAqB,IAAI,MAAO,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAChF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IACD,GAAG,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;IAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CACtB,QAAgB;IAEhB,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC/C,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAGjD,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8DAA8D;AAC9D,SAAS,aAAa,CACpB,GAA4B,EAC5B,IAAY;IAEZ,MAAM,IAAI,GAAG;QACX,GAAG,CAAE,GAAG,CAAC,YAAuC,IAAI,EAAE,CAAC;QACvD,GAAG,CAAE,GAAG,CAAC,eAA0C,IAAI,EAAE,CAAC;QAC1D,GAAG,CAAE,GAAG,CAAC,gBAA2C,IAAI,EAAE,CAAC;KAC5D,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,CAAC,GAAG;QAAE,OAAO,QAAQ,CAAC;IAC1B,+CAA+C;IAC/C,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC;AACjD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;CAAG;AAE7C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;IAC/C,OAAO;IACP,WAAW;IACX,iBAAiB;CAClB,CAAC,CAAC;AAEH,+CAA+C;AAC/C,KAAK,UAAU,WAAW;IACxB,6EAA6E;IAC7E,yEAAyE;IACzE,yEAAyE;IACzE,2EAA2E;IAC3E,qEAAqE;IACrE,0EAA0E;IAC1E,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,eAAe,CACvB,0HAA0H,CAC3H,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,4BAA4B,GAA8B;IAC9D,QAAQ,EAAE,SAAS;IACnB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;CAClB,CAAC;AAEF,oGAAoG;AACpG,MAAM,YAAY,GAAG,2BAA2B,CAAC;AAEjD;;;;;;;;;GASG;AACH,SAAS,iBAAiB,CAAC,QAAgB;IACzC,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,KAAK,CAAC,KAAK;YACT,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACvD,IAAI,IAAI,CAAC,UAAU,EAAE,WAAW;oBAAE,OAAO,SAAS,CAAC;gBACnD,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE;oBACvC,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,UAAU,EAAE,QAAQ;oBACpB,UAAU,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;iBAClC,CAAC,CAAC;gBACH,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,MAAM,IAAI,eAAe,CACvB,IAAI,IAAI,CAAC,IAAI,kBAAkB,IAAI,CAAC,QAAQ,sDAAsD,QAAQ,mFAAmF,CAC9L,CAAC;gBACJ,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YACtD,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,2FAA2F;AAC3F,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAa,EACb,OAA0D,EAAE;IAE5D,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;IAEpC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,qEAAqE;QACrE,uEAAuE;QACvE,iDAAiD;QACjD,uEAAuE;QACvE,2EAA2E;QAC3E,4CAA4C;QAC5C,IAAI,MAAuE,CAAC;QAC5E,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC;gBAC3B,WAAW,EAAE,CAAC,KAAK,CAAC;gBACpB,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,SAAS;gBACnB,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,qBAAqB;gBAC7B,MAAM,EAAE,IAAI;gBACZ,gEAAgE;gBAChE,yDAAyD;gBACzD,MAAM,EAAE,EAAE,sBAAsB,EAAE,cAAc,EAAE;gBAClD,MAAM,EAAE,4BAA4B;gBACpC,OAAO,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC5C,QAAQ,EAAE,QAAQ;aACnB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,eAAe,CAAC,oBAAqB,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;QAC9E,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW;aAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aACtC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;IAC1C,CAAC;IAED,yEAAyE;IACzE,6DAA6D;IAC7D,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,MAAM,aAAa,GAA6B;QAC9C,IAAI,EAAE,mBAAmB;QACzB,KAAK,CAAC,KAAK;YACT,iEAAiE;YACjE,uEAAuE;YACvE,mEAAmE;YACnE,yEAAyE;YACzE,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC7C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3B,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC7C,CAAC,CAAC,CAAC;YACH,oDAAoD;YACpD,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC7C,kEAAkE;gBAClE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnC,MAAM,OAAO,GACX,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;oBAC5C,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;oBAC3B,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACf,MAAM,IAAI,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC;gBAClC,kEAAkE;gBAClE,iEAAiE;gBACjE,kDAAkD;gBAClD,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5D,OAAO,SAAS,CAAC;gBACnB,CAAC;gBACD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACtB,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC7C,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC;QACjC,WAAW,EAAE,CAAC,KAAK,CAAC;QACpB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,CAAC,aAAa,CAAC;QACxB,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,IAAI,eAAe,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,eAAe,CACvB,kEAAkE;YAChE,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC;SACvB,CAAC,IAAI,CAAC,IAAI,CAAC,+GAA+G,CAC5H,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;IAC/C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AACtE,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,MAAM,YAAY,GAAG,iCAAiC,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAe;IACtD,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;IACpC,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC;YAC5B,KAAK,EAAE;gBACL,QAAQ,EAAE,uCAAuC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG;gBAChF,UAAU,EAAE,OAAO;gBACnB,MAAM,EAAE,IAAI;aACb;YACD,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,GAAG,GAAyC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAClE,eAAe,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7D,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC;IAC5C,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAChE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAkC;IACtE,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACxD,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IACvD,OAAO;QACL,iBAAiB;QACjB,kBAAkB;QAClB,QAAQ;QACR,wBAAwB;QACxB,sEAAsE;QACtE,YAAY,GAAG,YAAY;QAC3B,SAAS;QACT,QAAQ;QACR,uBAAuB;QACvB,2BAA2B,EAAE,aAAa;QAC1C,SAAS;QACT,SAAS;QACT,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AASD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAAa,EACb,OAKI,EAAE;IAEN,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,sEAAsE;QACtE,sEAAsE;QACtE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,IAAI,eAAe,CACvB,oHAAoH,CACrH,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAClF,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1D,IAAI,QAAQ;gBAAE,OAAO,GAAG,QAAQ,CAAC;iBAC5B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC7B,MAAM,IAAI,eAAe,CACvB,YAAY,YAAY,0BAA0B,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAC1H,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,qBAAqB,CAAC;YACjC,EAAE;YACF,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;SAC/C,CAAC,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAC3C,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE;QACzD,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC,CAAC;IAEH,iEAAiE;IACjE,EAAE;IACF,uEAAuE;IACvE,0EAA0E;IAC1E,4EAA4E;IAC5E,wEAAwE;IACxE,4EAA4E;IAC5E,iEAAiE;IACjE,EAAE;IACF,+DAA+D;IAC/D,sEAAsE;IACtE,yEAAyE;IACzE,qEAAqE;IACrE,+CAA+C;IAC/C,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,UAAU,IAAI,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QACpE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAClE,CAAC;IAED,mCAAmC;IACnC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,IAAI,QAAgC,CAAC;QACrC,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAC;QAC7D,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAC5C,CAAC;AAED,iFAAiF;AAEjF,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAoB;IACnD,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,WAAW,CAAC;QAEtD,2BAA2B;QAC3B,IAAI,UAAU,GAA2B,EAAE,CAAC;QAC5C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC;gBACH,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAC;YAC/D,CAAC;YAAC,MAAM,CAAC;gBACP,GAAG,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;gBACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,4EAA4E;QAC5E,4EAA4E;QAC5E,8EAA8E;QAC9E,IAAI,WAAoC,CAAC;QACzC,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,GAAG,CAAC,KAAK,CACP,kCAAkC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW,IAAI,CACzF,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,WAAW,GAAG,MAAM,CAAC;QACvB,CAAC;QACD,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEjD,MAAM,IAAI,GAA4B;YACpC,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,cAAc;YACd,IAAI,EAAE,UAAU;SACjB,CAAC;QACF,IAAI,WAAW;YAAE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAChD,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC9C,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC1D,wEAAwE;QACxE,yEAAyE;QACzE,IAAI,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QACxD,IAAI,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE9D,MAAM,GAAG,GAAG,CAAC,MAAM,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE,GAAG,CAAC,CAGrD,CAAC;QAEF,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxE,IAAI,UAAU,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,kCAAkC,MAAM,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;YAC5E,IAAI,GAAG,CAAC,SAAS;gBAAE,GAAG,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAE1C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ;gBACE,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,UAAU;gBAChB,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjD,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACtD,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAED,GAAG,CAAC,OAAO,CAAC,iBAAiB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1C,GAAG,CAAC,GAAG,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC;QACjC,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC;YACpC,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACnD,IAAI,SAAS,KAAK,SAAS;YACzB,GAAG,CAAC,GAAG,CACL,iBAAiB,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAC7E,CAAC;QACJ,IAAI,WAAW,KAAK,SAAS;YAAE,GAAG,CAAC,GAAG,CAAC,mBAAmB,WAAW,EAAE,CAAC,CAAC;QACzE,4EAA4E;QAC5E,4EAA4E;QAC5E,8DAA8D;QAC9D,IAAI,SAAS,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YACzD,GAAG,CAAC,GAAG,CACL,oGAAoG,CACrG,CAAC;QACJ,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,2BAA2B,OAAO,iBAAiB,CAAC,CAAC;QAC7D,GAAG,CAAC,GAAG,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;QAEzD,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,KAAK,CAAC,SAAS,GAAI,CAAW,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,KAAa,EACb,IAAmB;IAEnB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,GAAG,CAAC,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC;QAC9B,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE;YAC7E,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QAEH,oBAAoB;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG;YACtB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC;YAClC,CAAC,CAAC,OAAO,CACL,OAAO,CAAC,QAAQ,CAAC,EACjB,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CACxB,UAAU,EACV,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAC5C,CACF,CAAC;QAEN,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAEtC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,OAAO,CAAC,aAAa,OAAO,EAAE,CAAC,CAAC;YACpC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACzD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,GAAG,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;gBAClD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC7C,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAChC,CAAC;YACD,GAAG,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,2CAA2C;QAC3C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,GAAG,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,GAAG,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACnC,MAAM,UAAU,CAAC;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,KAAK,CAAC,SAAS,GAAI,CAAW,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -11,22 +11,10 @@
|
|
|
11
11
|
* synap centrality status --json
|
|
12
12
|
* synap centrality recompute
|
|
13
13
|
*/
|
|
14
|
+
import { timeAgo } from "../lib/time-ago.js";
|
|
14
15
|
import chalk from "chalk";
|
|
15
16
|
import { log } from "../utils/logger.js";
|
|
16
17
|
import { resolveHubConfig, hubGet, hubPost } from "../lib/hub-client.js";
|
|
17
|
-
function timeAgo(isoDate) {
|
|
18
|
-
const diff = Date.now() - new Date(isoDate).getTime();
|
|
19
|
-
const minutes = Math.floor(diff / 60_000);
|
|
20
|
-
if (minutes < 1)
|
|
21
|
-
return "just now";
|
|
22
|
-
if (minutes < 60)
|
|
23
|
-
return `${minutes} minute${minutes === 1 ? "" : "s"} ago`;
|
|
24
|
-
const hours = Math.floor(minutes / 60);
|
|
25
|
-
if (hours < 24)
|
|
26
|
-
return `${hours} hour${hours === 1 ? "" : "s"} ago`;
|
|
27
|
-
const days = Math.floor(hours / 24);
|
|
28
|
-
return `${days} day${days === 1 ? "" : "s"} ago`;
|
|
29
|
-
}
|
|
30
18
|
export async function centralityStatus(opts) {
|
|
31
19
|
try {
|
|
32
20
|
const cfg = await resolveHubConfig(opts);
|