narai-primitives 2.0.0-rc.1
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/LICENSE +21 -0
- package/README.md +64 -0
- package/dist/config/bootstrap.d.ts +28 -0
- package/dist/config/bootstrap.d.ts.map +1 -0
- package/dist/config/bootstrap.js +80 -0
- package/dist/config/bootstrap.js.map +1 -0
- package/dist/config/index.d.ts +13 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +12 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/load.d.ts +37 -0
- package/dist/config/load.d.ts.map +1 -0
- package/dist/config/load.js +99 -0
- package/dist/config/load.js.map +1 -0
- package/dist/config/resolve.d.ts +23 -0
- package/dist/config/resolve.d.ts.map +1 -0
- package/dist/config/resolve.js +198 -0
- package/dist/config/resolve.js.map +1 -0
- package/dist/config/secrets.d.ts +20 -0
- package/dist/config/secrets.d.ts.map +1 -0
- package/dist/config/secrets.js +43 -0
- package/dist/config/secrets.js.map +1 -0
- package/dist/config/types.d.ts +104 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +11 -0
- package/dist/config/types.js.map +1 -0
- package/dist/connectors/aws/cli.d.ts +3 -0
- package/dist/connectors/aws/cli.d.ts.map +1 -0
- package/dist/connectors/aws/cli.js +27 -0
- package/dist/connectors/aws/cli.js.map +1 -0
- package/dist/connectors/aws/index.d.ts +27 -0
- package/dist/connectors/aws/index.d.ts.map +1 -0
- package/dist/connectors/aws/index.js +281 -0
- package/dist/connectors/aws/index.js.map +1 -0
- package/dist/connectors/aws/lib/aws_client.d.ts +140 -0
- package/dist/connectors/aws/lib/aws_client.d.ts.map +1 -0
- package/dist/connectors/aws/lib/aws_client.js +196 -0
- package/dist/connectors/aws/lib/aws_client.js.map +1 -0
- package/dist/connectors/aws/lib/aws_error.d.ts +10 -0
- package/dist/connectors/aws/lib/aws_error.d.ts.map +1 -0
- package/dist/connectors/aws/lib/aws_error.js +15 -0
- package/dist/connectors/aws/lib/aws_error.js.map +1 -0
- package/dist/connectors/confluence/cli.d.ts +3 -0
- package/dist/connectors/confluence/cli.d.ts.map +1 -0
- package/dist/connectors/confluence/cli.js +24 -0
- package/dist/connectors/confluence/cli.js.map +1 -0
- package/dist/connectors/confluence/index.d.ts +15 -0
- package/dist/connectors/confluence/index.d.ts.map +1 -0
- package/dist/connectors/confluence/index.js +295 -0
- package/dist/connectors/confluence/index.js.map +1 -0
- package/dist/connectors/confluence/lib/confluence_client.d.ts +135 -0
- package/dist/connectors/confluence/lib/confluence_client.d.ts.map +1 -0
- package/dist/connectors/confluence/lib/confluence_client.js +329 -0
- package/dist/connectors/confluence/lib/confluence_client.js.map +1 -0
- package/dist/connectors/confluence/lib/confluence_error.d.ts +13 -0
- package/dist/connectors/confluence/lib/confluence_error.d.ts.map +1 -0
- package/dist/connectors/confluence/lib/confluence_error.js +19 -0
- package/dist/connectors/confluence/lib/confluence_error.js.map +1 -0
- package/dist/connectors/db/cli.d.ts +5 -0
- package/dist/connectors/db/cli.d.ts.map +1 -0
- package/dist/connectors/db/cli.js +34 -0
- package/dist/connectors/db/cli.js.map +1 -0
- package/dist/connectors/db/config.d.ts +18 -0
- package/dist/connectors/db/config.d.ts.map +1 -0
- package/dist/connectors/db/config.js +142 -0
- package/dist/connectors/db/config.js.map +1 -0
- package/dist/connectors/db/connector.d.ts +31 -0
- package/dist/connectors/db/connector.d.ts.map +1 -0
- package/dist/connectors/db/connector.js +175 -0
- package/dist/connectors/db/connector.js.map +1 -0
- package/dist/connectors/db/dispatcher.d.ts +36 -0
- package/dist/connectors/db/dispatcher.d.ts.map +1 -0
- package/dist/connectors/db/dispatcher.js +597 -0
- package/dist/connectors/db/dispatcher.js.map +1 -0
- package/dist/connectors/db/index.d.ts +22 -0
- package/dist/connectors/db/index.d.ts.map +1 -0
- package/dist/connectors/db/index.js +26 -0
- package/dist/connectors/db/index.js.map +1 -0
- package/dist/connectors/db/lib/audit.d.ts +32 -0
- package/dist/connectors/db/lib/audit.d.ts.map +1 -0
- package/dist/connectors/db/lib/audit.js +130 -0
- package/dist/connectors/db/lib/audit.js.map +1 -0
- package/dist/connectors/db/lib/connection.d.ts +61 -0
- package/dist/connectors/db/lib/connection.d.ts.map +1 -0
- package/dist/connectors/db/lib/connection.js +326 -0
- package/dist/connectors/db/lib/connection.js.map +1 -0
- package/dist/connectors/db/lib/credentials.d.ts +60 -0
- package/dist/connectors/db/lib/credentials.d.ts.map +1 -0
- package/dist/connectors/db/lib/credentials.js +117 -0
- package/dist/connectors/db/lib/credentials.js.map +1 -0
- package/dist/connectors/db/lib/drivers/base.d.ts +83 -0
- package/dist/connectors/db/lib/drivers/base.d.ts.map +1 -0
- package/dist/connectors/db/lib/drivers/base.js +46 -0
- package/dist/connectors/db/lib/drivers/base.js.map +1 -0
- package/dist/connectors/db/lib/drivers/dynamodb.d.ts +108 -0
- package/dist/connectors/db/lib/drivers/dynamodb.d.ts.map +1 -0
- package/dist/connectors/db/lib/drivers/dynamodb.js +468 -0
- package/dist/connectors/db/lib/drivers/dynamodb.js.map +1 -0
- package/dist/connectors/db/lib/drivers/mongodb.d.ts +60 -0
- package/dist/connectors/db/lib/drivers/mongodb.d.ts.map +1 -0
- package/dist/connectors/db/lib/drivers/mongodb.js +371 -0
- package/dist/connectors/db/lib/drivers/mongodb.js.map +1 -0
- package/dist/connectors/db/lib/drivers/mysql.d.ts +45 -0
- package/dist/connectors/db/lib/drivers/mysql.d.ts.map +1 -0
- package/dist/connectors/db/lib/drivers/mysql.js +265 -0
- package/dist/connectors/db/lib/drivers/mysql.js.map +1 -0
- package/dist/connectors/db/lib/drivers/oracle.d.ts +53 -0
- package/dist/connectors/db/lib/drivers/oracle.d.ts.map +1 -0
- package/dist/connectors/db/lib/drivers/oracle.js +350 -0
- package/dist/connectors/db/lib/drivers/oracle.js.map +1 -0
- package/dist/connectors/db/lib/drivers/postgresql.d.ts +65 -0
- package/dist/connectors/db/lib/drivers/postgresql.d.ts.map +1 -0
- package/dist/connectors/db/lib/drivers/postgresql.js +294 -0
- package/dist/connectors/db/lib/drivers/postgresql.js.map +1 -0
- package/dist/connectors/db/lib/drivers/register.d.ts +16 -0
- package/dist/connectors/db/lib/drivers/register.d.ts.map +1 -0
- package/dist/connectors/db/lib/drivers/register.js +111 -0
- package/dist/connectors/db/lib/drivers/register.js.map +1 -0
- package/dist/connectors/db/lib/drivers/sqlite.d.ts +11 -0
- package/dist/connectors/db/lib/drivers/sqlite.d.ts.map +1 -0
- package/dist/connectors/db/lib/drivers/sqlite.js +147 -0
- package/dist/connectors/db/lib/drivers/sqlite.js.map +1 -0
- package/dist/connectors/db/lib/drivers/sqlserver.d.ts +58 -0
- package/dist/connectors/db/lib/drivers/sqlserver.d.ts.map +1 -0
- package/dist/connectors/db/lib/drivers/sqlserver.js +274 -0
- package/dist/connectors/db/lib/drivers/sqlserver.js.map +1 -0
- package/dist/connectors/db/lib/environments.d.ts +68 -0
- package/dist/connectors/db/lib/environments.d.ts.map +1 -0
- package/dist/connectors/db/lib/environments.js +53 -0
- package/dist/connectors/db/lib/environments.js.map +1 -0
- package/dist/connectors/db/lib/index.d.ts +28 -0
- package/dist/connectors/db/lib/index.d.ts.map +1 -0
- package/dist/connectors/db/lib/index.js +30 -0
- package/dist/connectors/db/lib/index.js.map +1 -0
- package/dist/connectors/db/lib/plugin_config.d.ts +64 -0
- package/dist/connectors/db/lib/plugin_config.d.ts.map +1 -0
- package/dist/connectors/db/lib/plugin_config.js +287 -0
- package/dist/connectors/db/lib/plugin_config.js.map +1 -0
- package/dist/connectors/db/lib/policy.d.ts +162 -0
- package/dist/connectors/db/lib/policy.d.ts.map +1 -0
- package/dist/connectors/db/lib/policy.js +581 -0
- package/dist/connectors/db/lib/policy.js.map +1 -0
- package/dist/connectors/db/lib/query.d.ts +22 -0
- package/dist/connectors/db/lib/query.d.ts.map +1 -0
- package/dist/connectors/db/lib/query.js +93 -0
- package/dist/connectors/db/lib/query.js.map +1 -0
- package/dist/connectors/db/lib/schema.d.ts +13 -0
- package/dist/connectors/db/lib/schema.d.ts.map +1 -0
- package/dist/connectors/db/lib/schema.js +80 -0
- package/dist/connectors/db/lib/schema.js.map +1 -0
- package/dist/connectors/gcp/cli.d.ts +3 -0
- package/dist/connectors/gcp/cli.d.ts.map +1 -0
- package/dist/connectors/gcp/cli.js +24 -0
- package/dist/connectors/gcp/cli.js.map +1 -0
- package/dist/connectors/gcp/index.d.ts +24 -0
- package/dist/connectors/gcp/index.d.ts.map +1 -0
- package/dist/connectors/gcp/index.js +205 -0
- package/dist/connectors/gcp/index.js.map +1 -0
- package/dist/connectors/gcp/lib/gcp_client.d.ts +88 -0
- package/dist/connectors/gcp/lib/gcp_client.d.ts.map +1 -0
- package/dist/connectors/gcp/lib/gcp_client.js +434 -0
- package/dist/connectors/gcp/lib/gcp_client.js.map +1 -0
- package/dist/connectors/gcp/lib/gcp_error.d.ts +10 -0
- package/dist/connectors/gcp/lib/gcp_error.d.ts.map +1 -0
- package/dist/connectors/gcp/lib/gcp_error.js +15 -0
- package/dist/connectors/gcp/lib/gcp_error.js.map +1 -0
- package/dist/connectors/github/cli.d.ts +3 -0
- package/dist/connectors/github/cli.d.ts.map +1 -0
- package/dist/connectors/github/cli.js +23 -0
- package/dist/connectors/github/cli.js.map +1 -0
- package/dist/connectors/github/index.d.ts +23 -0
- package/dist/connectors/github/index.d.ts.map +1 -0
- package/dist/connectors/github/index.js +462 -0
- package/dist/connectors/github/index.js.map +1 -0
- package/dist/connectors/github/lib/github_client.d.ts +181 -0
- package/dist/connectors/github/lib/github_client.d.ts.map +1 -0
- package/dist/connectors/github/lib/github_client.js +383 -0
- package/dist/connectors/github/lib/github_client.js.map +1 -0
- package/dist/connectors/github/lib/github_error.d.ts +11 -0
- package/dist/connectors/github/lib/github_error.d.ts.map +1 -0
- package/dist/connectors/github/lib/github_error.js +17 -0
- package/dist/connectors/github/lib/github_error.js.map +1 -0
- package/dist/connectors/jira/cli.d.ts +3 -0
- package/dist/connectors/jira/cli.d.ts.map +1 -0
- package/dist/connectors/jira/cli.js +24 -0
- package/dist/connectors/jira/cli.js.map +1 -0
- package/dist/connectors/jira/index.d.ts +13 -0
- package/dist/connectors/jira/index.d.ts.map +1 -0
- package/dist/connectors/jira/index.js +287 -0
- package/dist/connectors/jira/index.js.map +1 -0
- package/dist/connectors/jira/lib/adf.d.ts +25 -0
- package/dist/connectors/jira/lib/adf.d.ts.map +1 -0
- package/dist/connectors/jira/lib/adf.js +105 -0
- package/dist/connectors/jira/lib/adf.js.map +1 -0
- package/dist/connectors/jira/lib/jira_client.d.ts +143 -0
- package/dist/connectors/jira/lib/jira_client.d.ts.map +1 -0
- package/dist/connectors/jira/lib/jira_client.js +355 -0
- package/dist/connectors/jira/lib/jira_client.js.map +1 -0
- package/dist/connectors/jira/lib/jira_error.d.ts +11 -0
- package/dist/connectors/jira/lib/jira_error.d.ts.map +1 -0
- package/dist/connectors/jira/lib/jira_error.js +17 -0
- package/dist/connectors/jira/lib/jira_error.js.map +1 -0
- package/dist/connectors/notion/cli.d.ts +3 -0
- package/dist/connectors/notion/cli.d.ts.map +1 -0
- package/dist/connectors/notion/cli.js +22 -0
- package/dist/connectors/notion/cli.js.map +1 -0
- package/dist/connectors/notion/index.d.ts +20 -0
- package/dist/connectors/notion/index.d.ts.map +1 -0
- package/dist/connectors/notion/index.js +317 -0
- package/dist/connectors/notion/index.js.map +1 -0
- package/dist/connectors/notion/lib/notion_client.d.ts +117 -0
- package/dist/connectors/notion/lib/notion_client.d.ts.map +1 -0
- package/dist/connectors/notion/lib/notion_client.js +377 -0
- package/dist/connectors/notion/lib/notion_client.js.map +1 -0
- package/dist/connectors/notion/lib/notion_error.d.ts +12 -0
- package/dist/connectors/notion/lib/notion_error.d.ts.map +1 -0
- package/dist/connectors/notion/lib/notion_error.js +18 -0
- package/dist/connectors/notion/lib/notion_error.js.map +1 -0
- package/dist/hub/cli.d.ts +4 -0
- package/dist/hub/cli.d.ts.map +1 -0
- package/dist/hub/cli.js +93 -0
- package/dist/hub/cli.js.map +1 -0
- package/dist/hub/dispatch.d.ts +33 -0
- package/dist/hub/dispatch.d.ts.map +1 -0
- package/dist/hub/dispatch.js +297 -0
- package/dist/hub/dispatch.js.map +1 -0
- package/dist/hub/index.d.ts +9 -0
- package/dist/hub/index.d.ts.map +1 -0
- package/dist/hub/index.js +215 -0
- package/dist/hub/index.js.map +1 -0
- package/dist/hub/plan.d.ts +24 -0
- package/dist/hub/plan.d.ts.map +1 -0
- package/dist/hub/plan.js +103 -0
- package/dist/hub/plan.js.map +1 -0
- package/dist/hub/types.d.ts +65 -0
- package/dist/hub/types.d.ts.map +1 -0
- package/dist/hub/types.js +3 -0
- package/dist/hub/types.js.map +1 -0
- package/dist/toolkit/_optional.d.ts +14 -0
- package/dist/toolkit/_optional.d.ts.map +1 -0
- package/dist/toolkit/_optional.js +96 -0
- package/dist/toolkit/_optional.js.map +1 -0
- package/dist/toolkit/agent_cli.d.ts +33 -0
- package/dist/toolkit/agent_cli.d.ts.map +1 -0
- package/dist/toolkit/agent_cli.js +62 -0
- package/dist/toolkit/agent_cli.js.map +1 -0
- package/dist/toolkit/agent_resolver.d.ts +46 -0
- package/dist/toolkit/agent_resolver.d.ts.map +1 -0
- package/dist/toolkit/agent_resolver.js +78 -0
- package/dist/toolkit/agent_resolver.js.map +1 -0
- package/dist/toolkit/audit/events.d.ts +45 -0
- package/dist/toolkit/audit/events.d.ts.map +1 -0
- package/dist/toolkit/audit/events.js +8 -0
- package/dist/toolkit/audit/events.js.map +1 -0
- package/dist/toolkit/audit/writer.d.ts +16 -0
- package/dist/toolkit/audit/writer.d.ts.map +1 -0
- package/dist/toolkit/audit/writer.js +73 -0
- package/dist/toolkit/audit/writer.js.map +1 -0
- package/dist/toolkit/cli/usage-report.d.ts +3 -0
- package/dist/toolkit/cli/usage-report.d.ts.map +1 -0
- package/dist/toolkit/cli/usage-report.js +76 -0
- package/dist/toolkit/cli/usage-report.js.map +1 -0
- package/dist/toolkit/connector.d.ts +142 -0
- package/dist/toolkit/connector.d.ts.map +1 -0
- package/dist/toolkit/connector.js +593 -0
- package/dist/toolkit/connector.js.map +1 -0
- package/dist/toolkit/extract_binary.d.ts +45 -0
- package/dist/toolkit/extract_binary.d.ts.map +1 -0
- package/dist/toolkit/extract_binary.js +342 -0
- package/dist/toolkit/extract_binary.js.map +1 -0
- package/dist/toolkit/extract_multimodal.d.ts +22 -0
- package/dist/toolkit/extract_multimodal.d.ts.map +1 -0
- package/dist/toolkit/extract_multimodal.js +209 -0
- package/dist/toolkit/extract_multimodal.js.map +1 -0
- package/dist/toolkit/fetch_attachment.d.ts +21 -0
- package/dist/toolkit/fetch_attachment.d.ts.map +1 -0
- package/dist/toolkit/fetch_attachment.js +169 -0
- package/dist/toolkit/fetch_attachment.js.map +1 -0
- package/dist/toolkit/fetch_helper.d.ts +47 -0
- package/dist/toolkit/fetch_helper.d.ts.map +1 -0
- package/dist/toolkit/fetch_helper.js +124 -0
- package/dist/toolkit/fetch_helper.js.map +1 -0
- package/dist/toolkit/guardrail.d.ts +63 -0
- package/dist/toolkit/guardrail.d.ts.map +1 -0
- package/dist/toolkit/guardrail.js +166 -0
- package/dist/toolkit/guardrail.js.map +1 -0
- package/dist/toolkit/hardship/curate.d.ts +47 -0
- package/dist/toolkit/hardship/curate.d.ts.map +1 -0
- package/dist/toolkit/hardship/curate.js +113 -0
- package/dist/toolkit/hardship/curate.js.map +1 -0
- package/dist/toolkit/hardship/patterns.d.ts +32 -0
- package/dist/toolkit/hardship/patterns.d.ts.map +1 -0
- package/dist/toolkit/hardship/patterns.js +98 -0
- package/dist/toolkit/hardship/patterns.js.map +1 -0
- package/dist/toolkit/hardship/preamble.d.ts +13 -0
- package/dist/toolkit/hardship/preamble.d.ts.map +1 -0
- package/dist/toolkit/hardship/preamble.js +47 -0
- package/dist/toolkit/hardship/preamble.js.map +1 -0
- package/dist/toolkit/hardship/read.d.ts +34 -0
- package/dist/toolkit/hardship/read.d.ts.map +1 -0
- package/dist/toolkit/hardship/read.js +116 -0
- package/dist/toolkit/hardship/read.js.map +1 -0
- package/dist/toolkit/hardship/record.d.ts +43 -0
- package/dist/toolkit/hardship/record.d.ts.map +1 -0
- package/dist/toolkit/hardship/record.js +74 -0
- package/dist/toolkit/hardship/record.js.map +1 -0
- package/dist/toolkit/hardship/scope.d.ts +20 -0
- package/dist/toolkit/hardship/scope.d.ts.map +1 -0
- package/dist/toolkit/hardship/scope.js +56 -0
- package/dist/toolkit/hardship/scope.js.map +1 -0
- package/dist/toolkit/index.d.ts +42 -0
- package/dist/toolkit/index.d.ts.map +1 -0
- package/dist/toolkit/index.js +51 -0
- package/dist/toolkit/index.js.map +1 -0
- package/dist/toolkit/plugin/curate-cmd.d.ts +22 -0
- package/dist/toolkit/plugin/curate-cmd.d.ts.map +1 -0
- package/dist/toolkit/plugin/curate-cmd.js +72 -0
- package/dist/toolkit/plugin/curate-cmd.js.map +1 -0
- package/dist/toolkit/plugin/prefs.d.ts +15 -0
- package/dist/toolkit/plugin/prefs.d.ts.map +1 -0
- package/dist/toolkit/plugin/prefs.js +78 -0
- package/dist/toolkit/plugin/prefs.js.map +1 -0
- package/dist/toolkit/plugin/reminder.d.ts +28 -0
- package/dist/toolkit/plugin/reminder.d.ts.map +1 -0
- package/dist/toolkit/plugin/reminder.js +103 -0
- package/dist/toolkit/plugin/reminder.js.map +1 -0
- package/dist/toolkit/policy/approval.d.ts +24 -0
- package/dist/toolkit/policy/approval.d.ts.map +1 -0
- package/dist/toolkit/policy/approval.js +56 -0
- package/dist/toolkit/policy/approval.js.map +1 -0
- package/dist/toolkit/policy/config.d.ts +38 -0
- package/dist/toolkit/policy/config.d.ts.map +1 -0
- package/dist/toolkit/policy/config.js +172 -0
- package/dist/toolkit/policy/config.js.map +1 -0
- package/dist/toolkit/policy/gate.d.ts +28 -0
- package/dist/toolkit/policy/gate.d.ts.map +1 -0
- package/dist/toolkit/policy/gate.js +126 -0
- package/dist/toolkit/policy/gate.js.map +1 -0
- package/dist/toolkit/policy/types.d.ts +106 -0
- package/dist/toolkit/policy/types.d.ts.map +1 -0
- package/dist/toolkit/policy/types.js +22 -0
- package/dist/toolkit/policy/types.js.map +1 -0
- package/dist/toolkit/security_check.d.ts +15 -0
- package/dist/toolkit/security_check.d.ts.map +1 -0
- package/dist/toolkit/security_check.js +109 -0
- package/dist/toolkit/security_check.js.map +1 -0
- package/dist/toolkit/usage/aggregate-cross-session.d.ts +36 -0
- package/dist/toolkit/usage/aggregate-cross-session.d.ts.map +1 -0
- package/dist/toolkit/usage/aggregate-cross-session.js +142 -0
- package/dist/toolkit/usage/aggregate-cross-session.js.map +1 -0
- package/dist/toolkit/usage/aggregate.d.ts +4 -0
- package/dist/toolkit/usage/aggregate.d.ts.map +1 -0
- package/dist/toolkit/usage/aggregate.js +105 -0
- package/dist/toolkit/usage/aggregate.js.map +1 -0
- package/dist/toolkit/usage/index.d.ts +11 -0
- package/dist/toolkit/usage/index.d.ts.map +1 -0
- package/dist/toolkit/usage/index.js +7 -0
- package/dist/toolkit/usage/index.js.map +1 -0
- package/dist/toolkit/usage/parse.d.ts +5 -0
- package/dist/toolkit/usage/parse.d.ts.map +1 -0
- package/dist/toolkit/usage/parse.js +19 -0
- package/dist/toolkit/usage/parse.js.map +1 -0
- package/dist/toolkit/usage/record.d.ts +8 -0
- package/dist/toolkit/usage/record.d.ts.map +1 -0
- package/dist/toolkit/usage/record.js +18 -0
- package/dist/toolkit/usage/record.js.map +1 -0
- package/dist/toolkit/usage/retention.d.ts +6 -0
- package/dist/toolkit/usage/retention.d.ts.map +1 -0
- package/dist/toolkit/usage/retention.js +71 -0
- package/dist/toolkit/usage/retention.js.map +1 -0
- package/dist/toolkit/usage/tokenize.d.ts +11 -0
- package/dist/toolkit/usage/tokenize.d.ts.map +1 -0
- package/dist/toolkit/usage/tokenize.js +24 -0
- package/dist/toolkit/usage/tokenize.js.map +1 -0
- package/dist/toolkit/usage/types.d.ts +34 -0
- package/dist/toolkit/usage/types.d.ts.map +1 -0
- package/dist/toolkit/usage/types.js +2 -0
- package/dist/toolkit/usage/types.js.map +1 -0
- package/package.json +124 -0
- package/plugin-hooks/session-summary.mjs +138 -0
- package/plugin-hooks/stale-summarize.mjs +70 -0
- package/plugin-hooks/usage-record.mjs +112 -0
- package/plugins/aws-agent/.claude-plugin/plugin.json +6 -0
- package/plugins/aws-agent/README.md +46 -0
- package/plugins/aws-agent/bin/aws-agent +22 -0
- package/plugins/aws-agent/commands/aws-agent.md +6 -0
- package/plugins/aws-agent/hooks/hooks.json +49 -0
- package/plugins/aws-agent/hooks/reminder.mjs +16 -0
- package/plugins/aws-agent/package.json +9 -0
- package/plugins/aws-agent/skills/aws-agent/SKILL.md +70 -0
- package/plugins/confluence-agent/.claude-plugin/plugin.json +6 -0
- package/plugins/confluence-agent/README.md +15 -0
- package/plugins/confluence-agent/bin/confluence-agent +17 -0
- package/plugins/confluence-agent/commands/confluence-agent.md +6 -0
- package/plugins/confluence-agent/hooks/hooks.json +49 -0
- package/plugins/confluence-agent/hooks/reminder.mjs +25 -0
- package/plugins/confluence-agent/package.json +8 -0
- package/plugins/confluence-agent/skills/confluence-agent/SKILL.md +40 -0
- package/plugins/db-agent/.claude-plugin/plugin.json +20 -0
- package/plugins/db-agent/README.md +13 -0
- package/plugins/db-agent/bin/db-agent +17 -0
- package/plugins/db-agent/commands/db-agent.md +6 -0
- package/plugins/db-agent/hooks/db-guard.mjs +110 -0
- package/plugins/db-agent/hooks/guardrails.json +26 -0
- package/plugins/db-agent/hooks/hooks.json +61 -0
- package/plugins/db-agent/hooks/reminder.mjs +16 -0
- package/plugins/db-agent/package.json +8 -0
- package/plugins/db-agent/skills/db-agent/SKILL.md +50 -0
- package/plugins/gcp-agent/.claude-plugin/plugin.json +6 -0
- package/plugins/gcp-agent/README.md +31 -0
- package/plugins/gcp-agent/bin/gcp-agent +18 -0
- package/plugins/gcp-agent/commands/gcp-agent.md +6 -0
- package/plugins/gcp-agent/hooks/hooks.json +49 -0
- package/plugins/gcp-agent/hooks/reminder.mjs +16 -0
- package/plugins/gcp-agent/package.json +9 -0
- package/plugins/gcp-agent/skills/gcp-agent/SKILL.md +54 -0
- package/plugins/github-agent/.claude-plugin/plugin.json +6 -0
- package/plugins/github-agent/README.md +13 -0
- package/plugins/github-agent/bin/github-agent +17 -0
- package/plugins/github-agent/commands/github-agent.md +6 -0
- package/plugins/github-agent/hooks/hooks.json +49 -0
- package/plugins/github-agent/hooks/reminder.mjs +16 -0
- package/plugins/github-agent/package.json +8 -0
- package/plugins/github-agent/skills/github-agent/SKILL.md +41 -0
- package/plugins/jira-agent/.claude-plugin/plugin.json +6 -0
- package/plugins/jira-agent/README.md +15 -0
- package/plugins/jira-agent/bin/jira-agent +17 -0
- package/plugins/jira-agent/commands/jira-agent.md +6 -0
- package/plugins/jira-agent/hooks/hooks.json +49 -0
- package/plugins/jira-agent/hooks/reminder.mjs +16 -0
- package/plugins/jira-agent/package.json +8 -0
- package/plugins/jira-agent/skills/jira-agent/SKILL.md +37 -0
- package/plugins/notion-agent/.claude-plugin/plugin.json +6 -0
- package/plugins/notion-agent/README.md +23 -0
- package/plugins/notion-agent/bin/notion-agent +17 -0
- package/plugins/notion-agent/commands/notion-agent.md +6 -0
- package/plugins/notion-agent/hooks/hooks.json +49 -0
- package/plugins/notion-agent/hooks/reminder.mjs +17 -0
- package/plugins/notion-agent/package.json +8 -0
- package/plugins/notion-agent/skills/notion-agent/SKILL.md +48 -0
|
@@ -0,0 +1,468 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* drivers/dynamodb.ts — AWS DynamoDB driver via `@aws-sdk/client-dynamodb`.
|
|
3
|
+
*
|
|
4
|
+
* Design:
|
|
5
|
+
* - DynamoDB is HTTP-based: there is no connection pool. The driver
|
|
6
|
+
* lazily creates a single shared `DynamoDBClient` on the first
|
|
7
|
+
* `connect()` call and reuses it across handles. `close()` is a
|
|
8
|
+
* no-op; {@link shutdown} destroys the client at teardown.
|
|
9
|
+
* - "Tables" map directly to DynamoDB tables.
|
|
10
|
+
* - `getSchema` uses `ListTablesCommand` + `DescribeTableCommand` to
|
|
11
|
+
* reconstruct a `Table` with its key schema as `Column` rows. Non-key
|
|
12
|
+
* attributes are not part of the DescribeTable response — DynamoDB is
|
|
13
|
+
* schemaless for those — so we do not invent them here. Callers who
|
|
14
|
+
* need attribute inference should fall back to `sample`.
|
|
15
|
+
* - `executeRead(conn, query)` treats `query` as a JSON envelope:
|
|
16
|
+
* { "table": "<name>",
|
|
17
|
+
* "op": "get"|"query"|"scan"|"sample",
|
|
18
|
+
* "key": {...}, // for "get"
|
|
19
|
+
* "keyCondition": {...}, // for "query"
|
|
20
|
+
* "filter": {...}, // for "query" / "scan"
|
|
21
|
+
* "limit": N // caps at maxRows+1
|
|
22
|
+
* }
|
|
23
|
+
* `op: "sample"` is an alias for a `ScanCommand` with a 10-item limit.
|
|
24
|
+
* - READ-ONLY: only `List`, `Describe`, `Get`, `Query`, `Scan` are
|
|
25
|
+
* imported. Any other `op` → driver-layer `SQL_ERROR` whose message
|
|
26
|
+
* begins `"forbidden op"`.
|
|
27
|
+
* - `@aws-sdk/client-dynamodb` is dynamically imported; missing install
|
|
28
|
+
* throws a clear `npm install @aws-sdk/client-dynamodb` hint.
|
|
29
|
+
*/
|
|
30
|
+
import { performance } from "node:perf_hooks";
|
|
31
|
+
import { Column, DatabaseDriver, Table, } from "./base.js";
|
|
32
|
+
import { OperationType } from "../policy.js";
|
|
33
|
+
/**
|
|
34
|
+
* G-DYNAMO-PARSE-ERROR: distinguishes a malformed envelope JSON from
|
|
35
|
+
* the default-deny "ADMIN" fall-through. `Policy.checkQuery` converts
|
|
36
|
+
* thrown errors into `{ decision: "deny", reason: <message> }` so this
|
|
37
|
+
* surfaces as a helpful diagnostic instead of "ADMIN statements are
|
|
38
|
+
* never allowed".
|
|
39
|
+
*/
|
|
40
|
+
export class DynamoEnvelopeParseError extends Error {
|
|
41
|
+
constructor(message) {
|
|
42
|
+
super(message);
|
|
43
|
+
this.name = "DynamoEnvelopeParseError";
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* G-DB-1: DynamoDB op → OperationType mapping (V2.0 vocab).
|
|
48
|
+
*
|
|
49
|
+
* Both the lower-case envelope form (`{table, op: "scan"}`) and the
|
|
50
|
+
* official AWS command names (`ScanCommand`, `PutItemCommand`) are
|
|
51
|
+
* recognised. Unknown ops default to ADMIN.
|
|
52
|
+
*/
|
|
53
|
+
const _DYNAMO_READ_OPS = new Set([
|
|
54
|
+
// envelope form
|
|
55
|
+
"get", "query", "scan", "sample", "batchGet",
|
|
56
|
+
// AWS SDK command form
|
|
57
|
+
"GetItem", "GetItemCommand", "Query", "QueryCommand",
|
|
58
|
+
"Scan", "ScanCommand", "BatchGetItem", "BatchGetItemCommand",
|
|
59
|
+
// describe / list — admin reads
|
|
60
|
+
"ListTables", "ListTablesCommand", "DescribeTable", "DescribeTableCommand",
|
|
61
|
+
]);
|
|
62
|
+
const _DYNAMO_WRITE_OPS = new Set([
|
|
63
|
+
// envelope form
|
|
64
|
+
"put", "update", "batchWrite", "transactWrite",
|
|
65
|
+
// AWS SDK command form
|
|
66
|
+
"PutItem", "PutItemCommand", "UpdateItem", "UpdateItemCommand",
|
|
67
|
+
"BatchWriteItem", "BatchWriteItemCommand",
|
|
68
|
+
"TransactWriteItems", "TransactWriteItemsCommand",
|
|
69
|
+
]);
|
|
70
|
+
const _DYNAMO_DELETE_OPS = new Set([
|
|
71
|
+
// envelope form
|
|
72
|
+
"delete",
|
|
73
|
+
// AWS SDK command form
|
|
74
|
+
"DeleteItem", "DeleteItemCommand",
|
|
75
|
+
]);
|
|
76
|
+
const _DYNAMO_ADMIN_OPS = new Set([
|
|
77
|
+
"createTable", "deleteTable", "updateTable",
|
|
78
|
+
"CreateTable", "CreateTableCommand",
|
|
79
|
+
"DeleteTable", "DeleteTableCommand",
|
|
80
|
+
"UpdateTable", "UpdateTableCommand",
|
|
81
|
+
]);
|
|
82
|
+
const READ_ONLY_OPS = new Set(["get", "query", "scan", "sample"]);
|
|
83
|
+
export class DynamoDriver extends DatabaseDriver {
|
|
84
|
+
_dynamoModule = null;
|
|
85
|
+
_client = null;
|
|
86
|
+
_clientPromise = null;
|
|
87
|
+
async _loadDynamo() {
|
|
88
|
+
if (this._dynamoModule !== null)
|
|
89
|
+
return this._dynamoModule;
|
|
90
|
+
try {
|
|
91
|
+
const mod = (await import("@aws-sdk/client-dynamodb"));
|
|
92
|
+
this._dynamoModule =
|
|
93
|
+
"DynamoDBClient" in mod
|
|
94
|
+
? mod
|
|
95
|
+
: mod.default;
|
|
96
|
+
return this._dynamoModule;
|
|
97
|
+
}
|
|
98
|
+
catch (e) {
|
|
99
|
+
throw new Error(`Driver 'dynamodb' requires '@aws-sdk/client-dynamodb' — run: npm install @aws-sdk/client-dynamodb (${e.message})`);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
_ensureClient(envConfig) {
|
|
103
|
+
if (this._client !== null)
|
|
104
|
+
return Promise.resolve(this._client);
|
|
105
|
+
if (this._clientPromise !== null)
|
|
106
|
+
return this._clientPromise;
|
|
107
|
+
this._clientPromise = this._loadDynamo().then((mod) => {
|
|
108
|
+
const region = typeof envConfig["region"] === "string"
|
|
109
|
+
? envConfig["region"]
|
|
110
|
+
: "us-east-1";
|
|
111
|
+
const endpoint = typeof envConfig["endpoint"] === "string"
|
|
112
|
+
? envConfig["endpoint"]
|
|
113
|
+
: undefined;
|
|
114
|
+
const config = { region };
|
|
115
|
+
if (endpoint !== undefined)
|
|
116
|
+
config["endpoint"] = endpoint;
|
|
117
|
+
if (typeof envConfig["credentials"] === "object" &&
|
|
118
|
+
envConfig["credentials"] !== null) {
|
|
119
|
+
config["credentials"] = envConfig["credentials"];
|
|
120
|
+
}
|
|
121
|
+
const client = new mod.DynamoDBClient(config);
|
|
122
|
+
this._client = client;
|
|
123
|
+
return client;
|
|
124
|
+
});
|
|
125
|
+
return this._clientPromise;
|
|
126
|
+
}
|
|
127
|
+
connect(envConfig) {
|
|
128
|
+
return this._ensureClient(envConfig).then(async (client) => {
|
|
129
|
+
// _loadDynamo set _dynamoModule before _ensureClient resolved, so
|
|
130
|
+
// it is guaranteed non-null here.
|
|
131
|
+
const module = this._dynamoModule;
|
|
132
|
+
return { client, module };
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
executeRead(_conn, _query, _params = null, _maxRows = 1000, _timeoutMs = 30_000) {
|
|
136
|
+
return {
|
|
137
|
+
status: "error",
|
|
138
|
+
error_code: "SYNC_UNSUPPORTED",
|
|
139
|
+
error: "DynamoDriver.executeRead is async — call executeReadAsync() instead.",
|
|
140
|
+
execution_time_ms: 0,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
async executeReadAsync(conn, query, _params = null, maxRows = 1000, _timeoutMs = 30_000) {
|
|
144
|
+
const handle = (await conn);
|
|
145
|
+
const start = performance.now();
|
|
146
|
+
try {
|
|
147
|
+
const env = _parseEnvelope(query);
|
|
148
|
+
if (env === null) {
|
|
149
|
+
return {
|
|
150
|
+
status: "error",
|
|
151
|
+
error_code: "SQL_ERROR",
|
|
152
|
+
error: "DynamoDriver: query must be a JSON envelope {table, op, ...}",
|
|
153
|
+
execution_time_ms: roundTo2(performance.now() - start),
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
if (!READ_ONLY_OPS.has(env.op)) {
|
|
157
|
+
return {
|
|
158
|
+
status: "error",
|
|
159
|
+
error_code: "SQL_ERROR",
|
|
160
|
+
error: `forbidden op: '${env.op}' — DynamoDriver allows only [${[...READ_ONLY_OPS].join(", ")}]`,
|
|
161
|
+
execution_time_ms: roundTo2(performance.now() - start),
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
const { client, module } = handle;
|
|
165
|
+
if (env.op === "get") {
|
|
166
|
+
if (env.key === undefined) {
|
|
167
|
+
return {
|
|
168
|
+
status: "error",
|
|
169
|
+
error_code: "SQL_ERROR",
|
|
170
|
+
error: "DynamoDriver: 'get' op requires 'key'",
|
|
171
|
+
execution_time_ms: roundTo2(performance.now() - start),
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
const out = (await client.send(new module.GetItemCommand({ TableName: env.table, Key: env.key })));
|
|
175
|
+
const rows = out.Item !== undefined ? [_unmarshal(out.Item)] : [];
|
|
176
|
+
return {
|
|
177
|
+
status: "success",
|
|
178
|
+
rows,
|
|
179
|
+
row_count: rows.length,
|
|
180
|
+
columns: _inferColumns(rows),
|
|
181
|
+
execution_time_ms: roundTo2(performance.now() - start),
|
|
182
|
+
truncated: false,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
if (env.op === "sample") {
|
|
186
|
+
const out = (await client.send(new module.ScanCommand({
|
|
187
|
+
TableName: env.table,
|
|
188
|
+
Limit: 10,
|
|
189
|
+
ReturnConsumedCapacity: "TOTAL",
|
|
190
|
+
})));
|
|
191
|
+
const rows = (out.Items ?? []).map(_unmarshal);
|
|
192
|
+
return {
|
|
193
|
+
status: "success",
|
|
194
|
+
rows,
|
|
195
|
+
row_count: rows.length,
|
|
196
|
+
columns: _inferColumns(rows),
|
|
197
|
+
execution_time_ms: roundTo2(performance.now() - start),
|
|
198
|
+
truncated: false,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
const effectiveLimit = Math.min(typeof env.limit === "number" ? env.limit : maxRows + 1, maxRows + 1);
|
|
202
|
+
const input = {
|
|
203
|
+
TableName: env.table,
|
|
204
|
+
Limit: effectiveLimit,
|
|
205
|
+
ReturnConsumedCapacity: "TOTAL",
|
|
206
|
+
};
|
|
207
|
+
if (env.filter !== undefined) {
|
|
208
|
+
input["FilterExpression"] = env.filter.FilterExpression;
|
|
209
|
+
if (env.filter.ExpressionAttributeValues)
|
|
210
|
+
input["ExpressionAttributeValues"] = env.filter.ExpressionAttributeValues;
|
|
211
|
+
if (env.filter.ExpressionAttributeNames)
|
|
212
|
+
input["ExpressionAttributeNames"] = env.filter.ExpressionAttributeNames;
|
|
213
|
+
}
|
|
214
|
+
if (env.op === "query") {
|
|
215
|
+
if (env.keyCondition === undefined) {
|
|
216
|
+
return {
|
|
217
|
+
status: "error",
|
|
218
|
+
error_code: "SQL_ERROR",
|
|
219
|
+
error: "DynamoDriver: 'query' op requires 'keyCondition'",
|
|
220
|
+
execution_time_ms: roundTo2(performance.now() - start),
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
input["KeyConditionExpression"] = env.keyCondition.KeyConditionExpression;
|
|
224
|
+
const prevVals = input["ExpressionAttributeValues"] ?? {};
|
|
225
|
+
const prevNames = input["ExpressionAttributeNames"] ??
|
|
226
|
+
{};
|
|
227
|
+
if (env.keyCondition.ExpressionAttributeValues)
|
|
228
|
+
input["ExpressionAttributeValues"] = {
|
|
229
|
+
...prevVals,
|
|
230
|
+
...env.keyCondition.ExpressionAttributeValues,
|
|
231
|
+
};
|
|
232
|
+
if (env.keyCondition.ExpressionAttributeNames)
|
|
233
|
+
input["ExpressionAttributeNames"] = {
|
|
234
|
+
...prevNames,
|
|
235
|
+
...env.keyCondition.ExpressionAttributeNames,
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
const Cmd = env.op === "query" ? module.QueryCommand : module.ScanCommand;
|
|
239
|
+
const out = (await client.send(new Cmd(input)));
|
|
240
|
+
let rows = (out.Items ?? []).map(_unmarshal);
|
|
241
|
+
let truncated = false;
|
|
242
|
+
if (rows.length > maxRows) {
|
|
243
|
+
truncated = true;
|
|
244
|
+
rows = rows.slice(0, maxRows);
|
|
245
|
+
}
|
|
246
|
+
return {
|
|
247
|
+
status: "success",
|
|
248
|
+
rows,
|
|
249
|
+
row_count: rows.length,
|
|
250
|
+
columns: _inferColumns(rows),
|
|
251
|
+
execution_time_ms: roundTo2(performance.now() - start),
|
|
252
|
+
truncated,
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
catch (e) {
|
|
256
|
+
return {
|
|
257
|
+
status: "error",
|
|
258
|
+
error_code: "SQL_ERROR",
|
|
259
|
+
error: e.message,
|
|
260
|
+
execution_time_ms: roundTo2(performance.now() - start),
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
getSchema(_conn, _schemaName = "", _tableFilter = null) {
|
|
265
|
+
return [];
|
|
266
|
+
}
|
|
267
|
+
async getSchemaAsync(conn, schemaName = "", tableFilter = null) {
|
|
268
|
+
const handle = (await conn);
|
|
269
|
+
const { client, module } = handle;
|
|
270
|
+
try {
|
|
271
|
+
const listed = (await client.send(new module.ListTablesCommand({})));
|
|
272
|
+
const names = listed.TableNames ?? [];
|
|
273
|
+
const filterRe = tableFilter !== null && tableFilter !== undefined
|
|
274
|
+
? new RegExp("^" +
|
|
275
|
+
tableFilter.replace(/[.+^${}()|[\]\\]/g, "\\$&").replace(/%/g, ".*") +
|
|
276
|
+
"$")
|
|
277
|
+
: null;
|
|
278
|
+
const out = [];
|
|
279
|
+
for (const name of names) {
|
|
280
|
+
if (filterRe !== null && !filterRe.test(name))
|
|
281
|
+
continue;
|
|
282
|
+
const desc = (await client.send(new module.DescribeTableCommand({ TableName: name })));
|
|
283
|
+
const table = desc.Table;
|
|
284
|
+
if (table === undefined)
|
|
285
|
+
continue;
|
|
286
|
+
const attrTypes = new Map();
|
|
287
|
+
for (const a of table.AttributeDefinitions ?? []) {
|
|
288
|
+
attrTypes.set(a.AttributeName, _awsAttrType(a.AttributeType));
|
|
289
|
+
}
|
|
290
|
+
const keys = new Set((table.KeySchema ?? []).map((k) => k.AttributeName));
|
|
291
|
+
const columns = (table.KeySchema ?? []).map((k) => new Column({
|
|
292
|
+
name: k.AttributeName,
|
|
293
|
+
data_type: attrTypes.get(k.AttributeName) ?? "unknown",
|
|
294
|
+
nullable: false,
|
|
295
|
+
is_primary_key: true,
|
|
296
|
+
default: null,
|
|
297
|
+
}));
|
|
298
|
+
for (const [attrName, attrType] of attrTypes) {
|
|
299
|
+
if (keys.has(attrName))
|
|
300
|
+
continue;
|
|
301
|
+
columns.push(new Column({
|
|
302
|
+
name: attrName,
|
|
303
|
+
data_type: attrType,
|
|
304
|
+
nullable: true,
|
|
305
|
+
is_primary_key: false,
|
|
306
|
+
default: null,
|
|
307
|
+
}));
|
|
308
|
+
}
|
|
309
|
+
out.push(new Table({ name, schema: schemaName, columns }));
|
|
310
|
+
}
|
|
311
|
+
return out;
|
|
312
|
+
}
|
|
313
|
+
catch {
|
|
314
|
+
return [];
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* No-op: DynamoDB is HTTP-based with a shared client. {@link shutdown}
|
|
319
|
+
* destroys the client at process teardown.
|
|
320
|
+
*/
|
|
321
|
+
close(_conn) {
|
|
322
|
+
/* shared client — nothing to release per-handle */
|
|
323
|
+
}
|
|
324
|
+
async closeAsync(_conn) {
|
|
325
|
+
/* shared client — nothing to release per-handle */
|
|
326
|
+
}
|
|
327
|
+
/** Per-driver health check via `ListTablesCommand` with Limit=1. */
|
|
328
|
+
async healthCheck(conn) {
|
|
329
|
+
try {
|
|
330
|
+
const handle = (await conn);
|
|
331
|
+
await handle.client.send(new handle.module.ListTablesCommand({ Limit: 1 }));
|
|
332
|
+
return true;
|
|
333
|
+
}
|
|
334
|
+
catch {
|
|
335
|
+
return false;
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* G-DB-1: classify a DynamoDB op for the policy gate (V2.0 vocab).
|
|
340
|
+
*
|
|
341
|
+
* Accepts the JSON envelope `{table, op, ...}`, AWS SDK command names
|
|
342
|
+
* like `PutItemCommand`, and dot-notation invocations. Unknown ops
|
|
343
|
+
* default to ADMIN.
|
|
344
|
+
*/
|
|
345
|
+
classifyOperation(query) {
|
|
346
|
+
const trimmed = query.trim();
|
|
347
|
+
if (trimmed.length === 0) {
|
|
348
|
+
throw new Error("Empty DynamoDB statement");
|
|
349
|
+
}
|
|
350
|
+
let op = null;
|
|
351
|
+
// Envelope form
|
|
352
|
+
if (trimmed.startsWith("{")) {
|
|
353
|
+
try {
|
|
354
|
+
const parsed = JSON.parse(trimmed);
|
|
355
|
+
if (typeof parsed.op === "string")
|
|
356
|
+
op = parsed.op;
|
|
357
|
+
}
|
|
358
|
+
catch (e) {
|
|
359
|
+
// G-DYNAMO-PARSE-ERROR: malformed envelope JSON surfaces as a
|
|
360
|
+
// distinct error so callers don't see the unhelpful default-deny
|
|
361
|
+
// "ADMIN statements are never allowed" path.
|
|
362
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
363
|
+
throw new DynamoEnvelopeParseError(`Malformed envelope JSON: ${msg}`);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
// SDK form: detect "<Verb>Command" or first identifier
|
|
367
|
+
if (op === null) {
|
|
368
|
+
const cmdMatch = /\b([A-Z][A-Za-z0-9]*Command)\b/.exec(trimmed);
|
|
369
|
+
if (cmdMatch !== null)
|
|
370
|
+
op = cmdMatch[1] ?? null;
|
|
371
|
+
}
|
|
372
|
+
if (op === null) {
|
|
373
|
+
const wordMatch = /(?:^|\.)([A-Za-z][A-Za-z0-9_]*)\s*\(/.exec(trimmed);
|
|
374
|
+
if (wordMatch !== null)
|
|
375
|
+
op = wordMatch[1] ?? null;
|
|
376
|
+
}
|
|
377
|
+
if (op === null)
|
|
378
|
+
return OperationType.ADMIN;
|
|
379
|
+
if (_DYNAMO_READ_OPS.has(op))
|
|
380
|
+
return OperationType.READ;
|
|
381
|
+
if (_DYNAMO_WRITE_OPS.has(op))
|
|
382
|
+
return OperationType.WRITE;
|
|
383
|
+
if (_DYNAMO_DELETE_OPS.has(op))
|
|
384
|
+
return OperationType.DELETE;
|
|
385
|
+
if (_DYNAMO_ADMIN_OPS.has(op))
|
|
386
|
+
return OperationType.ADMIN;
|
|
387
|
+
return OperationType.ADMIN;
|
|
388
|
+
}
|
|
389
|
+
/** Destroy the shared DynamoDBClient. */
|
|
390
|
+
async shutdown() {
|
|
391
|
+
const client = this._client;
|
|
392
|
+
this._client = null;
|
|
393
|
+
this._clientPromise = null;
|
|
394
|
+
if (client !== null) {
|
|
395
|
+
try {
|
|
396
|
+
client.destroy();
|
|
397
|
+
}
|
|
398
|
+
catch {
|
|
399
|
+
/* best-effort */
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
// ---------------------------------------------------------------------------
|
|
405
|
+
// Helpers
|
|
406
|
+
// ---------------------------------------------------------------------------
|
|
407
|
+
function _parseEnvelope(query) {
|
|
408
|
+
try {
|
|
409
|
+
const parsed = JSON.parse(query);
|
|
410
|
+
if (parsed === null ||
|
|
411
|
+
typeof parsed !== "object" ||
|
|
412
|
+
typeof parsed.table !== "string" ||
|
|
413
|
+
typeof parsed.op !== "string") {
|
|
414
|
+
return null;
|
|
415
|
+
}
|
|
416
|
+
return parsed;
|
|
417
|
+
}
|
|
418
|
+
catch {
|
|
419
|
+
return null;
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
function _unmarshal(item) {
|
|
423
|
+
const out = {};
|
|
424
|
+
for (const [k, v] of Object.entries(item)) {
|
|
425
|
+
out[k] = _unmarshalValue(v);
|
|
426
|
+
}
|
|
427
|
+
return out;
|
|
428
|
+
}
|
|
429
|
+
function _unmarshalValue(v) {
|
|
430
|
+
if (v.S !== undefined)
|
|
431
|
+
return v.S;
|
|
432
|
+
if (v.N !== undefined) {
|
|
433
|
+
const n = Number(v.N);
|
|
434
|
+
return Number.isFinite(n) ? n : v.N;
|
|
435
|
+
}
|
|
436
|
+
if (v.BOOL !== undefined)
|
|
437
|
+
return v.BOOL;
|
|
438
|
+
if (v.NULL !== undefined)
|
|
439
|
+
return null;
|
|
440
|
+
if (v.L !== undefined)
|
|
441
|
+
return v.L.map(_unmarshalValue);
|
|
442
|
+
if (v.M !== undefined)
|
|
443
|
+
return _unmarshal(v.M);
|
|
444
|
+
return null;
|
|
445
|
+
}
|
|
446
|
+
function _awsAttrType(t) {
|
|
447
|
+
switch (t) {
|
|
448
|
+
case "S":
|
|
449
|
+
return "string";
|
|
450
|
+
case "N":
|
|
451
|
+
return "number";
|
|
452
|
+
case "B":
|
|
453
|
+
return "binary";
|
|
454
|
+
default:
|
|
455
|
+
return t;
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
function _inferColumns(rows) {
|
|
459
|
+
const seen = new Set();
|
|
460
|
+
for (const r of rows)
|
|
461
|
+
for (const k of Object.keys(r))
|
|
462
|
+
seen.add(k);
|
|
463
|
+
return [...seen];
|
|
464
|
+
}
|
|
465
|
+
function roundTo2(n) {
|
|
466
|
+
return Math.round(n * 100) / 100;
|
|
467
|
+
}
|
|
468
|
+
//# sourceMappingURL=dynamodb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamodb.js","sourceRoot":"","sources":["../../../../../src/connectors/db/lib/drivers/dynamodb.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { DatabaseDriver, Table, type ExecuteReadResult } from "./base.js";
|
|
2
|
+
import { OperationType } from "../policy.js";
|
|
3
|
+
interface MongoCursor<T> {
|
|
4
|
+
toArray(): Promise<T[]>;
|
|
5
|
+
limit(n: number): MongoCursor<T>;
|
|
6
|
+
project(spec: Record<string, unknown>): MongoCursor<T>;
|
|
7
|
+
sort(spec: Record<string, unknown>): MongoCursor<T>;
|
|
8
|
+
}
|
|
9
|
+
interface MongoCollection {
|
|
10
|
+
find(filter?: Record<string, unknown>, options?: Record<string, unknown>): MongoCursor<Record<string, unknown>>;
|
|
11
|
+
aggregate(pipeline: Record<string, unknown>[], options?: Record<string, unknown>): MongoCursor<Record<string, unknown>>;
|
|
12
|
+
countDocuments(filter?: Record<string, unknown>): Promise<number>;
|
|
13
|
+
}
|
|
14
|
+
interface MongoDb {
|
|
15
|
+
collection(name: string): MongoCollection;
|
|
16
|
+
command(cmd: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
17
|
+
listCollections(): {
|
|
18
|
+
toArray(): Promise<{
|
|
19
|
+
name: string;
|
|
20
|
+
type?: string;
|
|
21
|
+
}[]>;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
interface MongoHandle {
|
|
25
|
+
db: MongoDb;
|
|
26
|
+
database: string;
|
|
27
|
+
}
|
|
28
|
+
export declare class MongoDriver extends DatabaseDriver {
|
|
29
|
+
private _mongoModule;
|
|
30
|
+
private _client;
|
|
31
|
+
private _clientPromise;
|
|
32
|
+
private _database;
|
|
33
|
+
private _loadMongo;
|
|
34
|
+
private _ensureClient;
|
|
35
|
+
connect(envConfig: Record<string, unknown>): Promise<MongoHandle>;
|
|
36
|
+
executeRead(_conn: unknown, _query: string, _params?: unknown[] | null, _maxRows?: number, _timeoutMs?: number): ExecuteReadResult;
|
|
37
|
+
executeReadAsync(conn: unknown, query: string, _params?: unknown[] | null, maxRows?: number, _timeoutMs?: number): Promise<ExecuteReadResult>;
|
|
38
|
+
getSchema(_conn: unknown, _schemaName?: string, _tableFilter?: string | null): Table[];
|
|
39
|
+
getSchemaAsync(conn: unknown, schemaName?: string, tableFilter?: string | null): Promise<Table[]>;
|
|
40
|
+
/**
|
|
41
|
+
* No-op: the MongoClient is the pool and is shared across handles.
|
|
42
|
+
* {@link shutdown} closes the client at process teardown.
|
|
43
|
+
*/
|
|
44
|
+
close(_conn: unknown): void;
|
|
45
|
+
closeAsync(_conn: unknown): Promise<void>;
|
|
46
|
+
/** Per-driver health check via MongoDB's `ping` command. */
|
|
47
|
+
healthCheck(conn: unknown): Promise<boolean>;
|
|
48
|
+
/**
|
|
49
|
+
* G-DB-1: classify a Mongo query for the policy gate (V2.0 vocab).
|
|
50
|
+
*
|
|
51
|
+
* Accepts either a JSON envelope `{collection, op, ...}` or a free-form
|
|
52
|
+
* mongo statement like `db.users.insertOne({...})`. Unknown verbs default
|
|
53
|
+
* to ADMIN — default-deny.
|
|
54
|
+
*/
|
|
55
|
+
classifyOperation(query: string): OperationType;
|
|
56
|
+
/** Close the shared MongoClient. */
|
|
57
|
+
shutdown(): Promise<void>;
|
|
58
|
+
}
|
|
59
|
+
export {};
|
|
60
|
+
//# sourceMappingURL=mongodb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mongodb.d.ts","sourceRoot":"","sources":["../../../../../src/connectors/db/lib/drivers/mongodb.ts"],"names":[],"mappings":"AA0BA,OAAO,EAEL,cAAc,EACd,KAAK,EACL,KAAK,iBAAiB,EACvB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AA+B7C,UAAU,WAAW,CAAC,CAAC;IACrB,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACxB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IACjC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;CACrD;AACD,UAAU,eAAe;IACvB,IAAI,CACF,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxC,SAAS,CACP,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EACnC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxC,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACnE;AACD,UAAU,OAAO;IACf,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC;IAC1C,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxE,eAAe,IAAI;QACjB,OAAO,IAAI,OAAO,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC,CAAC;KACvD,CAAC;CACH;AAgCD,UAAU,WAAW;IACnB,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,WAAY,SAAQ,cAAc;IAC7C,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,SAAS,CAAM;YAET,UAAU;IAoBxB,OAAO,CAAC,aAAa;IA2BZ,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAOjE,WAAW,CAClB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,OAAO,EAAE,GAAG,IAAW,EAChC,QAAQ,GAAE,MAAa,EACvB,UAAU,GAAE,MAAe,GAC1B,iBAAiB;IAUd,gBAAgB,CACpB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,OAAO,EAAE,GAAG,IAAW,EAChC,OAAO,GAAE,MAAa,EACtB,UAAU,GAAE,MAAe,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IA8EpB,SAAS,CAChB,KAAK,EAAE,OAAO,EACd,WAAW,GAAE,MAAW,EACxB,YAAY,GAAE,MAAM,GAAG,IAAW,GACjC,KAAK,EAAE;IAIJ,cAAc,CAClB,IAAI,EAAE,OAAO,EACb,UAAU,GAAE,MAAW,EACvB,WAAW,GAAE,MAAM,GAAG,IAAW,GAChC,OAAO,CAAC,KAAK,EAAE,CAAC;IA4DnB;;;OAGG;IACM,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAI9B,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,4DAA4D;IACtD,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAUlD;;;;;;OAMG;IACM,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa;IAiCxD,oCAAoC;IAC9B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAYhC"}
|