@xxmachina/components 19.24.1 → 19.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/xxmachina-components-extras-flow.mjs +176 -94
- package/fesm2022/xxmachina-components-extras-flow.mjs.map +1 -1
- package/fesm2022/xxmachina-components-features-command.mjs +16 -16
- package/fesm2022/xxmachina-components-features-command.mjs.map +1 -1
- package/fesm2022/xxmachina-components-features-query.mjs +15 -15
- package/fesm2022/xxmachina-components-features-query.mjs.map +1 -1
- package/fesm2022/xxmachina-components-groups-command-form.mjs +6 -6
- package/fesm2022/xxmachina-components-groups-command-form.mjs.map +1 -1
- package/fesm2022/xxmachina-components-groups-query-form.mjs +11 -11
- package/fesm2022/xxmachina-components-groups-query-form.mjs.map +1 -1
- package/fesm2022/xxmachina-components-molecules-calendar-paginator.mjs +7 -7
- package/fesm2022/xxmachina-components-molecules-calendar-paginator.mjs.map +1 -1
- package/fesm2022/xxmachina-components-molecules-daily-cell.mjs +41 -35
- package/fesm2022/xxmachina-components-molecules-daily-cell.mjs.map +1 -1
- package/fesm2022/xxmachina-components-molecules-inline-edit-field.mjs +12 -12
- package/fesm2022/xxmachina-components-molecules-inline-edit-field.mjs.map +1 -1
- package/fesm2022/xxmachina-components-molecules-weekly-header.mjs +16 -16
- package/fesm2022/xxmachina-components-molecules-weekly-header.mjs.map +1 -1
- package/fesm2022/xxmachina-components-organisms-calendar-section.mjs +40 -41
- package/fesm2022/xxmachina-components-organisms-calendar-section.mjs.map +1 -1
- package/fesm2022/xxmachina-components-organisms-event-input-section.mjs +8 -10
- package/fesm2022/xxmachina-components-organisms-event-input-section.mjs.map +1 -1
- package/fesm2022/xxmachina-components-organisms-terminal-input-section.mjs +26 -16
- package/fesm2022/xxmachina-components-organisms-terminal-input-section.mjs.map +1 -1
- package/fesm2022/xxmachina-components-organisms-video-trimmer-section.mjs +12 -12
- package/fesm2022/xxmachina-components-organisms-video-trimmer-section.mjs.map +1 -1
- package/fesm2022/xxmachina-components-organisms-xterm.mjs +29 -21
- package/fesm2022/xxmachina-components-organisms-xterm.mjs.map +1 -1
- package/fesm2022/xxmachina-components-pages-command-harness.mjs.map +1 -1
- package/fesm2022/xxmachina-components-pages-command.mjs +26 -26
- package/fesm2022/xxmachina-components-pages-command.mjs.map +1 -1
- package/fesm2022/xxmachina-components-pages-query-v2.mjs +27 -28
- package/fesm2022/xxmachina-components-pages-query-v2.mjs.map +1 -1
- package/fesm2022/xxmachina-components-pages-query.mjs +46 -46
- package/fesm2022/xxmachina-components-pages-query.mjs.map +1 -1
- package/fesm2022/xxmachina-components-pages-thread.mjs +14 -14
- package/fesm2022/xxmachina-components-pages-thread.mjs.map +1 -1
- package/fesm2022/xxmachina-components-routes-commands-command.routes-CSwIdXZg.mjs.map +1 -1
- package/fesm2022/xxmachina-components-routes-commands-pages.routes-j2xVop4W.mjs.map +1 -1
- package/fesm2022/xxmachina-components-routes-commands.mjs.map +1 -1
- package/fesm2022/xxmachina-components-routes-pages.mjs.map +1 -1
- package/fesm2022/xxmachina-components-routes-preloading.mjs +3 -3
- package/fesm2022/xxmachina-components-routes-preloading.mjs.map +1 -1
- package/fesm2022/xxmachina-components-routes-queries-pages.routes-CfrglCIL.mjs.map +1 -1
- package/fesm2022/xxmachina-components-routes-queries.mjs +1 -1
- package/fesm2022/xxmachina-components-routes-queries.mjs.map +1 -1
- package/fesm2022/xxmachina-components-routes-query-pages.routes-CxTbOJDQ.mjs.map +1 -1
- package/fesm2022/xxmachina-components-routes-query.mjs.map +1 -1
- package/fesm2022/{xxmachina-components-routes-resources-pages.routes-CzjQOxwT.mjs → xxmachina-components-routes-resources-pages.routes-CRXxavHb.mjs} +2 -2
- package/fesm2022/xxmachina-components-routes-resources-pages.routes-CRXxavHb.mjs.map +1 -0
- package/fesm2022/{xxmachina-components-routes-resources-resource.routes-C5KpB3KM.mjs → xxmachina-components-routes-resources-resource.routes-CkkmqB2_.mjs} +2 -2
- package/fesm2022/xxmachina-components-routes-resources-resource.routes-CkkmqB2_.mjs.map +1 -0
- package/fesm2022/xxmachina-components-routes-resources.mjs +1 -1
- package/fesm2022/xxmachina-components-routes-resources.mjs.map +1 -1
- package/fesm2022/xxmachina-components-routes-side-chat.mjs.map +1 -1
- package/fesm2022/xxmachina-components-routes-side.mjs.map +1 -1
- package/fesm2022/xxmachina-components-routes-transformer.mjs +6 -6
- package/fesm2022/xxmachina-components-routes-transformer.mjs.map +1 -1
- package/fesm2022/xxmachina-components-routes-transformers-pages.routes-02pVsNas.mjs.map +1 -1
- package/fesm2022/xxmachina-components-routes-transformers.mjs +1 -1
- package/fesm2022/xxmachina-components-routes-transformers.mjs.map +1 -1
- package/fesm2022/xxmachina-components-routes.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-app.mjs +3 -3
- package/fesm2022/xxmachina-components-services-app.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-assistant.mjs +3 -3
- package/fesm2022/xxmachina-components-services-assistant.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-command.mjs +4 -4
- package/fesm2022/xxmachina-components-services-command.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-context.mjs +4 -4
- package/fesm2022/xxmachina-components-services-context.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-contract.mjs +3 -3
- package/fesm2022/xxmachina-components-services-contract.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-debug.mjs +4 -4
- package/fesm2022/xxmachina-components-services-debug.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-forms-query.mjs +3 -3
- package/fesm2022/xxmachina-components-services-forms-query.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-forms-schedule.mjs +3 -3
- package/fesm2022/xxmachina-components-services-forms-schedule.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-forms-variables.mjs +3 -3
- package/fesm2022/xxmachina-components-services-forms-variables.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-graphql.mjs +3 -3
- package/fesm2022/xxmachina-components-services-graphql.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-invoice.mjs +3 -3
- package/fesm2022/xxmachina-components-services-invoice.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-json-schema.mjs +3 -3
- package/fesm2022/xxmachina-components-services-json-schema.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-link.mjs +3 -3
- package/fesm2022/xxmachina-components-services-link.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-message.mjs +5 -5
- package/fesm2022/xxmachina-components-services-message.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-openai.mjs +9 -9
- package/fesm2022/xxmachina-components-services-openai.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-openapi.mjs +3 -3
- package/fesm2022/xxmachina-components-services-openapi.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-order.mjs +3 -3
- package/fesm2022/xxmachina-components-services-order.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-partner.mjs +3 -3
- package/fesm2022/xxmachina-components-services-partner.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-query.mjs +3 -3
- package/fesm2022/xxmachina-components-services-query.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-recording.mjs +7 -7
- package/fesm2022/xxmachina-components-services-recording.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-thread.mjs +3 -3
- package/fesm2022/xxmachina-components-services-thread.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-transformer.mjs +3 -3
- package/fesm2022/xxmachina-components-services-transformer.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-youtube.mjs +3 -3
- package/fesm2022/xxmachina-components-services-youtube.mjs.map +1 -1
- package/fesm2022/xxmachina-components-templates-agent.mjs +19 -21
- package/fesm2022/xxmachina-components-templates-agent.mjs.map +1 -1
- package/fesm2022/xxmachina-components-templates-background.mjs +9 -9
- package/fesm2022/xxmachina-components-templates-background.mjs.map +1 -1
- package/fesm2022/xxmachina-components-templates-flow-nodes-group.mjs +5 -5
- package/fesm2022/xxmachina-components-templates-flow-nodes-group.mjs.map +1 -1
- package/fesm2022/xxmachina-components-templates-flow-nodes-issue.mjs +6 -6
- package/fesm2022/xxmachina-components-templates-flow-nodes-issue.mjs.map +1 -1
- package/fesm2022/xxmachina-components-templates-flow-nodes-task.mjs +5 -6
- package/fesm2022/xxmachina-components-templates-flow-nodes-task.mjs.map +1 -1
- package/fesm2022/xxmachina-components-templates-flow.mjs +30 -27
- package/fesm2022/xxmachina-components-templates-flow.mjs.map +1 -1
- package/fesm2022/xxmachina-components-templates-invoice-iframe.mjs +5 -7
- package/fesm2022/xxmachina-components-templates-invoice-iframe.mjs.map +1 -1
- package/fesm2022/xxmachina-components-templates-scheduler.mjs +3 -3
- package/fesm2022/xxmachina-components-templates-scheduler.mjs.map +1 -1
- package/fesm2022/xxmachina-components-templates-video.mjs +16 -16
- package/fesm2022/xxmachina-components-templates-video.mjs.map +1 -1
- package/fesm2022/xxmachina-components-validators-query.mjs.map +1 -1
- package/fesm2022/xxmachina-components.mjs +43 -25
- package/fesm2022/xxmachina-components.mjs.map +1 -1
- package/package.json +93 -93
- package/{extras/flow/index.d.ts → types/xxmachina-components-extras-flow.d.ts} +10 -2
- package/types/xxmachina-components-extras-flow.d.ts.map +1 -0
- package/{features/command/index.d.ts → types/xxmachina-components-features-command.d.ts} +1 -1
- package/types/xxmachina-components-features-command.d.ts.map +1 -0
- package/{features/query/index.d.ts → types/xxmachina-components-features-query.d.ts} +1 -1
- package/types/xxmachina-components-features-query.d.ts.map +1 -0
- package/{groups/command-form/index.d.ts → types/xxmachina-components-groups-command-form.d.ts} +1 -1
- package/types/xxmachina-components-groups-command-form.d.ts.map +1 -0
- package/{groups/query-form/index.d.ts → types/xxmachina-components-groups-query-form.d.ts} +1 -1
- package/types/xxmachina-components-groups-query-form.d.ts.map +1 -0
- package/{molecules/calendar-paginator/index.d.ts → types/xxmachina-components-molecules-calendar-paginator.d.ts} +1 -1
- package/types/xxmachina-components-molecules-calendar-paginator.d.ts.map +1 -0
- package/{molecules/daily-cell/index.d.ts → types/xxmachina-components-molecules-daily-cell.d.ts} +1 -1
- package/types/xxmachina-components-molecules-daily-cell.d.ts.map +1 -0
- package/{molecules/inline-edit-field/index.d.ts → types/xxmachina-components-molecules-inline-edit-field.d.ts} +1 -1
- package/types/xxmachina-components-molecules-inline-edit-field.d.ts.map +1 -0
- package/{molecules/weekly-header/index.d.ts → types/xxmachina-components-molecules-weekly-header.d.ts} +1 -1
- package/types/xxmachina-components-molecules-weekly-header.d.ts.map +1 -0
- package/{organisms/calendar-section/index.d.ts → types/xxmachina-components-organisms-calendar-section.d.ts} +1 -1
- package/types/xxmachina-components-organisms-calendar-section.d.ts.map +1 -0
- package/{organisms/event-input-section/index.d.ts → types/xxmachina-components-organisms-event-input-section.d.ts} +1 -1
- package/types/xxmachina-components-organisms-event-input-section.d.ts.map +1 -0
- package/{organisms/terminal-input-section/index.d.ts → types/xxmachina-components-organisms-terminal-input-section.d.ts} +2 -1
- package/types/xxmachina-components-organisms-terminal-input-section.d.ts.map +1 -0
- package/{organisms/video-trimmer-section/index.d.ts → types/xxmachina-components-organisms-video-trimmer-section.d.ts} +1 -1
- package/types/xxmachina-components-organisms-video-trimmer-section.d.ts.map +1 -0
- package/{organisms/xterm/index.d.ts → types/xxmachina-components-organisms-xterm.d.ts} +3 -1
- package/types/xxmachina-components-organisms-xterm.d.ts.map +1 -0
- package/{pages/command/harness/index.d.ts → types/xxmachina-components-pages-command-harness.d.ts} +1 -1
- package/types/xxmachina-components-pages-command-harness.d.ts.map +1 -0
- package/{pages/command/index.d.ts → types/xxmachina-components-pages-command.d.ts} +1 -1
- package/types/xxmachina-components-pages-command.d.ts.map +1 -0
- package/{pages/query-v2/index.d.ts → types/xxmachina-components-pages-query-v2.d.ts} +3 -3
- package/types/xxmachina-components-pages-query-v2.d.ts.map +1 -0
- package/{pages/query/index.d.ts → types/xxmachina-components-pages-query.d.ts} +3 -3
- package/types/xxmachina-components-pages-query.d.ts.map +1 -0
- package/{pages/thread/index.d.ts → types/xxmachina-components-pages-thread.d.ts} +1 -1
- package/types/xxmachina-components-pages-thread.d.ts.map +1 -0
- package/types/xxmachina-components-routes-commands.d.ts +6 -0
- package/types/xxmachina-components-routes-commands.d.ts.map +1 -0
- package/{routes/commands/index.d.ts → types/xxmachina-components-routes-pages.d.ts} +1 -1
- package/types/xxmachina-components-routes-pages.d.ts.map +1 -0
- package/{routes/preloading/index.d.ts → types/xxmachina-components-routes-preloading.d.ts} +1 -1
- package/types/xxmachina-components-routes-preloading.d.ts.map +1 -0
- package/{routes/pages/index.d.ts → types/xxmachina-components-routes-queries.d.ts} +1 -1
- package/types/xxmachina-components-routes-queries.d.ts.map +1 -0
- package/{routes/query/index.d.ts → types/xxmachina-components-routes-query.d.ts} +1 -1
- package/types/xxmachina-components-routes-query.d.ts.map +1 -0
- package/types/xxmachina-components-routes-resources.d.ts +6 -0
- package/types/xxmachina-components-routes-resources.d.ts.map +1 -0
- package/types/xxmachina-components-routes-side-chat.d.ts +6 -0
- package/types/xxmachina-components-routes-side-chat.d.ts.map +1 -0
- package/{routes/queries/index.d.ts → types/xxmachina-components-routes-side.d.ts} +1 -1
- package/types/xxmachina-components-routes-side.d.ts.map +1 -0
- package/types/xxmachina-components-routes-transformer.d.ts +6 -0
- package/types/xxmachina-components-routes-transformer.d.ts.map +1 -0
- package/types/xxmachina-components-routes-transformers.d.ts +6 -0
- package/types/xxmachina-components-routes-transformers.d.ts.map +1 -0
- package/{routes/index.d.ts → types/xxmachina-components-routes.d.ts} +1 -1
- package/types/xxmachina-components-routes.d.ts.map +1 -0
- package/{services/app/index.d.ts → types/xxmachina-components-services-app.d.ts} +1 -1
- package/types/xxmachina-components-services-app.d.ts.map +1 -0
- package/{services/assistant/index.d.ts → types/xxmachina-components-services-assistant.d.ts} +1 -1
- package/types/xxmachina-components-services-assistant.d.ts.map +1 -0
- package/{services/command/index.d.ts → types/xxmachina-components-services-command.d.ts} +1 -1
- package/types/xxmachina-components-services-command.d.ts.map +1 -0
- package/{services/context/index.d.ts → types/xxmachina-components-services-context.d.ts} +1 -1
- package/types/xxmachina-components-services-context.d.ts.map +1 -0
- package/{services/contract/index.d.ts → types/xxmachina-components-services-contract.d.ts} +1 -1
- package/types/xxmachina-components-services-contract.d.ts.map +1 -0
- package/{services/debug/index.d.ts → types/xxmachina-components-services-debug.d.ts} +1 -1
- package/types/xxmachina-components-services-debug.d.ts.map +1 -0
- package/{services/forms/query/index.d.ts → types/xxmachina-components-services-forms-query.d.ts} +1 -1
- package/types/xxmachina-components-services-forms-query.d.ts.map +1 -0
- package/{services/forms/schedule/index.d.ts → types/xxmachina-components-services-forms-schedule.d.ts} +1 -1
- package/types/xxmachina-components-services-forms-schedule.d.ts.map +1 -0
- package/{services/forms/variables/index.d.ts → types/xxmachina-components-services-forms-variables.d.ts} +1 -1
- package/types/xxmachina-components-services-forms-variables.d.ts.map +1 -0
- package/{services/graphql/index.d.ts → types/xxmachina-components-services-graphql.d.ts} +1 -1
- package/types/xxmachina-components-services-graphql.d.ts.map +1 -0
- package/{services/invoice/index.d.ts → types/xxmachina-components-services-invoice.d.ts} +1 -1
- package/types/xxmachina-components-services-invoice.d.ts.map +1 -0
- package/{services/json-schema/index.d.ts → types/xxmachina-components-services-json-schema.d.ts} +1 -1
- package/types/xxmachina-components-services-json-schema.d.ts.map +1 -0
- package/{services/link/index.d.ts → types/xxmachina-components-services-link.d.ts} +1 -1
- package/types/xxmachina-components-services-link.d.ts.map +1 -0
- package/{services/message/index.d.ts → types/xxmachina-components-services-message.d.ts} +1 -1
- package/types/xxmachina-components-services-message.d.ts.map +1 -0
- package/{services/openai/index.d.ts → types/xxmachina-components-services-openai.d.ts} +1 -1
- package/types/xxmachina-components-services-openai.d.ts.map +1 -0
- package/{services/openapi/index.d.ts → types/xxmachina-components-services-openapi.d.ts} +1 -1
- package/types/xxmachina-components-services-openapi.d.ts.map +1 -0
- package/{services/order/index.d.ts → types/xxmachina-components-services-order.d.ts} +1 -1
- package/types/xxmachina-components-services-order.d.ts.map +1 -0
- package/{services/partner/index.d.ts → types/xxmachina-components-services-partner.d.ts} +1 -1
- package/types/xxmachina-components-services-partner.d.ts.map +1 -0
- package/{services/query/index.d.ts → types/xxmachina-components-services-query.d.ts} +1 -1
- package/types/xxmachina-components-services-query.d.ts.map +1 -0
- package/{services/recording/index.d.ts → types/xxmachina-components-services-recording.d.ts} +1 -1
- package/types/xxmachina-components-services-recording.d.ts.map +1 -0
- package/{services/thread/index.d.ts → types/xxmachina-components-services-thread.d.ts} +1 -1
- package/types/xxmachina-components-services-thread.d.ts.map +1 -0
- package/{services/transformer/index.d.ts → types/xxmachina-components-services-transformer.d.ts} +1 -1
- package/types/xxmachina-components-services-transformer.d.ts.map +1 -0
- package/{services/youtube/index.d.ts → types/xxmachina-components-services-youtube.d.ts} +1 -1
- package/types/xxmachina-components-services-youtube.d.ts.map +1 -0
- package/{templates/agent/index.d.ts → types/xxmachina-components-templates-agent.d.ts} +1 -1
- package/types/xxmachina-components-templates-agent.d.ts.map +1 -0
- package/{templates/background/index.d.ts → types/xxmachina-components-templates-background.d.ts} +1 -1
- package/types/xxmachina-components-templates-background.d.ts.map +1 -0
- package/{templates/flow/nodes/group/index.d.ts → types/xxmachina-components-templates-flow-nodes-group.d.ts} +1 -1
- package/types/xxmachina-components-templates-flow-nodes-group.d.ts.map +1 -0
- package/{templates/flow/nodes/issue/index.d.ts → types/xxmachina-components-templates-flow-nodes-issue.d.ts} +1 -1
- package/types/xxmachina-components-templates-flow-nodes-issue.d.ts.map +1 -0
- package/{templates/flow/nodes/task/index.d.ts → types/xxmachina-components-templates-flow-nodes-task.d.ts} +1 -1
- package/types/xxmachina-components-templates-flow-nodes-task.d.ts.map +1 -0
- package/{templates/flow/index.d.ts → types/xxmachina-components-templates-flow.d.ts} +7 -2
- package/types/xxmachina-components-templates-flow.d.ts.map +1 -0
- package/{templates/invoice-iframe/index.d.ts → types/xxmachina-components-templates-invoice-iframe.d.ts} +1 -1
- package/types/xxmachina-components-templates-invoice-iframe.d.ts.map +1 -0
- package/{templates/scheduler/index.d.ts → types/xxmachina-components-templates-scheduler.d.ts} +1 -1
- package/types/xxmachina-components-templates-scheduler.d.ts.map +1 -0
- package/{templates/video/index.d.ts → types/xxmachina-components-templates-video.d.ts} +1 -1
- package/types/xxmachina-components-templates-video.d.ts.map +1 -0
- package/{validators/query/index.d.ts → types/xxmachina-components-validators-query.d.ts} +1 -1
- package/types/xxmachina-components-validators-query.d.ts.map +1 -0
- package/{index.d.ts → types/xxmachina-components.d.ts} +1 -1
- package/types/xxmachina-components.d.ts.map +1 -0
- package/extras/flow/index.d.ts.map +0 -1
- package/features/command/index.d.ts.map +0 -1
- package/features/query/index.d.ts.map +0 -1
- package/fesm2022/xxmachina-components-routes-resources-pages.routes-CzjQOxwT.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes-resources-resource.routes-C5KpB3KM.mjs.map +0 -1
- package/groups/command-form/index.d.ts.map +0 -1
- package/groups/query-form/index.d.ts.map +0 -1
- package/index.d.ts.map +0 -1
- package/molecules/calendar-paginator/index.d.ts.map +0 -1
- package/molecules/daily-cell/index.d.ts.map +0 -1
- package/molecules/inline-edit-field/index.d.ts.map +0 -1
- package/molecules/weekly-header/index.d.ts.map +0 -1
- package/organisms/calendar-section/index.d.ts.map +0 -1
- package/organisms/event-input-section/index.d.ts.map +0 -1
- package/organisms/terminal-input-section/index.d.ts.map +0 -1
- package/organisms/video-trimmer-section/index.d.ts.map +0 -1
- package/organisms/xterm/index.d.ts.map +0 -1
- package/pages/command/harness/index.d.ts.map +0 -1
- package/pages/command/index.d.ts.map +0 -1
- package/pages/query/index.d.ts.map +0 -1
- package/pages/query-v2/index.d.ts.map +0 -1
- package/pages/thread/index.d.ts.map +0 -1
- package/routes/commands/index.d.ts.map +0 -1
- package/routes/index.d.ts.map +0 -1
- package/routes/pages/index.d.ts.map +0 -1
- package/routes/preloading/index.d.ts.map +0 -1
- package/routes/queries/index.d.ts.map +0 -1
- package/routes/query/index.d.ts.map +0 -1
- package/routes/resources/index.d.ts +0 -6
- package/routes/resources/index.d.ts.map +0 -1
- package/routes/side/chat/index.d.ts +0 -6
- package/routes/side/chat/index.d.ts.map +0 -1
- package/routes/side/index.d.ts +0 -6
- package/routes/side/index.d.ts.map +0 -1
- package/routes/transformer/index.d.ts +0 -6
- package/routes/transformer/index.d.ts.map +0 -1
- package/routes/transformers/index.d.ts +0 -6
- package/routes/transformers/index.d.ts.map +0 -1
- package/services/app/index.d.ts.map +0 -1
- package/services/assistant/index.d.ts.map +0 -1
- package/services/command/index.d.ts.map +0 -1
- package/services/context/index.d.ts.map +0 -1
- package/services/contract/index.d.ts.map +0 -1
- package/services/debug/index.d.ts.map +0 -1
- package/services/forms/query/index.d.ts.map +0 -1
- package/services/forms/schedule/index.d.ts.map +0 -1
- package/services/forms/variables/index.d.ts.map +0 -1
- package/services/graphql/index.d.ts.map +0 -1
- package/services/invoice/index.d.ts.map +0 -1
- package/services/json-schema/index.d.ts.map +0 -1
- package/services/link/index.d.ts.map +0 -1
- package/services/message/index.d.ts.map +0 -1
- package/services/openai/index.d.ts.map +0 -1
- package/services/openapi/index.d.ts.map +0 -1
- package/services/order/index.d.ts.map +0 -1
- package/services/partner/index.d.ts.map +0 -1
- package/services/query/index.d.ts.map +0 -1
- package/services/recording/index.d.ts.map +0 -1
- package/services/thread/index.d.ts.map +0 -1
- package/services/transformer/index.d.ts.map +0 -1
- package/services/youtube/index.d.ts.map +0 -1
- package/templates/agent/index.d.ts.map +0 -1
- package/templates/background/index.d.ts.map +0 -1
- package/templates/flow/index.d.ts.map +0 -1
- package/templates/flow/nodes/group/index.d.ts.map +0 -1
- package/templates/flow/nodes/issue/index.d.ts.map +0 -1
- package/templates/flow/nodes/task/index.d.ts.map +0 -1
- package/templates/invoice-iframe/index.d.ts.map +0 -1
- package/templates/scheduler/index.d.ts.map +0 -1
- package/templates/video/index.d.ts.map +0 -1
- package/validators/query/index.d.ts.map +0 -1
|
@@ -3,7 +3,6 @@ import { inject, ChangeDetectorRef, computed, input, viewChild, HostListener, Ch
|
|
|
3
3
|
import { NgAtomicComponent, provideComponent } from '@ng-atomic/core';
|
|
4
4
|
import * as i2 from '@angular/forms';
|
|
5
5
|
import { FormsModule } from '@angular/forms';
|
|
6
|
-
import { CommonModule } from '@angular/common';
|
|
7
6
|
import { AutoLayoutFrame } from '@ng-atomic/components/frames/auto-layout';
|
|
8
7
|
import { CardFrame } from '@ng-atomic/components/frames/card';
|
|
9
8
|
import { ScrollFrame } from '@ng-atomic/components/frames/scroll';
|
|
@@ -24,8 +23,8 @@ import chalk from 'chalk';
|
|
|
24
23
|
/**
|
|
25
24
|
* コアメッセージ(共通部分)
|
|
26
25
|
*/
|
|
27
|
-
const CORE_MESSAGE = `${chalk.cyan('● What is
|
|
28
|
-
|
|
26
|
+
const CORE_MESSAGE = `${chalk.cyan('● What is Plan X?')}
|
|
27
|
+
Plan X is a modern WebRTC-based session manager, an alternative to SSH and Tmux.
|
|
29
28
|
Connect any machine worldwide with a single command and deploy AI agents anywhere.
|
|
30
29
|
|
|
31
30
|
${chalk.cyan(`● Vision: ${chalk.bold.yellow('"The Planet is the Computer"')}`)}
|
|
@@ -38,7 +37,7 @@ ${chalk.cyan('● Agentic Shell')}
|
|
|
38
37
|
|
|
39
38
|
${chalk.cyan('● Meta-Kernel')}
|
|
40
39
|
Distributed abstraction layer running on top of existing OSes (Linux/Mac/Win)
|
|
41
|
-
Just as kernels abstract hardware,
|
|
40
|
+
Just as kernels abstract hardware, Plan X abstracts the network
|
|
42
41
|
|
|
43
42
|
${chalk.cyan('● Autopoiesis')}
|
|
44
43
|
Self-improving, self-sustaining, self-replicating living system
|
|
@@ -46,16 +45,16 @@ ${chalk.cyan('● Autopoiesis')}
|
|
|
46
45
|
/**
|
|
47
46
|
* ウェルカムメッセージ(起動時に表示)
|
|
48
47
|
*/
|
|
49
|
-
const WELCOME_MESSAGE = `${chalk.cyan(`● Welcome to ${chalk.bold.yellow('
|
|
48
|
+
const WELCOME_MESSAGE = `${chalk.cyan(`● Welcome to ${chalk.bold.yellow('Plan X')}`)}
|
|
50
49
|
|
|
51
50
|
${CORE_MESSAGE}
|
|
52
51
|
|
|
53
|
-
${chalk.gray('powered by
|
|
52
|
+
${chalk.gray('powered by Plan X Agent LLC.')}
|
|
54
53
|
`;
|
|
55
54
|
/**
|
|
56
55
|
* aboutコマンドのメッセージ
|
|
57
56
|
*/
|
|
58
|
-
const ABOUT_MESSAGE = `${chalk.bold.cyan('●
|
|
57
|
+
const ABOUT_MESSAGE = `${chalk.bold.cyan('● Plan X - OS for the LLM Era')}
|
|
59
58
|
|
|
60
59
|
${CORE_MESSAGE}
|
|
61
60
|
|
|
@@ -67,7 +66,7 @@ ${chalk.cyan('● QTP/ATC Patterns')}
|
|
|
67
66
|
${chalk.cyan('● Learn More')}
|
|
68
67
|
Sign in to access more features
|
|
69
68
|
|
|
70
|
-
${chalk.gray('powered by
|
|
69
|
+
${chalk.gray('powered by Plan X Agent LLC.')}`;
|
|
71
70
|
|
|
72
71
|
var ActionId;
|
|
73
72
|
(function (ActionId) {
|
|
@@ -84,15 +83,15 @@ class AgentTemplate extends NgAtomicComponent {
|
|
|
84
83
|
app = inject(AppService);
|
|
85
84
|
// 認証状態のチェック(非ログイン時は閉じるボタンを非表示)
|
|
86
85
|
authState = injectAuthState();
|
|
87
|
-
isLoggedIn = computed(() => !!this.authState());
|
|
88
|
-
endActions = input([]);
|
|
86
|
+
isLoggedIn = computed(() => !!this.authState(), ...(ngDevMode ? [{ debugName: "isLoggedIn" }] : []));
|
|
87
|
+
endActions = input([], ...(ngDevMode ? [{ debugName: "endActions" }] : []));
|
|
89
88
|
navStartActions = computed(() => {
|
|
90
89
|
if (!this.isLoggedIn())
|
|
91
90
|
return [];
|
|
92
91
|
return [{ id: 'close-side-app', icon: 'close', name: '閉じる' }];
|
|
93
|
-
});
|
|
94
|
-
xtermComponent = viewChild('xtermComponent');
|
|
95
|
-
inputField = viewChild('inputField');
|
|
92
|
+
}, ...(ngDevMode ? [{ debugName: "navStartActions" }] : []));
|
|
93
|
+
xtermComponent = viewChild('xtermComponent', ...(ngDevMode ? [{ debugName: "xtermComponent" }] : []));
|
|
94
|
+
inputField = viewChild('inputField', ...(ngDevMode ? [{ debugName: "inputField" }] : []));
|
|
96
95
|
statusText = 'Ready';
|
|
97
96
|
isProcessing = false;
|
|
98
97
|
showCursor = false;
|
|
@@ -410,8 +409,8 @@ class AgentTemplate extends NgAtomicComponent {
|
|
|
410
409
|
this.cursorTop = 12 + (currentLineIndex * 20) - scrollTop; // スクロール分を引く
|
|
411
410
|
}
|
|
412
411
|
}
|
|
413
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
414
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "
|
|
412
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: AgentTemplate, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
413
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: AgentTemplate, isStandalone: true, selector: "templates-agent", inputs: { endActions: { classPropertyName: "endActions", publicName: "endActions", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:resize": "onWindowResize()" }, classAttribute: "template" }, viewQueries: [{ propertyName: "xtermComponent", first: true, predicate: ["xtermComponent"], descendants: true, isSignal: true }, { propertyName: "inputField", first: true, predicate: ["inputField"], descendants: true, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: i1.EntranceTemplateStore, inputs: ["form", "form", "actions", "actions", "title", "title", "fieldMap", "fieldMap"] }], ngImport: i0, template: `
|
|
415
414
|
<frames-scroll class="terminal-window">
|
|
416
415
|
<organisms-navigator top injectable class="terminal-header"
|
|
417
416
|
[startActions]="navStartActions()"
|
|
@@ -463,12 +462,11 @@ class AgentTemplate extends NgAtomicComponent {
|
|
|
463
462
|
</div>
|
|
464
463
|
</div>
|
|
465
464
|
</frames-scroll>
|
|
466
|
-
`, isInline: true, styles: [":host{--text: #e0e0e0;--text-SCOPED-IN-entrance-
|
|
465
|
+
`, isInline: true, styles: [":host{--text: #e0e0e0;--text-SCOPED-IN-entrance-shpY: var(--text);--user: #00ff00;--user-SCOPED-IN-entrance-shpY: var(--user);--sys: #888;--sys-SCOPED-IN-entrance-shpY: var(--sys);--accent: #ff79c6;--accent-SCOPED-IN-entrance-shpY: var(--accent);--border: rgba(51, 51, 51, .5);--border-SCOPED-IN-entrance-shpY: var(--border)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}:host{display:flex;justify-content:center;align-items:center;width:100%;height:100%;background:transparent;font-family:SF Mono,Monaco,monospace;container-type:inline-size;container-name:agent-container;transition:all .3s ease}.terminal-window{--height: 100%;--contents-gap: 0;width:100%;max-width:900px;height:600px;background:#0a0a0a;border:1px solid var(--border-SCOPED-IN-entrance-shpY);border-radius:8px;box-shadow:0 20px 40px #0000004d;animation:fadeIn .3s;transition:all .3s ease}.terminal-header{display:flex;justify-content:space-between;align-items:center;height:56px;min-height:56px;flex-shrink:0;padding:0 20px;background:#1a1a1a99;border-bottom:1px solid var(--border-SCOPED-IN-entrance-shpY);transition:all .3s ease;position:relative}.terminal-header .close-button{color:var(--sys-SCOPED-IN-entrance-shpY);margin-right:.5rem;opacity:.7}.terminal-header .close-button:hover{color:var(--text-SCOPED-IN-entrance-shpY);opacity:1}.terminal-header .terminal-title{font-size:13px;color:var(--text-SCOPED-IN-entrance-shpY);font-weight:500;flex:1}.terminal-header .terminal-status{font-size:12px;color:var(--sys-SCOPED-IN-entrance-shpY);opacity:.7}.terminal-display{width:100%;height:100%;background:#0a0a0a}.input-area{background:#000000e6;border-top:1px solid var(--border-SCOPED-IN-entrance-shpY);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .3s ease;padding:16px 20px}.input-line{display:block;position:relative}.input-line .input-prefix{display:none}.input-line .textarea-wrapper{display:flex;align-items:flex-start;position:relative;border:1px solid rgba(255,255,255,.2);border-radius:4px;transition:border-color .2s ease}.input-line .textarea-wrapper:focus-within{border-color:#fff6}.input-line .textarea-wrapper .arrow-prefix{color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;padding:12px 0 12px 16px;flex-shrink:0;pointer-events:none}.input-line .textarea-wrapper .input-container{flex:1;position:relative;overflow:hidden}.input-line .textarea-wrapper .terminal-input{width:100%;background:transparent;border:none;outline:none;color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;caret-color:transparent;padding:12px 16px 12px 8px;transition:none;resize:none;height:44px;min-height:44px;max-height:200px;overflow-y:auto;overflow-x:hidden;line-height:20px;box-sizing:border-box;white-space:pre-wrap;word-wrap:break-word}.input-line .textarea-wrapper .terminal-input::selection{background:#ffffff4d}.input-line .textarea-wrapper .terminal-input{caret-shape:block}.input-line .textarea-wrapper .terminal-input:disabled{opacity:.5;cursor:not-allowed}.input-line .textarea-wrapper .terminal-input:-webkit-autofill{-webkit-text-fill-color:#e0e0e0;-webkit-box-shadow:0 0 0 1000px rgba(0,0,0,.9) inset}.input-line .textarea-wrapper .terminal-input::placeholder{color:#ffffff4d;opacity:1}.input-line .textarea-wrapper .block-cursor{position:absolute;width:10px;height:20px;background:#e0e0e0;opacity:0;pointer-events:none}.input-line .textarea-wrapper .block-cursor.visible{animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:.8}51%,to{opacity:0}}:host:has(.terminal-window){height:100vh;height:100dvh;overflow-y:auto}@container agent-container (max-width: 600px){:host{padding:0;padding-top:env(safe-area-inset-top)}.terminal-window{height:100%;max-height:100vh;max-height:100dvh;max-width:100%;border-radius:0;border:none;box-shadow:none}.terminal-header{height:56px;padding:0 16px}.terminal-header .terminal-title{font-size:12px}.terminal-header .terminal-status{font-size:11px}.terminal-header .close-button{margin-right:.25rem}}@container agent-container (min-width: 601px) and (max-width: 900px){.terminal-window{max-width:100%;height:100%;border-radius:0}}@container agent-container (max-width: 400px){.terminal-header{height:56px;padding:0 12px}.terminal-header .close-button{margin-right:.2rem}.input-area{padding:12px 16px}.textarea-wrapper .arrow-prefix{font-size:13px;padding:10px 0 10px 12px}.textarea-wrapper .terminal-input{font-size:12px;padding:10px 12px 10px 6px;height:40px;min-height:40px;line-height:20px}}.ascii-art{font-family:Consolas,Monaco,Liberation Mono,Menlo,Courier New,monospace!important;font-size:10px!important;line-height:1.1!important;letter-spacing:0!important;font-weight:400!important;margin:1em 0!important;padding:1em!important;white-space:pre!important;overflow-x:auto!important;overflow-y:hidden!important;display:block!important;width:fit-content!important;background:#ffffff08;border:1px solid var(--border-SCOPED-IN-entrance-shpY);border-radius:4px;color:var(--accent-SCOPED-IN-entrance-shpY)!important;opacity:.9;text-shadow:0 0 10px var(--accent-SCOPED-IN-entrance-shpY),0 0 20px var(--accent-SCOPED-IN-entrance-shpY);-webkit-font-smoothing:none!important;-moz-osx-font-smoothing:unset!important;font-variant-ligatures:none!important;text-rendering:optimizeLegibility!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ScrollFrame, selector: "frames-scroll" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "component", type: XtermOrganism, selector: "organisms-xterm", outputs: ["terminalReady", "githubLinkClick"] }, { kind: "directive", type: NavigatorOrganismStore, selector: "organisms-navigator", inputs: ["startActions", "endActions", "title"] }], changeDetection: i0.ChangeDetectionStrategy.Default });
|
|
467
466
|
}
|
|
468
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
467
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: AgentTemplate, decorators: [{
|
|
469
468
|
type: Component,
|
|
470
469
|
args: [{ selector: 'templates-agent', imports: [
|
|
471
|
-
CommonModule,
|
|
472
470
|
FormsModule,
|
|
473
471
|
AutoLayoutFrame,
|
|
474
472
|
CardFrame,
|
|
@@ -480,7 +478,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImpor
|
|
|
480
478
|
MatIconModule,
|
|
481
479
|
MatTooltipModule,
|
|
482
480
|
XtermOrganism,
|
|
483
|
-
NavigatorOrganismStore
|
|
481
|
+
NavigatorOrganismStore
|
|
484
482
|
], template: `
|
|
485
483
|
<frames-scroll class="terminal-window">
|
|
486
484
|
<organisms-navigator top injectable class="terminal-header"
|
|
@@ -545,8 +543,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImpor
|
|
|
545
543
|
'fieldMap',
|
|
546
544
|
],
|
|
547
545
|
},
|
|
548
|
-
], styles: [":host{--text: #e0e0e0;--text-SCOPED-IN-entrance-
|
|
549
|
-
}], propDecorators: { onWindowResize: [{
|
|
546
|
+
], styles: [":host{--text: #e0e0e0;--text-SCOPED-IN-entrance-shpY: var(--text);--user: #00ff00;--user-SCOPED-IN-entrance-shpY: var(--user);--sys: #888;--sys-SCOPED-IN-entrance-shpY: var(--sys);--accent: #ff79c6;--accent-SCOPED-IN-entrance-shpY: var(--accent);--border: rgba(51, 51, 51, .5);--border-SCOPED-IN-entrance-shpY: var(--border)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}:host{display:flex;justify-content:center;align-items:center;width:100%;height:100%;background:transparent;font-family:SF Mono,Monaco,monospace;container-type:inline-size;container-name:agent-container;transition:all .3s ease}.terminal-window{--height: 100%;--contents-gap: 0;width:100%;max-width:900px;height:600px;background:#0a0a0a;border:1px solid var(--border-SCOPED-IN-entrance-shpY);border-radius:8px;box-shadow:0 20px 40px #0000004d;animation:fadeIn .3s;transition:all .3s ease}.terminal-header{display:flex;justify-content:space-between;align-items:center;height:56px;min-height:56px;flex-shrink:0;padding:0 20px;background:#1a1a1a99;border-bottom:1px solid var(--border-SCOPED-IN-entrance-shpY);transition:all .3s ease;position:relative}.terminal-header .close-button{color:var(--sys-SCOPED-IN-entrance-shpY);margin-right:.5rem;opacity:.7}.terminal-header .close-button:hover{color:var(--text-SCOPED-IN-entrance-shpY);opacity:1}.terminal-header .terminal-title{font-size:13px;color:var(--text-SCOPED-IN-entrance-shpY);font-weight:500;flex:1}.terminal-header .terminal-status{font-size:12px;color:var(--sys-SCOPED-IN-entrance-shpY);opacity:.7}.terminal-display{width:100%;height:100%;background:#0a0a0a}.input-area{background:#000000e6;border-top:1px solid var(--border-SCOPED-IN-entrance-shpY);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .3s ease;padding:16px 20px}.input-line{display:block;position:relative}.input-line .input-prefix{display:none}.input-line .textarea-wrapper{display:flex;align-items:flex-start;position:relative;border:1px solid rgba(255,255,255,.2);border-radius:4px;transition:border-color .2s ease}.input-line .textarea-wrapper:focus-within{border-color:#fff6}.input-line .textarea-wrapper .arrow-prefix{color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;padding:12px 0 12px 16px;flex-shrink:0;pointer-events:none}.input-line .textarea-wrapper .input-container{flex:1;position:relative;overflow:hidden}.input-line .textarea-wrapper .terminal-input{width:100%;background:transparent;border:none;outline:none;color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;caret-color:transparent;padding:12px 16px 12px 8px;transition:none;resize:none;height:44px;min-height:44px;max-height:200px;overflow-y:auto;overflow-x:hidden;line-height:20px;box-sizing:border-box;white-space:pre-wrap;word-wrap:break-word}.input-line .textarea-wrapper .terminal-input::selection{background:#ffffff4d}.input-line .textarea-wrapper .terminal-input{caret-shape:block}.input-line .textarea-wrapper .terminal-input:disabled{opacity:.5;cursor:not-allowed}.input-line .textarea-wrapper .terminal-input:-webkit-autofill{-webkit-text-fill-color:#e0e0e0;-webkit-box-shadow:0 0 0 1000px rgba(0,0,0,.9) inset}.input-line .textarea-wrapper .terminal-input::placeholder{color:#ffffff4d;opacity:1}.input-line .textarea-wrapper .block-cursor{position:absolute;width:10px;height:20px;background:#e0e0e0;opacity:0;pointer-events:none}.input-line .textarea-wrapper .block-cursor.visible{animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:.8}51%,to{opacity:0}}:host:has(.terminal-window){height:100vh;height:100dvh;overflow-y:auto}@container agent-container (max-width: 600px){:host{padding:0;padding-top:env(safe-area-inset-top)}.terminal-window{height:100%;max-height:100vh;max-height:100dvh;max-width:100%;border-radius:0;border:none;box-shadow:none}.terminal-header{height:56px;padding:0 16px}.terminal-header .terminal-title{font-size:12px}.terminal-header .terminal-status{font-size:11px}.terminal-header .close-button{margin-right:.25rem}}@container agent-container (min-width: 601px) and (max-width: 900px){.terminal-window{max-width:100%;height:100%;border-radius:0}}@container agent-container (max-width: 400px){.terminal-header{height:56px;padding:0 12px}.terminal-header .close-button{margin-right:.2rem}.input-area{padding:12px 16px}.textarea-wrapper .arrow-prefix{font-size:13px;padding:10px 0 10px 12px}.textarea-wrapper .terminal-input{font-size:12px;padding:10px 12px 10px 6px;height:40px;min-height:40px;line-height:20px}}.ascii-art{font-family:Consolas,Monaco,Liberation Mono,Menlo,Courier New,monospace!important;font-size:10px!important;line-height:1.1!important;letter-spacing:0!important;font-weight:400!important;margin:1em 0!important;padding:1em!important;white-space:pre!important;overflow-x:auto!important;overflow-y:hidden!important;display:block!important;width:fit-content!important;background:#ffffff08;border:1px solid var(--border-SCOPED-IN-entrance-shpY);border-radius:4px;color:var(--accent-SCOPED-IN-entrance-shpY)!important;opacity:.9;text-shadow:0 0 10px var(--accent-SCOPED-IN-entrance-shpY),0 0 20px var(--accent-SCOPED-IN-entrance-shpY);-webkit-font-smoothing:none!important;-moz-osx-font-smoothing:unset!important;font-variant-ligatures:none!important;text-rendering:optimizeLegibility!important}\n"] }]
|
|
547
|
+
}], propDecorators: { endActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "endActions", required: false }] }], xtermComponent: [{ type: i0.ViewChild, args: ['xtermComponent', { isSignal: true }] }], inputField: [{ type: i0.ViewChild, args: ['inputField', { isSignal: true }] }], onWindowResize: [{
|
|
550
548
|
type: HostListener,
|
|
551
549
|
args: ['window:resize']
|
|
552
550
|
}] } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xxmachina-components-templates-agent.mjs","sources":["../tmp-esm2022/templates/agent/agent-messages.js","../tmp-esm2022/templates/agent/agent.template.js","../tmp-esm2022/templates/agent/xxmachina-components-templates-agent.js"],"sourcesContent":["import chalk from 'chalk';\n/**\n * コアメッセージ(共通部分)\n */\nconst CORE_MESSAGE = `${chalk.cyan('● What is Machina?')}\n Machina is a modern WebRTC-based session manager, an alternative to SSH and Tmux.\n Connect any machine worldwide with a single command and deploy AI agents anywhere.\n\n${chalk.cyan(`● Vision: ${chalk.bold.yellow('\"The Planet is the Computer\"')}`)}\n Building a planetary-scale operating system\n AI agents autonomously optimize distributed systems\n\n${chalk.cyan('● Agentic Shell')}\n Unified interface to distributed resources\n Express your intent in natural language, AI plans the execution\n\n${chalk.cyan('● Meta-Kernel')}\n Distributed abstraction layer running on top of existing OSes (Linux/Mac/Win)\n Just as kernels abstract hardware, Machina abstracts the network\n\n${chalk.cyan('● Autopoiesis')}\n Self-improving, self-sustaining, self-replicating living system\n Agents evolve themselves and spawn new agents`;\n/**\n * ウェルカムメッセージ(起動時に表示)\n */\nexport const WELCOME_MESSAGE = `${chalk.cyan(`● Welcome to ${chalk.bold.yellow('Machina')}`)}\n\n${CORE_MESSAGE}\n\n${chalk.gray('powered by Machina Agent LLC.')}\n`;\n/**\n * aboutコマンドのメッセージ\n */\nexport const ABOUT_MESSAGE = `${chalk.bold.cyan('● Machina - OS for the LLM Era')}\n\n${CORE_MESSAGE}\n\n${chalk.cyan('● QTP/ATC Patterns')}\n Query-Transformer-Presenter: Retrieve information\n Action-Transformer-Command: Execute actions\n New interaction model replacing stdio\n\n${chalk.cyan('● Learn More')}\n Sign in to access more features\n\n${chalk.gray('powered by Machina Agent LLC.')}`;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQtbWVzc2FnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AeHhtYWNoaW5hL2NvbXBvbmVudHMvc3JjL2xpYi90ZW1wbGF0ZXMvYWdlbnQvYWdlbnQtbWVzc2FnZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRTFCOztHQUVHO0FBQ0gsTUFBTSxZQUFZLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDOzs7O0VBSXRELEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxFQUFFLENBQUM7Ozs7RUFJNUUsS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQzs7OztFQUk3QixLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQzs7OztFQUkzQixLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQzs7Z0RBRW1CLENBQUM7QUFFakQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDOztFQUUxRixZQUFZOztFQUVaLEtBQUssQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUM7Q0FDNUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUM7O0VBRS9FLFlBQVk7O0VBRVosS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQzs7Ozs7RUFLaEMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7OztFQUcxQixLQUFLLENBQUMsSUFBSSxDQUFDLCtCQUErQixDQUFDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5cbi8qKlxuICog44Kz44Ki44Oh44OD44K744O844K477yI5YWx6YCa6YOo5YiG77yJXG4gKi9cbmNvbnN0IENPUkVfTUVTU0FHRSA9IGAke2NoYWxrLmN5YW4oJ+KXjyBXaGF0IGlzIE1hY2hpbmE/Jyl9XG4gIE1hY2hpbmEgaXMgYSBtb2Rlcm4gV2ViUlRDLWJhc2VkIHNlc3Npb24gbWFuYWdlciwgYW4gYWx0ZXJuYXRpdmUgdG8gU1NIIGFuZCBUbXV4LlxuICBDb25uZWN0IGFueSBtYWNoaW5lIHdvcmxkd2lkZSB3aXRoIGEgc2luZ2xlIGNvbW1hbmQgYW5kIGRlcGxveSBBSSBhZ2VudHMgYW55d2hlcmUuXG5cbiR7Y2hhbGsuY3lhbihg4pePIFZpc2lvbjogJHtjaGFsay5ib2xkLnllbGxvdygnXCJUaGUgUGxhbmV0IGlzIHRoZSBDb21wdXRlclwiJyl9YCl9XG4gIEJ1aWxkaW5nIGEgcGxhbmV0YXJ5LXNjYWxlIG9wZXJhdGluZyBzeXN0ZW1cbiAgQUkgYWdlbnRzIGF1dG9ub21vdXNseSBvcHRpbWl6ZSBkaXN0cmlidXRlZCBzeXN0ZW1zXG5cbiR7Y2hhbGsuY3lhbign4pePIEFnZW50aWMgU2hlbGwnKX1cbiAgVW5pZmllZCBpbnRlcmZhY2UgdG8gZGlzdHJpYnV0ZWQgcmVzb3VyY2VzXG4gIEV4cHJlc3MgeW91ciBpbnRlbnQgaW4gbmF0dXJhbCBsYW5ndWFnZSwgQUkgcGxhbnMgdGhlIGV4ZWN1dGlvblxuXG4ke2NoYWxrLmN5YW4oJ+KXjyBNZXRhLUtlcm5lbCcpfVxuICBEaXN0cmlidXRlZCBhYnN0cmFjdGlvbiBsYXllciBydW5uaW5nIG9uIHRvcCBvZiBleGlzdGluZyBPU2VzIChMaW51eC9NYWMvV2luKVxuICBKdXN0IGFzIGtlcm5lbHMgYWJzdHJhY3QgaGFyZHdhcmUsIE1hY2hpbmEgYWJzdHJhY3RzIHRoZSBuZXR3b3JrXG5cbiR7Y2hhbGsuY3lhbign4pePIEF1dG9wb2llc2lzJyl9XG4gIFNlbGYtaW1wcm92aW5nLCBzZWxmLXN1c3RhaW5pbmcsIHNlbGYtcmVwbGljYXRpbmcgbGl2aW5nIHN5c3RlbVxuICBBZ2VudHMgZXZvbHZlIHRoZW1zZWx2ZXMgYW5kIHNwYXduIG5ldyBhZ2VudHNgO1xuXG4vKipcbiAqIOOCpuOCp+ODq+OCq+ODoOODoeODg+OCu+ODvOOCuO+8iOi1t+WLleaZguOBq+ihqOekuu+8iVxuICovXG5leHBvcnQgY29uc3QgV0VMQ09NRV9NRVNTQUdFID0gYCR7Y2hhbGsuY3lhbihg4pePIFdlbGNvbWUgdG8gJHtjaGFsay5ib2xkLnllbGxvdygnTWFjaGluYScpfWApfVxuXG4ke0NPUkVfTUVTU0FHRX1cblxuJHtjaGFsay5ncmF5KCdwb3dlcmVkIGJ5IE1hY2hpbmEgQWdlbnQgTExDLicpfVxuYDtcblxuLyoqXG4gKiBhYm91dOOCs+ODnuODs+ODieOBruODoeODg+OCu+ODvOOCuFxuICovXG5leHBvcnQgY29uc3QgQUJPVVRfTUVTU0FHRSA9IGAke2NoYWxrLmJvbGQuY3lhbign4pePIE1hY2hpbmEgLSBPUyBmb3IgdGhlIExMTSBFcmEnKX1cblxuJHtDT1JFX01FU1NBR0V9XG5cbiR7Y2hhbGsuY3lhbign4pePIFFUUC9BVEMgUGF0dGVybnMnKX1cbiAgUXVlcnktVHJhbnNmb3JtZXItUHJlc2VudGVyOiBSZXRyaWV2ZSBpbmZvcm1hdGlvblxuICBBY3Rpb24tVHJhbnNmb3JtZXItQ29tbWFuZDogRXhlY3V0ZSBhY3Rpb25zXG4gIE5ldyBpbnRlcmFjdGlvbiBtb2RlbCByZXBsYWNpbmcgc3RkaW9cblxuJHtjaGFsay5jeWFuKCfil48gTGVhcm4gTW9yZScpfVxuICBTaWduIGluIHRvIGFjY2VzcyBtb3JlIGZlYXR1cmVzXG5cbiR7Y2hhbGsuZ3JheSgncG93ZXJlZCBieSBNYWNoaW5hIEFnZW50IExMQy4nKX1gO1xuIl19","import { ChangeDetectionStrategy, Component, inject, ChangeDetectorRef, viewChild, computed, HostListener, input } from '@angular/core';\nimport { NgAtomicComponent, provideComponent } from '@ng-atomic/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { AutoLayoutFrame } from '@ng-atomic/components/frames/auto-layout';\nimport { CardFrame } from '@ng-atomic/components/frames/card';\nimport { ScrollFrame } from '@ng-atomic/components/frames/scroll';\nimport { ActionButtonsSectionOrganism } from '@ng-atomic/components/organisms/action-buttons-section';\nimport { HeadingOrganism } from '@ng-atomic/components/organisms/heading';\nimport { NgAtomicFormSectionBuilder } from '@ng-atomic/components/templates/form';\nimport { EntranceTemplateStore } from '@ng-atomic/components/templates/entrance';\nimport { AppService } from '@ng-atomic/common/services/app';\nimport { injectAuthState } from '@ng-atomic/common/services/auth';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { XtermOrganism, svgToSixel } from '@xxmachina/components/organisms/xterm';\nimport { NavigatorOrganismStore } from '@ng-atomic/components/organisms/navigator';\nimport chalk from 'chalk';\nimport { WELCOME_MESSAGE, ABOUT_MESSAGE } from './agent-messages';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ng-atomic/components/templates/entrance\";\nimport * as i2 from \"@angular/forms\";\nvar ActionId;\n(function (ActionId) {\n ActionId[\"SIGN_IN\"] = \"[@ng-atomic/components] Sign In\";\n ActionId[\"SIGN_IN_WITH_GOOGLE\"] = \"[@ng-atomic/components] Sign In With Google\";\n ActionId[\"SIGN_IN_WITH_TWITTER\"] = \"[@ng-atomic/components] Sign In With Twitter\";\n ActionId[\"SIGN_OUT\"] = \"[@ng-atomic/components] Sign Out\";\n})(ActionId || (ActionId = {}));\nexport class AgentTemplate extends NgAtomicComponent {\n static ActionId = ActionId;\n ActionId = ActionId;\n store = inject(EntranceTemplateStore);\n cdr = inject(ChangeDetectorRef);\n app = inject(AppService);\n // 認証状態のチェック(非ログイン時は閉じるボタンを非表示)\n authState = injectAuthState();\n isLoggedIn = computed(() => !!this.authState());\n endActions = input([]);\n navStartActions = computed(() => {\n if (!this.isLoggedIn())\n return [];\n return [{ id: 'close-side-app', icon: 'close', name: '閉じる' }];\n });\n xtermComponent = viewChild('xtermComponent');\n inputField = viewChild('inputField');\n statusText = 'Ready';\n isProcessing = false;\n showCursor = false;\n cursorLeft = 60;\n cursorTop = 12;\n // xterm関連\n terminal;\n commandHistory = [];\n historyIndex = -1;\n // 入力管理\n currentInput = '';\n ngAfterViewInit() {\n // 入力フィールドにフォーカス\n setTimeout(() => {\n const textarea = this.inputField()?.nativeElement;\n if (textarea) {\n textarea.focus();\n // 初期高さを適切に設定\n this.adjustTextareaHeight();\n }\n }, 100);\n }\n onWindowResize() {\n // ウィンドウリサイズ時にターミナルをフィット\n this.xtermComponent()?.fit();\n }\n onTerminalReady(terminal) {\n this.terminal = terminal;\n // 初期化時にターミナルをコンテナサイズにフィット\n setTimeout(() => {\n this.xtermComponent()?.fit();\n }, 50);\n // 初期メッセージの表示\n this.showWelcomeMessage();\n // 初回ロード時は最上部にスクロール(アスキーアートから見えるように)\n setTimeout(() => {\n this.terminal.scrollToTop();\n }, 100);\n // 入力フィールドにフォーカスと高さ調整\n const textarea = this.inputField()?.nativeElement;\n if (textarea) {\n textarea.focus();\n this.adjustTextareaHeight();\n }\n }\n onGitHubLinkClick(issueNumber) {\n const url = `https://github.com/nontangent/x_x_machina/issues/${issueNumber}`;\n window.open(url, '_blank');\n }\n async showWelcomeMessage() {\n this.terminal.writeln('');\n // assetsからSVGを読み込んでSIXELフォーマットで表示\n try {\n const response = await fetch('/assets/machina-ascii-art.svg');\n const svgString = await response.text();\n const sixelData = await svgToSixel(svgString, { width: 400, height: 130 });\n this.terminal.write(sixelData);\n this.terminal.writeln('');\n }\n catch (error) {\n console.warn('SIXEL logo display failed, using ASCII fallback:', error);\n // フォールバック: ASCII artでX_Xロゴを表示\n this.terminal.writeln(`${chalk.cyan(' ██╗ ██╗ ██╗ ██╗')}`);\n this.terminal.writeln(`${chalk.cyan(' ╚██╗██╔╝ ╚██╗██╔╝ ')}`);\n this.terminal.writeln(`${chalk.cyan(' ╚███╔╝ ╚███╔╝ ')}`);\n this.terminal.writeln(`${chalk.cyan(' ██╔██╗ ██╔██╗ ')}`);\n this.terminal.writeln(`${chalk.cyan(' ██╔╝ ██╗ ██╔╝ ██╗ ')}`);\n this.terminal.writeln(`${chalk.cyan(' ╚═╝ ╚═╝ ╚═╝ ╚═╝ ')}`);\n }\n this.terminal.writeln('');\n // ウェルカムメッセージを表示\n WELCOME_MESSAGE.split('\\n').forEach(line => this.terminal.writeln(line));\n this.terminal.writeln('');\n this.terminal.writeln(`${chalk.cyan('● Type \\x1b[1;36mlogin\\x1b[1;33m to sign in with Google\\x1b[0m')}`);\n this.terminal.writeln(`${chalk.cyan('● Type \\x1b[1;36mhelp\\x1b[1;33m for more commands\\x1b[0m')}`);\n this.terminal.writeln('');\n // プロンプト表示\n this.showPrompt();\n }\n showPrompt() {\n // プロンプトはHTML側の入力フィールドで表示するため不要\n }\n processCommand(command) {\n this.isProcessing = true;\n this.statusText = 'Processing...';\n this.cdr.markForCheck();\n // ログインコマンド\n if (command === 'login') {\n this.terminal.writeln('\\x1b[1;32m● Initiating Google authentication...\\x1b[0m');\n setTimeout(() => {\n this.dispatch({ id: ActionId.SIGN_IN_WITH_GOOGLE });\n this.completeProcessing();\n }, 300);\n }\n else if (command.startsWith('auth')) {\n if (command.includes('google')) {\n this.terminal.writeln('\\x1b[1;32m● Initiating Google authentication...\\x1b[0m');\n setTimeout(() => {\n this.dispatch({ id: ActionId.SIGN_IN_WITH_GOOGLE });\n this.completeProcessing();\n }, 300);\n }\n else if (command.includes('twitter')) {\n this.terminal.writeln('\\x1b[1;32m● Initiating Twitter authentication...\\x1b[0m');\n setTimeout(() => {\n this.dispatch({ id: ActionId.SIGN_IN_WITH_TWITTER });\n this.completeProcessing();\n }, 300);\n }\n else if (command.includes('local')) {\n this.terminal.writeln('\\x1b[1;32m● Initiating local authentication...\\x1b[0m');\n setTimeout(() => {\n this.dispatch({ id: ActionId.SIGN_IN });\n this.completeProcessing();\n }, 300);\n }\n else {\n this.terminal.writeln('\\x1b[1;32m● Available authentication methods:\\x1b[0m');\n this.terminal.writeln(' - auth --provider=google');\n this.terminal.writeln(' - auth --provider=twitter');\n this.terminal.writeln(' - auth --provider=local');\n this.completeProcessing();\n }\n }\n // ログアウトコマンド\n else if (command === 'logout' || command === 'signout') {\n this.terminal.writeln('\\x1b[1;32m● Signing out...\\x1b[0m');\n setTimeout(() => {\n this.dispatch({ id: ActionId.SIGN_OUT });\n setTimeout(() => {\n this.terminal.writeln('\\x1b[1;32m● You have been signed out.\\x1b[0m');\n this.terminal.writeln('\\x1b[1;33m● Type \"login\" to sign in again.\\x1b[0m');\n this.completeProcessing();\n }, 500);\n }, 300);\n }\n // ヘルプコマンド\n else if (command === 'help' || command === '?') {\n this.terminal.writeln('\\x1b[1;32m● Available commands:\\x1b[0m');\n this.terminal.writeln(' \\x1b[36mlogin\\x1b[0m - Sign in with Google (default)');\n this.terminal.writeln(' \\x1b[36mauth\\x1b[0m --provider=\\x1b[33mgoogle\\x1b[0m - Sign in with Google');\n this.terminal.writeln(' \\x1b[36mauth\\x1b[0m --provider=\\x1b[33mtwitter\\x1b[0m - Sign in with Twitter');\n this.terminal.writeln(' \\x1b[36mauth\\x1b[0m --provider=\\x1b[33mlocal\\x1b[0m - Sign in with email/password');\n this.terminal.writeln(' \\x1b[36mlogout\\x1b[0m / \\x1b[36msignout\\x1b[0m - Sign out from the application');\n this.terminal.writeln(' \\x1b[36mabout\\x1b[0m - Show company information');\n this.terminal.writeln(' \\x1b[36mclear\\x1b[0m - Clear terminal');\n this.terminal.writeln(' \\x1b[36mhelp\\x1b[0m / \\x1b[36m?\\x1b[0m - Show this help');\n this.terminal.writeln('');\n this.terminal.writeln('\\x1b[1;33m● Keyboard shortcuts:\\x1b[0m');\n this.terminal.writeln(' \\x1b[36m⌘K\\x1b[0m / \\x1b[36mCtrl+K\\x1b[0m - Generate command suggestions');\n this.terminal.writeln(' \\x1b[36m↑\\x1b[0m / \\x1b[36m↓\\x1b[0m - Navigate command history');\n this.completeProcessing();\n }\n // machina情報コマンド\n else if (command === 'about') {\n ABOUT_MESSAGE.split('\\n').forEach(line => this.terminal.writeln(line));\n this.completeProcessing();\n }\n // クリアコマンド\n else if (command === 'clear' || command === 'cls') {\n this.terminal.clear();\n this.terminal.scrollToBottom();\n this.completeProcessing();\n }\n // 不明なコマンド\n else {\n this.terminal.writeln(`\\x1b[1;31m● Command not found: ${command}\\x1b[0m`);\n this.terminal.writeln(' Type \"help\" for available commands.');\n this.completeProcessing();\n }\n }\n completeProcessing() {\n this.isProcessing = false;\n this.statusText = 'Ready';\n this.cdr.markForCheck();\n this.terminal.writeln('');\n // 最新の出力が見えるようにスクロール\n this.terminal.scrollToBottom();\n // 入力フィールドにフォーカスを戻す\n setTimeout(() => {\n this.inputField()?.nativeElement?.focus();\n }, 100);\n }\n handleEnter(event) {\n // Shift+EnterまたはCtrl+Enterの場合は改行を許可\n if (event.shiftKey || event.ctrlKey) {\n return; // デフォルト動作(改行)を許可\n }\n event.preventDefault();\n const actualCommand = this.currentInput.trim();\n if (actualCommand) {\n // コマンドをターミナルに表示(改行を含む場合は適切に処理)\n const displayCommand = actualCommand.split('\\n').map(line => '\\x1b[32m> \\x1b[0m' + line).join('\\r\\n');\n this.terminal.write(displayCommand + '\\r\\n');\n // 履歴に追加\n this.commandHistory.push(actualCommand);\n this.historyIndex = this.commandHistory.length;\n // コマンドを処理\n this.processCommand(actualCommand);\n // 入力を初期状態にリセット\n this.currentInput = '';\n // textareaの高さをリセット\n const textarea = this.inputField()?.nativeElement;\n if (textarea) {\n textarea.style.height = 'auto';\n }\n }\n }\n navigateHistory(event, direction) {\n event.preventDefault();\n if (direction === -1 && this.historyIndex > 0) {\n // 上矢印\n this.historyIndex--;\n this.currentInput = this.commandHistory[this.historyIndex];\n }\n else if (direction === 1) {\n // 下矢印\n if (this.historyIndex < this.commandHistory.length - 1) {\n this.historyIndex++;\n this.currentInput = this.commandHistory[this.historyIndex];\n }\n else {\n this.historyIndex = this.commandHistory.length;\n this.currentInput = '';\n }\n }\n }\n generateCommand(event) {\n if (event) {\n event.preventDefault();\n }\n this.terminal.writeln('');\n this.terminal.writeln('\\x1b[1;32m● Generating command suggestions...\\x1b[0m');\n setTimeout(() => {\n this.terminal.writeln('\\x1b[1;33m● Suggested commands:\\x1b[0m');\n this.terminal.writeln(' 1. \\x1b[36mauth --provider=google\\x1b[0m');\n this.terminal.writeln(' 2. \\x1b[36mlogin\\x1b[0m');\n this.terminal.writeln(' 3. \\x1b[36mhelp\\x1b[0m');\n this.terminal.writeln('');\n this.cdr.markForCheck();\n }, 500);\n }\n onNavAction(action) {\n if (action.id === 'close-side-app') {\n this.app.sideApp.collapse();\n return;\n }\n this.dispatch(action);\n }\n // 入力フィールドにフォーカスを設定\n focusInput() {\n this.inputField()?.nativeElement?.focus();\n }\n // textareaの高さを内容に合わせて調整\n adjustTextareaHeight() {\n const textarea = this.inputField()?.nativeElement;\n if (textarea) {\n // 一旦高さをリセット\n textarea.style.height = '20px';\n // scrollHeightを確認し、実際に必要な高さを設定\n const scrollHeight = textarea.scrollHeight;\n // パディングを考慮した最小高さ\n const minHeight = 44; // padding: 12px * 2 + line-height: 20px\n textarea.style.height = Math.max(minHeight, scrollHeight) + 'px';\n }\n }\n // キーダウンイベントのハンドラ(プレフィックス削除防止は不要になったためノーオペレーション)\n preventPrefixDeletion(_event) {\n // No-op: prefix protection no longer needed\n }\n // 入力時の処理\n handleInput(event) {\n const textarea = event.target;\n // 高さ調整(改行が含まれている場合のみ)\n if (this.currentInput.includes('\\n')) {\n this.adjustTextareaHeight();\n }\n else {\n // 1行の場合は固定高さ\n textarea.style.height = '44px';\n }\n // カーソル位置を更新\n this.updateCursorPosition();\n }\n // フォーカス時の処理\n handleFocus() {\n this.showCursor = true;\n this.updateCursorPosition();\n }\n // ブラー時の処理\n handleBlur() {\n this.showCursor = false;\n }\n // カーソル位置の更新\n updateCursorPosition() {\n const textarea = this.inputField()?.nativeElement;\n if (!textarea)\n return;\n const cursorPos = textarea.selectionStart;\n const textBeforeCursor = this.currentInput.substring(0, cursorPos);\n // 改行で分割\n const lines = textBeforeCursor.split('\\n');\n const currentLineIndex = lines.length - 1;\n const currentLineText = lines[currentLineIndex];\n // 仮のcanvasを使って現在の行のテキスト幅を計算\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n if (context) {\n context.font = '14px \"SF Mono\", Monaco, monospace';\n const textWidth = context.measureText(currentLineText).width;\n // カーソル位置を設定(パディング分を考慮)\n this.cursorLeft = 8 + textWidth; // 8px は textarea の左パディング\n // 垂直位置を調整(行数に基づいて、スクロール位置も考慮)\n const scrollTop = textarea.scrollTop;\n this.cursorTop = 12 + (currentLineIndex * 20) - scrollTop; // スクロール分を引く\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AgentTemplate, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.0.5\", type: AgentTemplate, isStandalone: true, selector: \"templates-agent\", inputs: { endActions: { classPropertyName: \"endActions\", publicName: \"endActions\", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { \"window:resize\": \"onWindowResize()\" }, classAttribute: \"template\" }, viewQueries: [{ propertyName: \"xtermComponent\", first: true, predicate: [\"xtermComponent\"], descendants: true, isSignal: true }, { propertyName: \"inputField\", first: true, predicate: [\"inputField\"], descendants: true, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: i1.EntranceTemplateStore, inputs: [\"form\", \"form\", \"actions\", \"actions\", \"title\", \"title\", \"fieldMap\", \"fieldMap\"] }], ngImport: i0, template: `\n <frames-scroll class=\"terminal-window\">\n <organisms-navigator top injectable class=\"terminal-header\"\n [startActions]=\"navStartActions()\"\n [endActions]=\"endActions()\"\n (action)=\"onNavAction($event)\"\n >Machina Agent</organisms-navigator>\n\n <organisms-xterm\n class=\"terminal-display\"\n (terminalReady)=\"onTerminalReady($event)\"\n (githubLinkClick)=\"onGitHubLinkClick($event)\"\n (click)=\"focusInput()\"\n #xtermComponent\n />\n\n <div bottom class=\"input-area\">\n <div class=\"input-line\">\n <span class=\"input-prefix\">></span>\n <div class=\"textarea-wrapper\">\n <span class=\"arrow-prefix\">></span>\n <div class=\"input-container\">\n <textarea\n #inputField\n class=\"terminal-input\"\n [(ngModel)]=\"currentInput\"\n (keydown.enter)=\"handleEnter($event)\"\n (keydown.arrowUp)=\"navigateHistory($event, -1)\"\n (keydown.arrowDown)=\"navigateHistory($event, 1)\"\n (keydown.control.k)=\"generateCommand($event)\"\n (keydown.meta.k)=\"generateCommand($event)\"\n (keydown)=\"preventPrefixDeletion($event)\"\n (input)=\"handleInput($event)\"\n (focus)=\"handleFocus()\"\n (blur)=\"handleBlur()\"\n (keyup)=\"updateCursorPosition()\"\n (click)=\"updateCursorPosition()\"\n (scroll)=\"updateCursorPosition()\"\n [disabled]=\"isProcessing\"\n placeholder=\"Type a command...\"\n rows=\"1\"\n ></textarea>\n <div class=\"block-cursor\"\n [class.visible]=\"showCursor\"\n [style.left.px]=\"cursorLeft\"\n [style.top.px]=\"cursorTop\"\n ></div>\n </div>\n </div>\n </div>\n </div>\n </frames-scroll>\n `, isInline: true, styles: [\":host{--text: #e0e0e0;--text-SCOPED-IN-entrance-cVkf: var(--text);--user: #00ff00;--user-SCOPED-IN-entrance-cVkf: var(--user);--sys: #888;--sys-SCOPED-IN-entrance-cVkf: var(--sys);--accent: #ff79c6;--accent-SCOPED-IN-entrance-cVkf: var(--accent);--border: rgba(51, 51, 51, .5);--border-SCOPED-IN-entrance-cVkf: var(--border)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}:host{display:flex;justify-content:center;align-items:center;width:100%;height:100%;background:transparent;font-family:SF Mono,Monaco,monospace;container-type:inline-size;container-name:agent-container;transition:all .3s ease}.terminal-window{--height: 100%;--contents-gap: 0;width:100%;max-width:900px;height:600px;background:#0a0a0a;border:1px solid var(--border-SCOPED-IN-entrance-cVkf);border-radius:8px;box-shadow:0 20px 40px #0000004d;animation:fadeIn .3s;transition:all .3s ease}.terminal-header{display:flex;justify-content:space-between;align-items:center;height:56px;min-height:56px;flex-shrink:0;padding:0 20px;background:#1a1a1a99;border-bottom:1px solid var(--border-SCOPED-IN-entrance-cVkf);transition:all .3s ease;position:relative}.terminal-header .close-button{color:var(--sys-SCOPED-IN-entrance-cVkf);margin-right:.5rem;opacity:.7}.terminal-header .close-button:hover{color:var(--text-SCOPED-IN-entrance-cVkf);opacity:1}.terminal-header .terminal-title{font-size:13px;color:var(--text-SCOPED-IN-entrance-cVkf);font-weight:500;flex:1}.terminal-header .terminal-status{font-size:12px;color:var(--sys-SCOPED-IN-entrance-cVkf);opacity:.7}.terminal-display{width:100%;height:100%;background:#0a0a0a}.input-area{background:#000000e6;border-top:1px solid var(--border-SCOPED-IN-entrance-cVkf);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .3s ease;padding:16px 20px}.input-line{display:block;position:relative}.input-line .input-prefix{display:none}.input-line .textarea-wrapper{display:flex;align-items:flex-start;position:relative;border:1px solid rgba(255,255,255,.2);border-radius:4px;transition:border-color .2s ease}.input-line .textarea-wrapper:focus-within{border-color:#fff6}.input-line .textarea-wrapper .arrow-prefix{color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;padding:12px 0 12px 16px;flex-shrink:0;pointer-events:none}.input-line .textarea-wrapper .input-container{flex:1;position:relative;overflow:hidden}.input-line .textarea-wrapper .terminal-input{width:100%;background:transparent;border:none;outline:none;color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;caret-color:transparent;padding:12px 16px 12px 8px;transition:none;resize:none;height:44px;min-height:44px;max-height:200px;overflow-y:auto;overflow-x:hidden;line-height:20px;box-sizing:border-box;white-space:pre-wrap;word-wrap:break-word;caret-shape:block}.input-line .textarea-wrapper .terminal-input::selection{background:#ffffff4d}.input-line .textarea-wrapper .terminal-input:disabled{opacity:.5;cursor:not-allowed}.input-line .textarea-wrapper .terminal-input:-webkit-autofill{-webkit-text-fill-color:#e0e0e0;-webkit-box-shadow:0 0 0 1000px rgba(0,0,0,.9) inset}.input-line .textarea-wrapper .terminal-input::placeholder{color:#ffffff4d;opacity:1}.input-line .textarea-wrapper .block-cursor{position:absolute;width:10px;height:20px;background:#e0e0e0;opacity:0;pointer-events:none}.input-line .textarea-wrapper .block-cursor.visible{animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:.8}51%,to{opacity:0}}:host:has(.terminal-window){height:100vh;height:100dvh;overflow-y:auto}@container agent-container (max-width: 600px){:host{padding:0;padding-top:env(safe-area-inset-top)}.terminal-window{height:100%;max-height:100vh;max-height:100dvh;max-width:100%;border-radius:0;border:none;box-shadow:none}.terminal-header{height:56px;padding:0 16px}.terminal-header .terminal-title{font-size:12px}.terminal-header .terminal-status{font-size:11px}.terminal-header .close-button{margin-right:.25rem}}@container agent-container (min-width: 601px) and (max-width: 900px){.terminal-window{max-width:100%;height:100%;border-radius:0}}@container agent-container (max-width: 400px){.terminal-header{height:56px;padding:0 12px}.terminal-header .close-button{margin-right:.2rem}.input-area{padding:12px 16px}.textarea-wrapper .arrow-prefix{font-size:13px;padding:10px 0 10px 12px}.textarea-wrapper .terminal-input{font-size:12px;padding:10px 12px 10px 6px;height:40px;min-height:40px;line-height:20px}}.ascii-art{font-family:Consolas,Monaco,Liberation Mono,Menlo,Courier New,monospace!important;font-size:10px!important;line-height:1.1!important;letter-spacing:0!important;font-weight:400!important;margin:1em 0!important;padding:1em!important;white-space:pre!important;overflow-x:auto!important;overflow-y:hidden!important;display:block!important;width:fit-content!important;background:#ffffff08;border:1px solid var(--border-SCOPED-IN-entrance-cVkf);border-radius:4px;color:var(--accent-SCOPED-IN-entrance-cVkf)!important;opacity:.9;text-shadow:0 0 10px var(--accent-SCOPED-IN-entrance-cVkf),0 0 20px var(--accent-SCOPED-IN-entrance-cVkf);-webkit-font-smoothing:none!important;-moz-osx-font-smoothing:unset!important;font-variant-ligatures:none!important;text-rendering:optimizeLegibility!important}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i2.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"component\", type: ScrollFrame, selector: \"frames-scroll\" }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"ngmodule\", type: MatTooltipModule }, { kind: \"component\", type: XtermOrganism, selector: \"organisms-xterm\", outputs: [\"terminalReady\", \"githubLinkClick\"] }, { kind: \"directive\", type: NavigatorOrganismStore, selector: \"organisms-navigator\", inputs: [\"startActions\", \"endActions\", \"title\"] }], changeDetection: i0.ChangeDetectionStrategy.Default });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AgentTemplate, decorators: [{\n type: Component,\n args: [{ selector: 'templates-agent', imports: [\n CommonModule,\n FormsModule,\n AutoLayoutFrame,\n CardFrame,\n ScrollFrame,\n ActionButtonsSectionOrganism,\n HeadingOrganism,\n NgAtomicFormSectionBuilder,\n MatButtonModule,\n MatIconModule,\n MatTooltipModule,\n XtermOrganism,\n NavigatorOrganismStore,\n ], template: `\n <frames-scroll class=\"terminal-window\">\n <organisms-navigator top injectable class=\"terminal-header\"\n [startActions]=\"navStartActions()\"\n [endActions]=\"endActions()\"\n (action)=\"onNavAction($event)\"\n >Machina Agent</organisms-navigator>\n\n <organisms-xterm\n class=\"terminal-display\"\n (terminalReady)=\"onTerminalReady($event)\"\n (githubLinkClick)=\"onGitHubLinkClick($event)\"\n (click)=\"focusInput()\"\n #xtermComponent\n />\n\n <div bottom class=\"input-area\">\n <div class=\"input-line\">\n <span class=\"input-prefix\">></span>\n <div class=\"textarea-wrapper\">\n <span class=\"arrow-prefix\">></span>\n <div class=\"input-container\">\n <textarea\n #inputField\n class=\"terminal-input\"\n [(ngModel)]=\"currentInput\"\n (keydown.enter)=\"handleEnter($event)\"\n (keydown.arrowUp)=\"navigateHistory($event, -1)\"\n (keydown.arrowDown)=\"navigateHistory($event, 1)\"\n (keydown.control.k)=\"generateCommand($event)\"\n (keydown.meta.k)=\"generateCommand($event)\"\n (keydown)=\"preventPrefixDeletion($event)\"\n (input)=\"handleInput($event)\"\n (focus)=\"handleFocus()\"\n (blur)=\"handleBlur()\"\n (keyup)=\"updateCursorPosition()\"\n (click)=\"updateCursorPosition()\"\n (scroll)=\"updateCursorPosition()\"\n [disabled]=\"isProcessing\"\n placeholder=\"Type a command...\"\n rows=\"1\"\n ></textarea>\n <div class=\"block-cursor\"\n [class.visible]=\"showCursor\"\n [style.left.px]=\"cursorLeft\"\n [style.top.px]=\"cursorTop\"\n ></div>\n </div>\n </div>\n </div>\n </div>\n </frames-scroll>\n `, host: {\n class: 'template'\n }, changeDetection: ChangeDetectionStrategy.Default, hostDirectives: [\n {\n directive: EntranceTemplateStore,\n inputs: [\n 'form',\n 'actions',\n 'title',\n 'fieldMap',\n ],\n },\n ], styles: [\":host{--text: #e0e0e0;--text-SCOPED-IN-entrance-cVkf: var(--text);--user: #00ff00;--user-SCOPED-IN-entrance-cVkf: var(--user);--sys: #888;--sys-SCOPED-IN-entrance-cVkf: var(--sys);--accent: #ff79c6;--accent-SCOPED-IN-entrance-cVkf: var(--accent);--border: rgba(51, 51, 51, .5);--border-SCOPED-IN-entrance-cVkf: var(--border)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}:host{display:flex;justify-content:center;align-items:center;width:100%;height:100%;background:transparent;font-family:SF Mono,Monaco,monospace;container-type:inline-size;container-name:agent-container;transition:all .3s ease}.terminal-window{--height: 100%;--contents-gap: 0;width:100%;max-width:900px;height:600px;background:#0a0a0a;border:1px solid var(--border-SCOPED-IN-entrance-cVkf);border-radius:8px;box-shadow:0 20px 40px #0000004d;animation:fadeIn .3s;transition:all .3s ease}.terminal-header{display:flex;justify-content:space-between;align-items:center;height:56px;min-height:56px;flex-shrink:0;padding:0 20px;background:#1a1a1a99;border-bottom:1px solid var(--border-SCOPED-IN-entrance-cVkf);transition:all .3s ease;position:relative}.terminal-header .close-button{color:var(--sys-SCOPED-IN-entrance-cVkf);margin-right:.5rem;opacity:.7}.terminal-header .close-button:hover{color:var(--text-SCOPED-IN-entrance-cVkf);opacity:1}.terminal-header .terminal-title{font-size:13px;color:var(--text-SCOPED-IN-entrance-cVkf);font-weight:500;flex:1}.terminal-header .terminal-status{font-size:12px;color:var(--sys-SCOPED-IN-entrance-cVkf);opacity:.7}.terminal-display{width:100%;height:100%;background:#0a0a0a}.input-area{background:#000000e6;border-top:1px solid var(--border-SCOPED-IN-entrance-cVkf);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .3s ease;padding:16px 20px}.input-line{display:block;position:relative}.input-line .input-prefix{display:none}.input-line .textarea-wrapper{display:flex;align-items:flex-start;position:relative;border:1px solid rgba(255,255,255,.2);border-radius:4px;transition:border-color .2s ease}.input-line .textarea-wrapper:focus-within{border-color:#fff6}.input-line .textarea-wrapper .arrow-prefix{color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;padding:12px 0 12px 16px;flex-shrink:0;pointer-events:none}.input-line .textarea-wrapper .input-container{flex:1;position:relative;overflow:hidden}.input-line .textarea-wrapper .terminal-input{width:100%;background:transparent;border:none;outline:none;color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;caret-color:transparent;padding:12px 16px 12px 8px;transition:none;resize:none;height:44px;min-height:44px;max-height:200px;overflow-y:auto;overflow-x:hidden;line-height:20px;box-sizing:border-box;white-space:pre-wrap;word-wrap:break-word;caret-shape:block}.input-line .textarea-wrapper .terminal-input::selection{background:#ffffff4d}.input-line .textarea-wrapper .terminal-input:disabled{opacity:.5;cursor:not-allowed}.input-line .textarea-wrapper .terminal-input:-webkit-autofill{-webkit-text-fill-color:#e0e0e0;-webkit-box-shadow:0 0 0 1000px rgba(0,0,0,.9) inset}.input-line .textarea-wrapper .terminal-input::placeholder{color:#ffffff4d;opacity:1}.input-line .textarea-wrapper .block-cursor{position:absolute;width:10px;height:20px;background:#e0e0e0;opacity:0;pointer-events:none}.input-line .textarea-wrapper .block-cursor.visible{animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:.8}51%,to{opacity:0}}:host:has(.terminal-window){height:100vh;height:100dvh;overflow-y:auto}@container agent-container (max-width: 600px){:host{padding:0;padding-top:env(safe-area-inset-top)}.terminal-window{height:100%;max-height:100vh;max-height:100dvh;max-width:100%;border-radius:0;border:none;box-shadow:none}.terminal-header{height:56px;padding:0 16px}.terminal-header .terminal-title{font-size:12px}.terminal-header .terminal-status{font-size:11px}.terminal-header .close-button{margin-right:.25rem}}@container agent-container (min-width: 601px) and (max-width: 900px){.terminal-window{max-width:100%;height:100%;border-radius:0}}@container agent-container (max-width: 400px){.terminal-header{height:56px;padding:0 12px}.terminal-header .close-button{margin-right:.2rem}.input-area{padding:12px 16px}.textarea-wrapper .arrow-prefix{font-size:13px;padding:10px 0 10px 12px}.textarea-wrapper .terminal-input{font-size:12px;padding:10px 12px 10px 6px;height:40px;min-height:40px;line-height:20px}}.ascii-art{font-family:Consolas,Monaco,Liberation Mono,Menlo,Courier New,monospace!important;font-size:10px!important;line-height:1.1!important;letter-spacing:0!important;font-weight:400!important;margin:1em 0!important;padding:1em!important;white-space:pre!important;overflow-x:auto!important;overflow-y:hidden!important;display:block!important;width:fit-content!important;background:#ffffff08;border:1px solid var(--border-SCOPED-IN-entrance-cVkf);border-radius:4px;color:var(--accent-SCOPED-IN-entrance-cVkf)!important;opacity:.9;text-shadow:0 0 10px var(--accent-SCOPED-IN-entrance-cVkf),0 0 20px var(--accent-SCOPED-IN-entrance-cVkf);-webkit-font-smoothing:none!important;-moz-osx-font-smoothing:unset!important;font-variant-ligatures:none!important;text-rendering:optimizeLegibility!important}\\n\"] }]\n }], propDecorators: { onWindowResize: [{\n type: HostListener,\n args: ['window:resize']\n }] } });\nexport function provideAgentTemplate() {\n return [\n provideComponent(EntranceTemplateStore, () => AgentTemplate),\n ];\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQudGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AeHhtYWNoaW5hL2NvbXBvbmVudHMvc3JjL2xpYi90ZW1wbGF0ZXMvYWdlbnQvYWdlbnQudGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQXVDLFNBQVMsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3SyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNsRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFB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dGVneSwgQ29tcG9uZW50LCBpbmplY3QsIENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0LCBQcm92aWRlciwgdmlld0NoaWxkLCBjb21wdXRlZCwgSG9zdExpc3RlbmVyLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdBdG9taWNDb21wb25lbnQsIHByb3ZpZGVDb21wb25lbnQgfSBmcm9tICdAbmctYXRvbWljL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQXV0b0xheW91dEZyYW1lIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL2ZyYW1lcy9hdXRvLWxheW91dCc7XG5pbXBvcnQgeyBDYXJkRnJhbWUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvZnJhbWVzL2NhcmQnO1xuaW1wb3J0IHsgU2Nyb2xsRnJhbWUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvZnJhbWVzL3Njcm9sbCc7XG5pbXBvcnQgeyBBY3Rpb25CdXR0b25zU2VjdGlvbk9yZ2FuaXNtIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL29yZ2FuaXNtcy9hY3Rpb24tYnV0dG9ucy1zZWN0aW9uJztcbmltcG9ydCB7IEhlYWRpbmdPcmdhbmlzbSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvaGVhZGluZyc7XG5pbXBvcnQgeyBOZ0F0b21pY0Zvcm1TZWN0aW9uQnVpbGRlciB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy90ZW1wbGF0ZXMvZm9ybSc7XG5pbXBvcnQgeyBFbnRyYW5jZVRlbXBsYXRlU3RvcmUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvdGVtcGxhdGVzL2VudHJhbmNlJztcbmltcG9ydCB7IEFwcFNlcnZpY2UgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy9hcHAnO1xuaW1wb3J0IHsgaW5qZWN0QXV0aFN0YXRlIH0gZnJvbSAnQG5nLWF0b21pYy9jb21tb24vc2VydmljZXMvYXV0aCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgVGVybWluYWwgfSBmcm9tICdAeHRlcm0veHRlcm0nO1xuaW1wb3J0IHsgWHRlcm1PcmdhbmlzbSwgc3ZnVG9TaXhlbCB9IGZyb20gJ0B4eG1hY2hpbmEvY29tcG9uZW50cy9vcmdhbmlzbXMveHRlcm0nO1xuaW1wb3J0IHsgTmF2aWdhdG9yT3JnYW5pc21TdG9yZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvbmF2aWdhdG9yJztcbmltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgeyBXRUxDT01FX01FU1NBR0UsIEFCT1VUX01FU1NBR0UgfSBmcm9tICcuL2FnZW50LW1lc3NhZ2VzJztcblxuXG5lbnVtIEFjdGlvbklkIHtcbiAgU0lHTl9JTiA9ICdbQG5nLWF0b21pYy9jb21wb25lbnRzXSBTaWduIEluJyxcbiAgU0lHTl9JTl9XSVRIX0dPT0dMRSA9ICdbQG5nLWF0b21pYy9jb21wb25lbnRzXSBTaWduIEluIFdpdGggR29vZ2xlJyxcbiAgU0lHTl9JTl9XSVRIX1RXSVRURVIgPSAnW0BuZy1hdG9taWMvY29tcG9uZW50c10gU2lnbiBJbiBXaXRoIFR3aXR0ZXInLFxuICBTSUdOX09VVCA9ICdbQG5nLWF0b21pYy9jb21wb25lbnRzXSBTaWduIE91dCcsXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RlbXBsYXRlcy1hZ2VudCcsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQXV0b0xheW91dEZyYW1lLFxuICAgIENhcmRGcmFtZSxcbiAgICBTY3JvbGxGcmFtZSxcbiAgICBBY3Rpb25CdXR0b25zU2VjdGlvbk9yZ2FuaXNtLFxuICAgIEhlYWRpbmdPcmdhbmlzbSxcbiAgICBOZ0F0b21pY0Zvcm1TZWN0aW9uQnVpbGRlcixcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIFh0ZXJtT3JnYW5pc20sXG4gICAgTmF2aWdhdG9yT3JnYW5pc21TdG9yZSxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgPGZyYW1lcy1zY3JvbGwgY2xhc3M9XCJ0ZXJtaW5hbC13aW5kb3dcIj5cbiAgICA8b3JnYW5pc21zLW5hdmlnYXRvciB0b3AgaW5qZWN0YWJsZSBjbGFzcz1cInRlcm1pbmFsLWhlYWRlclwiXG4gICAgICBbc3RhcnRBY3Rpb25zXT1cIm5hdlN0YXJ0QWN0aW9ucygpXCJcbiAgICAgIFtlbmRBY3Rpb25zXT1cImVuZEFjdGlvbnMoKVwiXG4gICAgICAoYWN0aW9uKT1cIm9uTmF2QWN0aW9uKCRldmVudClcIlxuICAgID5NYWNoaW5hIEFnZW50PC9vcmdhbmlzbXMtbmF2aWdhdG9yPlxuXG4gICAgPG9yZ2FuaXNtcy14dGVybVxuICAgICAgY2xhc3M9XCJ0ZXJtaW5hbC1kaXNwbGF5XCJcbiAgICAgICh0ZXJtaW5hbFJlYWR5KT1cIm9uVGVybWluYWxSZWFkeSgkZXZlbnQpXCJcbiAgICAgIChnaXRodWJMaW5rQ2xpY2spPVwib25HaXRIdWJMaW5rQ2xpY2soJGV2ZW50KVwiXG4gICAgICAoY2xpY2spPVwiZm9jdXNJbnB1dCgpXCJcbiAgICAgICN4dGVybUNvbXBvbmVudFxuICAgIC8+XG5cbiAgICA8ZGl2IGJvdHRvbSBjbGFzcz1cImlucHV0LWFyZWFcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1saW5lXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtcHJlZml4XCI+Pjwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHRhcmVhLXdyYXBwZXJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFycm93LXByZWZpeFwiPj48L3NwYW4+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICNpbnB1dEZpZWxkXG4gICAgICAgICAgICAgIGNsYXNzPVwidGVybWluYWwtaW5wdXRcIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImN1cnJlbnRJbnB1dFwiXG4gICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cImhhbmRsZUVudGVyKCRldmVudClcIlxuICAgICAgICAgICAgICAoa2V5ZG93bi5hcnJvd1VwKT1cIm5hdmlnYXRlSGlzdG9yeSgkZXZlbnQsIC0xKVwiXG4gICAgICAgICAgICAgIChrZXlkb3duLmFycm93RG93bik9XCJuYXZpZ2F0ZUhpc3RvcnkoJGV2ZW50LCAxKVwiXG4gICAgICAgICAgICAgIChrZXlkb3duLmNvbnRyb2wuayk9XCJnZW5lcmF0ZUNvbW1hbmQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChrZXlkb3duLm1ldGEuayk9XCJnZW5lcmF0ZUNvbW1hbmQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChrZXlkb3duKT1cInByZXZlbnRQcmVmaXhEZWxldGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGlucHV0KT1cImhhbmRsZUlucHV0KCRldmVudClcIlxuICAgICAgICAgICAgICAoZm9jdXMpPVwiaGFuZGxlRm9jdXMoKVwiXG4gICAgICAgICAgICAgIChibHVyKT1cImhhbmRsZUJsdXIoKVwiXG4gICAgICAgICAgICAgIChrZXl1cCk9XCJ1cGRhdGVDdXJzb3JQb3NpdGlvbigpXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInVwZGF0ZUN1cnNvclBvc2l0aW9uKClcIlxuICAgICAgICAgICAgICAoc2Nyb2xsKT1cInVwZGF0ZUN1cnNvclBvc2l0aW9uKClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNQcm9jZXNzaW5nXCJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJUeXBlIGEgY29tbWFuZC4uLlwiXG4gICAgICAgICAgICAgIHJvd3M9XCIxXCJcbiAgICAgICAgICAgID48L3RleHRhcmVhPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJsb2NrLWN1cnNvclwiXG4gICAgICAgICAgICAgIFtjbGFzcy52aXNpYmxlXT1cInNob3dDdXJzb3JcIlxuICAgICAgICAgICAgICBbc3R5bGUubGVmdC5weF09XCJjdXJzb3JMZWZ0XCJcbiAgICAgICAgICAgICAgW3N0eWxlLnRvcC5weF09XCJjdXJzb3JUb3BcIlxuICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2ZyYW1lcy1zY3JvbGw+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2FnZW50LnRlbXBsYXRlLnNjc3MnXSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAndGVtcGxhdGUnXG4gIH0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbiAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICB7XG4gICAgICBkaXJlY3RpdmU6IEVudHJhbmNlVGVtcGxhdGVTdG9yZSxcbiAgICAgIGlucHV0czogW1xuICAgICAgICAnZm9ybScsXG4gICAgICAgICdhY3Rpb25zJyxcbiAgICAgICAgJ3RpdGxlJyxcbiAgICAgICAgJ2ZpZWxkTWFwJyxcbiAgICAgIF0sXG4gICAgfSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBZ2VudFRlbXBsYXRlIGV4dGVuZHMgTmdBdG9taWNDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgc3RhdGljIEFjdGlvbklkID0gQWN0aW9uSWQ7XG4gIHByb3RlY3RlZCBBY3Rpb25JZCA9IEFjdGlvbklkO1xuICBwcm90ZWN0ZWQgc3RvcmUgPSBpbmplY3QoRW50cmFuY2VUZW1wbGF0ZVN0b3JlKTtcbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIGFwcCA9IGluamVjdChBcHBTZXJ2aWNlKTtcblxuICAvLyDoqo3oqLznirbmhYvjga7jg4Hjgqfjg4Pjgq/vvIjpnZ7jg63jgrDjgqTjg7PmmYLjga/plonjgZjjgovjg5zjgr/jg7PjgpLpnZ7ooajnpLrvvIlcbiAgcHJpdmF0ZSByZWFkb25seSBhdXRoU3RhdGUgPSBpbmplY3RBdXRoU3RhdGUoKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzTG9nZ2VkSW4gPSBjb21wdXRlZCgoKSA9PiAhIXRoaXMuYXV0aFN0YXRlKCkpO1xuXG4gIHJlYWRvbmx5IGVuZEFjdGlvbnMgPSBpbnB1dDxhbnlbXT4oW10pO1xuXG4gIHByb3RlY3RlZCBuYXZTdGFydEFjdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKCF0aGlzLmlzTG9nZ2VkSW4oKSkgcmV0dXJuIFtdO1xuICAgIHJldHVybiBbeyBpZDogJ2Nsb3NlLXNpZGUtYXBwJywgaWNvbjogJ2Nsb3NlJywgbmFtZTogJ+mWieOBmOOCiycgfV07XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHh0ZXJtQ29tcG9uZW50ID0gdmlld0NoaWxkPFh0ZXJtT3JnYW5pc20+KCd4dGVybUNvbXBvbmVudCcpO1xuICByZWFkb25seSBpbnB1dEZpZWxkID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4+KCdpbnB1dEZpZWxkJyk7XG5cbiAgcHJvdGVjdGVkIHN0YXR1c1RleHQgPSAnUmVhZHknO1xuICBwcm90ZWN0ZWQgaXNQcm9jZXNzaW5nID0gZmFsc2U7XG4gIHByb3RlY3RlZCBzaG93Q3Vyc29yID0gZmFsc2U7XG4gIHByb3RlY3RlZCBjdXJzb3JMZWZ0ID0gNjA7XG4gIHByb3RlY3RlZCBjdXJzb3JUb3AgPSAxMjtcblxuICAvLyB4dGVybemWoumAo1xuICBwcml2YXRlIHRlcm1pbmFsITogVGVybWluYWw7XG4gIHByaXZhdGUgY29tbWFuZEhpc3Rvcnk6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgaGlzdG9yeUluZGV4ID0gLTE7XG4gIFxuICAvLyDlhaXlipvnrqHnkIZcbiAgcHJvdGVjdGVkIGN1cnJlbnRJbnB1dCA9ICcnO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvLyDlhaXlipvjg5XjgqPjg7zjg6vjg4njgavjg5Xjgqnjg7zjgqvjgrlcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IHRleHRhcmVhID0gdGhpcy5pbnB1dEZpZWxkKCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBpZiAodGV4dGFyZWEpIHtcbiAgICAgICAgdGV4dGFyZWEuZm9jdXMoKTtcbiAgICAgICAgLy8g5Yid5pyf6auY44GV44KS6YGp5YiH44Gr6Kit5a6aXG4gICAgICAgIHRoaXMuYWRqdXN0VGV4dGFyZWFIZWlnaHQoKTtcbiAgICAgIH1cbiAgICB9LCAxMDApO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gIG9uV2luZG93UmVzaXplKCkge1xuICAgIC8vIOOCpuOCo+ODs+ODieOCpuODquOCteOCpOOCuuaZguOBq+OCv+ODvOODn+ODiuODq+OCkuODleOCo+ODg+ODiFxuICAgIHRoaXMueHRlcm1Db21wb25lbnQoKT8uZml0KCk7XG4gIH1cblxuICBvblRlcm1pbmFsUmVhZHkodGVybWluYWw6IFRlcm1pbmFsKSB7XG4gICAgdGhpcy50ZXJtaW5hbCA9IHRlcm1pbmFsO1xuXG4gICAgLy8g5Yid5pyf5YyW5pmC44Gr44K/44O844Of44OK44Or44KS44Kz44Oz44OG44OK44K144Kk44K644Gr44OV44Kj44OD44OIXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnh0ZXJtQ29tcG9uZW50KCk/LmZpdCgpO1xuICAgIH0sIDUwKTtcblxuICAgIC8vIOWIneacn+ODoeODg+OCu+ODvOOCuOOBruihqOekulxuICAgIHRoaXMuc2hvd1dlbGNvbWVNZXNzYWdlKCk7XG5cbiAgICAvLyDliJ3lm57jg63jg7zjg4nmmYLjga/mnIDkuIrpg6jjgavjgrnjgq/jg63jg7zjg6vvvIjjgqLjgrnjgq3jg7zjgqLjg7zjg4jjgYvjgonopovjgYjjgovjgojjgYbjgavvvIlcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudGVybWluYWwuc2Nyb2xsVG9Ub3AoKTtcbiAgICB9LCAxMDApO1xuXG4gICAgLy8g5YWl5Yqb44OV44Kj44O844Or44OJ44Gr44OV44Kp44O844Kr44K544Go6auY44GV6Kq/5pW0XG4gICAgY29uc3QgdGV4dGFyZWEgPSB0aGlzLmlucHV0RmllbGQoKT8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAodGV4dGFyZWEpIHtcbiAgICAgIHRleHRhcmVhLmZvY3VzKCk7XG4gICAgICB0aGlzLmFkanVzdFRleHRhcmVhSGVpZ2h0KCk7XG4gICAgfVxuICB9XG5cbiAgb25HaXRIdWJMaW5rQ2xpY2soaXNzdWVOdW1iZXI6IG51bWJlcikge1xuICAgIGNvbnN0IHVybCA9IGBodHRwczovL2dpdGh1Yi5jb20vbm9udGFuZ2VudC94X3hfbWFjaGluYS9pc3N1ZXMvJHtpc3N1ZU51bWJlcn1gO1xuICAgIHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzaG93V2VsY29tZU1lc3NhZ2UoKSB7XG4gICAgdGhpcy50ZXJtaW5hbC53cml0ZWxuKCcnKTtcblxuICAgIC8vIGFzc2V0c+OBi+OCiVNWR+OCkuiqreOBv+i+vOOCk+OBp1NJWEVM44OV44Kp44O844Oe44OD44OI44Gn6KGo56S6XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJy9hc3NldHMvbWFjaGluYS1hc2NpaS1hcnQuc3ZnJyk7XG4gICAgICBjb25zdCBzdmdTdHJpbmcgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG4gICAgICBjb25zdCBzaXhlbERhdGEgPSBhd2FpdCBzdmdUb1NpeGVsKHN2Z1N0cmluZywgeyB3aWR0aDogNDAwLCBoZWlnaHQ6IDEzMCB9KTtcbiAgICAgIHRoaXMudGVybWluYWwud3JpdGUoc2l4ZWxEYXRhKTtcbiAgICAgIHRoaXMudGVybWluYWwud3JpdGVsbignJyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUud2FybignU0lYRUwgbG9nbyBkaXNwbGF5IGZhaWxlZCwgdXNpbmcgQVNDSUkgZmFsbGJhY2s6JywgZXJyb3IpO1xuICAgICAgLy8g44OV44Kp44O844Or44OQ44OD44KvOiBBU0NJSSBhcnTjgadYX1jjg63jgrTjgpLooajnpLpcbiAgICAgIHRoaXMudGVybWluYWwud3JpdGVsbihgJHtjaGFsay5jeWFuKCcgIOKWiOKWiOKVlyAg4paI4paI4pWXICAgIOKWiOKWiOKVlyAg4paI4paI4pWXJyl9YCk7XG4gICAgICB0aGlzLnRlcm1pbmFsLndyaXRlbG4oYCR7Y2hhbGsuY3lhbignICAg4pWa4paI4paI4pWX4paI4paI4pWU4pWdICAgIOKVmuKWiOKWiOKVl+KWiOKWiOKVlOKVnSAnKX1gKTtcbiAgICAgIHRoaXMudGVybWluYWwud3JpdGVsbihgJHtjaGFsay5jeWFuKCcgICAg4pWa4paI4paI4paI4pWU4pWdICAgICAg4pWa4paI4paI4paI4pWU4pWdICAnKX1gKTtcbiAgICAgIHRoaXMudGVybWluYWwud3JpdGVsbihgJHtjaGFsay5jeWFuKCcgICAg4paI4paI4pWU4paI4paI4pWXICAgICAg4paI4paI4pWU4paI4paI4pWXICAnKX1gKTtcbiAgICAgIHRoaXMudGVybWluYWwud3JpdGVsbihgJHtjaGFsay5jeWFuKCcgICDilojilojilZTilZ0g4paI4paI4pWXICAgIOKWiOKWiOKVlOKVnSDilojilojilZcgJyl9YCk7XG4gICAgICB0aGlzLnRlcm1pbmFsLndyaXRlbG4oYCR7Y2hhbGsuY3lhbignICAg4pWa4pWQ4pWdICDilZrilZDilZ0gICAg4pWa4pWQ4pWdICDilZrilZDilZ0gJyl9YCk7XG4gICAgfVxuICAgIHRoaXMudGVybWluYWwud3JpdGVsbignJyk7XG5cbiAgICAvLyDjgqbjgqfjg6vjgqvjg6Djg6Hjg4Pjgrvjg7zjgrjjgpLooajnpLpcbiAgICBXRUxDT01FX01FU1NBR0Uuc3BsaXQoJ1xcbicpLmZvckVhY2gobGluZSA9PiB0aGlzLnRlcm1pbmFsLndyaXRlbG4obGluZSkpO1xuXG4gICAgdGhpcy50ZXJtaW5hbC53cml0ZWxuKCcnKTtcbiAgICB0aGlzLnRlcm1pbmFsLndyaXRlbG4oYCR7Y2hhbGsuY3lhbign4pePIFR5cGUgXFx4MWJbMTszNm1sb2dpblxceDFiWzE7MzNtIHRvIHNpZ24gaW4gd2l0aCBHb29nbGVcXHgxYlswbScpfWApO1xuICAgIHRoaXMudGVybWluYWwud3JpdGVsbihgJHtjaGFsay5jeWFuKCfil48gVHlwZSBcXHgxYlsxOzM2bWhlbHBcXHgxYlsxOzMzbSBmb3IgbW9yZSBjb21tYW5kc1xceDFiWzBtJyl9YCk7XG4gICAgdGhpcy50ZXJtaW5hbC53cml0ZWxuKCcnKTtcblxuICAgIC8vIOODl+ODreODs+ODl+ODiOihqOekulxuICAgIHRoaXMuc2hvd1Byb21wdCgpO1xuICB9XG5cblxuICBwcml2YXRlIHNob3dQcm9tcHQoKSB7XG4gICAgLy8g44OX44Ot44Oz44OX44OI44GvSFRNTOWBtOOBruWFpeWKm+ODleOCo+ODvOODq+ODieOBp+ihqOekuuOBmeOCi+OBn+OCgeS4jeimgVxuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzQ29tbWFuZChjb21tYW5kOiBzdHJpbmcpIHtcbiAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IHRydWU7XG4gICAgdGhpcy5zdGF0dXNUZXh0ID0gJ1Byb2Nlc3NpbmcuLi4nO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgLy8g44Ot44Kw44Kk44Oz44Kz44Oe44Oz44OJXG4gICAgaWYgKGNvbW1hbmQgPT09ICdsb2dpbicpIHtcbiAgICAgIHRoaXMudGVybWluYWwud3JpdGVsbignXFx4MWJbMTszMm3il48gSW5pdGlhdGluZyBHb29nbGUgYXV0aGVudGljYXRpb24uLi5cXHgxYlswbScpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2goeyBpZDogQWN0aW9uSWQuU0lHTl9JTl9XSVRIX0dPT0dMRSB9KTtcbiAgICAgICAgdGhpcy5jb21wbGV0ZVByb2Nlc3NpbmcoKTtcbiAgICAgIH0sIDMwMCk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGNvbW1hbmQuc3RhcnRzV2l0aCgnYXV0aCcpKSB7XG4gICAgICBpZiAoY29tbWFuZC5pbmNsdWRlcygnZ29vZ2xlJykpIHtcbiAgICAgICAgdGhpcy50ZXJtaW5hbC53cml0ZWxuKCdcXHgxYlsxOzMybeKXjyBJbml0aWF0aW5nIEdvb2dsZSBhdXRoZW50aWNhdGlvbi4uLlxceDFiWzBtJyk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2goeyBpZDogQWN0aW9uSWQuU0lHTl9JTl9XSVRIX0dPT0dMRSB9KTtcbiAgICAgICAgICB0aGlzLmNvbXBsZXRlUHJvY2Vzc2luZygpO1xuICAgICAgICB9LCAzMDApO1xuICAgICAgfSBlbHNlIGlmIChjb21tYW5kLmluY2x1ZGVzKCd0d2l0dGVyJykpIHtcbiAgICAgICAgdGhpcy50ZXJtaW5hbC53cml0ZWxuKCdcXHgxYlsxOzMybeKXjyBJbml0aWF0aW5nIFR3aXR0ZXIgYXV0aGVudGljYXRpb24uLi5cXHgxYlswbScpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoKHsgaWQ6IEFjdGlvbklkLlNJR05fSU5fV0lUSF9UV0lUVEVSIH0pO1xuICAgICAgICAgIHRoaXMuY29tcGxldGVQcm9jZXNzaW5nKCk7XG4gICAgICAgIH0sIDMwMCk7XG4gICAgICB9IGVsc2UgaWYgKGNvbW1hbmQuaW5jbHVkZXMoJ2xvY2FsJykpIHtcbiAgICAgICAgdGhpcy50ZXJtaW5hbC53cml0ZWxuKCdcXHgxYlsxOzMybeKXjyBJbml0aWF0aW5nIGxvY2FsIGF1dGhlbnRpY2F0aW9uLi4uXFx4MWJbMG0nKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5kaXNwYXRjaCh7IGlkOiBBY3Rpb25JZC5TSUdOX0lOIH0pO1xuICAgICAgICAgIHRoaXMuY29tcGxldGVQcm9jZXNzaW5nKCk7XG4gICAgICAgIH0sIDMwMCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnRlcm1pbmFsLndyaXRlbG4oJ1xceDFiWzE7MzJt4pePIEF2YWlsYWJsZSBhdXRoZW50aWNhdGlvbiBtZXRob2RzOlxceDFiWzBtJyk7XG4gICAgICAgIHRoaXMudGVybWluYWwud3JpdGVsbignICAtIGF1dGggLS1wcm92aWRlcj1nb29nbGUnKTtcbiAgICAgICAgdGhpcy50ZXJtaW5hbC53cml0ZWxuKCcgIC0gYXV0aCAtLXByb3ZpZGVyPXR3aXR0ZXInKTtcbiAgICAgICAgdGhpcy50ZXJtaW5hbC53cml0ZWxuKCcgIC0gYXV0aCAtLXByb3ZpZGVyPWxvY2FsJyk7XG4gICAgICAgIHRoaXMuY29tcGxldGVQcm9jZXNzaW5nKCk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIOODreOCsOOCouOCpuODiOOCs+ODnuODs+ODiVxuICAgIGVsc2UgaWYgKGNvbW1hbmQgPT09ICdsb2dvdXQnIHx8IGNvbW1hbmQgPT09ICdzaWdub3V0Jykge1xuICAgICAgdGhpcy50ZXJtaW5hbC53cml0ZWxuKCdcXHgxYlsxOzMybeKXjyBTaWduaW5nIG91dC4uLlxceDFiWzBtJyk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5kaXNwYXRjaCh7IGlkOiBBY3Rpb25JZC5TSUdOX09VVCB9KTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy50ZXJtaW5hbC53cml0ZWxuKCdcXHgxYlsxOzMybeKXjyBZb3UgaGF2ZSBiZWVuIHNpZ25lZCBvdXQuXFx4MWJbMG0nKTtcbiAgICAgICAgICB0aGlzLnRlcm1pbmFsLndyaXRlbG4oJ1xceDFiWzE7MzNt4pePIFR5cGUgXCJsb2dpblwiIHRvIHNpZ24gaW4gYWdhaW4uXFx4MWJbMG0nKTtcbiAgICAgICAgICB0aGlzLmNvbXBsZXRlUHJvY2Vzc2luZygpO1xuICAgICAgICB9LCA1MDApO1xuICAgICAgfSwgMzAwKTtcbiAgICB9XG4gICAgLy8g44OY44Or44OX44Kz44Oe44Oz44OJXG4gICAgZWxzZSBpZiAoY29tbWFuZCA9PT0gJ2hlbHAnIHx8IGNvbW1hbmQgPT09ICc/Jykge1xuICAgICAgdGhpcy50ZXJtaW5hbC53cml0ZWxuKCdcXHgxYlsxOzMybeKXjyBBdmFpbGFibGUgY29tbWFuZHM6XFx4MWJbMG0nKTtcbiAgICAgIHRoaXMudGVybWluYWwud3JpdGVsbignICBcXHgxYlszNm1sb2dpblxceDFiWzBtICAgICAgICAgICAgLSBTaWduIGluIHdpdGggR29vZ2xlIChkZWZhdWx0KScpO1xuICAgICAgdGhpcy50ZXJtaW5hbC53cml0ZWxuKCcgIFxceDFiWzM2bWF1dGhcXHgxYlswbSAtLXByb3ZpZGVyPVxceDFiWzMzbWdvb2dsZVxceDFiWzBtICAgLSBTaWduIGluIHdpdGggR29vZ2xlJyk7XG4gICAgICB0aGlzLnRlcm1pbmFsLndyaXRlbG4oJyAgXFx4MWJbMzZtYXV0aFxceDFiWzBtIC0tcHJvdmlkZXI9XFx4MWJbMzNtdHdpdHRlclxceDFiWzBtICAtIFNpZ24gaW4gd2l0aCBUd2l0dGVyJyk7XG4gICAgICB0aGlzLnRlcm1pbmFsLndyaXRlbG4oJyAgXFx4MWJbMzZtYXV0aFxceDFiWzBtIC0tcHJvdmlkZXI9XFx4MWJbMzNtbG9jYWxcXHgxYlswbSAgICAtIFNpZ24gaW4gd2l0aCBlbWFpbC9wYXNzd29yZCcpO1xuICAgICAgdGhpcy50ZXJtaW5hbC53cml0ZWxuKCcgIFxceDFiWzM2bWxvZ291dFxceDFiWzBtIC8gXFx4MWJbMzZtc2lnbm91dFxceDFiWzBtIC0gU2lnbiBvdXQgZnJvbSB0aGUgYXBwbGljYXRpb24nKTtcbiAgICAgIHRoaXMudGVybWluYWwud3JpdGVsbignICBcXHgxYlszNm1hYm91dFxceDFiWzBtICAgICAgICAgICAgLSBTaG93IGNvbXBhbnkgaW5mb3JtYXRpb24nKTtcbiAgICAgIHRoaXMudGVybWluYWwud3JpdGVsbignICBcXHgxYlszNm1jbGVhclxceDFiWzBtICAgICAgICAgICAgLSBDbGVhciB0ZXJtaW5hbCcpO1xuICAgICAgdGhpcy50ZXJtaW5hbC53cml0ZWxuKCcgIFxceDFiWzM2bWhlbHBcXHgxYlswbSAvIFxceDFiWzM2bT9cXHgxYlswbSAgICAgICAgLSBTaG93IHRoaXMgaGVscCcpO1xuICAgICAgdGhpcy50ZXJtaW5hbC53cml0ZWxuKCcnKTtcbiAgICAgIHRoaXMudGVybWluYWwud3JpdGVsbignXFx4MWJbMTszM23il48gS2V5Ym9hcmQgc2hvcnRjdXRzOlxceDFiWzBtJyk7XG4gICAgICB0aGlzLnRlcm1pbmFsLndyaXRlbG4oJyAgXFx4MWJbMzZt4oyYS1xceDFiWzBtIC8gXFx4MWJbMzZtQ3RybCtLXFx4MWJbMG0gICAgLSBHZW5lcmF0ZSBjb21tYW5kIHN1Z2dlc3Rpb25zJyk7XG4gICAgICB0aGlzLnRlcm1pbmFsLndyaXRlbG4oJyAgXFx4MWJbMzZt4oaRXFx4MWJbMG0gLyBcXHgxYlszNm3ihpNcXHgxYlswbSAgICAgICAgICAgLSBOYXZpZ2F0ZSBjb21tYW5kIGhpc3RvcnknKTtcbiAgICAgIHRoaXMuY29tcGxldGVQcm9jZXNzaW5nKCk7XG4gICAgfVxuICAgIC8vIG1hY2hpbmHmg4XloLHjgrPjg57jg7Pjg4lcbiAgICBlbHNlIGlmIChjb21tYW5kID09PSAnYWJvdXQnKSB7XG4gICAgICBBQk9VVF9NRVNTQUdFLnNwbGl0KCdcXG4nKS5mb3JFYWNoKGxpbmUgPT4gdGhpcy50ZXJtaW5hbC53cml0ZWxuKGxpbmUpKTtcbiAgICAgIHRoaXMuY29tcGxldGVQcm9jZXNzaW5nKCk7XG4gICAgfVxuICAgIC8vIOOCr+ODquOCouOCs+ODnuODs+ODiVxuICAgIGVsc2UgaWYgKGNvbW1hbmQgPT09ICdjbGVhcicgfHwgY29tbWFuZCA9PT0gJ2NscycpIHtcbiAgICAgIHRoaXMudGVybWluYWwuY2xlYXIoKTtcbiAgICAgIHRoaXMudGVybWluYWwuc2Nyb2xsVG9Cb3R0b20oKTtcbiAgICAgIHRoaXMuY29tcGxldGVQcm9jZXNzaW5nKCk7XG4gICAgfVxuICAgIC8vIOS4jeaYjuOBquOCs+ODnuODs+ODiVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy50ZXJtaW5hbC53cml0ZWxuKGBcXHgxYlsxOzMxbeKXjyBDb21tYW5kIG5vdCBmb3VuZDogJHtjb21tYW5kfVxceDFiWzBtYCk7XG4gICAgICB0aGlzLnRlcm1pbmFsLndyaXRlbG4oJyAgVHlwZSBcImhlbHBcIiBmb3IgYXZhaWxhYmxlIGNvbW1hbmRzLicpO1xuICAgICAgdGhpcy5jb21wbGV0ZVByb2Nlc3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbXBsZXRlUHJvY2Vzc2luZygpIHtcbiAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IGZhbHNlO1xuICAgIHRoaXMuc3RhdHVzVGV4dCA9ICdSZWFkeSc7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy50ZXJtaW5hbC53cml0ZWxuKCcnKTtcbiAgICBcbiAgICAvLyDmnIDmlrDjga7lh7rlipvjgYzopovjgYjjgovjgojjgYbjgavjgrnjgq/jg63jg7zjg6tcbiAgICB0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCk7XG4gICAgXG4gICAgLy8g5YWl5Yqb44OV44Kj44O844Or44OJ44Gr44OV44Kp44O844Kr44K544KS5oi744GZXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmlucHV0RmllbGQoKT8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgaGFuZGxlRW50ZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAvLyBTaGlmdCtFbnRlcuOBvuOBn+OBr0N0cmwrRW50ZXLjga7loLTlkIjjga/mlLnooYzjgpLoqLHlj69cbiAgICBpZiAoZXZlbnQuc2hpZnRLZXkgfHwgZXZlbnQuY3RybEtleSkge1xuICAgICAgcmV0dXJuOyAvLyDjg4fjg5Xjgqnjg6vjg4jli5XkvZzvvIjmlLnooYzvvInjgpLoqLHlj69cbiAgICB9XG5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IGFjdHVhbENvbW1hbmQgPSB0aGlzLmN1cnJlbnRJbnB1dC50cmltKCk7XG5cbiAgICBpZiAoYWN0dWFsQ29tbWFuZCkge1xuICAgICAgLy8g44Kz44Oe44Oz44OJ44KS44K/44O844Of44OK44Or44Gr6KGo56S677yI5pS56KGM44KS5ZCr44KA5aC05ZCI44Gv6YGp5YiH44Gr5Yem55CG77yJXG4gICAgICBjb25zdCBkaXNwbGF5Q29tbWFuZCA9IGFjdHVhbENvbW1hbmQuc3BsaXQoJ1xcbicpLm1hcChsaW5lID0+ICdcXHgxYlszMm0+IFxceDFiWzBtJyArIGxpbmUpLmpvaW4oJ1xcclxcbicpO1xuICAgICAgdGhpcy50ZXJtaW5hbC53cml0ZShkaXNwbGF5Q29tbWFuZCArICdcXHJcXG4nKTtcblxuICAgICAgLy8g5bGl5q2044Gr6L+95YqgXG4gICAgICB0aGlzLmNvbW1hbmRIaXN0b3J5LnB1c2goYWN0dWFsQ29tbWFuZCk7XG4gICAgICB0aGlzLmhpc3RvcnlJbmRleCA9IHRoaXMuY29tbWFuZEhpc3RvcnkubGVuZ3RoO1xuXG4gICAgICAvLyDjgrPjg57jg7Pjg4njgpLlh6bnkIZcbiAgICAgIHRoaXMucHJvY2Vzc0NvbW1hbmQoYWN0dWFsQ29tbWFuZCk7XG5cbiAgICAgIC8vIOWFpeWKm+OCkuWIneacn+eKtuaFi+OBq+ODquOCu+ODg+ODiFxuICAgICAgdGhpcy5jdXJyZW50SW5wdXQgPSAnJztcblxuICAgICAgLy8gdGV4dGFyZWHjga7pq5jjgZXjgpLjg6rjgrvjg4Pjg4hcbiAgICAgIGNvbnN0IHRleHRhcmVhID0gdGhpcy5pbnB1dEZpZWxkKCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBpZiAodGV4dGFyZWEpIHtcbiAgICAgICAgdGV4dGFyZWEuc3R5bGUuaGVpZ2h0ID0gJ2F1dG8nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBcbiAgbmF2aWdhdGVIaXN0b3J5KGV2ZW50OiBLZXlib2FyZEV2ZW50LCBkaXJlY3Rpb246IG51bWJlcikge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBpZiAoZGlyZWN0aW9uID09PSAtMSAmJiB0aGlzLmhpc3RvcnlJbmRleCA+IDApIHtcbiAgICAgIC8vIOS4iuefouWNsFxuICAgICAgdGhpcy5oaXN0b3J5SW5kZXgtLTtcbiAgICAgIHRoaXMuY3VycmVudElucHV0ID0gdGhpcy5jb21tYW5kSGlzdG9yeVt0aGlzLmhpc3RvcnlJbmRleF07XG4gICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09IDEpIHtcbiAgICAgIC8vIOS4i+efouWNsFxuICAgICAgaWYgKHRoaXMuaGlzdG9yeUluZGV4IDwgdGhpcy5jb21tYW5kSGlzdG9yeS5sZW5ndGggLSAxKSB7XG4gICAgICAgIHRoaXMuaGlzdG9yeUluZGV4Kys7XG4gICAgICAgIHRoaXMuY3VycmVudElucHV0ID0gdGhpcy5jb21tYW5kSGlzdG9yeVt0aGlzLmhpc3RvcnlJbmRleF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmhpc3RvcnlJbmRleCA9IHRoaXMuY29tbWFuZEhpc3RvcnkubGVuZ3RoO1xuICAgICAgICB0aGlzLmN1cnJlbnRJbnB1dCA9ICcnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBcbiAgZ2VuZXJhdGVDb21tYW5kKGV2ZW50PzogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgXG4gICAgdGhpcy50ZXJtaW5hbC53cml0ZWxuKCcnKTtcbiAgICB0aGlzLnRlcm1pbmFsLndyaXRlbG4oJ1xceDFiWzE7MzJt4pePIEdlbmVyYXRpbmcgY29tbWFuZCBzdWdnZXN0aW9ucy4uLlxceDFiWzBtJyk7XG4gICAgXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnRlcm1pbmFsLndyaXRlbG4oJ1xceDFiWzE7MzNt4pePIFN1Z2dlc3RlZCBjb21tYW5kczpcXHgxYlswbScpO1xuICAgICAgdGhpcy50ZXJtaW5hbC53cml0ZWxuKCcgIDEuIFxceDFiWzM2bWF1dGggLS1wcm92aWRlcj1nb29nbGVcXHgxYlswbScpO1xuICAgICAgdGhpcy50ZXJtaW5hbC53cml0ZWxuKCcgIDIuIFxceDFiWzM2bWxvZ2luXFx4MWJbMG0nKTtcbiAgICAgIHRoaXMudGVybWluYWwud3JpdGVsbignICAzLiBcXHgxYlszNm1oZWxwXFx4MWJbMG0nKTtcbiAgICAgIHRoaXMudGVybWluYWwud3JpdGVsbignJyk7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9LCA1MDApO1xuICB9XG5cbiAgb25OYXZBY3Rpb24oYWN0aW9uOiBhbnkpIHtcbiAgICBpZiAoYWN0aW9uLmlkID09PSAnY2xvc2Utc2lkZS1hcHAnKSB7XG4gICAgICB0aGlzLmFwcC5zaWRlQXBwLmNvbGxhcHNlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGlzcGF0Y2goYWN0aW9uKTtcbiAgfVxuXG4gIC8vIOWFpeWKm+ODleOCo+ODvOODq+ODieOBq+ODleOCqeODvOOCq+OCueOCkuioreWumlxuICBmb2N1c0lucHV0KCkge1xuICAgIHRoaXMuaW5wdXRGaWVsZCgpPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICB9XG5cbiAgLy8gdGV4dGFyZWHjga7pq5jjgZXjgpLlhoXlrrnjgavlkIjjgo/jgZvjgaboqr/mlbRcbiAgYWRqdXN0VGV4dGFyZWFIZWlnaHQoKSB7XG4gICAgY29uc3QgdGV4dGFyZWEgPSB0aGlzLmlucHV0RmllbGQoKT8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAodGV4dGFyZWEpIHtcbiAgICAgIC8vIOS4gOaXpumrmOOBleOCkuODquOCu+ODg+ODiFxuICAgICAgdGV4dGFyZWEuc3R5bGUuaGVpZ2h0ID0gJzIwcHgnO1xuICAgICAgLy8gc2Nyb2xsSGVpZ2h044KS56K66KqN44GX44CB5a6f6Zqb44Gr5b+F6KaB44Gq6auY44GV44KS6Kit5a6aXG4gICAgICBjb25zdCBzY3JvbGxIZWlnaHQgPSB0ZXh0YXJlYS5zY3JvbGxIZWlnaHQ7XG4gICAgICAvLyDjg5Hjg4fjgqPjg7PjgrDjgpLogIPmha7jgZfjgZ/mnIDlsI/pq5jjgZVcbiAgICAgIGNvbnN0IG1pbkhlaWdodCA9IDQ0OyAvLyBwYWRkaW5nOiAxMnB4ICogMiArIGxpbmUtaGVpZ2h0OiAyMHB4XG4gICAgICB0ZXh0YXJlYS5zdHlsZS5oZWlnaHQgPSBNYXRoLm1heChtaW5IZWlnaHQsIHNjcm9sbEhlaWdodCkgKyAncHgnO1xuICAgIH1cbiAgfVxuXG4gIC8vIOOCreODvOODgOOCpuODs+OCpOODmeODs+ODiOOBruODj+ODs+ODieODqe+8iOODl+ODrOODleOCo+ODg+OCr+OCueWJiumZpOmYsuatouOBr+S4jeimgeOBq+OBquOBo+OBn+OBn+OCgeODjuODvOOCquODmuODrOODvOOCt+ODp+ODs++8iVxuICBwcmV2ZW50UHJlZml4RGVsZXRpb24oX2V2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgLy8gTm8tb3A6IHByZWZpeCBwcm90ZWN0aW9uIG5vIGxvbmdlciBuZWVkZWRcbiAgfVxuXG4gIC8vIOWFpeWKm+aZguOBruWHpueQhlxuICBoYW5kbGVJbnB1dChldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCB0ZXh0YXJlYSA9IGV2ZW50LnRhcmdldCBhcyBIVE1MVGV4dEFyZWFFbGVtZW50O1xuXG4gICAgLy8g6auY44GV6Kq/5pW077yI5pS56KGM44GM5ZCr44G+44KM44Gm44GE44KL5aC05ZCI44Gu44G/77yJXG4gICAgaWYgKHRoaXMuY3VycmVudElucHV0LmluY2x1ZGVzKCdcXG4nKSkge1xuICAgICAgdGhpcy5hZGp1c3RUZXh0YXJlYUhlaWdodCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyAx6KGM44Gu5aC05ZCI44Gv5Zu65a6a6auY44GVXG4gICAgICB0ZXh0YXJlYS5zdHlsZS5oZWlnaHQgPSAnNDRweCc7XG4gICAgfVxuXG4gICAgLy8g44Kr44O844K944Or5L2N572u44KS5pu05pawXG4gICAgdGhpcy51cGRhdGVDdXJzb3JQb3NpdGlvbigpO1xuICB9XG5cbiAgLy8g44OV44Kp44O844Kr44K55pmC44Gu5Yem55CGXG4gIGhhbmRsZUZvY3VzKCkge1xuICAgIHRoaXMuc2hvd0N1cnNvciA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVDdXJzb3JQb3NpdGlvbigpO1xuICB9XG5cbiAgLy8g44OW44Op44O85pmC44Gu5Yem55CGXG4gIGhhbmRsZUJsdXIoKSB7XG4gICAgdGhpcy5zaG93Q3Vyc29yID0gZmFsc2U7XG4gIH1cblxuICAvLyDjgqvjg7zjgr3jg6vkvY3nva7jga7mm7TmlrBcbiAgdXBkYXRlQ3Vyc29yUG9zaXRpb24oKSB7XG4gICAgY29uc3QgdGV4dGFyZWEgPSB0aGlzLmlucHV0RmllbGQoKT8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIXRleHRhcmVhKSByZXR1cm47XG4gICAgXG4gICAgY29uc3QgY3Vyc29yUG9zID0gdGV4dGFyZWEuc2VsZWN0aW9uU3RhcnQ7XG4gICAgY29uc3QgdGV4dEJlZm9yZUN1cnNvciA9IHRoaXMuY3VycmVudElucHV0LnN1YnN0cmluZygwLCBjdXJzb3JQb3MpO1xuICAgIFxuICAgIC8vIOaUueihjOOBp+WIhuWJslxuICAgIGNvbnN0IGxpbmVzID0gdGV4dEJlZm9yZUN1cnNvci5zcGxpdCgnXFxuJyk7XG4gICAgY29uc3QgY3VycmVudExpbmVJbmRleCA9IGxpbmVzLmxlbmd0aCAtIDE7XG4gICAgY29uc3QgY3VycmVudExpbmVUZXh0ID0gbGluZXNbY3VycmVudExpbmVJbmRleF07XG4gICAgXG4gICAgLy8g5Luu44GuY2FudmFz44KS5L2/44Gj44Gm54++5Zyo44Gu6KGM44Gu44OG44Kt44K544OI5bmF44KS6KiI566XXG4gICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgY29uc3QgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgIGlmIChjb250ZXh0KSB7XG4gICAgICBjb250ZXh0LmZvbnQgPSAnMTRweCBcIlNGIE1vbm9cIiwgTW9uYWNvLCBtb25vc3BhY2UnO1xuICAgICAgY29uc3QgdGV4dFdpZHRoID0gY29udGV4dC5tZWFzdXJlVGV4dChjdXJyZW50TGluZVRleHQpLndpZHRoO1xuICAgICAgXG4gICAgICAvLyDjgqvjg7zjgr3jg6vkvY3nva7jgpLoqK3lrprvvIjjg5Hjg4fjgqPjg7PjgrDliIbjgpLogIPmha7vvIlcbiAgICAgIHRoaXMuY3Vyc29yTGVmdCA9IDggKyB0ZXh0V2lkdGg7IC8vIDhweCDjga8gdGV4dGFyZWEg44Gu5bem44OR44OH44Kj44Oz44KwXG4gICAgICBcbiAgICAgIC8vIOWeguebtOS9jee9ruOCkuiqv+aVtO+8iOihjOaVsOOBq+WfuuOBpeOBhOOBpuOAgeOCueOCr+ODreODvOODq+S9jee9ruOCguiAg+aFru+8iVxuICAgICAgY29uc3Qgc2Nyb2xsVG9wID0gdGV4dGFyZWEuc2Nyb2xsVG9wO1xuICAgICAgdGhpcy5jdXJzb3JUb3AgPSAxMiArIChjdXJyZW50TGluZUluZGV4ICogMjApIC0gc2Nyb2xsVG9wOyAvLyDjgrnjgq/jg63jg7zjg6vliIbjgpLlvJXjgY9cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVBZ2VudFRlbXBsYXRlKCk6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW1xuICAgIHByb3ZpZGVDb21wb25lbnQoRW50cmFuY2VUZW1wbGF0ZVN0b3JlLCAoKSA9PiBBZ2VudFRlbXBsYXRlKSxcbiAgXTtcbn0iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHhtYWNoaW5hLWNvbXBvbmVudHMtdGVtcGxhdGVzLWFnZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQHh4bWFjaGluYS9jb21wb25lbnRzL3NyYy9saWIvdGVtcGxhdGVzL2FnZW50L3h4bWFjaGluYS1jb21wb25lbnRzLXRlbXBsYXRlcy1hZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"xxmachina-components-templates-agent.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/templates/agent/agent-messages.ts","../../../../../packages/@xxmachina/components/src/lib/templates/agent/agent.template.ts","../../../../../packages/@xxmachina/components/src/lib/templates/agent/xxmachina-components-templates-agent.ts"],"sourcesContent":["import chalk from 'chalk';\n\n/**\n * コアメッセージ(共通部分)\n */\nconst CORE_MESSAGE = `${chalk.cyan('● What is Plan X?')}\n Plan X is a modern WebRTC-based session manager, an alternative to SSH and Tmux.\n Connect any machine worldwide with a single command and deploy AI agents anywhere.\n\n${chalk.cyan(`● Vision: ${chalk.bold.yellow('\"The Planet is the Computer\"')}`)}\n Building a planetary-scale operating system\n AI agents autonomously optimize distributed systems\n\n${chalk.cyan('● Agentic Shell')}\n Unified interface to distributed resources\n Express your intent in natural language, AI plans the execution\n\n${chalk.cyan('● Meta-Kernel')}\n Distributed abstraction layer running on top of existing OSes (Linux/Mac/Win)\n Just as kernels abstract hardware, Plan X abstracts the network\n\n${chalk.cyan('● Autopoiesis')}\n Self-improving, self-sustaining, self-replicating living system\n Agents evolve themselves and spawn new agents`;\n\n/**\n * ウェルカムメッセージ(起動時に表示)\n */\nexport const WELCOME_MESSAGE = `${chalk.cyan(`● Welcome to ${chalk.bold.yellow('Plan X')}`)}\n\n${CORE_MESSAGE}\n\n${chalk.gray('powered by Plan X Agent LLC.')}\n`;\n\n/**\n * aboutコマンドのメッセージ\n */\nexport const ABOUT_MESSAGE = `${chalk.bold.cyan('● Plan X - OS for the LLM Era')}\n\n${CORE_MESSAGE}\n\n${chalk.cyan('● QTP/ATC Patterns')}\n Query-Transformer-Presenter: Retrieve information\n Action-Transformer-Command: Execute actions\n New interaction model replacing stdio\n\n${chalk.cyan('● Learn More')}\n Sign in to access more features\n\n${chalk.gray('powered by Plan X Agent LLC.')}`;\n","import { ChangeDetectionStrategy, Component, inject, ChangeDetectorRef, ElementRef, AfterViewInit, Provider, viewChild, computed, HostListener, input } from '@angular/core';\nimport { NgAtomicComponent, provideComponent } from '@ng-atomic/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { AutoLayoutFrame } from '@ng-atomic/components/frames/auto-layout';\nimport { CardFrame } from '@ng-atomic/components/frames/card';\nimport { ScrollFrame } from '@ng-atomic/components/frames/scroll';\nimport { ActionButtonsSectionOrganism } from '@ng-atomic/components/organisms/action-buttons-section';\nimport { HeadingOrganism } from '@ng-atomic/components/organisms/heading';\nimport { NgAtomicFormSectionBuilder } from '@ng-atomic/components/templates/form';\nimport { EntranceTemplateStore } from '@ng-atomic/components/templates/entrance';\nimport { AppService } from '@ng-atomic/common/services/app';\nimport { injectAuthState } from '@ng-atomic/common/services/auth';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { Terminal } from '@xterm/xterm';\nimport { XtermOrganism, svgToSixel } from '@xxmachina/components/organisms/xterm';\nimport { NavigatorOrganismStore } from '@ng-atomic/components/organisms/navigator';\nimport chalk from 'chalk';\nimport { WELCOME_MESSAGE, ABOUT_MESSAGE } from './agent-messages';\n\n\nenum ActionId {\n SIGN_IN = '[@ng-atomic/components] Sign In',\n SIGN_IN_WITH_GOOGLE = '[@ng-atomic/components] Sign In With Google',\n SIGN_IN_WITH_TWITTER = '[@ng-atomic/components] Sign In With Twitter',\n SIGN_OUT = '[@ng-atomic/components] Sign Out',\n}\n\n@Component({\n selector: 'templates-agent',\n imports: [\n FormsModule,\n AutoLayoutFrame,\n CardFrame,\n ScrollFrame,\n ActionButtonsSectionOrganism,\n HeadingOrganism,\n NgAtomicFormSectionBuilder,\n MatButtonModule,\n MatIconModule,\n MatTooltipModule,\n XtermOrganism,\n NavigatorOrganismStore\n],\n template: `\n <frames-scroll class=\"terminal-window\">\n <organisms-navigator top injectable class=\"terminal-header\"\n [startActions]=\"navStartActions()\"\n [endActions]=\"endActions()\"\n (action)=\"onNavAction($event)\"\n >Machina Agent</organisms-navigator>\n\n <organisms-xterm\n class=\"terminal-display\"\n (terminalReady)=\"onTerminalReady($event)\"\n (githubLinkClick)=\"onGitHubLinkClick($event)\"\n (click)=\"focusInput()\"\n #xtermComponent\n />\n\n <div bottom class=\"input-area\">\n <div class=\"input-line\">\n <span class=\"input-prefix\">></span>\n <div class=\"textarea-wrapper\">\n <span class=\"arrow-prefix\">></span>\n <div class=\"input-container\">\n <textarea\n #inputField\n class=\"terminal-input\"\n [(ngModel)]=\"currentInput\"\n (keydown.enter)=\"handleEnter($event)\"\n (keydown.arrowUp)=\"navigateHistory($event, -1)\"\n (keydown.arrowDown)=\"navigateHistory($event, 1)\"\n (keydown.control.k)=\"generateCommand($event)\"\n (keydown.meta.k)=\"generateCommand($event)\"\n (keydown)=\"preventPrefixDeletion($event)\"\n (input)=\"handleInput($event)\"\n (focus)=\"handleFocus()\"\n (blur)=\"handleBlur()\"\n (keyup)=\"updateCursorPosition()\"\n (click)=\"updateCursorPosition()\"\n (scroll)=\"updateCursorPosition()\"\n [disabled]=\"isProcessing\"\n placeholder=\"Type a command...\"\n rows=\"1\"\n ></textarea>\n <div class=\"block-cursor\"\n [class.visible]=\"showCursor\"\n [style.left.px]=\"cursorLeft\"\n [style.top.px]=\"cursorTop\"\n ></div>\n </div>\n </div>\n </div>\n </div>\n </frames-scroll>\n `,\n styleUrls: ['./agent.template.scss'],\n host: {\n class: 'template'\n },\n changeDetection: ChangeDetectionStrategy.Default,\n hostDirectives: [\n {\n directive: EntranceTemplateStore,\n inputs: [\n 'form',\n 'actions',\n 'title',\n 'fieldMap',\n ],\n },\n ]\n})\nexport class AgentTemplate extends NgAtomicComponent implements AfterViewInit {\n static ActionId = ActionId;\n protected ActionId = ActionId;\n protected store = inject(EntranceTemplateStore);\n private cdr = inject(ChangeDetectorRef);\n private app = inject(AppService);\n\n // 認証状態のチェック(非ログイン時は閉じるボタンを非表示)\n private readonly authState = injectAuthState();\n protected readonly isLoggedIn = computed(() => !!this.authState());\n\n readonly endActions = input<any[]>([]);\n\n protected navStartActions = computed(() => {\n if (!this.isLoggedIn()) return [];\n return [{ id: 'close-side-app', icon: 'close', name: '閉じる' }];\n });\n\n readonly xtermComponent = viewChild<XtermOrganism>('xtermComponent');\n readonly inputField = viewChild<ElementRef<HTMLTextAreaElement>>('inputField');\n\n protected statusText = 'Ready';\n protected isProcessing = false;\n protected showCursor = false;\n protected cursorLeft = 60;\n protected cursorTop = 12;\n\n // xterm関連\n private terminal!: Terminal;\n private commandHistory: string[] = [];\n private historyIndex = -1;\n \n // 入力管理\n protected currentInput = '';\n\n ngAfterViewInit() {\n // 入力フィールドにフォーカス\n setTimeout(() => {\n const textarea = this.inputField()?.nativeElement;\n if (textarea) {\n textarea.focus();\n // 初期高さを適切に設定\n this.adjustTextareaHeight();\n }\n }, 100);\n }\n\n @HostListener('window:resize')\n onWindowResize() {\n // ウィンドウリサイズ時にターミナルをフィット\n this.xtermComponent()?.fit();\n }\n\n onTerminalReady(terminal: Terminal) {\n this.terminal = terminal;\n\n // 初期化時にターミナルをコンテナサイズにフィット\n setTimeout(() => {\n this.xtermComponent()?.fit();\n }, 50);\n\n // 初期メッセージの表示\n this.showWelcomeMessage();\n\n // 初回ロード時は最上部にスクロール(アスキーアートから見えるように)\n setTimeout(() => {\n this.terminal.scrollToTop();\n }, 100);\n\n // 入力フィールドにフォーカスと高さ調整\n const textarea = this.inputField()?.nativeElement;\n if (textarea) {\n textarea.focus();\n this.adjustTextareaHeight();\n }\n }\n\n onGitHubLinkClick(issueNumber: number) {\n const url = `https://github.com/nontangent/x_x_machina/issues/${issueNumber}`;\n window.open(url, '_blank');\n }\n\n private async showWelcomeMessage() {\n this.terminal.writeln('');\n\n // assetsからSVGを読み込んでSIXELフォーマットで表示\n try {\n const response = await fetch('/assets/machina-ascii-art.svg');\n const svgString = await response.text();\n const sixelData = await svgToSixel(svgString, { width: 400, height: 130 });\n this.terminal.write(sixelData);\n this.terminal.writeln('');\n } catch (error) {\n console.warn('SIXEL logo display failed, using ASCII fallback:', error);\n // フォールバック: ASCII artでX_Xロゴを表示\n this.terminal.writeln(`${chalk.cyan(' ██╗ ██╗ ██╗ ██╗')}`);\n this.terminal.writeln(`${chalk.cyan(' ╚██╗██╔╝ ╚██╗██╔╝ ')}`);\n this.terminal.writeln(`${chalk.cyan(' ╚███╔╝ ╚███╔╝ ')}`);\n this.terminal.writeln(`${chalk.cyan(' ██╔██╗ ██╔██╗ ')}`);\n this.terminal.writeln(`${chalk.cyan(' ██╔╝ ██╗ ██╔╝ ██╗ ')}`);\n this.terminal.writeln(`${chalk.cyan(' ╚═╝ ╚═╝ ╚═╝ ╚═╝ ')}`);\n }\n this.terminal.writeln('');\n\n // ウェルカムメッセージを表示\n WELCOME_MESSAGE.split('\\n').forEach(line => this.terminal.writeln(line));\n\n this.terminal.writeln('');\n this.terminal.writeln(`${chalk.cyan('● Type \\x1b[1;36mlogin\\x1b[1;33m to sign in with Google\\x1b[0m')}`);\n this.terminal.writeln(`${chalk.cyan('● Type \\x1b[1;36mhelp\\x1b[1;33m for more commands\\x1b[0m')}`);\n this.terminal.writeln('');\n\n // プロンプト表示\n this.showPrompt();\n }\n\n\n private showPrompt() {\n // プロンプトはHTML側の入力フィールドで表示するため不要\n }\n\n private processCommand(command: string) {\n this.isProcessing = true;\n this.statusText = 'Processing...';\n this.cdr.markForCheck();\n\n // ログインコマンド\n if (command === 'login') {\n this.terminal.writeln('\\x1b[1;32m● Initiating Google authentication...\\x1b[0m');\n setTimeout(() => {\n this.dispatch({ id: ActionId.SIGN_IN_WITH_GOOGLE });\n this.completeProcessing();\n }, 300);\n }\n else if (command.startsWith('auth')) {\n if (command.includes('google')) {\n this.terminal.writeln('\\x1b[1;32m● Initiating Google authentication...\\x1b[0m');\n setTimeout(() => {\n this.dispatch({ id: ActionId.SIGN_IN_WITH_GOOGLE });\n this.completeProcessing();\n }, 300);\n } else if (command.includes('twitter')) {\n this.terminal.writeln('\\x1b[1;32m● Initiating Twitter authentication...\\x1b[0m');\n setTimeout(() => {\n this.dispatch({ id: ActionId.SIGN_IN_WITH_TWITTER });\n this.completeProcessing();\n }, 300);\n } else if (command.includes('local')) {\n this.terminal.writeln('\\x1b[1;32m● Initiating local authentication...\\x1b[0m');\n setTimeout(() => {\n this.dispatch({ id: ActionId.SIGN_IN });\n this.completeProcessing();\n }, 300);\n } else {\n this.terminal.writeln('\\x1b[1;32m● Available authentication methods:\\x1b[0m');\n this.terminal.writeln(' - auth --provider=google');\n this.terminal.writeln(' - auth --provider=twitter');\n this.terminal.writeln(' - auth --provider=local');\n this.completeProcessing();\n }\n }\n // ログアウトコマンド\n else if (command === 'logout' || command === 'signout') {\n this.terminal.writeln('\\x1b[1;32m● Signing out...\\x1b[0m');\n setTimeout(() => {\n this.dispatch({ id: ActionId.SIGN_OUT });\n setTimeout(() => {\n this.terminal.writeln('\\x1b[1;32m● You have been signed out.\\x1b[0m');\n this.terminal.writeln('\\x1b[1;33m● Type \"login\" to sign in again.\\x1b[0m');\n this.completeProcessing();\n }, 500);\n }, 300);\n }\n // ヘルプコマンド\n else if (command === 'help' || command === '?') {\n this.terminal.writeln('\\x1b[1;32m● Available commands:\\x1b[0m');\n this.terminal.writeln(' \\x1b[36mlogin\\x1b[0m - Sign in with Google (default)');\n this.terminal.writeln(' \\x1b[36mauth\\x1b[0m --provider=\\x1b[33mgoogle\\x1b[0m - Sign in with Google');\n this.terminal.writeln(' \\x1b[36mauth\\x1b[0m --provider=\\x1b[33mtwitter\\x1b[0m - Sign in with Twitter');\n this.terminal.writeln(' \\x1b[36mauth\\x1b[0m --provider=\\x1b[33mlocal\\x1b[0m - Sign in with email/password');\n this.terminal.writeln(' \\x1b[36mlogout\\x1b[0m / \\x1b[36msignout\\x1b[0m - Sign out from the application');\n this.terminal.writeln(' \\x1b[36mabout\\x1b[0m - Show company information');\n this.terminal.writeln(' \\x1b[36mclear\\x1b[0m - Clear terminal');\n this.terminal.writeln(' \\x1b[36mhelp\\x1b[0m / \\x1b[36m?\\x1b[0m - Show this help');\n this.terminal.writeln('');\n this.terminal.writeln('\\x1b[1;33m● Keyboard shortcuts:\\x1b[0m');\n this.terminal.writeln(' \\x1b[36m⌘K\\x1b[0m / \\x1b[36mCtrl+K\\x1b[0m - Generate command suggestions');\n this.terminal.writeln(' \\x1b[36m↑\\x1b[0m / \\x1b[36m↓\\x1b[0m - Navigate command history');\n this.completeProcessing();\n }\n // machina情報コマンド\n else if (command === 'about') {\n ABOUT_MESSAGE.split('\\n').forEach(line => this.terminal.writeln(line));\n this.completeProcessing();\n }\n // クリアコマンド\n else if (command === 'clear' || command === 'cls') {\n this.terminal.clear();\n this.terminal.scrollToBottom();\n this.completeProcessing();\n }\n // 不明なコマンド\n else {\n this.terminal.writeln(`\\x1b[1;31m● Command not found: ${command}\\x1b[0m`);\n this.terminal.writeln(' Type \"help\" for available commands.');\n this.completeProcessing();\n }\n }\n\n private completeProcessing() {\n this.isProcessing = false;\n this.statusText = 'Ready';\n this.cdr.markForCheck();\n this.terminal.writeln('');\n \n // 最新の出力が見えるようにスクロール\n this.terminal.scrollToBottom();\n \n // 入力フィールドにフォーカスを戻す\n setTimeout(() => {\n this.inputField()?.nativeElement?.focus();\n }, 100);\n }\n\n handleEnter(event: KeyboardEvent) {\n // Shift+EnterまたはCtrl+Enterの場合は改行を許可\n if (event.shiftKey || event.ctrlKey) {\n return; // デフォルト動作(改行)を許可\n }\n\n event.preventDefault();\n const actualCommand = this.currentInput.trim();\n\n if (actualCommand) {\n // コマンドをターミナルに表示(改行を含む場合は適切に処理)\n const displayCommand = actualCommand.split('\\n').map(line => '\\x1b[32m> \\x1b[0m' + line).join('\\r\\n');\n this.terminal.write(displayCommand + '\\r\\n');\n\n // 履歴に追加\n this.commandHistory.push(actualCommand);\n this.historyIndex = this.commandHistory.length;\n\n // コマンドを処理\n this.processCommand(actualCommand);\n\n // 入力を初期状態にリセット\n this.currentInput = '';\n\n // textareaの高さをリセット\n const textarea = this.inputField()?.nativeElement;\n if (textarea) {\n textarea.style.height = 'auto';\n }\n }\n }\n \n navigateHistory(event: KeyboardEvent, direction: number) {\n event.preventDefault();\n\n if (direction === -1 && this.historyIndex > 0) {\n // 上矢印\n this.historyIndex--;\n this.currentInput = this.commandHistory[this.historyIndex];\n } else if (direction === 1) {\n // 下矢印\n if (this.historyIndex < this.commandHistory.length - 1) {\n this.historyIndex++;\n this.currentInput = this.commandHistory[this.historyIndex];\n } else {\n this.historyIndex = this.commandHistory.length;\n this.currentInput = '';\n }\n }\n }\n \n generateCommand(event?: KeyboardEvent) {\n if (event) {\n event.preventDefault();\n }\n \n this.terminal.writeln('');\n this.terminal.writeln('\\x1b[1;32m● Generating command suggestions...\\x1b[0m');\n \n setTimeout(() => {\n this.terminal.writeln('\\x1b[1;33m● Suggested commands:\\x1b[0m');\n this.terminal.writeln(' 1. \\x1b[36mauth --provider=google\\x1b[0m');\n this.terminal.writeln(' 2. \\x1b[36mlogin\\x1b[0m');\n this.terminal.writeln(' 3. \\x1b[36mhelp\\x1b[0m');\n this.terminal.writeln('');\n this.cdr.markForCheck();\n }, 500);\n }\n\n onNavAction(action: any) {\n if (action.id === 'close-side-app') {\n this.app.sideApp.collapse();\n return;\n }\n this.dispatch(action);\n }\n\n // 入力フィールドにフォーカスを設定\n focusInput() {\n this.inputField()?.nativeElement?.focus();\n }\n\n // textareaの高さを内容に合わせて調整\n adjustTextareaHeight() {\n const textarea = this.inputField()?.nativeElement;\n if (textarea) {\n // 一旦高さをリセット\n textarea.style.height = '20px';\n // scrollHeightを確認し、実際に必要な高さを設定\n const scrollHeight = textarea.scrollHeight;\n // パディングを考慮した最小高さ\n const minHeight = 44; // padding: 12px * 2 + line-height: 20px\n textarea.style.height = Math.max(minHeight, scrollHeight) + 'px';\n }\n }\n\n // キーダウンイベントのハンドラ(プレフィックス削除防止は不要になったためノーオペレーション)\n preventPrefixDeletion(_event: KeyboardEvent) {\n // No-op: prefix protection no longer needed\n }\n\n // 入力時の処理\n handleInput(event: Event) {\n const textarea = event.target as HTMLTextAreaElement;\n\n // 高さ調整(改行が含まれている場合のみ)\n if (this.currentInput.includes('\\n')) {\n this.adjustTextareaHeight();\n } else {\n // 1行の場合は固定高さ\n textarea.style.height = '44px';\n }\n\n // カーソル位置を更新\n this.updateCursorPosition();\n }\n\n // フォーカス時の処理\n handleFocus() {\n this.showCursor = true;\n this.updateCursorPosition();\n }\n\n // ブラー時の処理\n handleBlur() {\n this.showCursor = false;\n }\n\n // カーソル位置の更新\n updateCursorPosition() {\n const textarea = this.inputField()?.nativeElement;\n if (!textarea) return;\n \n const cursorPos = textarea.selectionStart;\n const textBeforeCursor = this.currentInput.substring(0, cursorPos);\n \n // 改行で分割\n const lines = textBeforeCursor.split('\\n');\n const currentLineIndex = lines.length - 1;\n const currentLineText = lines[currentLineIndex];\n \n // 仮のcanvasを使って現在の行のテキスト幅を計算\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n if (context) {\n context.font = '14px \"SF Mono\", Monaco, monospace';\n const textWidth = context.measureText(currentLineText).width;\n \n // カーソル位置を設定(パディング分を考慮)\n this.cursorLeft = 8 + textWidth; // 8px は textarea の左パディング\n \n // 垂直位置を調整(行数に基づいて、スクロール位置も考慮)\n const scrollTop = textarea.scrollTop;\n this.cursorTop = 12 + (currentLineIndex * 20) - scrollTop; // スクロール分を引く\n }\n }\n}\n\nexport function provideAgentTemplate(): Provider[] {\n return [\n provideComponent(EntranceTemplateStore, () => AgentTemplate),\n ];\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -326,7 +326,7 @@ class WebGLParticleSystem {
|
|
|
326
326
|
}
|
|
327
327
|
|
|
328
328
|
class BackgroundTemplate {
|
|
329
|
-
title = input('');
|
|
329
|
+
title = input('', ...(ngDevMode ? [{ debugName: "title" }] : []));
|
|
330
330
|
container = viewChild.required('container');
|
|
331
331
|
particleSystem = null;
|
|
332
332
|
glitchInterval = null;
|
|
@@ -369,8 +369,8 @@ class BackgroundTemplate {
|
|
|
369
369
|
clearInterval(this.glitchInterval);
|
|
370
370
|
}
|
|
371
371
|
}
|
|
372
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
373
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
372
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BackgroundTemplate, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
373
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.6", type: BackgroundTemplate, isStandalone: true, selector: "app-background-template", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
374
374
|
<div #container></div>
|
|
375
375
|
<div class="overlay">
|
|
376
376
|
<div class="scanlines"></div>
|
|
@@ -386,7 +386,7 @@ class BackgroundTemplate {
|
|
|
386
386
|
</div>
|
|
387
387
|
`, isInline: true, styles: [":host{display:block;position:fixed;width:100%;height:100vh;color:#fff;z-index:-1}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.scanlines{position:absolute;top:0;left:0;width:100%;height:100%;background:repeating-linear-gradient(0deg,rgba(0,0,0,.1) 0px,rgba(0,0,0,.1) 1px,transparent 1px,transparent 2px);opacity:.3}.glitch-text{position:absolute;top:20px;left:20px;font-family:Courier New,monospace;font-size:14px;color:#0ffc;text-shadow:0 0 10px rgba(0,255,255,.5);white-space:pre-line;transition:transform .1s}.glitch-text.glitch{animation:glitch .3s ease-in-out}@keyframes glitch{0%,to{transform:translate(0)}20%{transform:translate(-2px,2px)}40%{transform:translate(2px,-2px)}60%{transform:translate(-1px,-1px)}80%{transform:translate(1px,1px)}}.content{position:relative;z-index:1;padding:2rem}.title{font-size:2rem;margin-bottom:1rem;font-family:Courier New,monospace;text-shadow:0 0 10px rgba(0,255,255,.5)}\n"] });
|
|
388
388
|
}
|
|
389
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
389
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BackgroundTemplate, decorators: [{
|
|
390
390
|
type: Component,
|
|
391
391
|
args: [{ selector: 'app-background-template', standalone: true, template: `
|
|
392
392
|
<div #container></div>
|
|
@@ -403,7 +403,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImpor
|
|
|
403
403
|
<ng-content></ng-content>
|
|
404
404
|
</div>
|
|
405
405
|
`, styles: [":host{display:block;position:fixed;width:100%;height:100vh;color:#fff;z-index:-1}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.scanlines{position:absolute;top:0;left:0;width:100%;height:100%;background:repeating-linear-gradient(0deg,rgba(0,0,0,.1) 0px,rgba(0,0,0,.1) 1px,transparent 1px,transparent 2px);opacity:.3}.glitch-text{position:absolute;top:20px;left:20px;font-family:Courier New,monospace;font-size:14px;color:#0ffc;text-shadow:0 0 10px rgba(0,255,255,.5);white-space:pre-line;transition:transform .1s}.glitch-text.glitch{animation:glitch .3s ease-in-out}@keyframes glitch{0%,to{transform:translate(0)}20%{transform:translate(-2px,2px)}40%{transform:translate(2px,-2px)}60%{transform:translate(-1px,-1px)}80%{transform:translate(1px,1px)}}.content{position:relative;z-index:1;padding:2rem}.title{font-size:2rem;margin-bottom:1rem;font-family:Courier New,monospace;text-shadow:0 0 10px rgba(0,255,255,.5)}\n"] }]
|
|
406
|
-
}], ctorParameters: () => [] });
|
|
406
|
+
}], ctorParameters: () => [], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], container: [{ type: i0.ViewChild, args: ['container', { isSignal: true }] }] } });
|
|
407
407
|
|
|
408
408
|
class MachinaBackgroundTemplate {
|
|
409
409
|
container = viewChild.required('container');
|
|
@@ -420,13 +420,13 @@ class MachinaBackgroundTemplate {
|
|
|
420
420
|
ngOnDestroy() {
|
|
421
421
|
this.particleSystem?.dispose();
|
|
422
422
|
}
|
|
423
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
424
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "
|
|
423
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: MachinaBackgroundTemplate, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
424
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: MachinaBackgroundTemplate, isStandalone: true, selector: "machina-templates-background", viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, isSignal: true }], ngImport: i0, template: `<div #container></div>`, isInline: true, styles: [":host{display:block;position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:none}\n"] });
|
|
425
425
|
}
|
|
426
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
426
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: MachinaBackgroundTemplate, decorators: [{
|
|
427
427
|
type: Component,
|
|
428
428
|
args: [{ selector: 'machina-templates-background', standalone: true, template: `<div #container></div>`, styles: [":host{display:block;position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:none}\n"] }]
|
|
429
|
-
}], ctorParameters: () => [] });
|
|
429
|
+
}], ctorParameters: () => [], propDecorators: { container: [{ type: i0.ViewChild, args: ['container', { isSignal: true }] }] } });
|
|
430
430
|
|
|
431
431
|
function provideMachinaBackgroundTemplate() {
|
|
432
432
|
return provideComponent(BackgroundTemplateStore, () => MachinaBackgroundTemplate);
|