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,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default credentials file location — `~/.config/wiki_db/credentials.json`.
|
|
3
|
+
* Exported as a mutable object wrapper so tests can monkeypatch it at
|
|
4
|
+
* runtime (Python tests use `monkeypatch.setattr` on the module-level
|
|
5
|
+
* `_DEFAULT_CREDS_PATH`). Direct reassignment of the exported name would
|
|
6
|
+
* not work in strict-ESM, so we expose `.path` instead.
|
|
7
|
+
*/
|
|
8
|
+
export declare const _DEFAULT_CREDS: {
|
|
9
|
+
path: string;
|
|
10
|
+
};
|
|
11
|
+
/** Abstract base class — mirrors Python's ABC + `@abstractmethod`. */
|
|
12
|
+
export declare abstract class CredentialProvider {
|
|
13
|
+
/** Return `[username, password]` for the given environment. */
|
|
14
|
+
abstract get(env: string): [string, string];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Read credentials from a JSON file.
|
|
18
|
+
*
|
|
19
|
+
* Expected format:
|
|
20
|
+
* {
|
|
21
|
+
* "db-<env>": {"username": "...", "password": "..."},
|
|
22
|
+
* ...
|
|
23
|
+
* }
|
|
24
|
+
*
|
|
25
|
+
* Delegates the actual file reading to `@narai/credential-providers`' FileProvider
|
|
26
|
+
* so the file-mode safety check (refuses 0644+ on POSIX) and plaintext
|
|
27
|
+
* warning fire here too. Nested `db-<env>.username` / `db-<env>.password`
|
|
28
|
+
* lookups are resolved by FileProvider's dot-path traversal.
|
|
29
|
+
*/
|
|
30
|
+
export declare class FileCredentialProvider extends CredentialProvider {
|
|
31
|
+
private readonly _path;
|
|
32
|
+
private readonly _provider;
|
|
33
|
+
constructor(filePath: string);
|
|
34
|
+
get(env: string): [string, string];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Read credentials from `WIKI_DB_{ENV}_USER` / `WIKI_DB_{ENV}_PASSWORD`.
|
|
38
|
+
*
|
|
39
|
+
* Delegates to the shared `EnvVarProvider` so the env lookup logic lives
|
|
40
|
+
* in a single place.
|
|
41
|
+
*/
|
|
42
|
+
export declare class EnvVarCredentialProvider extends CredentialProvider {
|
|
43
|
+
private readonly _inner;
|
|
44
|
+
get(env: string): [string, string];
|
|
45
|
+
}
|
|
46
|
+
export interface GetCredentialsOptions {
|
|
47
|
+
/** Either "file" (default) or "env". */
|
|
48
|
+
provider?: "file" | "env";
|
|
49
|
+
/** Path override for the file provider. */
|
|
50
|
+
config?: string | null;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Convenience function to fetch credentials.
|
|
54
|
+
*
|
|
55
|
+
* @param env Environment name (e.g. "dev", "prod").
|
|
56
|
+
* @param options.provider "file" (default) or "env".
|
|
57
|
+
* @param options.config Path override for the file provider.
|
|
58
|
+
*/
|
|
59
|
+
export declare function getCredentials(env: string, options?: GetCredentialsOptions): [string, string];
|
|
60
|
+
//# sourceMappingURL=credentials.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../../src/connectors/db/lib/credentials.ts"],"names":[],"mappings":"AAuBA;;;;;;GAMG;AACH,eAAO,MAAM,cAAc;;CAE1B,CAAC;AAEF,sEAAsE;AACtE,8BAAsB,kBAAkB;IACtC,+DAA+D;IAC/D,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;CAC5C;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,sBAAuB,SAAQ,kBAAkB;IAC5D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;gBAE7B,QAAQ,EAAE,MAAM;IAMnB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;CAqB5C;AAED;;;;;GAKG;AACH,qBAAa,wBAAyB,SAAQ,kBAAkB;IAC9D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8C;IAE5D,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;CAgB5C;AAED,MAAM,WAAW,qBAAqB;IACpC,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC1B,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,qBAA0B,GAClC,CAAC,MAAM,EAAE,MAAM,CAAC,CAUlB"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* credentials.ts — Credential providers for wiki_db.
|
|
3
|
+
*
|
|
4
|
+
* Thin compatibility shim: the legacy `FileCredentialProvider` /
|
|
5
|
+
* `EnvVarCredentialProvider` / `getCredentials()` surface is retained
|
|
6
|
+
* (imported by `connection.ts` and the Phase E drivers arriving later),
|
|
7
|
+
* but the implementations now delegate to the new
|
|
8
|
+
* `@narai/credential-providers` package.
|
|
9
|
+
*
|
|
10
|
+
* Contract:
|
|
11
|
+
* - `FileCredentialProvider` reads a JSON file keyed by `db-<env>`.
|
|
12
|
+
* - `EnvVarCredentialProvider` reads `WIKI_DB_<ENV>_USER` / `..._PASSWORD`.
|
|
13
|
+
* - `getCredentials(env, {provider, config})` is the convenience dispatcher.
|
|
14
|
+
*
|
|
15
|
+
* The return type is `[string, string]` (username, password) — unchanged
|
|
16
|
+
* from the Python port so existing tests pass verbatim.
|
|
17
|
+
*/
|
|
18
|
+
import * as fs from "node:fs";
|
|
19
|
+
import * as os from "node:os";
|
|
20
|
+
import * as path from "node:path";
|
|
21
|
+
import { FileProvider, EnvVarProvider } from "@narai/credential-providers";
|
|
22
|
+
/**
|
|
23
|
+
* Default credentials file location — `~/.config/wiki_db/credentials.json`.
|
|
24
|
+
* Exported as a mutable object wrapper so tests can monkeypatch it at
|
|
25
|
+
* runtime (Python tests use `monkeypatch.setattr` on the module-level
|
|
26
|
+
* `_DEFAULT_CREDS_PATH`). Direct reassignment of the exported name would
|
|
27
|
+
* not work in strict-ESM, so we expose `.path` instead.
|
|
28
|
+
*/
|
|
29
|
+
export const _DEFAULT_CREDS = {
|
|
30
|
+
path: path.join(os.homedir(), ".config", "wiki_db", "credentials.json"),
|
|
31
|
+
};
|
|
32
|
+
/** Abstract base class — mirrors Python's ABC + `@abstractmethod`. */
|
|
33
|
+
export class CredentialProvider {
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Read credentials from a JSON file.
|
|
37
|
+
*
|
|
38
|
+
* Expected format:
|
|
39
|
+
* {
|
|
40
|
+
* "db-<env>": {"username": "...", "password": "..."},
|
|
41
|
+
* ...
|
|
42
|
+
* }
|
|
43
|
+
*
|
|
44
|
+
* Delegates the actual file reading to `@narai/credential-providers`' FileProvider
|
|
45
|
+
* so the file-mode safety check (refuses 0644+ on POSIX) and plaintext
|
|
46
|
+
* warning fire here too. Nested `db-<env>.username` / `db-<env>.password`
|
|
47
|
+
* lookups are resolved by FileProvider's dot-path traversal.
|
|
48
|
+
*/
|
|
49
|
+
export class FileCredentialProvider extends CredentialProvider {
|
|
50
|
+
_path;
|
|
51
|
+
_provider;
|
|
52
|
+
constructor(filePath) {
|
|
53
|
+
super();
|
|
54
|
+
this._path = filePath;
|
|
55
|
+
this._provider = new FileProvider({ path: filePath });
|
|
56
|
+
}
|
|
57
|
+
get(env) {
|
|
58
|
+
if (!fs.existsSync(this._path)) {
|
|
59
|
+
const err = new Error(`Credentials file not found: ${this._path}`);
|
|
60
|
+
err.name = "CredentialsFileNotFoundError";
|
|
61
|
+
err.code = "ENOENT";
|
|
62
|
+
throw err;
|
|
63
|
+
}
|
|
64
|
+
const key = `db-${env}`;
|
|
65
|
+
const user = this._provider.getSecretSync(`${key}.username`);
|
|
66
|
+
const password = this._provider.getSecretSync(`${key}.password`);
|
|
67
|
+
if (user === null || password === null) {
|
|
68
|
+
const err = new Error(`No credentials found for environment '${env}' (key '${key}')`);
|
|
69
|
+
err.name = "EnvironmentNotConfiguredError";
|
|
70
|
+
throw err;
|
|
71
|
+
}
|
|
72
|
+
return [user, password];
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Read credentials from `WIKI_DB_{ENV}_USER` / `WIKI_DB_{ENV}_PASSWORD`.
|
|
77
|
+
*
|
|
78
|
+
* Delegates to the shared `EnvVarProvider` so the env lookup logic lives
|
|
79
|
+
* in a single place.
|
|
80
|
+
*/
|
|
81
|
+
export class EnvVarCredentialProvider extends CredentialProvider {
|
|
82
|
+
_inner = new EnvVarProvider({ prefix: "WIKI_DB_" });
|
|
83
|
+
get(env) {
|
|
84
|
+
const envUpper = env.toUpperCase();
|
|
85
|
+
const user = this._inner.getSecretSync(`${envUpper}_USER`);
|
|
86
|
+
const password = this._inner.getSecretSync(`${envUpper}_PASSWORD`);
|
|
87
|
+
if (user === null || password === null) {
|
|
88
|
+
const missing = [];
|
|
89
|
+
if (user === null)
|
|
90
|
+
missing.push(`WIKI_DB_${envUpper}_USER`);
|
|
91
|
+
if (password === null)
|
|
92
|
+
missing.push(`WIKI_DB_${envUpper}_PASSWORD`);
|
|
93
|
+
const err = new Error(`Missing environment variable(s): ${missing.join(", ")}`);
|
|
94
|
+
err.name = "EnvironmentVariableMissingError";
|
|
95
|
+
throw err;
|
|
96
|
+
}
|
|
97
|
+
return [user, password];
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Convenience function to fetch credentials.
|
|
102
|
+
*
|
|
103
|
+
* @param env Environment name (e.g. "dev", "prod").
|
|
104
|
+
* @param options.provider "file" (default) or "env".
|
|
105
|
+
* @param options.config Path override for the file provider.
|
|
106
|
+
*/
|
|
107
|
+
export function getCredentials(env, options = {}) {
|
|
108
|
+
const provider = options.provider ?? "file";
|
|
109
|
+
const config = options.config ?? null;
|
|
110
|
+
if (provider === "env") {
|
|
111
|
+
return new EnvVarCredentialProvider().get(env);
|
|
112
|
+
}
|
|
113
|
+
// default: file
|
|
114
|
+
const p = config !== null ? config : _DEFAULT_CREDS.path;
|
|
115
|
+
return new FileCredentialProvider(p).get(env);
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../../../src/connectors/db/lib/credentials.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* drivers/base.ts — Abstract base class for database drivers.
|
|
3
|
+
*
|
|
4
|
+
* `Column` and `Table` carry metadata with a `toDict()` helper.
|
|
5
|
+
* `DatabaseDriver` exposes `connect`, `executeRead`, `getSchema`, `close`,
|
|
6
|
+
* and `classifyOperation`.
|
|
7
|
+
*
|
|
8
|
+
* G-DB-1: `classifyOperation(query)` is the driver-level hook that lets
|
|
9
|
+
* non-relational drivers (MongoDB, DynamoDB) classify their JSON envelope
|
|
10
|
+
* queries (V2.0 vocab: `db.users.insertOne({...})` → WRITE; `find` →
|
|
11
|
+
* READ; `deleteMany` → DELETE) without going through the SQL keyword
|
|
12
|
+
* path. SQL drivers delegate to `classifySqlKeywords` from `policy.ts`.
|
|
13
|
+
*/
|
|
14
|
+
import type { OperationType } from "../policy.js";
|
|
15
|
+
/** Represents a database column. */
|
|
16
|
+
export declare class Column {
|
|
17
|
+
readonly name: string;
|
|
18
|
+
readonly data_type: string;
|
|
19
|
+
readonly nullable: boolean;
|
|
20
|
+
readonly is_primary_key: boolean;
|
|
21
|
+
readonly default: string | null;
|
|
22
|
+
constructor(opts: {
|
|
23
|
+
name: string;
|
|
24
|
+
data_type: string;
|
|
25
|
+
nullable?: boolean;
|
|
26
|
+
is_primary_key?: boolean;
|
|
27
|
+
default?: string | null;
|
|
28
|
+
});
|
|
29
|
+
toDict(): {
|
|
30
|
+
name: string;
|
|
31
|
+
data_type: string;
|
|
32
|
+
nullable: boolean;
|
|
33
|
+
is_primary_key: boolean;
|
|
34
|
+
default: string | null;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/** Represents a database table with its columns. */
|
|
38
|
+
export declare class Table {
|
|
39
|
+
readonly name: string;
|
|
40
|
+
readonly schema: string;
|
|
41
|
+
readonly columns: Column[];
|
|
42
|
+
constructor(opts: {
|
|
43
|
+
name: string;
|
|
44
|
+
schema?: string;
|
|
45
|
+
columns?: Column[];
|
|
46
|
+
});
|
|
47
|
+
toDict(): {
|
|
48
|
+
name: string;
|
|
49
|
+
schema: string;
|
|
50
|
+
columns: ReturnType<Column["toDict"]>[];
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export interface ExecuteReadResult {
|
|
54
|
+
status: "success" | "error";
|
|
55
|
+
rows?: Record<string, unknown>[];
|
|
56
|
+
row_count?: number;
|
|
57
|
+
columns?: string[];
|
|
58
|
+
execution_time_ms: number;
|
|
59
|
+
truncated?: boolean;
|
|
60
|
+
error_code?: string;
|
|
61
|
+
error?: string;
|
|
62
|
+
}
|
|
63
|
+
/** Abstract base for all database drivers. */
|
|
64
|
+
export declare abstract class DatabaseDriver {
|
|
65
|
+
/** Create a connection to the database. */
|
|
66
|
+
abstract connect(envConfig: Record<string, unknown>): unknown;
|
|
67
|
+
/** Execute a read query. Returns structured result dict. */
|
|
68
|
+
abstract executeRead(conn: unknown, query: string, params?: unknown[] | null, maxRows?: number, timeoutMs?: number): ExecuteReadResult;
|
|
69
|
+
/** Get schema information (tables + columns). */
|
|
70
|
+
abstract getSchema(conn: unknown, schemaName?: string, tableFilter?: string | null): Table[];
|
|
71
|
+
/** Close a connection. */
|
|
72
|
+
abstract close(conn: unknown): void;
|
|
73
|
+
/**
|
|
74
|
+
* Classify a query string by its operation kind (V2.0 vocab:
|
|
75
|
+
* read/write/delete/admin/privilege).
|
|
76
|
+
*
|
|
77
|
+
* SQL drivers delegate to `classifySqlKeywords`. Document-store drivers
|
|
78
|
+
* override with envelope-aware mapping. Default-deny: unknown verbs
|
|
79
|
+
* classify as `"admin"` (most restrictive). Throws on empty input.
|
|
80
|
+
*/
|
|
81
|
+
abstract classifyOperation(query: string): OperationType;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/connectors/db/lib/drivers/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,oCAAoC;AACpC,qBAAa,MAAM;IACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;gBAG9B,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB;IASH,MAAM,IAAI;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,OAAO,CAAC;QAClB,cAAc,EAAE,OAAO,CAAC;QACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB;CASF;AAED,oDAAoD;AACpD,qBAAa,KAAK;IAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;gBAEf,IAAI,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB;IAMD,MAAM,IAAI;QACR,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;KACzC;CAOF;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,8CAA8C;AAC9C,8BAAsB,cAAc;IAClC,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAE7D,4DAA4D;IAC5D,QAAQ,CAAC,WAAW,CAClB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,EACzB,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,iBAAiB;IAEpB,iDAAiD;IACjD,QAAQ,CAAC,SAAS,CAChB,IAAI,EAAE,OAAO,EACb,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAC1B,KAAK,EAAE;IAEV,0BAA0B;IAC1B,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAEnC;;;;;;;OAOG;IACH,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa;CACzD"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/** Represents a database column. */
|
|
2
|
+
export class Column {
|
|
3
|
+
name;
|
|
4
|
+
data_type;
|
|
5
|
+
nullable;
|
|
6
|
+
is_primary_key;
|
|
7
|
+
default;
|
|
8
|
+
constructor(opts) {
|
|
9
|
+
this.name = opts.name;
|
|
10
|
+
this.data_type = opts.data_type;
|
|
11
|
+
this.nullable = opts.nullable ?? true;
|
|
12
|
+
this.is_primary_key = opts.is_primary_key ?? false;
|
|
13
|
+
this.default = opts.default ?? null;
|
|
14
|
+
}
|
|
15
|
+
toDict() {
|
|
16
|
+
return {
|
|
17
|
+
name: this.name,
|
|
18
|
+
data_type: this.data_type,
|
|
19
|
+
nullable: this.nullable,
|
|
20
|
+
is_primary_key: this.is_primary_key,
|
|
21
|
+
default: this.default,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/** Represents a database table with its columns. */
|
|
26
|
+
export class Table {
|
|
27
|
+
name;
|
|
28
|
+
schema;
|
|
29
|
+
columns;
|
|
30
|
+
constructor(opts) {
|
|
31
|
+
this.name = opts.name;
|
|
32
|
+
this.schema = opts.schema ?? "";
|
|
33
|
+
this.columns = opts.columns ?? [];
|
|
34
|
+
}
|
|
35
|
+
toDict() {
|
|
36
|
+
return {
|
|
37
|
+
name: this.name,
|
|
38
|
+
schema: this.schema,
|
|
39
|
+
columns: this.columns.map((c) => c.toDict()),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/** Abstract base for all database drivers. */
|
|
44
|
+
export class DatabaseDriver {
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../src/connectors/db/lib/drivers/base.ts"],"names":[],"mappings":"AAeA,oCAAoC;AACpC,MAAM,OAAO,MAAM;IACR,IAAI,CAAS;IACb,SAAS,CAAS;IAClB,QAAQ,CAAU;IAClB,cAAc,CAAU;IACxB,OAAO,CAAgB;IAEhC,YACE,IAMC;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;QACtC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC;QACnD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;IACtC,CAAC;IAED,MAAM;QAOJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;CACF;AAED,oDAAoD;AACpD,MAAM,OAAO,KAAK;IACP,IAAI,CAAS;IACb,MAAM,CAAS;IACf,OAAO,CAAW;IAE3B,YAAY,IAIX;QACC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IACpC,CAAC;IAED,MAAM;QAKJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SAC7C,CAAC;IACJ,CAAC;CACF;AAaD,8CAA8C;AAC9C,MAAM,OAAgB,cAAc;CAgCnC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { DatabaseDriver, Table, type ExecuteReadResult } from "./base.js";
|
|
2
|
+
import { OperationType } from "../policy.js";
|
|
3
|
+
/**
|
|
4
|
+
* G-DYNAMO-PARSE-ERROR: distinguishes a malformed envelope JSON from
|
|
5
|
+
* the default-deny "ADMIN" fall-through. `Policy.checkQuery` converts
|
|
6
|
+
* thrown errors into `{ decision: "deny", reason: <message> }` so this
|
|
7
|
+
* surfaces as a helpful diagnostic instead of "ADMIN statements are
|
|
8
|
+
* never allowed".
|
|
9
|
+
*/
|
|
10
|
+
export declare class DynamoEnvelopeParseError extends Error {
|
|
11
|
+
constructor(message: string);
|
|
12
|
+
}
|
|
13
|
+
interface DynamoAttributeValue {
|
|
14
|
+
S?: string;
|
|
15
|
+
N?: string;
|
|
16
|
+
BOOL?: boolean;
|
|
17
|
+
NULL?: boolean;
|
|
18
|
+
L?: DynamoAttributeValue[];
|
|
19
|
+
M?: Record<string, DynamoAttributeValue>;
|
|
20
|
+
}
|
|
21
|
+
type DynamoItem = Record<string, DynamoAttributeValue>;
|
|
22
|
+
interface ListTablesOutput {
|
|
23
|
+
TableNames?: string[];
|
|
24
|
+
LastEvaluatedTableName?: string;
|
|
25
|
+
}
|
|
26
|
+
interface DescribeTableOutput {
|
|
27
|
+
Table?: {
|
|
28
|
+
TableName?: string;
|
|
29
|
+
KeySchema?: {
|
|
30
|
+
AttributeName: string;
|
|
31
|
+
KeyType: "HASH" | "RANGE";
|
|
32
|
+
}[];
|
|
33
|
+
AttributeDefinitions?: {
|
|
34
|
+
AttributeName: string;
|
|
35
|
+
AttributeType: string;
|
|
36
|
+
}[];
|
|
37
|
+
ItemCount?: number;
|
|
38
|
+
CreationDateTime?: Date;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
interface QueryScanOutput {
|
|
42
|
+
Items?: DynamoItem[];
|
|
43
|
+
Count?: number;
|
|
44
|
+
LastEvaluatedKey?: DynamoItem;
|
|
45
|
+
ConsumedCapacity?: unknown;
|
|
46
|
+
}
|
|
47
|
+
interface GetOutput {
|
|
48
|
+
Item?: DynamoItem;
|
|
49
|
+
ConsumedCapacity?: unknown;
|
|
50
|
+
}
|
|
51
|
+
interface DynamoClient {
|
|
52
|
+
send(cmd: unknown): Promise<unknown>;
|
|
53
|
+
destroy(): void;
|
|
54
|
+
}
|
|
55
|
+
interface DynamoCommandCtor<I, O> {
|
|
56
|
+
new (input: I): {
|
|
57
|
+
__output__?: O;
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
interface DynamoModule {
|
|
61
|
+
DynamoDBClient: new (config: Record<string, unknown>) => DynamoClient;
|
|
62
|
+
ListTablesCommand: DynamoCommandCtor<Record<string, unknown>, ListTablesOutput>;
|
|
63
|
+
DescribeTableCommand: DynamoCommandCtor<{
|
|
64
|
+
TableName: string;
|
|
65
|
+
}, DescribeTableOutput>;
|
|
66
|
+
GetItemCommand: DynamoCommandCtor<{
|
|
67
|
+
TableName: string;
|
|
68
|
+
Key: DynamoItem;
|
|
69
|
+
}, GetOutput>;
|
|
70
|
+
QueryCommand: DynamoCommandCtor<Record<string, unknown>, QueryScanOutput>;
|
|
71
|
+
ScanCommand: DynamoCommandCtor<Record<string, unknown>, QueryScanOutput>;
|
|
72
|
+
}
|
|
73
|
+
interface DynamoHandle {
|
|
74
|
+
client: DynamoClient;
|
|
75
|
+
module: DynamoModule;
|
|
76
|
+
}
|
|
77
|
+
export declare class DynamoDriver extends DatabaseDriver {
|
|
78
|
+
private _dynamoModule;
|
|
79
|
+
private _client;
|
|
80
|
+
private _clientPromise;
|
|
81
|
+
private _loadDynamo;
|
|
82
|
+
private _ensureClient;
|
|
83
|
+
connect(envConfig: Record<string, unknown>): Promise<DynamoHandle>;
|
|
84
|
+
executeRead(_conn: unknown, _query: string, _params?: unknown[] | null, _maxRows?: number, _timeoutMs?: number): ExecuteReadResult;
|
|
85
|
+
executeReadAsync(conn: unknown, query: string, _params?: unknown[] | null, maxRows?: number, _timeoutMs?: number): Promise<ExecuteReadResult>;
|
|
86
|
+
getSchema(_conn: unknown, _schemaName?: string, _tableFilter?: string | null): Table[];
|
|
87
|
+
getSchemaAsync(conn: unknown, schemaName?: string, tableFilter?: string | null): Promise<Table[]>;
|
|
88
|
+
/**
|
|
89
|
+
* No-op: DynamoDB is HTTP-based with a shared client. {@link shutdown}
|
|
90
|
+
* destroys the client at process teardown.
|
|
91
|
+
*/
|
|
92
|
+
close(_conn: unknown): void;
|
|
93
|
+
closeAsync(_conn: unknown): Promise<void>;
|
|
94
|
+
/** Per-driver health check via `ListTablesCommand` with Limit=1. */
|
|
95
|
+
healthCheck(conn: unknown): Promise<boolean>;
|
|
96
|
+
/**
|
|
97
|
+
* G-DB-1: classify a DynamoDB op for the policy gate (V2.0 vocab).
|
|
98
|
+
*
|
|
99
|
+
* Accepts the JSON envelope `{table, op, ...}`, AWS SDK command names
|
|
100
|
+
* like `PutItemCommand`, and dot-notation invocations. Unknown ops
|
|
101
|
+
* default to ADMIN.
|
|
102
|
+
*/
|
|
103
|
+
classifyOperation(query: string): OperationType;
|
|
104
|
+
/** Destroy the shared DynamoDBClient. */
|
|
105
|
+
shutdown(): Promise<void>;
|
|
106
|
+
}
|
|
107
|
+
export {};
|
|
108
|
+
//# sourceMappingURL=dynamodb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamodb.d.ts","sourceRoot":"","sources":["../../../../../src/connectors/db/lib/drivers/dynamodb.ts"],"names":[],"mappings":"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"}
|