@synap-core/cli 1.7.0 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/agent-chat.d.ts +47 -0
- package/dist/commands/agent-chat.js +250 -0
- package/dist/commands/agent-chat.js.map +1 -0
- package/dist/commands/agent-run.d.ts +47 -0
- package/dist/commands/agent-run.js +301 -0
- package/dist/commands/agent-run.js.map +1 -0
- package/dist/commands/agents.js +85 -46
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/artifact.d.ts +26 -0
- package/dist/commands/artifact.js +76 -0
- package/dist/commands/artifact.js.map +1 -0
- package/dist/commands/automation.d.ts +47 -0
- package/dist/commands/automation.js +601 -0
- package/dist/commands/automation.js.map +1 -0
- package/dist/commands/bridge-setup.d.ts +66 -0
- package/dist/commands/bridge-setup.js +1112 -0
- package/dist/commands/bridge-setup.js.map +1 -0
- package/dist/commands/cap-connections.d.ts +28 -0
- package/dist/commands/cap-connections.js +224 -0
- package/dist/commands/cap-connections.js.map +1 -0
- package/dist/commands/capability.d.ts +89 -0
- package/dist/commands/capability.js +1523 -0
- package/dist/commands/capability.js.map +1 -0
- package/dist/commands/cell.d.ts +55 -0
- package/dist/commands/cell.js +277 -0
- package/dist/commands/cell.js.map +1 -0
- package/dist/commands/centrality.d.ts +20 -0
- package/dist/commands/centrality.js +94 -0
- package/dist/commands/centrality.js.map +1 -0
- package/dist/commands/connect.d.ts +2 -0
- package/dist/commands/connect.js +25 -10
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/connections.js +0 -16
- package/dist/commands/connections.js.map +1 -1
- package/dist/commands/context.d.ts +22 -0
- package/dist/commands/context.js +149 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/data-extra.d.ts +14 -0
- package/dist/commands/data-extra.js +185 -0
- package/dist/commands/data-extra.js.map +1 -0
- package/dist/commands/data.d.ts +14 -10
- package/dist/commands/data.js +353 -192
- package/dist/commands/data.js.map +1 -1
- package/dist/commands/diagnose.d.ts +20 -0
- package/dist/commands/diagnose.js +143 -0
- package/dist/commands/diagnose.js.map +1 -0
- package/dist/commands/digest.d.ts +17 -0
- package/dist/commands/digest.js +121 -0
- package/dist/commands/digest.js.map +1 -0
- package/dist/commands/discover.d.ts +2 -0
- package/dist/commands/discover.js +25 -8
- package/dist/commands/discover.js.map +1 -1
- package/dist/commands/doc.d.ts +39 -0
- package/dist/commands/doc.js +130 -0
- package/dist/commands/doc.js.map +1 -0
- package/dist/commands/events.d.ts +26 -0
- package/dist/commands/events.js +69 -0
- package/dist/commands/events.js.map +1 -0
- package/dist/commands/explain.d.ts +21 -0
- package/dist/commands/explain.js +251 -0
- package/dist/commands/explain.js.map +1 -0
- package/dist/commands/facet.d.ts +29 -0
- package/dist/commands/facet.js +113 -0
- package/dist/commands/facet.js.map +1 -0
- package/dist/commands/graph.d.ts +18 -0
- package/dist/commands/graph.js +74 -0
- package/dist/commands/graph.js.map +1 -0
- package/dist/commands/home.d.ts +12 -0
- package/dist/commands/home.js +54 -0
- package/dist/commands/home.js.map +1 -0
- package/dist/commands/import.d.ts +38 -0
- package/dist/commands/import.js +440 -0
- package/dist/commands/import.js.map +1 -0
- package/dist/commands/init.d.ts +0 -2
- package/dist/commands/init.js +97 -118
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/keys.d.ts +9 -0
- package/dist/commands/keys.js +78 -0
- package/dist/commands/keys.js.map +1 -0
- package/dist/commands/knowledge.d.ts +34 -18
- package/dist/commands/knowledge.js +355 -57
- package/dist/commands/knowledge.js.map +1 -1
- package/dist/commands/launch.d.ts +50 -0
- package/dist/commands/launch.js +790 -0
- package/dist/commands/launch.js.map +1 -0
- package/dist/commands/lens.d.ts +45 -0
- package/dist/commands/lens.js +386 -0
- package/dist/commands/lens.js.map +1 -0
- package/dist/commands/market.d.ts +209 -0
- package/dist/commands/market.js +1368 -0
- package/dist/commands/market.js.map +1 -0
- package/dist/commands/mcp.d.ts +42 -0
- package/dist/commands/mcp.js +184 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/observe.d.ts +9 -0
- package/dist/commands/observe.js +93 -0
- package/dist/commands/observe.js.map +1 -0
- package/dist/commands/open.d.ts +32 -0
- package/dist/commands/open.js +85 -0
- package/dist/commands/open.js.map +1 -0
- package/dist/commands/pod.d.ts +100 -0
- package/dist/commands/pod.js +359 -0
- package/dist/commands/pod.js.map +1 -0
- package/dist/commands/pods.d.ts +6 -0
- package/dist/commands/pods.js +160 -50
- package/dist/commands/pods.js.map +1 -1
- package/dist/commands/proposals-actions.d.ts +7 -0
- package/dist/commands/proposals-actions.js +77 -0
- package/dist/commands/proposals-actions.js.map +1 -0
- package/dist/commands/providers.d.ts +38 -0
- package/dist/commands/providers.js +170 -0
- package/dist/commands/providers.js.map +1 -0
- package/dist/commands/purge.d.ts +23 -0
- package/dist/commands/purge.js +148 -0
- package/dist/commands/purge.js.map +1 -0
- package/dist/commands/raycast.d.ts +15 -0
- package/dist/commands/raycast.js +153 -0
- package/dist/commands/raycast.js.map +1 -0
- package/dist/commands/sessions.d.ts +31 -0
- package/dist/commands/sessions.js +248 -0
- package/dist/commands/sessions.js.map +1 -0
- package/dist/commands/skill-manage.d.ts +21 -0
- package/dist/commands/skill-manage.js +195 -0
- package/dist/commands/skill-manage.js.map +1 -0
- package/dist/commands/skills-commands.d.ts +26 -0
- package/dist/commands/skills-commands.js +187 -0
- package/dist/commands/skills-commands.js.map +1 -0
- package/dist/commands/skills.d.ts +26 -0
- package/dist/commands/skills.js +196 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/status.d.ts +3 -1
- package/dist/commands/status.js +231 -41
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/statusline.d.ts +24 -0
- package/dist/commands/statusline.js +450 -0
- package/dist/commands/statusline.js.map +1 -0
- package/dist/commands/subscribe.d.ts +19 -0
- package/dist/commands/subscribe.js +91 -0
- package/dist/commands/subscribe.js.map +1 -0
- package/dist/commands/tools.d.ts +30 -0
- package/dist/commands/tools.js +315 -0
- package/dist/commands/tools.js.map +1 -0
- package/dist/commands/versions.d.ts +27 -0
- package/dist/commands/versions.js +277 -0
- package/dist/commands/versions.js.map +1 -0
- package/dist/commands/view.d.ts +57 -0
- package/dist/commands/view.js +195 -0
- package/dist/commands/view.js.map +1 -0
- package/dist/commands/whoami.d.ts +21 -0
- package/dist/commands/whoami.js +129 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/index.d.ts +3 -4
- package/dist/index.js +1524 -202
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-templates.d.ts +25 -0
- package/dist/lib/agent-templates.js +148 -0
- package/dist/lib/agent-templates.js.map +1 -0
- package/dist/lib/agents-config.d.ts +4 -1
- package/dist/lib/agents-config.js +19 -2
- package/dist/lib/agents-config.js.map +1 -1
- package/dist/lib/approval-poll.d.ts +42 -0
- package/dist/lib/approval-poll.js +52 -0
- package/dist/lib/approval-poll.js.map +1 -0
- package/dist/lib/auth.d.ts +29 -6
- package/dist/lib/auth.js +105 -94
- package/dist/lib/auth.js.map +1 -1
- package/dist/lib/bundle-version.d.ts +11 -0
- package/dist/lib/bundle-version.js +33 -0
- package/dist/lib/bundle-version.js.map +1 -0
- package/dist/lib/capture-lane.d.ts +67 -0
- package/dist/lib/capture-lane.js +136 -0
- package/dist/lib/capture-lane.js.map +1 -0
- package/dist/lib/cp-packages.d.ts +121 -0
- package/dist/lib/cp-packages.js +218 -0
- package/dist/lib/cp-packages.js.map +1 -0
- package/dist/lib/describe-lens.d.ts +46 -0
- package/dist/lib/describe-lens.js +33 -0
- package/dist/lib/describe-lens.js.map +1 -0
- package/dist/lib/hub-client.d.ts +84 -1
- package/dist/lib/hub-client.js +502 -22
- package/dist/lib/hub-client.js.map +1 -1
- package/dist/lib/installed.d.ts +51 -0
- package/dist/lib/installed.js +70 -0
- package/dist/lib/installed.js.map +1 -0
- package/dist/lib/next-steps.d.ts +61 -0
- package/dist/lib/next-steps.js +146 -0
- package/dist/lib/next-steps.js.map +1 -0
- package/dist/lib/pod.d.ts +104 -19
- package/dist/lib/pod.js +245 -57
- package/dist/lib/pod.js.map +1 -1
- package/dist/lib/project-ref.d.ts +95 -0
- package/dist/lib/project-ref.js +144 -0
- package/dist/lib/project-ref.js.map +1 -0
- package/dist/lib/project.d.ts +35 -0
- package/dist/lib/project.js +39 -0
- package/dist/lib/project.js.map +1 -0
- package/dist/lib/session-lens.d.ts +33 -0
- package/dist/lib/session-lens.js +76 -0
- package/dist/lib/session-lens.js.map +1 -0
- package/dist/lib/skill-import.d.ts +40 -0
- package/dist/lib/skill-import.js +203 -0
- package/dist/lib/skill-import.js.map +1 -0
- package/dist/lib/skills-installer.d.ts +16 -5
- package/dist/lib/skills-installer.js +132 -18
- package/dist/lib/skills-installer.js.map +1 -1
- package/dist/lib/suite.d.ts +28 -0
- package/dist/lib/suite.js +29 -0
- package/dist/lib/suite.js.map +1 -0
- package/dist/lib/superwhisper-import.d.ts +40 -0
- package/dist/lib/superwhisper-import.js +389 -0
- package/dist/lib/superwhisper-import.js.map +1 -0
- package/dist/lib/targets.d.ts +66 -2
- package/dist/lib/targets.js +914 -132
- package/dist/lib/targets.js.map +1 -1
- package/dist/lib/unwrapList.d.ts +1 -0
- package/dist/lib/unwrapList.js +20 -0
- package/dist/lib/unwrapList.js.map +1 -0
- package/dist/utils/logger.d.ts +2 -0
- package/dist/utils/logger.js +10 -2
- package/dist/utils/logger.js.map +1 -1
- package/package.json +10 -4
- package/skills/agent-os/SKILL.md +212 -0
- package/skills/manifest.json +5 -0
- package/skills/onboard/SKILL.md +186 -0
- package/skills/synap/SKILL.md +1524 -104
- package/skills/synap/_order.txt +37 -0
- package/skills/synap/_skill.yaml +24 -0
- package/skills/synap/authentication.md +10 -0
- package/skills/synap/automations.md +264 -0
- package/skills/synap/capabilities.md +107 -0
- package/skills/synap/capture.md +10 -0
- package/skills/synap/cli-operations.md +107 -0
- package/skills/synap/common-mistakes.md +12 -0
- package/skills/synap/creative-loop.md +43 -0
- package/skills/synap/crm.md +117 -0
- package/skills/synap/diagnostics.md +35 -0
- package/skills/synap/digesting-a-channel.md +38 -0
- package/skills/synap/document-embeds.md +123 -0
- package/skills/synap/escalation-ladder.md +71 -0
- package/skills/synap/focus-sessions.md +47 -0
- package/skills/synap/governance-rules.md +64 -0
- package/skills/synap/governance.md +6 -6
- package/skills/synap/graph-gardening.md +21 -0
- package/skills/synap/inline-patterns.md +38 -0
- package/skills/synap/lenses.md +38 -0
- package/skills/synap/linking-principle.md +39 -0
- package/skills/synap/linking.md +1 -0
- package/skills/synap/mental-model.md +45 -0
- package/skills/synap/more.md +7 -0
- package/skills/synap/multi-entity-capture.md +10 -0
- package/skills/synap/next-action.md +37 -0
- package/skills/synap/north-star.md +17 -0
- package/skills/synap/operating-mode-rules.md +45 -0
- package/skills/synap/operating-mode.md +9 -0
- package/skills/synap/quick-reference.md +67 -0
- package/skills/synap/reading.md +43 -0
- package/skills/synap/recap.md +21 -0
- package/skills/synap/reflexes.md +46 -0
- package/skills/synap/response-style.md +21 -0
- package/skills/synap/scope.md +13 -0
- package/skills/synap/showing.md +17 -0
- package/skills/synap/user-model.md +25 -0
- package/skills/synap/viewframe-cells.md +290 -0
- package/skills/synap/work-flow.md +113 -0
- package/skills/synap/worked-examples.md +53 -0
- package/skills/synap/workspace-design.md +45 -0
- package/skills/synap/workspace-edges.md +49 -0
- package/skills/synap/writes.md +156 -0
- package/skills/synap-schema/SKILL.md +97 -6
- package/skills/synap-schema/_order.txt +13 -0
- package/skills/synap-schema/_skill.yaml +22 -0
- package/skills/synap-schema/before-you-touch.md +14 -0
- package/skills/synap-schema/common-mistakes.md +9 -0
- package/skills/synap-schema/creating-profiles.md +17 -0
- package/skills/synap-schema/discover-profiles.md +24 -0
- package/skills/synap-schema/entity-scope.md +8 -0
- package/skills/synap-schema/extend-vs-create.md +31 -0
- package/skills/synap-schema/more.md +6 -0
- package/skills/synap-schema/overlay-properties.md +22 -0
- package/skills/synap-schema/profiles.md +3 -0
- package/skills/synap-schema/property-defs.md +29 -0
- package/skills/synap-schema/read-before-write.md +50 -0
- package/skills/synap-schema/relations.md +18 -0
- package/skills/synap-schema/worked-example.md +30 -0
- package/skills/synap-ui/SKILL.md +38 -11
- package/skills/synap-ui/_order.txt +13 -0
- package/skills/synap-ui/_skill.yaml +23 -0
- package/skills/synap-ui/ai-companion.md +27 -0
- package/skills/synap-ui/arranging-bento.md +8 -0
- package/skills/synap-ui/before-you-build.md +20 -0
- package/skills/synap-ui/bento-layouts.md +35 -0
- package/skills/synap-ui/common-mistakes.md +10 -0
- package/skills/synap-ui/creating-views.md +26 -0
- package/skills/synap-ui/four-builds.md +24 -0
- package/skills/synap-ui/more.md +7 -0
- package/skills/synap-ui/proposing-vs-extending.md +11 -0
- package/skills/synap-ui/view-list.md +24 -0
- package/skills/synap-ui/views.md +3 -0
- package/skills/synap-ui/worked-example.md +18 -0
- package/skills/synap-ui/workspaces.md +47 -0
- package/templates/automations/bookmark-enrichment.automation.json +44 -0
- package/templates/automations/mail-feed.automation.json +86 -0
- package/templates/automations/url-bookmark-capture.automation.json +70 -0
- package/templates/skills/README.md +21 -0
- package/templates/skills/authoring-automations/SKILL.md +95 -0
- package/templates/skills/authoring-automations/reference/node-matrix.md +49 -0
- package/templates/skills/authoring-capabilities/SKILL.md +93 -0
- package/templates/skills/authoring-capabilities/reference/template-anatomy.md +70 -0
- package/templates/skills/authoring-playbooks/SKILL.md +102 -0
- package/templates/skills/authoring-playbooks/reference/stages-contract.md +35 -0
- package/templates/skills/authoring-playbooks/reference/worked-example.md +64 -0
- package/templates/skills/bookmark-enrichment/SKILL.md +40 -0
- package/templates/skills/coordinating-agents/SKILL.md +32 -0
- package/templates/skills/coordinating-branches/SKILL.md +27 -0
- package/templates/skills/mapping-the-server/SKILL.md +54 -0
- package/templates/skills/reading-client-progress/SKILL.md +65 -0
- package/templates/skills/routing-to-channels/SKILL.md +54 -0
- package/templates/skills/stellar-scf-grants-advisor/ASSOCIATE-CHEATSHEET.md +133 -0
- package/templates/skills/stellar-scf-grants-advisor/ASSOCIATE-ONBOARDING-GUIDE.md +761 -0
- package/templates/skills/stellar-scf-grants-advisor/CLIENT-FAQ.md +181 -0
- package/templates/skills/stellar-scf-grants-advisor/PARTNER-HANDOVER.md +130 -0
- package/templates/skills/stellar-scf-grants-advisor/SKILL.md +102 -0
- package/templates/skills/stellar-scf-grants-advisor/examples/README.md +43 -0
- package/templates/skills/stellar-scf-grants-advisor/examples/chat-summary-templates.md +158 -0
- package/templates/skills/stellar-scf-grants-advisor/examples/corpus-comparable-rows.md +136 -0
- package/templates/skills/stellar-scf-grants-advisor/examples/q10-team-rewrites.md +109 -0
- package/templates/skills/stellar-scf-grants-advisor/examples/q2-description-rewrites.md +88 -0
- package/templates/skills/stellar-scf-grants-advisor/examples/q6-integration-rewrites.md +107 -0
- package/templates/skills/stellar-scf-grants-advisor/examples/tranche-structures.md +176 -0
- package/templates/skills/stellar-scf-grants-advisor/reference/01-methodology.md +96 -0
- package/templates/skills/stellar-scf-grants-advisor/reference/02-scoring-framework.md +199 -0
- package/templates/skills/stellar-scf-grants-advisor/reference/03-rejection-patterns.md +241 -0
- package/templates/skills/stellar-scf-grants-advisor/reference/04-winner-patterns.md +120 -0
- package/templates/skills/stellar-scf-grants-advisor/reference/05-comeback-patterns.md +92 -0
- package/templates/skills/stellar-scf-grants-advisor/reference/06-budget-benchmarks.md +125 -0
- package/templates/skills/stellar-scf-grants-advisor/reference/07-integration-list.md +147 -0
- package/templates/skills/stellar-scf-grants-advisor/reference/08-abstract-fields.md +258 -0
- package/templates/skills/stellar-scf-grants-advisor/reference/09-build-fields.md +259 -0
- package/templates/skills/stellar-scf-grants-advisor/reference/10-corpus-winners.md +135 -0
- package/templates/skills/stellar-scf-grants-advisor/reference/11-corpus-rejects.md +267 -0
- package/templates/skills/stellar-scf-grants-advisor/reference/12-client-communication.md +131 -0
- package/templates/skills/stellar-scf-grants-advisor/reference/13-excel-output-spec.md +199 -0
- package/templates/skills/stellar-scf-grants-advisor/reference/14-worked-examples.md +160 -0
- package/templates/skills/stellar-scf-grants-advisor/templates/abstract-review-builder.py +253 -0
- package/templates/skills/stellar-scf-grants-advisor/templates/build-review-builder.py +213 -0
- package/dist/commands/finish.d.ts +0 -25
- package/dist/commands/finish.js +0 -274
- package/dist/commands/finish.js.map +0 -1
- package/dist/commands/openclaw.d.ts +0 -40
- package/dist/commands/openclaw.js +0 -1148
- package/dist/commands/openclaw.js.map +0 -1
- package/dist/commands/security-audit.d.ts +0 -12
- package/dist/commands/security-audit.js +0 -100
- package/dist/commands/security-audit.js.map +0 -1
- package/dist/lib/hardening.d.ts +0 -18
- package/dist/lib/hardening.js +0 -214
- package/dist/lib/hardening.js.map +0 -1
- package/dist/lib/templates.d.ts +0 -11
- package/dist/lib/templates.js +0 -13
- package/dist/lib/templates.js.map +0 -1
- package/dist/templates/agent-os.json +0 -3090
- package/node_modules/@synap/hub-rest-client/dist/index.cjs +0 -881
- package/node_modules/@synap/hub-rest-client/dist/index.d.cts +0 -907
- package/node_modules/@synap/hub-rest-client/dist/index.d.ts +0 -907
- package/node_modules/@synap/hub-rest-client/dist/index.js +0 -851
- package/node_modules/@synap/hub-rest-client/package.json +0 -45
- package/node_modules/@synap/hub-rest-client/src/client.ts +0 -1143
- package/node_modules/@synap/hub-rest-client/src/errors.ts +0 -30
- package/node_modules/@synap/hub-rest-client/src/index.ts +0 -111
- package/node_modules/@synap/hub-rest-client/src/setup.ts +0 -77
- package/node_modules/@synap/hub-rest-client/src/types.ts +0 -639
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { log } from "../utils/logger.js";
|
|
3
|
+
import { resolveHubConfig, hubGet, hubPost, hubDelete, renderHubError } from "../lib/hub-client.js";
|
|
4
|
+
import { resolveActiveLens } from "../lib/session-lens.js";
|
|
5
|
+
import { reportWrite } from "../lib/capture-lane.js";
|
|
6
|
+
import { unwrapList } from "../lib/unwrapList.js";
|
|
7
|
+
/** Fetch an entity's attached roles. Shared with `show <id>`'s Roles section. */
|
|
8
|
+
export async function fetchFacets(entityId, cfg) {
|
|
9
|
+
const res = (await hubGet(`/entities/${entityId}/facets`, {}, cfg));
|
|
10
|
+
return unwrapList(res, ["facets"]);
|
|
11
|
+
}
|
|
12
|
+
/** Render the "Roles (n)" heading + each role's name/status/properties. */
|
|
13
|
+
export function renderRoles(facets) {
|
|
14
|
+
log.heading(`Roles (${facets.length})`);
|
|
15
|
+
for (const item of facets) {
|
|
16
|
+
const name = item.profile?.displayName ?? item.profile?.slug ?? "role";
|
|
17
|
+
const status = item.facet.status ? chalk.dim(` [${item.facet.status}]`) : "";
|
|
18
|
+
log.info(`${chalk.bold(name)}${status} ${chalk.dim(item.facet.id.slice(0, 8))}`);
|
|
19
|
+
for (const [k, v] of Object.entries(item.facet.properties ?? {})) {
|
|
20
|
+
if (v !== null && v !== undefined && v !== "")
|
|
21
|
+
log.dim(` ${k}: ${String(v)}`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
// ─── facet attach ─────────────────────────────────────────────────────────────
|
|
26
|
+
export async function attachFacet(entityId, roleSlug, opts) {
|
|
27
|
+
try {
|
|
28
|
+
const cfg = await resolveHubConfig(opts);
|
|
29
|
+
const workspaceId = opts.workspace ?? resolveActiveLens()?.workspaceId ?? cfg.workspaceId;
|
|
30
|
+
const properties = {};
|
|
31
|
+
for (const kv of opts.property ?? []) {
|
|
32
|
+
const idx = kv.indexOf("=");
|
|
33
|
+
if (idx === -1)
|
|
34
|
+
continue;
|
|
35
|
+
properties[kv.slice(0, idx)] = kv.slice(idx + 1);
|
|
36
|
+
}
|
|
37
|
+
const res = (await hubPost(`/entities/${entityId}/facets`, {
|
|
38
|
+
profileSlug: roleSlug,
|
|
39
|
+
...(Object.keys(properties).length > 0 ? { properties } : {}),
|
|
40
|
+
...(workspaceId ? { workspaceId } : {}),
|
|
41
|
+
}, cfg));
|
|
42
|
+
// Same governed-write reporter every other write uses (destination line,
|
|
43
|
+
// "proposed" copy, --json `outcome`/lane fields) — no bespoke messaging.
|
|
44
|
+
await reportWrite(res, {
|
|
45
|
+
label: `Attached role: ${chalk.bold(roleSlug)}`,
|
|
46
|
+
lane: "work",
|
|
47
|
+
workspaceId,
|
|
48
|
+
cfg,
|
|
49
|
+
json: opts.json,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
renderHubError(e);
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// ─── facet list ───────────────────────────────────────────────────────────────
|
|
58
|
+
export async function listFacets(entityId, opts) {
|
|
59
|
+
try {
|
|
60
|
+
const cfg = await resolveHubConfig(opts);
|
|
61
|
+
const facets = await fetchFacets(entityId, cfg);
|
|
62
|
+
if (opts.json) {
|
|
63
|
+
console.log(JSON.stringify({ facets }, null, 2));
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (facets.length === 0) {
|
|
67
|
+
log.dim("No roles attached to this entity.");
|
|
68
|
+
log.dim(` Attach one with: synap facet attach ${entityId} <role-slug>`);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
renderRoles(facets);
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
renderHubError(e);
|
|
75
|
+
process.exit(1);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// ─── facet detach ─────────────────────────────────────────────────────────────
|
|
79
|
+
export async function detachFacet(facetOrEntityId, opts) {
|
|
80
|
+
try {
|
|
81
|
+
const cfg = await resolveHubConfig(opts);
|
|
82
|
+
let facetId = facetOrEntityId;
|
|
83
|
+
let roleLabel = ""; // known only in the `--entity <id> --role <slug>` form
|
|
84
|
+
if (opts.entity && opts.role) {
|
|
85
|
+
const facets = await fetchFacets(opts.entity, cfg);
|
|
86
|
+
const match = facets.find((f) => f.profile?.slug === opts.role);
|
|
87
|
+
if (!match) {
|
|
88
|
+
console.error(chalk.red(`No role '${opts.role}' attached to entity ${opts.entity}`));
|
|
89
|
+
process.exit(1);
|
|
90
|
+
}
|
|
91
|
+
facetId = match.facet.id;
|
|
92
|
+
roleLabel = opts.role;
|
|
93
|
+
}
|
|
94
|
+
const res = (await hubDelete(`/facets/${facetId}`, cfg));
|
|
95
|
+
// Name the role when we know it; only the bare `detach <facetId>` form falls
|
|
96
|
+
// back to the id prefix.
|
|
97
|
+
const label = roleLabel
|
|
98
|
+
? `Detached role: ${chalk.bold(roleLabel)}`
|
|
99
|
+
: `Detached role ${chalk.dim(facetId.slice(0, 8))}`;
|
|
100
|
+
await reportWrite(res, {
|
|
101
|
+
label,
|
|
102
|
+
lane: "work",
|
|
103
|
+
workspaceId: resolveActiveLens()?.workspaceId ?? cfg.workspaceId,
|
|
104
|
+
cfg,
|
|
105
|
+
json: opts.json,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
catch (e) {
|
|
109
|
+
renderHubError(e);
|
|
110
|
+
process.exit(1);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=facet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"facet.js","sourceRoot":"","sources":["../../src/commands/facet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* synap graph
|
|
3
|
+
*
|
|
4
|
+
* BFS graph traversal from a starting entity via the Hub Protocol.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* synap graph --entity <id> # traversal depth 2
|
|
8
|
+
* synap graph --entity <id> --depth 3
|
|
9
|
+
* synap graph --entity <id> --json
|
|
10
|
+
*/
|
|
11
|
+
export interface GraphTraverseOpts {
|
|
12
|
+
entity: string;
|
|
13
|
+
depth?: string;
|
|
14
|
+
json?: boolean;
|
|
15
|
+
podUrl?: string;
|
|
16
|
+
apiKey?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function graphTraverse(opts: GraphTraverseOpts): Promise<void>;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* synap graph
|
|
3
|
+
*
|
|
4
|
+
* BFS graph traversal from a starting entity via the Hub Protocol.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* synap graph --entity <id> # traversal depth 2
|
|
8
|
+
* synap graph --entity <id> --depth 3
|
|
9
|
+
* synap graph --entity <id> --json
|
|
10
|
+
*/
|
|
11
|
+
import chalk from "chalk";
|
|
12
|
+
import { log } from "../utils/logger.js";
|
|
13
|
+
import { resolveHubConfig, resolveUserId, hubGet } from "../lib/hub-client.js";
|
|
14
|
+
import { unwrapList } from "../lib/unwrapList.js";
|
|
15
|
+
export async function graphTraverse(opts) {
|
|
16
|
+
try {
|
|
17
|
+
const cfg = await resolveHubConfig(opts);
|
|
18
|
+
const userId = await resolveUserId(cfg);
|
|
19
|
+
const maxDepth = parseInt(opts.depth ?? "2", 10);
|
|
20
|
+
const results = await hubGet("/graph/traverse", {
|
|
21
|
+
startEntityId: opts.entity,
|
|
22
|
+
maxDepth,
|
|
23
|
+
userId,
|
|
24
|
+
}, cfg);
|
|
25
|
+
if (opts.json) {
|
|
26
|
+
console.log(JSON.stringify(results, null, 2));
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
// The API returns a flat array of records — each record is an entity or
|
|
30
|
+
// relation row from the traversal. Split by whether it has a `sourceEntityId`
|
|
31
|
+
// (relation) or not (node).
|
|
32
|
+
const nodes = [];
|
|
33
|
+
const edges = [];
|
|
34
|
+
for (const row of unwrapList(results)) {
|
|
35
|
+
if (row.sourceEntityId || row.targetEntityId) {
|
|
36
|
+
edges.push(row);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
nodes.push(row);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
console.log(chalk.bold(`\nGraph from ${opts.entity} (depth ${maxDepth})`));
|
|
43
|
+
console.log(chalk.bold(`\nNodes (${nodes.length}):`));
|
|
44
|
+
if (nodes.length === 0) {
|
|
45
|
+
log.dim("(none)");
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
for (const n of nodes) {
|
|
49
|
+
const profile = String(n.profileSlug ?? n.entityType ?? n.type ?? "entity").padEnd(14);
|
|
50
|
+
const title = String(n.title ?? n.name ?? "–").slice(0, 40).padEnd(42);
|
|
51
|
+
const id = chalk.dim(String(n.id ?? "").slice(0, 8));
|
|
52
|
+
console.log(` ${chalk.cyan("•")} ${profile} ${title} ${id}`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
console.log(chalk.bold(`\nEdges (${edges.length}):`));
|
|
56
|
+
if (edges.length === 0) {
|
|
57
|
+
log.dim("(none)");
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
for (const e of edges) {
|
|
61
|
+
const relType = String(e.type ?? e.relationType ?? e.relationshipType ?? "–").padEnd(22);
|
|
62
|
+
const src = String(e.sourceEntityId ?? "?").slice(0, 8);
|
|
63
|
+
const tgt = String(e.targetEntityId ?? "?").slice(0, 8);
|
|
64
|
+
console.log(` ${chalk.dim(relType)} ${chalk.dim(src)} → ${chalk.dim(tgt)}`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
console.log("");
|
|
68
|
+
}
|
|
69
|
+
catch (e) {
|
|
70
|
+
log.error("Error: " + e.message);
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/commands/graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* synap home
|
|
3
|
+
*
|
|
4
|
+
* Show the current bento layout of the active workspace's home screen.
|
|
5
|
+
* Useful at the start of an agent session to understand what's already
|
|
6
|
+
* present before proposing UI changes.
|
|
7
|
+
*/
|
|
8
|
+
import type { BaseOpts } from "./data.js";
|
|
9
|
+
export interface HomeOpts extends BaseOpts {
|
|
10
|
+
workspace?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function showHome(opts: HomeOpts): Promise<void>;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* synap home
|
|
3
|
+
*
|
|
4
|
+
* Show the current bento layout of the active workspace's home screen.
|
|
5
|
+
* Useful at the start of an agent session to understand what's already
|
|
6
|
+
* present before proposing UI changes.
|
|
7
|
+
*/
|
|
8
|
+
import chalk from "chalk";
|
|
9
|
+
import { log } from "../utils/logger.js";
|
|
10
|
+
import { resolveHubConfig, hubGet } from "../lib/hub-client.js";
|
|
11
|
+
import { getAgentWorkspaceRouting } from "../lib/pod.js";
|
|
12
|
+
export async function showHome(opts) {
|
|
13
|
+
try {
|
|
14
|
+
const cfg = await resolveHubConfig(opts);
|
|
15
|
+
const routing = getAgentWorkspaceRouting();
|
|
16
|
+
const workspaceId = opts.workspace ??
|
|
17
|
+
routing?.memoryWorkspaceId ??
|
|
18
|
+
cfg.workspaceId;
|
|
19
|
+
if (!workspaceId) {
|
|
20
|
+
console.error(chalk.red("Error: no workspace resolved. Pass --workspace <id> or run `synap context` to set active workspace."));
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
const res = (await hubGet(`/workspaces/${workspaceId}/home`, {}, cfg));
|
|
24
|
+
if (opts.json) {
|
|
25
|
+
console.log(JSON.stringify(res, null, 2));
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const viewLabel = res.homeViewName
|
|
29
|
+
? `${res.homeViewName} (${res.homeViewId ?? "no view"})`
|
|
30
|
+
: res.homeViewId ?? chalk.dim("none");
|
|
31
|
+
log.info(`Home layout — workspace ${chalk.bold(workspaceId.slice(0, 8))}`);
|
|
32
|
+
console.log(` View: ${chalk.cyan(viewLabel)}`);
|
|
33
|
+
console.log(` Blocks: ${res.blocks.length}`);
|
|
34
|
+
if (res.blockSummary.length === 0) {
|
|
35
|
+
console.log(chalk.dim(" (empty — no bento blocks on home yet)"));
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
console.log("");
|
|
39
|
+
for (const b of res.blockSummary) {
|
|
40
|
+
const kindLabel = chalk.dim(`[${b.kind}]`);
|
|
41
|
+
const typeLabel = b.typeKey ? chalk.cyan(b.typeKey) : "";
|
|
42
|
+
const nameLabel = b.label ? chalk.white(b.label) : chalk.dim("unlabelled");
|
|
43
|
+
const idLabel = b.id ? chalk.dim(` ${b.id.slice(0, 8)}`) : "";
|
|
44
|
+
console.log(` ${kindLabel} ${typeLabel} ${nameLabel}${idLabel}`);
|
|
45
|
+
}
|
|
46
|
+
console.log("");
|
|
47
|
+
console.log(chalk.dim("Tip: use `create_proposal` with targetType:\"workspace_home\" to propose adding or removing blocks."));
|
|
48
|
+
}
|
|
49
|
+
catch (e) {
|
|
50
|
+
log.error("Error: " + e.message);
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=home.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"home.js","sourceRoot":"","sources":["../../src/commands/home.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* synap import — "capture, but for files and URLs".
|
|
3
|
+
*
|
|
4
|
+
* Routes EVERY input (local file, folder, or http(s) URL) through the SAME AI
|
|
5
|
+
* capture centerpiece as free-text `capture`:
|
|
6
|
+
* POST /capture/structure (AI entity extraction + workspace/project routing)
|
|
7
|
+
* POST /capture/execute (materialize the chosen proposals + relations)
|
|
8
|
+
*
|
|
9
|
+
* One item per file/url. This inherits AI entity extraction, the relation graph,
|
|
10
|
+
* workspace routing AND project routing for free — no separate /import/* path.
|
|
11
|
+
*
|
|
12
|
+
* Inputs:
|
|
13
|
+
* - http(s) URL → sent as `url`
|
|
14
|
+
* - directory → recursively globbed (skips node_modules/.git/dotfiles)
|
|
15
|
+
* - file → text-like → utf8, everything else → base64
|
|
16
|
+
*
|
|
17
|
+
* Routing: --workspace / --project override the AI's suggestion; otherwise the
|
|
18
|
+
* AI-proposed targetWorkspaceId / targetProjectId from /capture/structure win.
|
|
19
|
+
*/
|
|
20
|
+
export interface ImportOpts {
|
|
21
|
+
workspace?: string;
|
|
22
|
+
project?: string;
|
|
23
|
+
dryRun?: boolean;
|
|
24
|
+
yes?: boolean;
|
|
25
|
+
session?: boolean;
|
|
26
|
+
json?: boolean;
|
|
27
|
+
podUrl?: string;
|
|
28
|
+
apiKey?: string;
|
|
29
|
+
/** Adapter name: "superwhisper" enables paired store-first path. */
|
|
30
|
+
source?: string;
|
|
31
|
+
/** Skip AI structure; store corpus units (Superwhisper). */
|
|
32
|
+
storeFirst?: boolean;
|
|
33
|
+
withAudio?: boolean;
|
|
34
|
+
limit?: number;
|
|
35
|
+
concurrency?: number;
|
|
36
|
+
resume?: boolean;
|
|
37
|
+
}
|
|
38
|
+
export declare function importData(inputs: string[], opts: ImportOpts): Promise<void>;
|