@anchrd/intel 0.59.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/README.md +496 -0
- package/bin/intel.mjs +134 -0
- package/dist/adapters/cloudflare/cloudflare-flow-workflow.d.ts +42 -0
- package/dist/adapters/cloudflare/cloudflare-flow-workflow.js +89 -0
- package/dist/adapters/cloudflare/cloudflare.d.ts +29 -0
- package/dist/adapters/cloudflare/cloudflare.js +416 -0
- package/dist/adapters/cloudflare/cloudflare.types.d.ts +31 -0
- package/dist/adapters/cloudflare/cloudflare.types.js +1 -0
- package/dist/adapters/content/content.d.ts +3 -0
- package/dist/adapters/content/content.js +128 -0
- package/dist/adapters/content/content.types.d.ts +38 -0
- package/dist/adapters/content/content.types.js +1 -0
- package/dist/adapters/db/db-audit.d.ts +62 -0
- package/dist/adapters/db/db-audit.js +150 -0
- package/dist/adapters/db/db-boards.d.ts +6 -0
- package/dist/adapters/db/db-boards.js +324 -0
- package/dist/adapters/db/db-feed.d.ts +30 -0
- package/dist/adapters/db/db-feed.js +276 -0
- package/dist/adapters/db/db-flows.d.ts +42 -0
- package/dist/adapters/db/db-flows.js +1311 -0
- package/dist/adapters/db/db-grants.d.ts +133 -0
- package/dist/adapters/db/db-grants.js +269 -0
- package/dist/adapters/db/db-indexing.d.ts +3 -0
- package/dist/adapters/db/db-indexing.js +200 -0
- package/dist/adapters/db/db-oauth.d.ts +3 -0
- package/dist/adapters/db/db-oauth.js +26 -0
- package/dist/adapters/db/db-prompts.d.ts +46 -0
- package/dist/adapters/db/db-prompts.js +144 -0
- package/dist/adapters/db/db.d.ts +6 -0
- package/dist/adapters/db/db.js +1687 -0
- package/dist/adapters/db/db.types.d.ts +16 -0
- package/dist/adapters/db/db.types.js +1 -0
- package/dist/adapters/document-converter/document-converter.d.ts +2 -0
- package/dist/adapters/document-converter/document-converter.js +26 -0
- package/dist/adapters/document-converter/document-converter.types.d.ts +17 -0
- package/dist/adapters/document-converter/document-converter.types.js +1 -0
- package/dist/adapters/flow-runtime/flow-runtime.d.ts +3 -0
- package/dist/adapters/flow-runtime/flow-runtime.js +22 -0
- package/dist/adapters/flow-runtime/flow-runtime.types.d.ts +19 -0
- package/dist/adapters/flow-runtime/flow-runtime.types.js +1 -0
- package/dist/adapters/index-queue/index-queue.d.ts +10 -0
- package/dist/adapters/index-queue/index-queue.js +12 -0
- package/dist/adapters/index-queue/index-queue.types.d.ts +11 -0
- package/dist/adapters/index-queue/index-queue.types.js +1 -0
- package/dist/adapters/json-schema/json-schema.d.ts +2 -0
- package/dist/adapters/json-schema/json-schema.js +77 -0
- package/dist/adapters/openid/openid.d.ts +5 -0
- package/dist/adapters/openid/openid.js +301 -0
- package/dist/adapters/portal-tokens/portal-tokens.d.ts +8 -0
- package/dist/adapters/portal-tokens/portal-tokens.js +79 -0
- package/dist/adapters/remote-tools/remote-tools.d.ts +5 -0
- package/dist/adapters/remote-tools/remote-tools.js +129 -0
- package/dist/adapters/semantic-index/semantic-index.d.ts +2 -0
- package/dist/adapters/semantic-index/semantic-index.js +139 -0
- package/dist/adapters/semantic-index/semantic-index.types.d.ts +56 -0
- package/dist/adapters/semantic-index/semantic-index.types.js +1 -0
- package/dist/adapters/session-cookie/session-cookie.d.ts +5 -0
- package/dist/adapters/session-cookie/session-cookie.js +87 -0
- package/dist/adapters/tool-source-policy/tool-source-policy.d.ts +1 -0
- package/dist/adapters/tool-source-policy/tool-source-policy.js +22 -0
- package/dist/audit/audit.d.ts +2 -0
- package/dist/audit/audit.js +87 -0
- package/dist/audit/audit.types.d.ts +23 -0
- package/dist/audit/audit.types.js +1 -0
- package/dist/auth/auth.d.ts +2 -0
- package/dist/auth/auth.js +284 -0
- package/dist/auth/auth.types.d.ts +108 -0
- package/dist/auth/auth.types.js +1 -0
- package/dist/boards/boards.d.ts +44 -0
- package/dist/boards/boards.js +447 -0
- package/dist/boards/boards.types.d.ts +117 -0
- package/dist/boards/boards.types.js +1 -0
- package/dist/build/build.d.ts +2 -0
- package/dist/build/build.js +192 -0
- package/dist/build/build.types.d.ts +17 -0
- package/dist/build/build.types.js +1 -0
- package/dist/bundle/bundle.d.ts +4 -0
- package/dist/bundle/bundle.js +1194 -0
- package/dist/bundle/bundle.types.d.ts +33 -0
- package/dist/bundle/bundle.types.js +1 -0
- package/dist/cli/cli.d.ts +4 -0
- package/dist/cli/cli.js +262 -0
- package/dist/cli/cli.types.d.ts +14 -0
- package/dist/cli/cli.types.js +1 -0
- package/dist/contract/audit.d.ts +50 -0
- package/dist/contract/audit.js +72 -0
- package/dist/contract/board.d.ts +150 -0
- package/dist/contract/board.js +262 -0
- package/dist/contract/bundle.d.ts +147 -0
- package/dist/contract/bundle.js +139 -0
- package/dist/contract/contract.d.ts +112 -0
- package/dist/contract/contract.js +143 -0
- package/dist/contract/feed.d.ts +126 -0
- package/dist/contract/feed.js +149 -0
- package/dist/contract/flow-run.d.ts +346 -0
- package/dist/contract/flow-run.js +194 -0
- package/dist/contract/flow.d.ts +1057 -0
- package/dist/contract/flow.js +552 -0
- package/dist/contract/node.d.ts +551 -0
- package/dist/contract/node.js +456 -0
- package/dist/contract/share.d.ts +216 -0
- package/dist/contract/share.js +134 -0
- package/dist/contract/table.d.ts +171 -0
- package/dist/contract/table.js +117 -0
- package/dist/contract/tool.d.ts +122 -0
- package/dist/contract/tool.js +172 -0
- package/dist/feed/feed.d.ts +2 -0
- package/dist/feed/feed.js +77 -0
- package/dist/feed/feed.types.d.ts +23 -0
- package/dist/feed/feed.types.js +1 -0
- package/dist/flows/flows.d.ts +41 -0
- package/dist/flows/flows.js +2216 -0
- package/dist/flows/flows.types.d.ts +339 -0
- package/dist/flows/flows.types.js +1 -0
- package/dist/http/http.d.ts +9 -0
- package/dist/http/http.js +874 -0
- package/dist/http/http.types.d.ts +22 -0
- package/dist/http/http.types.js +1 -0
- package/dist/indexing/indexing.d.ts +6 -0
- package/dist/indexing/indexing.js +239 -0
- package/dist/indexing/indexing.types.d.ts +11 -0
- package/dist/indexing/indexing.types.js +1 -0
- package/dist/intel/intel.d.ts +3 -0
- package/dist/intel/intel.js +194 -0
- package/dist/intel/intel.types.d.ts +24 -0
- package/dist/intel/intel.types.js +1 -0
- package/dist/mcp/mcp.d.ts +2 -0
- package/dist/mcp/mcp.js +1292 -0
- package/dist/mcp/mcp.types.d.ts +25 -0
- package/dist/mcp/mcp.types.js +1 -0
- package/dist/nodes/document-links/document-links.d.ts +20 -0
- package/dist/nodes/document-links/document-links.js +57 -0
- package/dist/nodes/nodes.d.ts +2 -0
- package/dist/nodes/nodes.js +1667 -0
- package/dist/nodes/nodes.types.d.ts +511 -0
- package/dist/nodes/nodes.types.js +1 -0
- package/dist/prepare/prepare.d.ts +4 -0
- package/dist/prepare/prepare.js +16 -0
- package/dist/prepare/prepare.types.d.ts +9 -0
- package/dist/prepare/prepare.types.js +1 -0
- package/dist/prompts/prompts.d.ts +2 -0
- package/dist/prompts/prompts.js +65 -0
- package/dist/prompts/prompts.types.d.ts +71 -0
- package/dist/prompts/prompts.types.js +1 -0
- package/dist/shared/callers/callers.d.ts +28 -0
- package/dist/shared/callers/callers.js +30 -0
- package/dist/shared/csv/csv.d.ts +13 -0
- package/dist/shared/csv/csv.js +85 -0
- package/dist/shared/document-text/document-text.d.ts +21 -0
- package/dist/shared/document-text/document-text.js +31 -0
- package/dist/shared/gate-authorization/gate-authorization.d.ts +5 -0
- package/dist/shared/gate-authorization/gate-authorization.js +26 -0
- package/dist/shared/grant-expiry/grant-expiry.d.ts +19 -0
- package/dist/shared/grant-expiry/grant-expiry.js +26 -0
- package/dist/shared/intel-error/intel-error.d.ts +22 -0
- package/dist/shared/intel-error/intel-error.js +27 -0
- package/dist/shared/plain-title/plain-title.d.ts +16 -0
- package/dist/shared/plain-title/plain-title.js +45 -0
- package/dist/shared/problem-details/problem-details.d.ts +30 -0
- package/dist/shared/problem-details/problem-details.js +18 -0
- package/dist/shared/report-unexpected-error/report-unexpected-error.d.ts +1 -0
- package/dist/shared/report-unexpected-error/report-unexpected-error.js +37 -0
- package/dist/shared/safe-return-path/safe-return-path.d.ts +2 -0
- package/dist/shared/safe-return-path/safe-return-path.js +11 -0
- package/dist/shared/sha256/sha256.d.ts +2 -0
- package/dist/shared/sha256/sha256.js +14 -0
- package/dist/tools/tool-servers/tool-servers.d.ts +46 -0
- package/dist/tools/tool-servers/tool-servers.js +177 -0
- package/dist/tools/tools.d.ts +2 -0
- package/dist/tools/tools.js +207 -0
- package/dist/tools/tools.types.d.ts +56 -0
- package/dist/tools/tools.types.js +1 -0
- package/examples/branding/favicon.svg +5 -0
- package/examples/branding/logo.svg +5 -0
- package/examples/branding/theme.css +16 -0
- package/examples/dev.vars.example +7 -0
- package/examples/intel.json +9 -0
- package/migrations/0000_intel_foundation.sql +203 -0
- package/migrations/0001_portal_native_tools.sql +21 -0
- package/migrations/0002_flows_in_the_knowledge_tree.sql +34 -0
- package/migrations/0003_folder_permissions.sql +211 -0
- package/migrations/0004_subflow_runs.sql +14 -0
- package/migrations/0005_flow_node_cleanup.sql +28 -0
- package/migrations/0005_tables_in_the_knowledge_tree.sql +68 -0
- package/migrations/0006_links_are_written_in_the_text.sql +20 -0
- package/migrations/0007_no_node_waits.sql +69 -0
- package/migrations/0008_three_layers.sql +130 -0
- package/migrations/0009_no_context_policy.sql +48 -0
- package/migrations/0010_no_run_waits_a_year.sql +27 -0
- package/migrations/0011_one_name_for_the_tree.sql +53 -0
- package/migrations/0012_table_snapshots.sql +29 -0
- package/migrations/0017_a_vector_per_card.sql +38 -0
- package/migrations/0018_no_context_policy_at_last.sql +97 -0
- package/migrations/0019_one_name_for_the_grants.sql +52 -0
- package/migrations/0020_cascade_purge_replay.sql +11 -0
- package/migrations/0021_a_flow_carries_its_own_grant.sql +44 -0
- package/migrations/0022_a_cursor_over_the_journal.sql +14 -0
- package/migrations/0023_a_board_and_its_tasks.sql +116 -0
- package/migrations/0024_the_archive_is_a_column.sql +33 -0
- package/migrations/0025_archiving_takes_the_subtree.sql +29 -0
- package/migrations/0026_one_feed_over_two_kinds.sql +23 -0
- package/migrations/0027_the_runs_of_every_flow.sql +27 -0
- package/migrations/0028_a_prompt_name_over_two_kinds.sql +70 -0
- package/package.json +118 -0
- package/src/contract/CLAUDE.md +152 -0
- package/src/contract/README.md +102 -0
- package/src/contract/audit.ts +85 -0
- package/src/contract/board.ts +306 -0
- package/src/contract/bundle.ts +157 -0
- package/src/contract/contract.ts +161 -0
- package/src/contract/feed.ts +165 -0
- package/src/contract/flow-run.ts +241 -0
- package/src/contract/flow.ts +675 -0
- package/src/contract/node.ts +583 -0
- package/src/contract/share.ts +196 -0
- package/src/contract/table.ts +178 -0
- package/src/contract/tool.ts +202 -0
- package/ui/README.md +110 -0
- package/ui/components.json +21 -0
- package/ui/index.html +13 -0
- package/ui/package.json +11 -0
- package/ui/scripts/lint-tokens.mjs +187 -0
- package/ui/src/access-summary/access-summary.tsx +385 -0
- package/ui/src/app/action-slot/action-slot.tsx +27 -0
- package/ui/src/app/app-sidebar/app-sidebar.tsx +71 -0
- package/ui/src/app/app-tree/app-tree.tsx +1175 -0
- package/ui/src/app/app.tsx +87 -0
- package/ui/src/app/header-search/header-search.tsx +294 -0
- package/ui/src/app/reindex-dialog/reindex-dialog.tsx +79 -0
- package/ui/src/app/settings-dialog/settings-dialog.tsx +135 -0
- package/ui/src/app/sidebar-preferences/sidebar-preferences.ts +68 -0
- package/ui/src/app/sidebar-preferences/sidebar-preferences.types.ts +15 -0
- package/ui/src/app/sidebar-resize-handle/sidebar-resize-handle.tsx +86 -0
- package/ui/src/app/tree-expansion/tree-expansion.ts +107 -0
- package/ui/src/app/tree-expansion/tree-expansion.types.ts +31 -0
- package/ui/src/app/tree-move/tree-move.tsx +427 -0
- package/ui/src/app/tree-reveal/tree-reveal.ts +64 -0
- package/ui/src/app/tree-reveal/tree-reveal.types.ts +16 -0
- package/ui/src/app/user-footer/user-footer.tsx +188 -0
- package/ui/src/app/view-menu/view-menu.tsx +115 -0
- package/ui/src/app-root/app-root.tsx +109 -0
- package/ui/src/app-root/app-root.types.ts +27 -0
- package/ui/src/archive/archive.tsx +417 -0
- package/ui/src/attachment-detail/attachment-detail.ts +52 -0
- package/ui/src/attachment-viewer/attachment-viewer.tsx +166 -0
- package/ui/src/blocknote-view/blocknote-view.tsx +30 -0
- package/ui/src/board/board-assignee/board-assignee-picker.tsx +132 -0
- package/ui/src/board/board-assignee/board-assignee.ts +48 -0
- package/ui/src/board/board-assignee/board-assignee.tsx +75 -0
- package/ui/src/board/board-chip/board-chip.tsx +46 -0
- package/ui/src/board/board-crumbs/board-crumbs.ts +56 -0
- package/ui/src/board/board-crumbs/board-crumbs.tsx +111 -0
- package/ui/src/board/board-data/board-data.ts +195 -0
- package/ui/src/board/board-data/board-data.types.ts +38 -0
- package/ui/src/board/board-dates/board-dates.ts +40 -0
- package/ui/src/board/board-dates/board-dates.tsx +105 -0
- package/ui/src/board/board-kanban/board-kanban.ts +162 -0
- package/ui/src/board/board-kanban/board-kanban.tsx +680 -0
- package/ui/src/board/board-open-task/board-open-task.ts +32 -0
- package/ui/src/board/board-panel/board-panel.tsx +259 -0
- package/ui/src/board/board-settings/board-settings.tsx +226 -0
- package/ui/src/board/board-status/board-status.tsx +60 -0
- package/ui/src/board/board-stripes/board-stripes.ts +128 -0
- package/ui/src/board/board-table/board-table.ts +53 -0
- package/ui/src/board/board-table/board-table.tsx +610 -0
- package/ui/src/board/board-task/board-task.ts +108 -0
- package/ui/src/board/board-task/board-task.tsx +335 -0
- package/ui/src/board/board-title-row/board-title-row.tsx +66 -0
- package/ui/src/branding/branding.tsx +17 -0
- package/ui/src/branding/custom-logo.ts +1 -0
- package/ui/src/branding/favicon.default.svg +5 -0
- package/ui/src/branding/favicon.svg +5 -0
- package/ui/src/components/ui/avatar.tsx +39 -0
- package/ui/src/components/ui/button.tsx +64 -0
- package/ui/src/components/ui/collapsible.tsx +20 -0
- package/ui/src/components/ui/command.tsx +160 -0
- package/ui/src/components/ui/dialog.tsx +143 -0
- package/ui/src/components/ui/dropdown-menu.tsx +187 -0
- package/ui/src/components/ui/input.tsx +21 -0
- package/ui/src/components/ui/popover.tsx +41 -0
- package/ui/src/components/ui/select.tsx +163 -0
- package/ui/src/components/ui/separator.tsx +26 -0
- package/ui/src/components/ui/sheet.tsx +136 -0
- package/ui/src/components/ui/sidebar.tsx +693 -0
- package/ui/src/components/ui/skeleton.tsx +13 -0
- package/ui/src/components/ui/switch.tsx +25 -0
- package/ui/src/components/ui/table.tsx +82 -0
- package/ui/src/components/ui/tabs.tsx +52 -0
- package/ui/src/components/ui/tooltip.tsx +51 -0
- package/ui/src/data/intel-data-provider/intel-data-provider.ts +685 -0
- package/ui/src/data/intel-data-provider/intel-data-provider.types.ts +266 -0
- package/ui/src/data/query-client.ts +18 -0
- package/ui/src/data/request-refusal/refusal-notice.tsx +36 -0
- package/ui/src/data/request-refusal/request-refusal.ts +51 -0
- package/ui/src/data/sign-in/sign-in.ts +97 -0
- package/ui/src/data/sign-in/sign-in.types.ts +15 -0
- package/ui/src/document-link/document-link.tsx +114 -0
- package/ui/src/document-markdown/document-markdown.ts +195 -0
- package/ui/src/editor-schema/editor-schema.ts +23 -0
- package/ui/src/entry-picker/entry-picker.tsx +238 -0
- package/ui/src/feed/feed.tsx +344 -0
- package/ui/src/file-preview/file-preview-view.tsx +496 -0
- package/ui/src/file-preview/file-preview.tsx +28 -0
- package/ui/src/file-preview/pdf-file-preview.tsx +5 -0
- package/ui/src/file-preview/presentation-file-preview.tsx +21 -0
- package/ui/src/file-preview/spreadsheet-file-preview.tsx +5 -0
- package/ui/src/file-preview/word-file-preview.tsx +5 -0
- package/ui/src/flow-runs/flow-runs.tsx +238 -0
- package/ui/src/flows/flows.tsx +1646 -0
- package/ui/src/flows/node-icon/node-icon.ts +34 -0
- package/ui/src/flows/node-palette/node-palette.tsx +214 -0
- package/ui/src/flows/node-palette/node-palette.types.ts +15 -0
- package/ui/src/folder-contents/folder-contents.tsx +321 -0
- package/ui/src/folder-index/folder-index.ts +55 -0
- package/ui/src/frontmatter/frontmatter.tsx +193 -0
- package/ui/src/graph-pane/graph-pane.tsx +53 -0
- package/ui/src/hooks/use-mobile.ts +19 -0
- package/ui/src/i18n/custom.json +4 -0
- package/ui/src/i18n/de.json +609 -0
- package/ui/src/i18n/en.json +609 -0
- package/ui/src/i18n/es.json +609 -0
- package/ui/src/i18n/i18n-context.tsx +65 -0
- package/ui/src/i18n/i18n-languages/i18n-languages.ts +83 -0
- package/ui/src/i18n/i18n.ts +32 -0
- package/ui/src/i18n/i18n.types.ts +49 -0
- package/ui/src/kind-icon.ts +97 -0
- package/ui/src/lib/utils.ts +6 -0
- package/ui/src/main.tsx +68 -0
- package/ui/src/modal/modal.tsx +53 -0
- package/ui/src/node-details/node-details.tsx +545 -0
- package/ui/src/node-editor/node-editor.tsx +304 -0
- package/ui/src/node-graph/graph-notice.tsx +21 -0
- package/ui/src/node-graph/node-graph.ts +214 -0
- package/ui/src/node-graph/node-graph.tsx +295 -0
- package/ui/src/node-import/node-import.tsx +418 -0
- package/ui/src/node-save-error.ts +46 -0
- package/ui/src/node-source/node-source.tsx +128 -0
- package/ui/src/node-table/node-table.tsx +107 -0
- package/ui/src/nodes/nodes.tsx +240 -0
- package/ui/src/rename-resource/rename-resource.ts +80 -0
- package/ui/src/resolved-names/resolved-names.tsx +67 -0
- package/ui/src/resource-error.ts +33 -0
- package/ui/src/resource-menu/resource-menu.tsx +1156 -0
- package/ui/src/router/router-context.ts +6 -0
- package/ui/src/router/router.tsx +67 -0
- package/ui/src/router/router.types.ts +8 -0
- package/ui/src/router/selection-search.ts +88 -0
- package/ui/src/save-button/save-button.tsx +94 -0
- package/ui/src/section-hint/section-hint.tsx +40 -0
- package/ui/src/sign-in-refused/sign-in-refused.tsx +35 -0
- package/ui/src/styles.css +189 -0
- package/ui/src/table-columns/table-columns.tsx +379 -0
- package/ui/src/theme/custom.css +1 -0
- package/ui/src/theme/theme-context.tsx +89 -0
- package/ui/src/theme/theme.ts +70 -0
- package/ui/src/time/relative-time.tsx +41 -0
- package/ui/src/time/time-context.tsx +78 -0
- package/ui/src/time/time.ts +165 -0
- package/ui/src/title-row/title-row.tsx +185 -0
- package/ui/src/tools/tools.tsx +546 -0
- package/ui/src/user-name/user-name.ts +61 -0
- package/ui/src/verbatim/verbatim.tsx +68 -0
- package/ui/tsconfig.json +17 -0
- package/ui/vite.config.ts +129 -0
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
import type { ArchiveFlowInput, CreateFlowInput, Flow, FlowDocument, FlowGraph, FlowPublishPreview, FlowRequirements, FlowValidation, FlowVersion, FlowVersionList, FlowVersionSummary, GetFlowVersionInput, ListFlowsInput, PreviewFlowPublishInput, PublishFlowInput, RelationGraph, RelationGraphInput, SaveFlowVersionInput, UnpublishFlowInput, UpdateFlowInput } from "../contract/flow.js";
|
|
2
|
+
import type { CancelFlowRunInput, CompleteFlowRunStepInput, FlowRun, FlowRunHistory, FlowRunList, FlowRunStep, ListFlowRunsInput, StartFlowRunInput } from "../contract/flow-run.js";
|
|
3
|
+
import type { Node } from "../contract/node.js";
|
|
4
|
+
import type { ResourceAccessList, ResourceGrant, ResourceGrantList, ResourceVerb, RevokeFlowGrantInput, RevokeGrantResult, ShareFlowInput, ShareResult } from "../contract/share.js";
|
|
5
|
+
import type { PromptNameHolder } from "../prompts/prompts.types.js";
|
|
6
|
+
export type FlowPrincipal = Pick<FlowActor, "id" | "email" | "isAdmin">;
|
|
7
|
+
export type FlowCallReach = "subtree" | "library" | "out-of-reach";
|
|
8
|
+
export interface FlowRunChainEntry {
|
|
9
|
+
runId: string;
|
|
10
|
+
flowId: string;
|
|
11
|
+
flowTitle: string;
|
|
12
|
+
versionId: string;
|
|
13
|
+
parentRunId: string | null;
|
|
14
|
+
currentNodeId: string | null;
|
|
15
|
+
}
|
|
16
|
+
export interface ListRunsQuery {
|
|
17
|
+
flowId: string | null;
|
|
18
|
+
failedOnly: boolean;
|
|
19
|
+
limit: number;
|
|
20
|
+
cursor: {
|
|
21
|
+
createdAt: string;
|
|
22
|
+
id: string;
|
|
23
|
+
} | null;
|
|
24
|
+
}
|
|
25
|
+
export interface FlowCallSite {
|
|
26
|
+
runId: string;
|
|
27
|
+
nodeId: string;
|
|
28
|
+
}
|
|
29
|
+
export interface FlowVisibleCall extends FlowCallSite {
|
|
30
|
+
calledRunId: string;
|
|
31
|
+
}
|
|
32
|
+
export interface FlowRunStepRow {
|
|
33
|
+
runId: string;
|
|
34
|
+
nodeId: string;
|
|
35
|
+
outcome: "completed" | "failed";
|
|
36
|
+
branch: string | null;
|
|
37
|
+
error: string | null;
|
|
38
|
+
completedAt: string;
|
|
39
|
+
}
|
|
40
|
+
export interface FlowActor {
|
|
41
|
+
id: string;
|
|
42
|
+
email: string;
|
|
43
|
+
canRun: boolean;
|
|
44
|
+
isAdmin?: boolean;
|
|
45
|
+
}
|
|
46
|
+
export type FlowVerb = ResourceVerb;
|
|
47
|
+
export type FlowOperation = "flows.create" | "flows.update" | "flows.archive" | "flows.save" | "flows.publish" | "flows.run" | "flows.complete" | "flows.cancel" | "flows.unpublish" | "flows.share" | "flows.revoke";
|
|
48
|
+
export interface BoundedLevel<T> {
|
|
49
|
+
items: T[];
|
|
50
|
+
total: number;
|
|
51
|
+
}
|
|
52
|
+
export interface FlowRepository {
|
|
53
|
+
listVisible(actor: FlowActor, input?: ListFlowsInput): Promise<Flow[]>;
|
|
54
|
+
listVisibleBounded(actor: FlowActor, folderId: string | null, limit: number): Promise<BoundedLevel<Flow>>;
|
|
55
|
+
getVisible(actor: FlowActor, flowId: string): Promise<Flow | null>;
|
|
56
|
+
can(actor: FlowActor, flowId: string, verb: FlowVerb): Promise<boolean>;
|
|
57
|
+
listFlowGrants(flowId: string): Promise<ResourceGrant[]>;
|
|
58
|
+
listEffectiveFlowAccess(flowId: string): Promise<{
|
|
59
|
+
ownerIds: string[];
|
|
60
|
+
items: ResourceGrant[];
|
|
61
|
+
}>;
|
|
62
|
+
setFlowGrant(input: {
|
|
63
|
+
grant: ResourceGrant;
|
|
64
|
+
flowId: string;
|
|
65
|
+
actorId: string;
|
|
66
|
+
idempotencyKey: string;
|
|
67
|
+
auditId: string;
|
|
68
|
+
}): Promise<ResourceGrant>;
|
|
69
|
+
revokeFlowGrant(input: {
|
|
70
|
+
flowId: string;
|
|
71
|
+
grantId: string;
|
|
72
|
+
actorId: string;
|
|
73
|
+
idempotencyKey: string;
|
|
74
|
+
auditId: string;
|
|
75
|
+
occurredAt: string;
|
|
76
|
+
}): Promise<boolean>;
|
|
77
|
+
findIdempotentFlowRevocation(actorId: string, idempotencyKey: string): Promise<boolean | null>;
|
|
78
|
+
getCallable(actor: FlowActor, flowId: string): Promise<Flow | null>;
|
|
79
|
+
listCallable(actor: FlowActor, flowIds: string[]): Promise<Flow[]>;
|
|
80
|
+
callReach(callerFolderId: string | null, calleeFolderId: string | null): Promise<FlowCallReach>;
|
|
81
|
+
externalCallers(actor: FlowPrincipal, folderId: string): Promise<{
|
|
82
|
+
visible: string[];
|
|
83
|
+
hidden: number;
|
|
84
|
+
}>;
|
|
85
|
+
nodeReferences(actor: FlowPrincipal, folderId: string): Promise<string[]>;
|
|
86
|
+
/**
|
|
87
|
+
* Which of these ids still have a row in the tree at all — archived or not, for anybody (#509).
|
|
88
|
+
*
|
|
89
|
+
* ⚠️ It takes NO actor, and that is the honest shape rather than an oversight: the answer does
|
|
90
|
+
* not depend on who is asking, so an `actor` parameter would suggest a narrowing that is not
|
|
91
|
+
* there. Its one caller has already asked `visibleNodes` and only reaches this for the ids that
|
|
92
|
+
* came back empty, so what it adds is a single bit about ids the caller sent us out of a graph
|
|
93
|
+
* they may already read.
|
|
94
|
+
*
|
|
95
|
+
* ⚠️ An ARCHIVED node counts as existing. Archiving is reversible — the row is still there and a
|
|
96
|
+
* restore brings the reference back — so calling it invalid would tell an author to replace a
|
|
97
|
+
* step that is about to work again. Only a purge takes the row (`DELETE FROM nodes`, #457), and
|
|
98
|
+
* only that is what "there is nothing here any more" means.
|
|
99
|
+
*/
|
|
100
|
+
existingNodes(nodeIds: string[]): Promise<string[]>;
|
|
101
|
+
publishedCallees(flowId: string): Promise<{
|
|
102
|
+
title: string;
|
|
103
|
+
calleeIds: string[];
|
|
104
|
+
} | null>;
|
|
105
|
+
findIdempotent(actorId: string, operation: FlowOperation, key: string): Promise<string | null>;
|
|
106
|
+
insertFlow(input: {
|
|
107
|
+
flow: Flow;
|
|
108
|
+
actorId: string;
|
|
109
|
+
idempotencyKey: string;
|
|
110
|
+
auditId: string;
|
|
111
|
+
}): Promise<Flow>;
|
|
112
|
+
updateFlow(input: {
|
|
113
|
+
flow: Flow;
|
|
114
|
+
baseUpdatedAt: string;
|
|
115
|
+
actorId: string;
|
|
116
|
+
idempotencyKey: string;
|
|
117
|
+
auditId: string;
|
|
118
|
+
}): Promise<"conflict" | Flow>;
|
|
119
|
+
archiveFlow(input: {
|
|
120
|
+
flowId: string;
|
|
121
|
+
baseUpdatedAt: string;
|
|
122
|
+
archivedAt: string | null;
|
|
123
|
+
updatedAt: string;
|
|
124
|
+
actorId: string;
|
|
125
|
+
idempotencyKey: string;
|
|
126
|
+
auditId: string;
|
|
127
|
+
}): Promise<"conflict" | Flow>;
|
|
128
|
+
flowsUsingNode(actor: FlowActor, nodeId: string): Promise<{
|
|
129
|
+
visible: string[];
|
|
130
|
+
hidden: number;
|
|
131
|
+
}>;
|
|
132
|
+
flowCallers(actor: FlowActor, flowId: string): Promise<{
|
|
133
|
+
visible: string[];
|
|
134
|
+
hidden: number;
|
|
135
|
+
}>;
|
|
136
|
+
hasEntangledRuns(flowId: string): Promise<boolean>;
|
|
137
|
+
hasUnfinishedRuns(flowId: string): Promise<boolean>;
|
|
138
|
+
purgeFlow(input: {
|
|
139
|
+
flowId: string;
|
|
140
|
+
actorId: string;
|
|
141
|
+
auditId: string;
|
|
142
|
+
occurredAt: string;
|
|
143
|
+
}): Promise<"missing" | {
|
|
144
|
+
purged: true;
|
|
145
|
+
}>;
|
|
146
|
+
getVersion(versionId: string): Promise<FlowVersion | null>;
|
|
147
|
+
listVersions(flowId: string): Promise<Omit<FlowVersionSummary, "published">[]>;
|
|
148
|
+
getVersions(versionIds: string[]): Promise<FlowVersion[]>;
|
|
149
|
+
insertVersion(input: {
|
|
150
|
+
version: FlowVersion;
|
|
151
|
+
baseVersionId: string | null;
|
|
152
|
+
actorId: string;
|
|
153
|
+
idempotencyKey: string;
|
|
154
|
+
auditId: string;
|
|
155
|
+
}): Promise<"saved" | "conflict">;
|
|
156
|
+
publish(input: {
|
|
157
|
+
flowId: string;
|
|
158
|
+
versionId: string;
|
|
159
|
+
actorId: string;
|
|
160
|
+
idempotencyKey: string;
|
|
161
|
+
auditId: string;
|
|
162
|
+
occurredAt: string;
|
|
163
|
+
/**
|
|
164
|
+
* The slash command this flow is offered under (#775). ⚠️ Three states, and `undefined` is the
|
|
165
|
+
* one that does nothing: publishing a second version of an already-offered flow must not
|
|
166
|
+
* withdraw its command, so a caller who says nothing about prompts changes nothing about them.
|
|
167
|
+
* `null` gives the name up, a string takes one.
|
|
168
|
+
*/
|
|
169
|
+
promptName?: string | null;
|
|
170
|
+
}): Promise<boolean | "prompt_name_taken">;
|
|
171
|
+
/**
|
|
172
|
+
* Who holds a slash command name, for the sentence a refused publish gets. `title` is `null` when
|
|
173
|
+
* the holder exists but this actor may not see it — the same one implementation the node
|
|
174
|
+
* repository answers with (`db-prompts.ts`).
|
|
175
|
+
*/
|
|
176
|
+
promptNameHolder(actor: FlowActor, name: string): Promise<PromptNameHolder | null>;
|
|
177
|
+
unpublish(input: {
|
|
178
|
+
flowId: string;
|
|
179
|
+
versionId: string;
|
|
180
|
+
actorId: string;
|
|
181
|
+
idempotencyKey: string;
|
|
182
|
+
auditId: string;
|
|
183
|
+
occurredAt: string;
|
|
184
|
+
}): Promise<boolean>;
|
|
185
|
+
insertRun(input: {
|
|
186
|
+
run: FlowRun;
|
|
187
|
+
actorId: string;
|
|
188
|
+
idempotencyKey: string;
|
|
189
|
+
auditId: string;
|
|
190
|
+
}): Promise<FlowRun>;
|
|
191
|
+
getRunVisible(actor: FlowActor, runId: string): Promise<FlowRun | null>;
|
|
192
|
+
listRunsVisible(actor: FlowActor, input: ListRunsQuery): Promise<FlowRun[]>;
|
|
193
|
+
failedSteps(runIds: string[]): Promise<FlowRunStepRow[]>;
|
|
194
|
+
runSteps(runId: string): Promise<FlowRunStepRow[]>;
|
|
195
|
+
visibleCallRuns(actor: FlowActor, sites: FlowCallSite[]): Promise<FlowVisibleCall[]>;
|
|
196
|
+
findChildRun(parentRunId: string, parentNodeId: string): Promise<FlowRun | null>;
|
|
197
|
+
runChain(runId: string): Promise<FlowRunChainEntry[]>;
|
|
198
|
+
/**
|
|
199
|
+
* End a run and every non-terminal run below it in one write (#145). The recursion follows
|
|
200
|
+
* `parent_run_id`, so cancelling a caller cannot leave a called run working for a result nobody
|
|
201
|
+
* will ever read. No step row is written for any of them: cancelling is not a step outcome, and
|
|
202
|
+
* inventing a failed step is exactly what this operation exists to replace.
|
|
203
|
+
*
|
|
204
|
+
* `"conflict"` means the run was already terminal when the write arrived — the caller's status
|
|
205
|
+
* check raced another writer — and nothing was changed. `cancelled` names every run this write
|
|
206
|
+
* ended, so the service can wake each of their durable waits.
|
|
207
|
+
*/
|
|
208
|
+
cancelRun(input: {
|
|
209
|
+
runId: string;
|
|
210
|
+
flowId: string;
|
|
211
|
+
actorId: string;
|
|
212
|
+
occurredAt: string;
|
|
213
|
+
idempotencyKey: string;
|
|
214
|
+
auditId: string;
|
|
215
|
+
}): Promise<"conflict" | {
|
|
216
|
+
cancelled: string[];
|
|
217
|
+
}>;
|
|
218
|
+
advanceRun(input: {
|
|
219
|
+
run: FlowRun;
|
|
220
|
+
expectedNodeId: string;
|
|
221
|
+
actorId: string;
|
|
222
|
+
stepId: string;
|
|
223
|
+
outcome: "completed" | "failed";
|
|
224
|
+
branch: string | null;
|
|
225
|
+
output: unknown;
|
|
226
|
+
error: string | null;
|
|
227
|
+
idempotencyKey: string;
|
|
228
|
+
auditId: string;
|
|
229
|
+
}): Promise<"advanced" | "conflict">;
|
|
230
|
+
}
|
|
231
|
+
export interface FlowRuntime {
|
|
232
|
+
start(runId: string): Promise<void>;
|
|
233
|
+
signal(runId: string): Promise<void>;
|
|
234
|
+
}
|
|
235
|
+
export interface FlowDeps {
|
|
236
|
+
repository: FlowRepository;
|
|
237
|
+
runtime: FlowRuntime;
|
|
238
|
+
id(): string;
|
|
239
|
+
now(): Date;
|
|
240
|
+
folderAccess(actor: FlowActor, folderId: string): Promise<FolderAccess>;
|
|
241
|
+
parentArchivedAt(folderId: string): Promise<{
|
|
242
|
+
archivedAt: string | null;
|
|
243
|
+
kind: string;
|
|
244
|
+
} | null>;
|
|
245
|
+
/**
|
|
246
|
+
* The children of one folder of the shared tree as this actor may see them, without their bodies.
|
|
247
|
+
* `null` is the root. The node service answers, for the same reason `folderAccess` does.
|
|
248
|
+
*
|
|
249
|
+
* ⚠️ `limit` bounds the read, not its result: its one caller draws a bounded picture, and a folder
|
|
250
|
+
* of a thousand documents must not be loaded whole for it (#30). What the bound left behind comes
|
|
251
|
+
* back as `total`, counted among the nodes this actor may see and no others — a number that
|
|
252
|
+
* included the rest would say that the rest is there.
|
|
253
|
+
*/
|
|
254
|
+
nodeChildren(actor: FlowActor, folderId: string | null, limit: number): Promise<BoundedLevel<Node>>;
|
|
255
|
+
/**
|
|
256
|
+
* One node as this actor may see it. `null` means "this actor cannot reach it", never "it is
|
|
257
|
+
* gone" — the relation graph must then leave it out altogether rather than draw a placeholder,
|
|
258
|
+
* because the edge alone would already give away that it exists (#19).
|
|
259
|
+
*
|
|
260
|
+
* ⚠️ Three jobs, one door, on purpose. The relation graph draws what comes back here; the
|
|
261
|
+
* requirements list names it; and every tree link of every run is authorized by it, nested
|
|
262
|
+
* calls included (ADR-0004 §4). A second lookup beside it is how a drawing or a message ends up
|
|
263
|
+
* kinder than the door it describes — which is what #17 and #19 were sent back for.
|
|
264
|
+
*
|
|
265
|
+
* ⚠️ `existingNodes` on the repository is the ONE thing asked beside it, and it is the exception
|
|
266
|
+
* that shows the rule rather than a hole in it: it runs only on ids this door already refused, it
|
|
267
|
+
* takes no actor, and it can only ever make the answer HARSHER — "this names nothing" instead of
|
|
268
|
+
* "you cannot see it". Nothing about a node it does hold reaches the caller, so no drawing and no
|
|
269
|
+
* message becomes kinder. Adding a third would need the same three properties (#492, #509).
|
|
270
|
+
*/
|
|
271
|
+
visibleNodes(actor: FlowActor, nodeId: string): Promise<Node | null>;
|
|
272
|
+
/**
|
|
273
|
+
* Whether this actor may manage sharing of a NODE (#825) — straight to the same predicate
|
|
274
|
+
* `node_effective_access_list` refuses without (`nodes.ts:1537`). The relation graph asks it once
|
|
275
|
+
* per node already known to be visible, before drawing a single access edge off it.
|
|
276
|
+
*
|
|
277
|
+
* ⚠️ Optional on purpose. It bridges to the node service exactly like `visibleNodes` above, but
|
|
278
|
+
* adding a required field here would touch every one of the several dozen fixtures across this
|
|
279
|
+
* package that construct a `FlowDeps` for a test that never exercises the relation graph's outer
|
|
280
|
+
* ring. The real composition always provides it; where a test omits it, the graph simply carries
|
|
281
|
+
* no users and no access edges — the same "cannot draw it" shape `omitted` already uses.
|
|
282
|
+
*/
|
|
283
|
+
nodeShareable?(actor: FlowActor, nodeId: string): Promise<boolean>;
|
|
284
|
+
nodeEffectiveAccess?(nodeId: string): Promise<{
|
|
285
|
+
ownerIds: string[];
|
|
286
|
+
items: ResourceGrant[];
|
|
287
|
+
}>;
|
|
288
|
+
toolSurfaceFingerprint(actor: FlowActor, server: string, allow: string[] | null): Promise<string | null>;
|
|
289
|
+
unavailableServers(actor: FlowActor, servers: string[]): Promise<string[]>;
|
|
290
|
+
}
|
|
291
|
+
export type FolderAccess = "ok" | "missing" | "not-a-folder" | "forbidden";
|
|
292
|
+
export interface FlowService {
|
|
293
|
+
list(actor: FlowActor, input?: ListFlowsInput): Promise<{
|
|
294
|
+
items: Flow[];
|
|
295
|
+
withCalls: string[];
|
|
296
|
+
}>;
|
|
297
|
+
get(actor: FlowActor, flowId: string): Promise<FlowDocument>;
|
|
298
|
+
listVersions(actor: FlowActor, flowId: string): Promise<FlowVersionList>;
|
|
299
|
+
getVersion(actor: FlowActor, input: GetFlowVersionInput): Promise<FlowVersion>;
|
|
300
|
+
listCalls(actor: FlowActor, flowId: string): Promise<{
|
|
301
|
+
items: Flow[];
|
|
302
|
+
withCalls: string[];
|
|
303
|
+
}>;
|
|
304
|
+
validate(actor: FlowActor, flowId: string): Promise<FlowValidation>;
|
|
305
|
+
relationGraph(actor: FlowActor, input: RelationGraphInput): Promise<RelationGraph>;
|
|
306
|
+
listRequirements(actor: FlowActor, flowId: string): Promise<FlowRequirements>;
|
|
307
|
+
listGrants(actor: FlowActor, flowId: string): Promise<ResourceGrantList>;
|
|
308
|
+
listEffectiveAccess(actor: FlowActor, flowId: string): Promise<ResourceAccessList>;
|
|
309
|
+
share(actor: FlowActor, input: ShareFlowInput): Promise<ShareResult>;
|
|
310
|
+
revokeGrant(actor: FlowActor, input: RevokeFlowGrantInput): Promise<RevokeGrantResult>;
|
|
311
|
+
create(actor: FlowActor, input: CreateFlowInput): Promise<Flow>;
|
|
312
|
+
update(actor: FlowActor, input: UpdateFlowInput): Promise<Flow>;
|
|
313
|
+
archive(actor: FlowActor, input: ArchiveFlowInput): Promise<Flow>;
|
|
314
|
+
purge(actor: FlowActor, input: {
|
|
315
|
+
flowId: string;
|
|
316
|
+
}): Promise<{
|
|
317
|
+
purged: true;
|
|
318
|
+
title: string;
|
|
319
|
+
}>;
|
|
320
|
+
save(actor: FlowActor, input: SaveFlowVersionInput): Promise<FlowDocument>;
|
|
321
|
+
previewPublish(actor: FlowActor, input: PreviewFlowPublishInput): Promise<FlowPublishPreview>;
|
|
322
|
+
publish(actor: FlowActor, input: PublishFlowInput): Promise<Flow>;
|
|
323
|
+
unpublish(actor: FlowActor, input: UnpublishFlowInput): Promise<Flow>;
|
|
324
|
+
start(actor: FlowActor, input: StartFlowRunInput): Promise<FlowRunStep>;
|
|
325
|
+
getRun(actor: FlowActor, runId: string): Promise<FlowRunStep>;
|
|
326
|
+
listRuns(actor: FlowActor, input: ListFlowRunsInput): Promise<FlowRunList>;
|
|
327
|
+
listRunSteps(actor: FlowActor, runId: string): Promise<FlowRunHistory>;
|
|
328
|
+
completeStep(actor: FlowActor, input: CompleteFlowRunStepInput): Promise<FlowRunStep>;
|
|
329
|
+
cancelRun(actor: FlowActor, input: CancelFlowRunInput): Promise<FlowRunStep>;
|
|
330
|
+
}
|
|
331
|
+
export interface CompiledFlow {
|
|
332
|
+
graph: FlowGraph;
|
|
333
|
+
triggerId: string;
|
|
334
|
+
}
|
|
335
|
+
export interface RunProblem {
|
|
336
|
+
status: number;
|
|
337
|
+
code: string;
|
|
338
|
+
detail: string;
|
|
339
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Authorized } from "@anchrd/gate-sdk";
|
|
2
|
+
import { Hono } from "hono";
|
|
3
|
+
import type { HttpDeps } from "./http.types.js";
|
|
4
|
+
export declare function createHttp(deps: HttpDeps): Hono<{
|
|
5
|
+
Variables: {
|
|
6
|
+
authorization: Authorized;
|
|
7
|
+
token: string;
|
|
8
|
+
};
|
|
9
|
+
}, import("hono/types").BlankSchema, "/">;
|