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,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @narai/db-agent-connector — public API barrel.
|
|
3
|
+
*
|
|
4
|
+
* Default export: a ready-to-use `Connector` built on
|
|
5
|
+
* `@narai/connector-toolkit`. Use `import connector from "narai-primitives/db"`
|
|
6
|
+
* and call `connector.fetch(action, params)` / `connector.main(argv)`.
|
|
7
|
+
*
|
|
8
|
+
* Legacy surface: `fetch(action, params)` is re-exported from the internal
|
|
9
|
+
* dispatcher for programmatic callers that want the pre-framework envelope
|
|
10
|
+
* shape (`{status: "ok"|"denied"|..., rows, columns, ...}`). The framework
|
|
11
|
+
* connector translates that into the canonical envelope at the boundary.
|
|
12
|
+
*/
|
|
13
|
+
import { buildDbConnector } from "./connector.js";
|
|
14
|
+
const connector = buildDbConnector();
|
|
15
|
+
export default connector;
|
|
16
|
+
export const { main, fetch, validActions } = connector;
|
|
17
|
+
export { buildDbConnector };
|
|
18
|
+
// Legacy dispatcher surface (pre-2.0 envelope shape, still useful for
|
|
19
|
+
// programmatic callers embedding the DB policy gate directly).
|
|
20
|
+
export { fetch as dispatcherFetch, VALID_ACTIONS, HELP_TEXT, } from "./dispatcher.js";
|
|
21
|
+
export * from "./lib/index.js";
|
|
22
|
+
// Selective re-export to avoid `CredentialProvider` name clash with the
|
|
23
|
+
// legacy class in `lib/credentials.ts`.
|
|
24
|
+
export { registerProvider, getProvider, clearProviders, listProviders, resolveSecret, FileProvider, EnvVarProvider, KeychainProvider, CloudSecretsProvider, parseCredentialRef, KNOWN_PROVIDERS, } from "@narai/credential-providers";
|
|
25
|
+
export { parseConfig, ConfigFileNotFoundError, } from "./config.js";
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/connectors/db/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;AACrC,eAAe,SAAS,CAAC;AACzB,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,sEAAsE;AACtE,+DAA+D;AAC/D,OAAO,EACL,KAAK,IAAI,eAAe,EACxB,aAAa,EACb,SAAS,GAIV,MAAM,iBAAiB,CAAC;AAEzB,cAAc,gBAAgB,CAAC;AAE/B,wEAAwE;AACxE,wCAAwC;AACxC,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,aAAa,EACb,aAAa,EACb,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,GAKhB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,WAAW,EAEX,uBAAuB,GACxB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enable audit logging to `path` (JSONL file).
|
|
3
|
+
* If `sessionId` is not provided, a random 12-char hex string is generated.
|
|
4
|
+
*/
|
|
5
|
+
export declare function enableAudit(filePath: string, sessionId?: string | null): void;
|
|
6
|
+
/** Disable audit logging and clear state. */
|
|
7
|
+
export declare function disableAudit(): void;
|
|
8
|
+
export interface LogQueryParams {
|
|
9
|
+
env: string;
|
|
10
|
+
query: string;
|
|
11
|
+
status: string;
|
|
12
|
+
row_count: number;
|
|
13
|
+
execution_time_ms: number;
|
|
14
|
+
error?: string | null;
|
|
15
|
+
context?: string | null;
|
|
16
|
+
}
|
|
17
|
+
export declare function scrubSqlSecrets(sql: string): string;
|
|
18
|
+
/** Log a query execution event. */
|
|
19
|
+
export declare function logQuery(params: LogQueryParams): void;
|
|
20
|
+
export interface LogEventParams {
|
|
21
|
+
event_type: string;
|
|
22
|
+
details?: Record<string, unknown> | null;
|
|
23
|
+
}
|
|
24
|
+
/** Log a non-query event (e.g. connect, schema_inspect). */
|
|
25
|
+
export declare function logEvent(params: LogEventParams): void;
|
|
26
|
+
/** Internal: state snapshot exposed only for tests. */
|
|
27
|
+
export declare function _auditState(): {
|
|
28
|
+
enabled: boolean;
|
|
29
|
+
path: string | null;
|
|
30
|
+
sessionId: string | null;
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=audit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../../../src/connectors/db/lib/audit.ts"],"names":[],"mappings":"AAwBA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAQ7E;AAED,6CAA6C;AAC7C,wBAAgB,YAAY,IAAI,IAAI,CAInC;AAiCD,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAgBD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAInD;AAED,mCAAmC;AACnC,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAmBrD;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC1C;AAED,4DAA4D;AAC5D,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAUrD;AAED,uDAAuD;AACvD,wBAAgB,WAAW,IAAI;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAMA"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* audit.ts — Audit logging for wiki_db (JSONL format, non-failing).
|
|
3
|
+
*
|
|
4
|
+
* Mirrors `audit.py`:
|
|
5
|
+
* - Module-level state holds `enabled`, `path`, and `session_id`.
|
|
6
|
+
* - `enableAudit` / `disableAudit` toggle the state.
|
|
7
|
+
* - `logQuery` / `logEvent` append a single JSON line each; errors are
|
|
8
|
+
* swallowed so logging never raises into the caller.
|
|
9
|
+
*
|
|
10
|
+
* JSONL format parity: JSON.stringify uses compact separators (",", ":"),
|
|
11
|
+
* which matches Python's `json.dumps(record)` output byte-for-byte for
|
|
12
|
+
* dict+string+number payloads. Keys appear in insertion order in both
|
|
13
|
+
* languages.
|
|
14
|
+
*/
|
|
15
|
+
import * as crypto from "node:crypto";
|
|
16
|
+
import * as fs from "node:fs";
|
|
17
|
+
// Module-level state
|
|
18
|
+
const _state = {
|
|
19
|
+
enabled: false,
|
|
20
|
+
path: null,
|
|
21
|
+
sessionId: null,
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Enable audit logging to `path` (JSONL file).
|
|
25
|
+
* If `sessionId` is not provided, a random 12-char hex string is generated.
|
|
26
|
+
*/
|
|
27
|
+
export function enableAudit(filePath, sessionId) {
|
|
28
|
+
_state.enabled = true;
|
|
29
|
+
_state.path = filePath;
|
|
30
|
+
_state.sessionId =
|
|
31
|
+
sessionId !== undefined && sessionId !== null
|
|
32
|
+
? sessionId
|
|
33
|
+
// Python: secrets.token_hex(6) → 12 hex chars.
|
|
34
|
+
: crypto.randomBytes(6).toString("hex");
|
|
35
|
+
}
|
|
36
|
+
/** Disable audit logging and clear state. */
|
|
37
|
+
export function disableAudit() {
|
|
38
|
+
_state.enabled = false;
|
|
39
|
+
_state.path = null;
|
|
40
|
+
_state.sessionId = null;
|
|
41
|
+
}
|
|
42
|
+
/** Append a JSON record to the audit file. Never raises.
|
|
43
|
+
*
|
|
44
|
+
* Uses JSON.stringify (compact form) so each record fits on one line.
|
|
45
|
+
*/
|
|
46
|
+
function _writeRecord(record) {
|
|
47
|
+
if (!_state.enabled || _state.path === null)
|
|
48
|
+
return;
|
|
49
|
+
try {
|
|
50
|
+
// fs.appendFileSync creates the file if missing but NOT parent dirs,
|
|
51
|
+
// matching Python's `open(path, "a")` semantics.
|
|
52
|
+
fs.appendFileSync(_state.path, JSON.stringify(record) + "\n", "utf-8");
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// best-effort, same as Python's `except OSError: pass`
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Python-compatible ISO-8601 UTC timestamp with trailing "Z".
|
|
60
|
+
*
|
|
61
|
+
* Python's `datetime.datetime.utcnow().isoformat() + "Z"` produces a
|
|
62
|
+
* format like `"2026-04-12T10:55:50.123456"` (microseconds) + `"Z"`.
|
|
63
|
+
* JS's `Date().toISOString()` yields `"2026-04-12T10:55:50.123Z"`
|
|
64
|
+
* (millisecond precision). Both are valid ISO-8601 so downstream parsers
|
|
65
|
+
* accept them; the test only checks for the key's presence.
|
|
66
|
+
*/
|
|
67
|
+
function _isoTimestamp() {
|
|
68
|
+
// Strip trailing Z that toISOString includes, then re-append to match
|
|
69
|
+
// Python's explicit `+ "Z"` composition.
|
|
70
|
+
const iso = new Date().toISOString();
|
|
71
|
+
return iso.endsWith("Z") ? iso : iso + "Z";
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Mask values of common credential-bearing identifiers in a SQL string.
|
|
75
|
+
*
|
|
76
|
+
* Catches `password='…'`, `token="…"`, `api_key='…'`, etc. so that
|
|
77
|
+
* read-only queries against the user's own DB don't persist embedded
|
|
78
|
+
* credentials to events.jsonl. Intentionally only handles complete
|
|
79
|
+
* single/double-quoted literals — partial or concatenated literals are
|
|
80
|
+
* out of scope.
|
|
81
|
+
*/
|
|
82
|
+
const _SENSITIVE_LITERAL_SQUOTE_RE = /\b(password|passwd|pwd|token|api[_-]?key|secret|access[_-]?key|auth)\s*=\s*'[^']*'/gi;
|
|
83
|
+
const _SENSITIVE_LITERAL_DQUOTE_RE = /\b(password|passwd|pwd|token|api[_-]?key|secret|access[_-]?key|auth)\s*=\s*"[^"]*"/gi;
|
|
84
|
+
export function scrubSqlSecrets(sql) {
|
|
85
|
+
return sql
|
|
86
|
+
.replace(_SENSITIVE_LITERAL_SQUOTE_RE, (_m, key) => `${key}='[REDACTED]'`)
|
|
87
|
+
.replace(_SENSITIVE_LITERAL_DQUOTE_RE, (_m, key) => `${key}="[REDACTED]"`);
|
|
88
|
+
}
|
|
89
|
+
/** Log a query execution event. */
|
|
90
|
+
export function logQuery(params) {
|
|
91
|
+
const record = {
|
|
92
|
+
event_type: "query",
|
|
93
|
+
timestamp: _isoTimestamp(),
|
|
94
|
+
session_id: _state.sessionId,
|
|
95
|
+
env: params.env,
|
|
96
|
+
// Scrub before truncate so a credential split by truncation can't leak.
|
|
97
|
+
query: scrubSqlSecrets(params.query).slice(0, 2000),
|
|
98
|
+
status: params.status,
|
|
99
|
+
row_count: params.row_count,
|
|
100
|
+
execution_time_ms: params.execution_time_ms,
|
|
101
|
+
};
|
|
102
|
+
if (params.error !== undefined && params.error !== null) {
|
|
103
|
+
record["error"] = params.error;
|
|
104
|
+
}
|
|
105
|
+
if (params.context !== undefined && params.context !== null) {
|
|
106
|
+
record["context"] = params.context;
|
|
107
|
+
}
|
|
108
|
+
_writeRecord(record);
|
|
109
|
+
}
|
|
110
|
+
/** Log a non-query event (e.g. connect, schema_inspect). */
|
|
111
|
+
export function logEvent(params) {
|
|
112
|
+
const record = {
|
|
113
|
+
event_type: params.event_type,
|
|
114
|
+
timestamp: _isoTimestamp(),
|
|
115
|
+
session_id: _state.sessionId,
|
|
116
|
+
};
|
|
117
|
+
if (params.details !== undefined && params.details !== null) {
|
|
118
|
+
record["details"] = params.details;
|
|
119
|
+
}
|
|
120
|
+
_writeRecord(record);
|
|
121
|
+
}
|
|
122
|
+
/** Internal: state snapshot exposed only for tests. */
|
|
123
|
+
export function _auditState() {
|
|
124
|
+
return {
|
|
125
|
+
enabled: _state.enabled,
|
|
126
|
+
path: _state.path,
|
|
127
|
+
sessionId: _state.sessionId,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../../src/connectors/db/lib/audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { DatabaseDriver } from "./drivers/base.js";
|
|
2
|
+
/**
|
|
3
|
+
* Returns a concrete `DatabaseDriver` for a given environment's config.
|
|
4
|
+
*
|
|
5
|
+
* For pool-aware drivers (Phase E: pg, mysql, mssql, mongo, dynamo) the
|
|
6
|
+
* factory is expected to return a driver that wraps a connection pool
|
|
7
|
+
* internally — one driver instance per environment, reused across calls.
|
|
8
|
+
*/
|
|
9
|
+
export type DriverFactory = (envConfig: Record<string, unknown>) => DatabaseDriver;
|
|
10
|
+
/** Register a factory under a driver name (e.g. "sqlite", "postgresql"). */
|
|
11
|
+
export declare function registerDriverFactory(name: string, factory: DriverFactory): void;
|
|
12
|
+
/** Remove all registered factories (test helper). */
|
|
13
|
+
export declare function clearDriverFactories(): void;
|
|
14
|
+
/** Return registered driver names (test helper). */
|
|
15
|
+
export declare function listDriverFactories(): string[];
|
|
16
|
+
/** A handle returned by {@link getConnection}. */
|
|
17
|
+
export interface Connection {
|
|
18
|
+
/** The environment name this handle was opened for. */
|
|
19
|
+
envName: string;
|
|
20
|
+
/** Driver-native connection object (opaque). */
|
|
21
|
+
native: unknown;
|
|
22
|
+
/** Driver used to create this connection (used by release/healthCheck). */
|
|
23
|
+
driver: DatabaseDriver;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Obtain a connection for the named environment. Creates the driver and
|
|
27
|
+
* pool lazily on first call. Returns a handle that must be passed to
|
|
28
|
+
* {@link releaseConnection} when done.
|
|
29
|
+
*
|
|
30
|
+
* G-CONN-AWAIT: async drivers (pg, mysql, mssql, mongo, dynamo) return
|
|
31
|
+
* a Promise from `connect()`. We await the resolved handle before
|
|
32
|
+
* registering it in `openConnections` so identity-based lookups in
|
|
33
|
+
* `releaseConnection`/`shutdownAll` match the same object the caller
|
|
34
|
+
* holds. `Promise.resolve(x)` no-ops on the sync SQLite path.
|
|
35
|
+
*/
|
|
36
|
+
export declare function getConnection(envName: string): Promise<Connection>;
|
|
37
|
+
/** Release a connection back to its pool (closes native handle). */
|
|
38
|
+
export declare function releaseConnection(envName: string, conn: Connection): void;
|
|
39
|
+
/**
|
|
40
|
+
* Cheap liveness check. Returns `true` on success, `false` on any error.
|
|
41
|
+
*
|
|
42
|
+
* Preference order:
|
|
43
|
+
* 1. `driver.healthCheck(native)` — Phase E drivers use engine-appropriate
|
|
44
|
+
* probes (Mongo `ping`, DynamoDB `ListTables`, etc.) that `SELECT 1`
|
|
45
|
+
* cannot express.
|
|
46
|
+
* 2. `driver.executeReadAsync(..., "SELECT 1", ...)` — SQL drivers.
|
|
47
|
+
* 3. `driver.executeRead(..., "SELECT 1", ...)` — legacy sync path
|
|
48
|
+
* (SQLite, mocked test drivers).
|
|
49
|
+
*/
|
|
50
|
+
export declare function healthCheck(envName: string): Promise<boolean>;
|
|
51
|
+
/**
|
|
52
|
+
* Close every pool and drop the registry. Awaits each driver's
|
|
53
|
+
* `shutdown()` so native connection pools (pg.Pool, mysql2 pool,
|
|
54
|
+
* mssql.ConnectionPool, MongoClient) are fully drained before we return.
|
|
55
|
+
*/
|
|
56
|
+
export declare function shutdownAll(): Promise<void>;
|
|
57
|
+
/** Return whether a pool exists for the given env (test helper). */
|
|
58
|
+
export declare function _hasPool(envName: string): boolean;
|
|
59
|
+
/** Return the number of open connections in a pool (test helper). */
|
|
60
|
+
export declare function _openCount(envName: string): number;
|
|
61
|
+
//# sourceMappingURL=connection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../src/connectors/db/lib/connection.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAQnD;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,CAC1B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/B,cAAc,CAAC;AAIpB,4EAA4E;AAC5E,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,GACrB,IAAI,CAEN;AAED,qDAAqD;AACrD,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED,oDAAoD;AACpD,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;AAWD,kDAAkD;AAClD,MAAM,WAAW,UAAU;IACzB,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,MAAM,EAAE,OAAO,CAAC;IAChB,2EAA2E;IAC3E,MAAM,EAAE,cAAc,CAAC;CACxB;AAqDD;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAcxE;AAED,oEAAoE;AACpE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAoBzE;AAuBD;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA2BnE;AAED;;;;GAIG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAyBjD;AA2ID,oEAAoE;AACpE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,qEAAqE;AACrE,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD"}
|
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* connection.ts — Connection-pool registry keyed by environment name.
|
|
3
|
+
*
|
|
4
|
+
* Wraps driver-native connection pools behind a uniform acquire/release
|
|
5
|
+
* API. For Phase F the only shipped driver is `SQLiteDriver` (no native
|
|
6
|
+
* pool; each `getConnection()` opens a fresh handle and `release` closes
|
|
7
|
+
* it). Phase E drivers (pg, mysql, mssql, mongo, dynamo) will register
|
|
8
|
+
* themselves with pool-aware factories via {@link registerDriverFactory}.
|
|
9
|
+
*
|
|
10
|
+
* Shutdown:
|
|
11
|
+
* - `shutdownAll()` closes every driver in the registry.
|
|
12
|
+
* - We register `SIGINT`, `SIGTERM`, and `exit` handlers the first time
|
|
13
|
+
* `getConnection()` is called, so long-running scripts release their
|
|
14
|
+
* pools on process teardown.
|
|
15
|
+
*/
|
|
16
|
+
import { getEnvironment } from "./environments.js";
|
|
17
|
+
import { logEvent } from "./audit.js";
|
|
18
|
+
import { parseCredentialRef, resolveSecret } from "@narai/credential-providers";
|
|
19
|
+
const _driverFactories = new Map();
|
|
20
|
+
/** Register a factory under a driver name (e.g. "sqlite", "postgresql"). */
|
|
21
|
+
export function registerDriverFactory(name, factory) {
|
|
22
|
+
_driverFactories.set(name, factory);
|
|
23
|
+
}
|
|
24
|
+
/** Remove all registered factories (test helper). */
|
|
25
|
+
export function clearDriverFactories() {
|
|
26
|
+
_driverFactories.clear();
|
|
27
|
+
}
|
|
28
|
+
/** Return registered driver names (test helper). */
|
|
29
|
+
export function listDriverFactories() {
|
|
30
|
+
return [..._driverFactories.keys()];
|
|
31
|
+
}
|
|
32
|
+
const _pools = new Map();
|
|
33
|
+
// ---------------------------------------------------------------------------
|
|
34
|
+
// Lifecycle handlers
|
|
35
|
+
// ---------------------------------------------------------------------------
|
|
36
|
+
let _handlersInstalled = false;
|
|
37
|
+
function _installShutdownHandlers() {
|
|
38
|
+
if (_handlersInstalled)
|
|
39
|
+
return;
|
|
40
|
+
_handlersInstalled = true;
|
|
41
|
+
// `exit` fires once per process; make the cleanup best-effort and
|
|
42
|
+
// synchronous where possible so pools are released before Node exits.
|
|
43
|
+
process.on("exit", () => {
|
|
44
|
+
try {
|
|
45
|
+
_shutdownAllSync();
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
/* best-effort */
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
// Signals: flush pools so native connections release promptly, then
|
|
52
|
+
// leave the exit decision to the host. Calling `process.exit()` here
|
|
53
|
+
// would clobber any user-installed SIGINT/SIGTERM handler in an
|
|
54
|
+
// application that embeds wiki_db, so we deliberately do not do that.
|
|
55
|
+
// Node's default behavior (exit with 128+signum when no other listener
|
|
56
|
+
// calls `preventDefault`-equivalent) still applies when no handler
|
|
57
|
+
// keeps the process alive.
|
|
58
|
+
for (const sig of ["SIGINT", "SIGTERM"]) {
|
|
59
|
+
process.on(sig, () => {
|
|
60
|
+
try {
|
|
61
|
+
_shutdownAllSync();
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
/* best-effort */
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// ---------------------------------------------------------------------------
|
|
70
|
+
// Pool operations
|
|
71
|
+
// ---------------------------------------------------------------------------
|
|
72
|
+
/**
|
|
73
|
+
* Obtain a connection for the named environment. Creates the driver and
|
|
74
|
+
* pool lazily on first call. Returns a handle that must be passed to
|
|
75
|
+
* {@link releaseConnection} when done.
|
|
76
|
+
*
|
|
77
|
+
* G-CONN-AWAIT: async drivers (pg, mysql, mssql, mongo, dynamo) return
|
|
78
|
+
* a Promise from `connect()`. We await the resolved handle before
|
|
79
|
+
* registering it in `openConnections` so identity-based lookups in
|
|
80
|
+
* `releaseConnection`/`shutdownAll` match the same object the caller
|
|
81
|
+
* holds. `Promise.resolve(x)` no-ops on the sync SQLite path.
|
|
82
|
+
*/
|
|
83
|
+
export async function getConnection(envName) {
|
|
84
|
+
_installShutdownHandlers();
|
|
85
|
+
let entry = _pools.get(envName);
|
|
86
|
+
if (entry === undefined) {
|
|
87
|
+
entry = await _buildPoolAsync(envName);
|
|
88
|
+
_pools.set(envName, entry);
|
|
89
|
+
}
|
|
90
|
+
const envCfg = _resolveEnvConfig(envName);
|
|
91
|
+
const resolvedCfg = await _resolveCredentials(envCfg);
|
|
92
|
+
const native = await Promise.resolve(entry.driver.connect(resolvedCfg));
|
|
93
|
+
entry.openConnections.add(native);
|
|
94
|
+
return { envName, native, driver: entry.driver };
|
|
95
|
+
}
|
|
96
|
+
/** Release a connection back to its pool (closes native handle). */
|
|
97
|
+
export function releaseConnection(envName, conn) {
|
|
98
|
+
const entry = _pools.get(envName);
|
|
99
|
+
if (entry === undefined)
|
|
100
|
+
return;
|
|
101
|
+
if (!entry.openConnections.has(conn.native))
|
|
102
|
+
return;
|
|
103
|
+
entry.openConnections.delete(conn.native);
|
|
104
|
+
try {
|
|
105
|
+
entry.driver.close(conn.native);
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
/* best-effort */
|
|
109
|
+
}
|
|
110
|
+
// A5 (G-DB-AUDIT extension): emit `connection_released` so the audit
|
|
111
|
+
// trail of a schema or query call has a clean lifecycle marker —
|
|
112
|
+
// `[pool_created, schema_inspect, connection_released]` rather than
|
|
113
|
+
// just `[pool_created]`. logEvent is best-effort and silently no-ops
|
|
114
|
+
// when audit isn't enabled, so the new emit is safe in every code
|
|
115
|
+
// path that releases a pooled connection.
|
|
116
|
+
logEvent({
|
|
117
|
+
event_type: "connection_released",
|
|
118
|
+
details: { env: envName },
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Cheap liveness check. Returns `true` on success, `false` on any error.
|
|
123
|
+
*
|
|
124
|
+
* Preference order:
|
|
125
|
+
* 1. `driver.healthCheck(native)` — Phase E drivers use engine-appropriate
|
|
126
|
+
* probes (Mongo `ping`, DynamoDB `ListTables`, etc.) that `SELECT 1`
|
|
127
|
+
* cannot express.
|
|
128
|
+
* 2. `driver.executeReadAsync(..., "SELECT 1", ...)` — SQL drivers.
|
|
129
|
+
* 3. `driver.executeRead(..., "SELECT 1", ...)` — legacy sync path
|
|
130
|
+
* (SQLite, mocked test drivers).
|
|
131
|
+
*/
|
|
132
|
+
export async function healthCheck(envName) {
|
|
133
|
+
let conn = null;
|
|
134
|
+
try {
|
|
135
|
+
conn = await getConnection(envName);
|
|
136
|
+
const driverHealthCheck = conn.driver.healthCheck;
|
|
137
|
+
if (typeof driverHealthCheck === "function") {
|
|
138
|
+
return Boolean(await driverHealthCheck.call(conn.driver, conn.native));
|
|
139
|
+
}
|
|
140
|
+
const asyncHook = conn.driver.executeReadAsync;
|
|
141
|
+
if (typeof asyncHook === "function") {
|
|
142
|
+
const result = await asyncHook.call(conn.driver, conn.native, "SELECT 1", [], 1, 5000);
|
|
143
|
+
return result.status === "success";
|
|
144
|
+
}
|
|
145
|
+
const result = conn.driver.executeRead(conn.native, "SELECT 1", [], 1, 5000);
|
|
146
|
+
return result.status === "success";
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
finally {
|
|
152
|
+
if (conn !== null)
|
|
153
|
+
releaseConnection(envName, conn);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Close every pool and drop the registry. Awaits each driver's
|
|
158
|
+
* `shutdown()` so native connection pools (pg.Pool, mysql2 pool,
|
|
159
|
+
* mssql.ConnectionPool, MongoClient) are fully drained before we return.
|
|
160
|
+
*/
|
|
161
|
+
export async function shutdownAll() {
|
|
162
|
+
const drains = [];
|
|
163
|
+
for (const entry of _pools.values()) {
|
|
164
|
+
for (const native of [...entry.openConnections]) {
|
|
165
|
+
try {
|
|
166
|
+
entry.driver.close(native);
|
|
167
|
+
}
|
|
168
|
+
catch {
|
|
169
|
+
/* best-effort */
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
entry.openConnections.clear();
|
|
173
|
+
const shutdownFn = entry.driver.shutdown;
|
|
174
|
+
if (typeof shutdownFn === "function") {
|
|
175
|
+
try {
|
|
176
|
+
const result = shutdownFn.call(entry.driver);
|
|
177
|
+
if (result instanceof Promise) {
|
|
178
|
+
drains.push(result.catch(() => undefined));
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
/* best-effort */
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
_pools.clear();
|
|
187
|
+
await Promise.all(drains);
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Synchronous variant used from the `exit` handler (Node's `exit` event
|
|
191
|
+
* is strictly synchronous — we cannot await there). We still call each
|
|
192
|
+
* driver's `shutdown()` fire-and-forget so pool teardown starts; any
|
|
193
|
+
* rejected promises get an empty catch handler attached so they do not
|
|
194
|
+
* crash the exiting process.
|
|
195
|
+
*/
|
|
196
|
+
function _shutdownAllSync() {
|
|
197
|
+
for (const entry of _pools.values()) {
|
|
198
|
+
for (const native of [...entry.openConnections]) {
|
|
199
|
+
try {
|
|
200
|
+
entry.driver.close(native);
|
|
201
|
+
}
|
|
202
|
+
catch {
|
|
203
|
+
/* best-effort */
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
entry.openConnections.clear();
|
|
207
|
+
const shutdownFn = entry.driver.shutdown;
|
|
208
|
+
if (typeof shutdownFn === "function") {
|
|
209
|
+
try {
|
|
210
|
+
const result = shutdownFn.call(entry.driver);
|
|
211
|
+
if (result instanceof Promise) {
|
|
212
|
+
result.catch(() => undefined);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
catch {
|
|
216
|
+
/* best-effort */
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
_pools.clear();
|
|
221
|
+
}
|
|
222
|
+
// ---------------------------------------------------------------------------
|
|
223
|
+
// Helpers
|
|
224
|
+
// ---------------------------------------------------------------------------
|
|
225
|
+
async function _buildPoolAsync(envName) {
|
|
226
|
+
const envCfg = _resolveEnvConfig(envName);
|
|
227
|
+
const driverName = _driverName(envCfg);
|
|
228
|
+
// Lazy-load the driver module (and its optional heavy dep) on first use.
|
|
229
|
+
// Imported here to avoid a static dependency cycle between connection.ts
|
|
230
|
+
// and drivers/register.ts (register.ts imports `registerDriverFactory`
|
|
231
|
+
// from this module).
|
|
232
|
+
const { ensureDriver } = await import("./drivers/register.js");
|
|
233
|
+
await ensureDriver(driverName);
|
|
234
|
+
const factory = _driverFactories.get(driverName);
|
|
235
|
+
if (factory === undefined) {
|
|
236
|
+
throw new Error(`connection: no driver factory registered for '${driverName}'. ` +
|
|
237
|
+
`Registered: [${[..._driverFactories.keys()].join(", ") || "none"}]`);
|
|
238
|
+
}
|
|
239
|
+
const driver = factory(envCfg);
|
|
240
|
+
// G-DB-AUDIT: emit `pool_created` once per environment (this function is
|
|
241
|
+
// only invoked on the first getConnection() for a given envName).
|
|
242
|
+
logEvent({
|
|
243
|
+
event_type: "pool_created",
|
|
244
|
+
details: { env: envName, driver: driverName },
|
|
245
|
+
});
|
|
246
|
+
return { envName, driver, openConnections: new Set() };
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Resolve an environment's config. If the env is registered via
|
|
250
|
+
* `environments.registerEnvironment`, we return that; otherwise we throw
|
|
251
|
+
* a clear error.
|
|
252
|
+
*
|
|
253
|
+
* Returned shape is a plain record so driver factories can consume it
|
|
254
|
+
* without importing `EnvironmentConfig` directly. Any `extras` stored on
|
|
255
|
+
* the env record (plugin-config path: user, password, ssl, region,
|
|
256
|
+
* endpoint, url, pool, ...) are spread on top of the legacy named fields
|
|
257
|
+
* so driver-specific knobs flow through to `driver.connect()`.
|
|
258
|
+
*/
|
|
259
|
+
function _resolveEnvConfig(envName) {
|
|
260
|
+
const env = getEnvironment(envName);
|
|
261
|
+
const base = {
|
|
262
|
+
host: env.host,
|
|
263
|
+
port: env.port,
|
|
264
|
+
database: env.database,
|
|
265
|
+
schema: env.schema,
|
|
266
|
+
approval_mode: env.approval_mode,
|
|
267
|
+
driver: env.driver,
|
|
268
|
+
};
|
|
269
|
+
if (env.extras !== undefined) {
|
|
270
|
+
for (const [k, v] of Object.entries(env.extras)) {
|
|
271
|
+
base[k] = v;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
return base;
|
|
275
|
+
}
|
|
276
|
+
function _driverName(envCfg) {
|
|
277
|
+
const d = envCfg["driver"];
|
|
278
|
+
return typeof d === "string" ? d : "postgresql";
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Walk a resolved env config and expand credential references of the form
|
|
282
|
+
* `provider:key` into their resolved secret value. Currently handles the
|
|
283
|
+
* `env_var` provider inline (common case) and defers to `resolveSecret` for
|
|
284
|
+
* others. Plain strings with no recognized prefix pass through unchanged.
|
|
285
|
+
*/
|
|
286
|
+
async function _resolveCredentials(envCfg) {
|
|
287
|
+
const out = {};
|
|
288
|
+
for (const [k, v] of Object.entries(envCfg)) {
|
|
289
|
+
if (typeof v !== "string") {
|
|
290
|
+
out[k] = v;
|
|
291
|
+
continue;
|
|
292
|
+
}
|
|
293
|
+
const ref = parseCredentialRef(v);
|
|
294
|
+
if (ref === null) {
|
|
295
|
+
out[k] = v;
|
|
296
|
+
continue;
|
|
297
|
+
}
|
|
298
|
+
if (ref.provider === "env_var") {
|
|
299
|
+
const resolved = process.env[ref.key];
|
|
300
|
+
out[k] = resolved ?? v;
|
|
301
|
+
continue;
|
|
302
|
+
}
|
|
303
|
+
try {
|
|
304
|
+
const resolved = await resolveSecret(ref.key, { provider: ref.provider });
|
|
305
|
+
out[k] = resolved ?? v;
|
|
306
|
+
}
|
|
307
|
+
catch {
|
|
308
|
+
// Secret backend threw — keep the literal reference so the driver's
|
|
309
|
+
// connect() surfaces an auth error instead of silently mis-configuring.
|
|
310
|
+
out[k] = v;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
return out;
|
|
314
|
+
}
|
|
315
|
+
// ---------------------------------------------------------------------------
|
|
316
|
+
// Introspection helpers (tests)
|
|
317
|
+
// ---------------------------------------------------------------------------
|
|
318
|
+
/** Return whether a pool exists for the given env (test helper). */
|
|
319
|
+
export function _hasPool(envName) {
|
|
320
|
+
return _pools.has(envName);
|
|
321
|
+
}
|
|
322
|
+
/** Return the number of open connections in a pool (test helper). */
|
|
323
|
+
export function _openCount(envName) {
|
|
324
|
+
return _pools.get(envName)?.openConnections.size ?? 0;
|
|
325
|
+
}
|
|
326
|
+
//# sourceMappingURL=connection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../../src/connectors/db/lib/connection.ts"],"names":[],"mappings":"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"}
|